:root{--mos-orange: #eb6a0a;--mos-orange-ink: #d65f08;--mos-orange-soft: #f5a97f;--mos-orange-soft-2: #f7c6a7;--mos-blue: #0b64b8;--mos-blue-bright: #1478d4;--mos-navy: #0b1e40;--kind-checkin: #c9a3f0;--kind-checkin-bar: #8b5cf6;--kind-impuls: #9ee6a4;--kind-impuls-bar: #2fa84f;--kind-todo: #fff38d;--kind-todo-bar: #eab308;--kind-wahl: #8ee8ee;--kind-wahl-bar: #0fb5c4;--kind-test: #e9d5ff;--kind-test-bar: #9333ea;--kind-lernzeit: #93c5fd;--kind-lernzeit-bar: #0b64b8;--kind-betreuung: #c9a3f0;--kind-betreuung-bar: #8b5cf6;--status-da: #2fa84f;--status-frei: #0b64b8;--status-weg: #9aa4b2;--status-abwesend: #d92d20;--ink-sketch: #454d59;--shadow-card: 0 1px 3px rgba(16,24,40,.07), 0 5px 14px -8px rgba(16,24,40,.12)}.kal-root{--bg: #e7eaef;--white: #ffffff;--text: #0f172a;--muted: #94a3b8;--border: #e2e8f0;--accent: var(--mos-blue);--accent-dark: #084e90;--header-bg: var(--mos-blue);--secondary-bg: #eef1fa;--orange: var(--mos-orange);--orange-light: #fdf1e7;font-family:Inter,Segoe UI,system-ui,-apple-system,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:13px;height:100vh;overflow:hidden;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto 1fr}.kal-rail{grid-row:1 / 3;grid-column:1}.kal-header{grid-row:1;grid-column:2}.kal-root>*:not(.kal-rail):not(.kal-header){grid-row:2;grid-column:2;min-height:0;min-width:0}.kal-rail{width:176px;background:var(--mos-navy);color:#fff;display:flex;flex-direction:column;min-height:0}.kal-rail-logo{padding:24px 20px 26px;font-size:22px;font-weight:700;letter-spacing:.02em;line-height:1;white-space:nowrap}.kal-rail-logo .o{color:var(--mos-orange)}.kal-rail-nav{display:flex;flex-direction:column;gap:4px;padding:0 8px;overflow-y:auto}.kal-rail-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;border-radius:8px;background:transparent;border:none;cursor:pointer;color:#fff;font-family:inherit;transition:color .15s ease,background .15s ease}.kal-rail-item:hover:not(.active){background:#ffffff0f}.kal-rail-item.active{color:var(--mos-orange)}.kal-rail-item .lbl{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.kal-rail-user{margin-top:auto;padding:20px;text-align:center;font-size:14px;font-weight:600;line-height:1.3}.kal-rail-user .klasse{font-size:11px;font-weight:500;opacity:.65}.kal-header{min-height:72px;background:linear-gradient(180deg,var(--mos-blue-bright) 0%,var(--mos-blue) 100%);display:flex;align-items:center;padding:0 32px;flex-shrink:0;z-index:100;box-shadow:0 2px 8px #0003;gap:24px}.kal-top-tabs{display:flex;align-items:center;gap:32px}.kal-top-tab{position:relative;padding:6px 0;font-size:21px;line-height:1.1;font-weight:500;color:#ffffffb8;background:none;border:none;cursor:pointer;font-family:inherit;transition:color .15s;white-space:nowrap}.kal-top-tab:hover{color:#fff}.kal-top-tab.active{color:#fff;font-weight:700}.kal-top-tab.active:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:#fff;border-radius:2px}.kal-logo{display:none;align-items:center;gap:9px;font-family:Montserrat,sans-serif;font-weight:800;font-size:15px;letter-spacing:-.2px;color:#fff;margin-right:36px;text-decoration:none;white-space:nowrap}.kal-logo-icon{width:28px;height:28px;border-radius:7px;background:#ffffff2e;display:flex;align-items:center;justify-content:center}.kal-nav{display:flex;align-items:center;flex:1}.kal-nav a{padding:0 16px;height:52px;display:flex;align-items:center;font-size:13px;color:#ffffffb3;text-decoration:none;border-bottom:3px solid transparent;font-weight:500;transition:color .15s,border-color .15s}.kal-nav a:hover{color:#fff}.kal-nav a.active{color:#fff;font-weight:700;border-bottom-color:#fff}.kal-header-right{display:flex;align-items:center;gap:10px}.kal-hbtn{background:#ffffff1f;border:none;cursor:pointer;color:#ffffffd9;font-size:12.5px;display:flex;align-items:center;gap:5px;padding:5px 10px;border-radius:5px;transition:background .15s;font-family:inherit}.kal-hbtn:hover{background:#ffffff38}.kal-hbtn.ico{padding:5px 7px}.kal-avatar{width:30px;height:30px;border-radius:50%;background:var(--orange);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;cursor:pointer;border:2px solid rgba(255,255,255,.3);font-family:Inter,sans-serif}.kal-hdr-search{flex:1;display:flex;justify-content:center;padding:0 24px}.kal-hdr-search-inner{width:100%;max-width:380px;background:#ffffff1a;border-radius:9px;display:flex;align-items:center;padding:0 12px;gap:9px;height:34px;transition:background .15s}.kal-hdr-search-inner:focus-within{background:#ffffff2e}.kal-hdr-search-inner input{flex:1;background:transparent;border:none;outline:none;color:#fff;font-size:13px;font-family:inherit}.kal-hdr-search-inner input::-moz-placeholder{color:#fff9}.kal-hdr-search-inner input::placeholder{color:#fff9}.kal-page{flex:1;overflow:hidden;display:flex;flex-direction:column;padding:0 32px 24px;gap:0}.kal-cal-top{display:flex;align-items:flex-end;justify-content:space-between;flex-shrink:0;gap:12px;padding:30px 0 24px}.kal-wk-title{display:flex;flex-direction:column}.kal-cal-eyebrow{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--mos-orange-ink);margin-bottom:5px}.kal-cal-kw{font-weight:600;letter-spacing:.06em;opacity:.7}.kal-cal-month-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.kal-cal-month{font-size:27px;font-weight:800;color:#1b1b1b;letter-spacing:-.5px;line-height:1}.kal-week-rhythm{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.2px}.kal-week-rhythm.w1,.kal-week-rhythm.w2{background:#fdeadd;color:var(--mos-orange-ink);text-transform:uppercase;font-size:10px;letter-spacing:.08em}.kal-week-rhythm.ferien{background:#e2f6e5;color:#1f7d3a;text-transform:uppercase;font-size:10px;letter-spacing:.08em}.kal-cal-actions{display:flex;align-items:center;gap:8px}.kal-nav-btn{width:40px;height:40px;border-radius:12px;border:2px solid var(--mos-orange-soft);background:transparent;color:var(--mos-orange-soft);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.kal-nav-btn:hover{background:var(--mos-orange-soft);color:#fff}.kal-today-btn{font-size:14px;font-weight:600;color:var(--mos-orange-soft);background:transparent;border:2px solid var(--mos-orange-soft);border-radius:12px;padding:8px 20px;cursor:pointer;font-family:inherit;transition:all .15s ease}.kal-today-btn:hover{background:var(--mos-orange-soft);color:#fff}.kal-lernzeit-btn{display:inline-flex;align-items:center;gap:7px;border:2px solid #cfd6df;background:#fff;border-radius:12px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:600;color:#4a5361;cursor:pointer;transition:all .15s}.kal-lernzeit-btn:hover{border-color:#9ec7e8}.kal-lernzeit-btn.on{background:#eaf3fb;border-color:#9ec7e8;color:var(--mos-blue)}.kal-lz-ind{width:7px;height:7px;border-radius:50%;background:#cfd6df;transition:all .15s}.kal-lz-ind.on{background:var(--mos-blue);box-shadow:0 0 0 3px #0b64b829}.kal-new-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:12px;border:2px solid var(--mos-blue);cursor:pointer;font-family:inherit;font-size:14px;font-weight:600;background:var(--mos-blue);color:#fff;transition:filter .15s ease,transform .12s}.kal-new-btn:hover{filter:brightness(.95);transform:translateY(-1px)}.kal-body-row{flex:1;display:flex;gap:16px;min-height:0}.kal-fc{background:#fff;border-radius:12px;border:1px solid #e4e8ee;box-shadow:var(--shadow-sm, 0 1px 2px rgba(16,24,40,.08));overflow:hidden}.kal-todo-panel{width:200px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;transition:width .25s cubic-bezier(.4,0,.2,1),opacity .2s,margin .25s,border-width .25s;min-width:0}.kal-todo-panel.closed{width:0;margin-right:-14px;border-width:0;opacity:0;pointer-events:none}.kal-todo-panel-inner{width:200px;height:100%;display:flex;flex-direction:column;flex-shrink:0}.kal-tp-tabs{display:flex;align-items:stretch;border-bottom:1px solid #f1f3f8;flex-shrink:0;transition:background .1s}.kal-tp-tabs.drop-over{background:#fff7ed}.kal-tp-tabs-row{flex:1;min-width:0;display:flex;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;padding:8px 0 0 10px}.kal-tp-tabs-row::-webkit-scrollbar{display:none}.kal-tp-tab{flex-shrink:0;background:none;border:none;cursor:pointer;padding:0 11px 10px;font-family:inherit;font-size:12px;font-weight:600;color:#94a3b8;position:relative;transition:color .15s;display:flex;align-items:center;gap:5px;white-space:nowrap}.kal-tp-tab.active{color:#0b64b8}.kal-tp-tab.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:#0b64b8;border-radius:2px 2px 0 0}.kal-tp-pill{background:#f1f3f8;color:#64748b;font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px}.kal-tp-tab.active .kal-tp-pill{background:#dbeafe;color:#0b64b8}.kal-tp-close{flex-shrink:0;align-self:center;width:26px;height:26px;border-radius:7px;margin:0 5px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#94a3b8;transition:background .12s,color .12s}.kal-tp-close:hover{background:#f1f3f8;color:#0f172a}.kal-tp-active-chips{display:flex;flex-wrap:wrap;gap:5px;padding:6px 10px 4px;border-bottom:1px solid #f1f3f8;flex-shrink:0}.kal-tp-active-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 7px 3px 9px;border-radius:999px;border:none;cursor:pointer;font-family:inherit;font-size:11px;font-weight:600;color:#1e293b;transition:filter .12s}.kal-tp-active-chip:hover{filter:brightness(.93)}.kal-tp-chip-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kal-tp-chip-x{font-size:13px;font-weight:400;line-height:1;opacity:.7}.kal-tp-lz-toggle{display:inline-flex;align-items:center;gap:6px;margin:0;border:1px solid #e2e8f0;background:#f8fafc;border-radius:9px;padding:6px 10px;font-family:inherit;font-size:11.5px;font-weight:600;color:#475569;cursor:pointer;transition:all .15s;width:100%;justify-content:flex-start}.kal-tp-lz-toggle:hover{background:#f1f5f9}.kal-tp-lz-toggle.on{background:#eaf3fb;border-color:#9ec7e8;color:var(--mos-blue)}.kal-tp-dots{display:flex;justify-content:center;align-items:center;gap:5px;padding:5px 0 4px;flex-shrink:0;border-bottom:1px solid #f1f3f8}.kal-tp-dot{height:5px;width:5px;border-radius:3px;padding:0;border:none;cursor:pointer;background:#e2e8f0;transition:background .2s,width .25s cubic-bezier(.4,0,.2,1)}.kal-tp-dot.active{background:#0b64b8;width:18px}.kal-tp-viewport{flex:1;overflow:hidden;position:relative;min-height:0}.kal-tp-slider{display:flex;width:400%;height:100%;transition:transform .28s cubic-bezier(.4,0,.2,1)}.kal-tp-slider.page-0{transform:translate(0)}.kal-tp-slider.page-1{transform:translate(-25%)}.kal-tp-slider.page-2{transform:translate(-50%)}.kal-tp-slider.page-3{transform:translate(-75%)}.kal-tp-page{width:25%;height:100%;overflow-y:auto;padding:6px 8px 10px}.kal-tp-page::-webkit-scrollbar{width:4px}.kal-tp-page::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:2px}.kal-tp-page.kal-tp-page-flex{overflow:hidden;padding:0;display:flex;flex-direction:column}.kal-tp-search-page{display:flex;flex-direction:column;height:100%}.kal-tp-search-bar{flex-shrink:0;padding:8px 10px 4px;border-bottom:1px solid #f1f3f8;background:#fff}.kal-tp-search-wrap{position:relative}.kal-tp-search-icon{position:absolute;left:8px;top:50%;transform:translateY(-50%);color:#94a3b8;pointer-events:none}.kal-tp-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:#94a3b8;font-size:16px;line-height:1;padding:0 2px;transition:color .12s}.kal-tp-search-clear:hover{color:#0f172a}.kal-tp-search-list{flex:1;overflow-y:auto;padding:4px 4px 12px}.kal-tp-search-list::-webkit-scrollbar{width:4px}.kal-tp-search-list::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:2px}.kal-tp-todo-row{position:relative;padding:10px 12px 11px 16px;cursor:grab;border-radius:10px;background:color-mix(in srgb,var(--kind-todo) 32%,white);box-shadow:var(--shadow-card);transition:transform .13s cubic-bezier(.34,1.4,.64,1),box-shadow .13s;margin-bottom:12px}.kal-tp-todo-row.has-pikto{padding-right:36px}.kal-tp-todo-row:before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:4px;border-radius:4px;background:var(--kind-todo-bar)}.kal-tp-todo-row:hover{transform:translateY(-2px) rotate(-.5deg);box-shadow:0 6px 14px #10182824}.kal-tp-todo-row:active{cursor:grabbing}.kal-tp-todo-row.dragging{opacity:.4}.kal-tp-todo-row.done{background:#f1f3f6;opacity:.7;cursor:pointer}.kal-tp-todo-row.done:before{background:#cfd6df}@media (prefers-reduced-motion: reduce){.kal-tp-todo-row,.kal-tp-todo-row:hover{transition:none;transform:none}}.kal-tp-todo-label{margin-top:3px;font-size:12.5px;font-weight:700;color:#1b1b1b;line-height:1.3}.kal-tp-todo-label.done{text-decoration:line-through;color:#6b7684;font-weight:600}.kal-tp-todo-meta{font-size:9.5px;font-weight:600;color:#6b7684}.kal-tp-todo-meta.overdue{color:var(--mos-danger, #d92d20)}.kal-tp-todo-pikto{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:21px;height:21px;opacity:.8;filter:url(#sketchy);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.kal-tp-add-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;font-size:12.5px;font-weight:600;color:var(--mos-orange);background:transparent;border:2px solid var(--mos-orange);border-radius:12px;cursor:pointer;padding:7px 12px;font-family:inherit;transition:all .15s ease}.kal-tp-add-btn:hover{background:var(--mos-orange);color:#fff}.kal-tp-cal-section{padding:4px 0;border-bottom:1px solid #f1f3f8}.kal-tp-section-h{padding:8px 12px 4px;font-size:9.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8}.kal-tp-cal-search{width:100%;padding:4px 8px 4px 24px;border-radius:6px;border:1px solid #e2e8f0;font-size:11px;color:var(--text);background:#f8f9fc;outline:none;font-family:inherit;box-sizing:border-box}.kal-tp-cal-search:focus{border-color:#0b64b8}.kal-tp-cal-item{display:flex;align-items:center;gap:8px;width:100%;padding:5px 12px;border:none;background:transparent;color:#444;font-size:12px;font-weight:400;cursor:pointer;text-align:left;font-family:inherit;transition:background .1s;border-radius:6px}.kal-tp-cal-item:hover:not(:disabled){background:#f5f7fb}.kal-tp-cal-item.selected{background:#eef2ff;color:#0b64b8;font-weight:600}.kal-tp-cal-item:disabled{color:#d1d5db;cursor:not-allowed}.kal-tp-cal-check{width:13px;height:13px;border-radius:3px;flex-shrink:0;border:1.5px solid #d1d5db;background:#fff;display:flex;align-items:center;justify-content:center;transition:all .12s}.kal-tp-cal-item.selected .kal-tp-cal-check{background:#0b64b8;border-color:#0b64b8}.kal-panel-reopen{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;color:#0b64b8;cursor:pointer;align-self:flex-start;flex-shrink:0;transition:background .12s;box-shadow:0 1px 3px #0f172a0d}.kal-panel-reopen:hover{background:#f5f7fb}.kal-panel-reopen-pill{position:absolute;top:-5px;right:-5px;background:#0b64b8;color:#fff;font-size:9px;font-weight:700;min-width:16px;height:16px;padding:0 4px;border-radius:999px;display:flex;align-items:center;justify-content:center}.kal-cal-card{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.kal-legend-strip{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:9px 16px;border-top:1px solid #f1f3f6;flex-shrink:0}.kal-legend-item-inline{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:600;color:#6b7684;letter-spacing:.04em}.kal-legend-swatch-inline{width:12px;height:12px;border-radius:4px;flex-shrink:0;position:relative}.kal-legend-swatch-inline:before{content:"";position:absolute;left:2px;top:2px;bottom:2px;width:2.5px;border-radius:2px;background:var(--legend-bar)}.kal-cal-card-body{flex:1;min-height:0;display:flex;flex-direction:column}.kal-cal-card-body .kal-cal-grid{border-radius:0;border:none}.kal-cal-wrap{flex:1;overflow:hidden;padding:0;display:flex;flex-direction:column}.kal-cal-grid{background:var(--white);border-radius:10px;border:1px solid var(--border);overflow:hidden;display:flex;flex-direction:column;flex:1}.kal-day-headers{display:grid;grid-template-columns:72px repeat(5,1fr);border-bottom:2px solid var(--secondary-bg);flex-shrink:0;background:var(--white)}.kal-time-header{background:#fafbfd;border-right:1px solid var(--border)}.kal-day-header{padding:7px 6px;text-align:center;border-right:1px solid var(--border);transition:background .15s}.kal-day-header:last-child{border-right:none}.kal-day-header.today{background:var(--secondary-bg);border-bottom:2px solid var(--accent)}.kal-day-name{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:3px}.kal-day-header.today .kal-day-name{color:var(--accent)}.kal-day-num{font-family:Montserrat,sans-serif;font-size:18px;font-weight:900;color:#111;letter-spacing:-.03em;line-height:1}.kal-day-header.today .kal-day-num{color:var(--accent)}.kal-day-month{font-size:10px;color:var(--muted);font-weight:500;margin-top:2px}.kal-period-row{display:grid;grid-template-columns:72px repeat(5,1fr);border-bottom:1px solid var(--border);min-height:58px}.kal-period-row:last-child{border-bottom:none}.kal-period-row.break-row{background:#fafbfd}.kal-time-cell{border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 6px;gap:1px;background:#fafbfd}.kal-period-num{font-family:Montserrat,sans-serif;font-size:14px;font-weight:900;color:var(--accent);line-height:1}.kal-period-times{font-size:8.5px;color:var(--muted);font-weight:600;text-align:center;line-height:1.4;letter-spacing:.01em}.kal-break-label{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#ccc}.kal-day-cell{border-right:1px solid var(--border);padding:4px;transition:background .1s;display:flex;flex-direction:column;gap:3px}.kal-day-cell.lernzeit-bg{background:#fefce8!important}.kal-day-cell.lernzeit-bg.today{background:#fef9c3!important}.kal-lernzeit-placeholder{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#ca8a04;opacity:.6;padding:2px 3px;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.kal-day-cell:last-child{border-right:none}.kal-day-cell:nth-child(2n){background:#fafbfd}.kal-day-cell.today{background:#1e4fc20a}.kal-day-cell.today:nth-child(2n){background:#1e4fc212}.kal-period-row.break-row .kal-day-cell{background:#fafbfd}.kal-day-cell.drop-over{outline:2px solid var(--orange);outline-offset:-2px}.kal-ev-card{border-radius:6px;padding:5px 7px;cursor:pointer;transition:transform .12s,box-shadow .12s;border-left:3px solid transparent;display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;box-shadow:0 1px 3px #0000000d}.kal-ev-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000017}.kal-ev-card.dragging{opacity:.4}.kal-ev-card.grab{cursor:grab}.kal-ev-card.grab:active{cursor:grabbing}.kal-ev-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:3px;gap:4px}.kal-ev-badge{font-size:8px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;border-radius:3px;padding:1px 5px;white-space:nowrap;flex-shrink:0}.kal-ev-time{font-size:9px;color:var(--muted);font-weight:600;white-space:nowrap}.kal-ev-title{font-size:11px;font-weight:700;color:#1a1a1a;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.kal-ev-title.done{text-decoration:line-through;color:#94a3b8}.kal-ev-sub{font-size:9.5px;color:var(--muted);margin-top:1px}.kal-ev-sub.overdue{color:#b91c1c;font-weight:600}.kal-ev-tag-pill{margin-top:4px;display:inline-flex;align-items:center;gap:3px;font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:2px 6px;align-self:flex-start}.kal-ev-check{width:16px;height:16px;border-radius:3px;flex-shrink:0;border:1.5px solid #aab4c4;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:all .15s}.kal-ev-check.done{background:#22c55e;border-color:#22c55e}.kal-tp-swatch-section{padding:2px 0 4px;border-bottom:1px solid #f1f3f8}.kal-tp-section-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;cursor:pointer;font-family:inherit;color:#94a3b8;padding:8px 12px 4px;font-size:9.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;transition:color .12s}.kal-tp-section-toggle:hover{color:#64748b}.kal-tp-swatch-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px;border:none;background:transparent;color:#374151;font-size:12px;font-weight:400;cursor:pointer;text-align:left;font-family:inherit;border-radius:7px;transition:background .1s;margin:1px 0}.kal-tp-swatch-item:hover:not(:disabled){background:#f5f7fb}.kal-tp-swatch-item.selected{background:#eef2ff;color:#0b64b8;font-weight:600}.kal-tp-swatch-item.disabled{color:#d1d5db;cursor:not-allowed}.kal-tp-swatch-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;border:1.5px solid rgba(0,0,0,.08)}.kal-tp-swatch-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kal-tp-swatch-toggle{width:15px;height:15px;border-radius:4px;border:1.5px solid #d1d5db;background:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .12s}.kal-tp-swatch-item.selected .kal-tp-swatch-toggle{background:#0b64b8;border-color:#0b64b8}.kal-tp-swatch-item.disabled .kal-tp-swatch-toggle{background:#f3f4f6}.kal-tg-root{display:flex;flex-direction:column;flex:1;min-height:0;background:#fff}.kal-cal-card-body .kal-tg-root{border-radius:0}.kal-tg-headers{display:flex;border-bottom:1px solid #f1f3f6;flex-shrink:0;background:#fff}.kal-tg-gutter-h{width:60px;flex-shrink:0;background:#fff}.kal-tg-day-header{flex:1;text-align:center;padding:12px 6px 10px;background:#fff;min-width:0}.kal-tg-day-header.today{background:linear-gradient(180deg,#fdf1e7,#fff);border-radius:10px 10px 0 0}.kal-tg-day-name{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#9aa4b2;margin-bottom:4px}.kal-tg-day-header.today .kal-tg-day-name{color:var(--mos-orange-ink)}.kal-tg-day-num{font-family:Montserrat,sans-serif;font-size:23px;font-weight:900;color:#333b47;letter-spacing:-.02em;line-height:1;position:relative;display:inline-flex;align-items:flex-start}.kal-tg-day-header.today .kal-tg-day-num{color:var(--mos-orange-ink)}.kal-tg-today-dot{position:absolute;top:0;right:-9px;width:7px;height:7px;border-radius:50%;background:var(--mos-orange)}.kal-tg-day-header.ferien{background:linear-gradient(180deg,#ecfdf5,#fff);border-radius:10px 10px 0 0}.kal-tg-day-header.ferien .kal-tg-day-name,.kal-tg-day-header.ferien .kal-tg-day-num{color:#047857}.kal-tg-day-ferien{margin-top:4px;font-size:8.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#059669}.kal-tg-day-header.feiertag{background:linear-gradient(180deg,#f5f3ff,#fff);border-radius:10px 10px 0 0}.kal-tg-day-header.feiertag .kal-tg-day-name,.kal-tg-day-header.feiertag .kal-tg-day-num{color:#6d28d9}.kal-tg-day-feiertag{margin-top:4px;font-size:8.5px;font-weight:800;letter-spacing:.04em;color:#7c3aed;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.kal-tg-body{flex:1;overflow-y:auto;min-height:0}.kal-tg-body::-webkit-scrollbar{width:5px}.kal-tg-body::-webkit-scrollbar-thumb{background:#e2e8f0;border-radius:3px}.kal-tg-inner{display:flex;position:relative}.kal-tg-gutter{width:60px;flex-shrink:0;position:relative;background:#fff}.kal-tg-hour-label{position:absolute;right:12px;font-size:10px;font-weight:600;color:#9aa4b2;transform:translateY(-50%);white-space:nowrap;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-variant-numeric:tabular-nums}.kal-tg-cols{flex:1;display:flex;min-width:0}.kal-tg-day-col{flex:1;position:relative;border-right:1px solid #f3f5f8;min-width:0}.kal-tg-day-col:last-child{border-right:none}.kal-tg-day-col.today{background:#eb6a0a05}.kal-tg-day-col.ferien{background:#10b9810f}.kal-tg-ferien-mark{position:absolute;top:8px;left:0;right:0;text-align:center;padding:0 4px;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#10b981;opacity:.55;pointer-events:none;z-index:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kal-tg-day-col.feiertag{background:#7c3aed0f}.kal-tg-feiertag-mark{position:absolute;top:8px;left:0;right:0;text-align:center;padding:0 4px;font-size:10px;font-weight:800;letter-spacing:.04em;color:#7c3aed;opacity:.6;pointer-events:none;z-index:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kal-tg-hline{position:absolute;left:0;right:0;border-top:1px solid #f5f7f9;pointer-events:none}.kal-tg-break{position:absolute;left:0;right:0;pointer-events:none;display:flex;align-items:center;justify-content:center;z-index:0}.kal-tg-break span{font-size:8.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#cfd6df}.kal-tg-lz-bg{position:absolute;left:5px;right:5px;z-index:1;border-radius:10px;background-color:#fafbfc;background-image:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(154,164,178,.07) 10px,rgba(154,164,178,.07) 20px);border:1.5px dashed #e7ebf0;pointer-events:none;transition:all .25s}.kal-tg-lz-bg.active{background-color:#fffbeba6;background-image:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(11,100,184,.06) 10px,rgba(11,100,184,.06) 20px);background-color:#f4f8fc;border-color:#bcd7ee;pointer-events:auto;cursor:pointer;z-index:3}.kal-tg-lz-label{position:absolute;top:6px;left:8px;right:9px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#9aa4b2;text-align:right;line-height:1.3;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.kal-tg-lz-bg.active .kal-tg-lz-label{color:var(--mos-blue)}.kal-tg-lz-teacher{position:absolute;left:8px;bottom:7px;right:8px;display:flex;align-items:center;gap:6px;opacity:0;transform:translateY(4px);transition:opacity .25s,transform .25s;pointer-events:none}.kal-tg-lz-teacher.show{opacity:1;transform:none}.kal-tg-lz-av{width:22px;height:22px;border-radius:50%;background:var(--mos-blue);color:#fff;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid white;flex-shrink:0;box-shadow:0 1px 2px #10182814}.kal-tg-lz-name{font-size:11px;font-weight:700;color:#1b1b1b;line-height:1.2}.kal-tg-lz-fach{font-size:9.5px;font-weight:600;color:var(--mos-blue);opacity:.85}.kal-tg-lz-room{font-size:9.5px;font-weight:500;color:#6b7684}.kal-tg-dropzone{position:absolute;left:0;right:0;z-index:1}.kal-tg-dropzone.drop-over{background:#eb6a0a12;outline:1.5px dashed var(--mos-orange);outline-offset:-1.5px;border-radius:8px}.kal-tg-ev-wrap{position:absolute;z-index:2}.kal-tg-ev-card{position:relative;height:100%;border-radius:10px;overflow:hidden;padding:7px 9px 7px 15px;display:flex;flex-direction:column;box-shadow:var(--shadow-card);transition:transform .14s cubic-bezier(.34,1.45,.64,1),box-shadow .14s}.kal-tg-ev-card.has-pikto{padding-right:38px}.kal-tg-ev-card:hover{transform:scale(1.025);box-shadow:0 8px 22px #0b1e4029;z-index:5}@media (prefers-reduced-motion: reduce){.kal-tg-ev-card,.kal-tg-ev-card:hover{transition:none;transform:none}}.kal-tg-ev-bar{position:absolute;left:5px;top:7px;bottom:7px;width:4px;border-radius:4px;pointer-events:none}.kal-tg-ev-pikto{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:26px;height:26px;opacity:.8;filter:url(#sketchy);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.kal-tg-ev-piktochip{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:20px;height:20px;border:1.5px dashed #9aa4b2;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:6px;font-weight:800;letter-spacing:.04em;color:#6b7684;filter:url(#sketchy);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.kal-tg-ev-top{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:2px;flex-shrink:0}.kal-tg-ev-time{font-size:9.5px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.kal-tg-ev-badge{font-size:8px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:1.5px 7px;border-radius:999px;flex-shrink:0}.kal-tg-ev-title{font-size:12.5px;font-weight:700;line-height:1.2;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;word-break:break-word}.kal-tg-ev-room{font-size:10px;font-weight:500;margin-top:2px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kal-tg-now-line{position:absolute;left:0;right:0;height:0;border-top:2px solid var(--mos-orange);z-index:10;pointer-events:none}.kal-tg-now-dot{width:10px;height:10px;border-radius:50%;background:var(--mos-orange);position:absolute;left:-5px;top:-5px}.kal-burger-wrap{position:relative;margin-right:14px;flex-shrink:0;display:none}.kal-burger-btn{width:34px;height:34px;border-radius:8px;border:none;background:#ffffff1f;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.kal-burger-btn:hover{background:#ffffff38}.kal-burger-menu{position:absolute;top:calc(100% + 8px);left:0;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:6px;min-width:180px;box-shadow:0 8px 24px #0f172a1f;z-index:500;animation:kal-fadein .12s ease}@keyframes kal-fadein{0%{opacity:0;transform:translateY(-4px)}to{opacity:1}}.kal-burger-item{display:flex;align-items:center;gap:9px;width:100%;padding:9px 12px;border:none;background:transparent;border-radius:8px;font-family:inherit;font-size:13px;font-weight:600;color:#334155;cursor:pointer;text-align:left;transition:background .1s}.kal-burger-item:hover{background:#f5f7fb}.kal-burger-item.active{color:#0b64b8;background:#eef2ff}.kal-burger-item svg{color:#64748b;flex-shrink:0}.kal-burger-item.active svg{color:#0b64b8}.kal-seg-toggle{display:flex;align-items:center;gap:12px}.kal-seg-btn{min-width:150px;padding:9px 22px;border-radius:12px;border:2px solid var(--mos-orange-soft-2);font-family:inherit;font-size:14px;font-weight:600;color:var(--mos-orange-ink);cursor:pointer;background:#fff;transition:all .15s;white-space:nowrap;text-align:center}.kal-seg-btn.active{background:var(--mos-orange-soft-2);color:#fff}.kal-seg-btn:not(.active):hover{background:#fdf1e7}.kal-actions-divider{width:1px;height:20px;background:#e2e8f0;margin:0 2px}.kal-tp-head{padding:18px 14px 10px;flex-shrink:0;transition:background .1s}.kal-tp-head.drop-over{background:#fff7ed}.kal-tp-head-row{position:relative;display:flex;align-items:center;justify-content:center;margin:2px 0 14px}.kal-tp-head-title{font-size:15px;font-weight:600;color:#1b1b1b;display:flex;align-items:center;gap:7px}.kal-tp-head-row .kal-tp-close{position:absolute;right:0;top:50%;transform:translateY(-50%)}.kal-tp-filter-wrap{position:relative}.kal-tp-filter-btn{display:flex;align-items:center;gap:5px;width:100%;padding:6px 12px;background:#f8fafc;border:none;border-radius:999px;font-family:inherit;font-size:10.5px;font-weight:600;color:#6b7684;cursor:pointer;transition:background .15s,color .15s}.kal-tp-filter-btn:hover{background:#fdf1e7;color:var(--mos-orange-ink)}.kal-tp-filter-btn:hover svg:first-child{color:var(--mos-orange-ink)}.kal-tp-filter-btn svg:first-child{color:#94a3b8;transition:color .15s}.kal-tp-filter-btn span{flex:1;text-align:left}.kal-tp-filter-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:none;border-radius:12px;padding:5px;box-shadow:0 10px 28px #0f172a1f;z-index:200;animation:kal-fadein .12s ease}.kal-tp-filter-item{display:block;width:100%;text-align:left;padding:7px 12px;border:none;background:transparent;border-radius:999px;font-family:inherit;font-size:11.5px;font-weight:500;color:#334155;cursor:pointer;transition:background .1s}.kal-tp-filter-item:hover{background:#f5f7fb}.kal-tp-filter-item.active{color:var(--mos-orange-ink);font-weight:700;background:#fdf1e7}.kal-tp-content{flex:1;overflow-y:auto;padding:12px 14px 14px}.kal-tp-content::-webkit-scrollbar{width:4px}.kal-tp-content::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:2px}.kal-tp-lz-footer{flex-shrink:0;padding:8px;border-top:1px solid #f1f5f9;display:flex;flex-direction:column;gap:8px}.kal-tp-todo-meta.overdue{color:#dc2626}.kal-tp-empty{padding:16px 10px;font-size:12px;color:#94a3b8;text-align:center}.kal-tp-drop-hint{margin:4px;padding:7px;border-radius:8px;background:#fff7ed;border:1px dashed #eb6a0a;font-size:10px;color:#eb6a0a;text-align:center}.kal-tp-plaketten{display:flex;flex-direction:column;gap:6px;padding:4px 0 8px}.kal-tp-plakette{display:flex;align-items:center;gap:9px;width:100%;padding:10px 12px;border:1.5px solid transparent;border-radius:12px;font-family:inherit;cursor:pointer;text-align:left;background:var(--plak-bg, #f1f5f9);transition:all .15s;position:relative}.kal-tp-plakette:hover{filter:brightness(.96)}.kal-tp-plakette.selected{border-color:var(--plak-color, #0b64b8);box-shadow:0 0 0 2px color-mix(in srgb,var(--plak-color, #0b64b8) 15%,transparent)}.kal-tp-plakette.disabled{opacity:.5;cursor:not-allowed}.kal-tp-plakette.empty{opacity:.45;cursor:default}.kal-tp-plak-icon{font-size:20px;flex-shrink:0}.kal-tp-plak-pikto{width:22px;height:22px;flex-shrink:0;opacity:.8;filter:url(#sketchy);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.kal-tp-plak-piktochip{width:20px;height:20px;flex-shrink:0;border:1.5px dashed #9aa4b2;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:6.5px;font-weight:800;letter-spacing:.04em;color:#6b7684;filter:url(#sketchy)}.kal-tp-plak-label{font-size:13px;font-weight:800;color:var(--plak-color, #334155);line-height:1.1}.kal-tp-plak-sub{font-size:10px;font-weight:500;color:#64748b;display:block;margin-top:1px}.kal-tp-plakette>div{display:flex;flex-direction:column;flex:1;min-width:0}.kal-tp-plak-check{flex-shrink:0;width:18px;height:18px;border-radius:5px;background:var(--plak-color, #0b64b8);color:#fff;display:flex;align-items:center;justify-content:center}.kal-tp-plak-hint{font-size:10px;color:#94a3b8;text-align:center;padding:4px 0}.tf-root{max-width:1000px;margin:0 auto;padding:28px 28px 40px}.tf-page-header{margin-bottom:20px}.tf-eyebrow{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--mos-orange-ink);margin-bottom:5px}.tf-title{font-size:27px;font-weight:800;color:#1b1b1b;letter-spacing:-.5px;margin:0;line-height:1}.tf-summary{font-size:12px;font-weight:500;color:#6b7684;margin:6px 0 12px}.tf-summary b{color:var(--status-da);font-weight:700}.tf-search-wrap{position:relative;max-width:600px}.tf-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#94a3b8;pointer-events:none}.tf-search{width:100%;padding:11px 40px 11px 42px;border:2px solid #e4e8ee;border-radius:12px;font-family:inherit;font-size:14px;color:#1b1b1b;background:#fff;outline:none;transition:border-color .15s;box-sizing:border-box}.tf-search:focus{border-color:var(--mos-orange-soft)}.tf-search::-moz-placeholder{color:#94a3b8}.tf-search::placeholder{color:#94a3b8}.tf-search-clear{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:18px;color:#94a3b8;padding:0;transition:color .12s}.tf-search-clear:hover{color:#0f172a}.tf-search-results{margin-bottom:24px}.tf-lehrer-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;cursor:pointer;text-align:left;font-family:inherit;transition:all .15s;margin-bottom:8px}.tf-lehrer-row:hover{border-color:#0b64b8;background:#f8faff}.tf-lehrer-avatar{width:40px;height:40px;border-radius:50%;background:#0b64b8;color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tf-lehrer-info{flex:1;min-width:0}.tf-lehrer-name{font-size:14px;font-weight:700;color:#0f172a}.tf-lehrer-status-text{font-size:12px;color:#64748b;margin-top:2px}.tf-fach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.tf-fach-card{background:var(--tf-bg, #f1f5f9);border:1.5px solid transparent;border-radius:18px;padding:20px 18px 16px;cursor:pointer;text-align:left;font-family:inherit;transition:all .15s;display:flex;flex-direction:column;gap:6px}.tf-fach-card:hover{border-color:var(--tf-color, #0b64b8);box-shadow:0 4px 16px #0f172a14;transform:translateY(-2px)}.tf-fach-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.tf-fach-icon-wrap{width:44px;height:44px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #00000014}.tf-fach-icon{font-size:22px}.tf-fach-count{font-size:10px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.tf-fach-name{font-size:20px;font-weight:800;color:var(--tf-color, #0f172a);letter-spacing:-.3px}.tf-fach-sub{font-size:11.5px;color:#64748b;font-weight:500}.tf-fach-avatars{display:flex;align-items:center;gap:0;margin-top:8px;position:relative}.tf-fach-avatar{width:28px;height:28px;border-radius:50%;background:#0b64b8;color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid white;margin-right:-8px;flex-shrink:0}.tf-fach-avatar-more{background:#e2e8f0;color:#64748b}.tf-fach-live-dot{width:9px;height:9px;border-radius:50%;background:#22c55e;border:2px solid white;margin-left:14px;flex-shrink:0;box-shadow:0 0 0 3px #22c55e33}.tf-breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}.tf-breadcrumb-back{display:flex;align-items:center;gap:5px;background:none;border:none;cursor:pointer;font-family:inherit;font-size:12px;font-weight:700;color:#64748b;padding:0;transition:color .12s}.tf-breadcrumb-back:hover{color:#0b64b8}.tf-breadcrumb-sep{color:#94a3b8;font-size:13px}.tf-breadcrumb-cur{font-size:12px;font-weight:800;color:#0b64b8;letter-spacing:.06em}.tf-breadcrumb-label{font-size:11px;font-weight:700;color:#94a3b8;letter-spacing:.08em;text-transform:uppercase}.tf-status-pills{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}.tf-pill{padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700}.tf-pill-green{background:#dcfce7;color:#166534;border:1px solid #86efac}.tf-pill-gray{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.tf-detail-sub{font-size:12px;color:#64748b;margin-bottom:20px}.tf-live-badge{padding:3px 8px;border-radius:6px;background:#dcfce7;color:#166534;font-size:10px;font-weight:800;letter-spacing:.05em;border:1px solid #86efac;flex-shrink:0;animation:tf-pulse 2s infinite}@keyframes tf-pulse{0%,to{opacity:1}50%{opacity:.7}}.tf-lehrer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.tf-lehrer-card{background:#fff;border:1.5px solid #e2e8f0;border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .15s}.tf-lehrer-card:hover{box-shadow:0 4px 16px #0f172a14}.tf-lehrer-card.tv2{position:relative;overflow:hidden;border:none;border-radius:10px;padding:12px 14px;gap:0;box-shadow:var(--shadow-card);transition:transform .14s cubic-bezier(.34,1.45,.64,1),box-shadow .14s}.tf-lehrer-card.tv2:hover{transform:translateY(-3px) rotate(-.35deg);box-shadow:0 10px 24px #0b1e4026}@media (prefers-reduced-motion: reduce){.tf-lehrer-card.tv2,.tf-lehrer-card.tv2:hover{transition:none;transform:none}}.tv2-pikto{position:absolute;right:10px;top:14px;width:27px;height:27px;opacity:.75;filter:url(#sketchy);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tv2-pikto-chip{position:absolute;right:11px;top:16px;width:23px;height:23px;border:1.5px dashed #9aa4b2;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:6.5px;font-weight:800;letter-spacing:.04em;color:#6b7684;filter:url(#sketchy);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tv2-head{display:flex;align-items:center;gap:10px;padding-right:36px}.tv2-avwrap{position:relative;flex-shrink:0}.tv2-av{width:38px;height:38px;border-radius:50%;background:var(--mos-navy);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;text-transform:uppercase;border:2px solid #fff;box-shadow:0 1px 2px #10182814}.tf-lehrer-card.tv2.st-abwesend .tv2-av{background:#9aa4b2}.tv2-badge{position:absolute;right:-3px;bottom:-2px;width:15px;height:15px;border-radius:50%;border:2px solid #fff;display:flex;align-items:center;justify-content:center;color:#fff}.tf-lehrer-card.tv2.st-da .tv2-badge{animation:tv2-pulse 2.5s infinite}@keyframes tv2-pulse{0%,to{box-shadow:0 0 #2fa84f66}50%{box-shadow:0 0 0 4px #2fa84f00}}.tv2-name{font-size:13.5px;font-weight:700;line-height:1.2;color:#1b1b1b}.tv2-faecher{font-size:10.5px;font-weight:600;color:#6b7684;margin-top:2px}.tv2-status{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px;font-size:11.5px;font-weight:700}.tv2-snote{font-weight:500;color:#6b7684}.tv2-pill{padding:1.5px 8px;border-radius:999px;font-size:8.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.tv2-pill-abw{background:#fde3e1;color:#991b1b}.tv2-pill-vertretung{background:var(--mos-orange-soft);color:#7c2d12}.tv2-tl{position:relative;height:18px;border-radius:6px;background:#f1f3f6;margin-top:11px}.tv2-seg{position:absolute;top:0;bottom:0;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:7px;font-weight:800;letter-spacing:.05em;overflow:hidden;white-space:nowrap}.tv2-seg.sk-impuls{background:#e2f6e5;color:#1f7a38}.tv2-seg.sk-lernzeit{background:#fdf3d7;color:#a16207}.tv2-seg.sk-betreuung{background:#efe6fb;color:#6d28d9}.tv2-seg.sk-wahl{background:#dff5f7;color:#0e7490}.tv2-seg.sk-abw{background:#f9d3cf;color:#b42318}.tv2-now{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--mos-orange);border-radius:2px}.tv2-now:before{content:"";position:absolute;top:-4px;left:-2.5px;width:7px;height:7px;border-radius:50%;background:var(--mos-orange)}.tv2-times{display:flex;justify-content:space-between;margin-top:4px;font-size:8.5px;font-weight:600;color:#9aa4b2;font-variant-numeric:tabular-nums}.tv2-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.tv2-days{display:flex;gap:4px}.tv2-day{width:20px;height:20px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:700;letter-spacing:.02em;background:#f1f3f6;color:#6b7684}.tv2-day.aus{background:transparent;color:#cfd6df}.tv2-day.heute{background:transparent;box-shadow:inset 0 0 0 1.5px #6b7684;color:#333b47}.tv2-profil{font-size:11.5px;font-weight:700;color:var(--mos-blue);background:none;border:none;cursor:pointer;font-family:inherit;padding:4px 6px;border-radius:6px;transition:background .15s}.tv2-profil:hover{background:#eaf3fb}.tf-lehrer-card-add{border-style:dashed;background:#fafbfd;align-items:center;justify-content:center;cursor:pointer;min-height:140px;gap:8px}.tf-lehrer-card-add:hover{background:#f1f5f9;border-color:#94a3b8}.tf-lk-add-icon{color:#94a3b8}.tf-lk-add-label{font-size:12px;font-weight:600;color:#94a3b8}.tf-lk-head{display:flex;align-items:flex-start;gap:10px}.tf-lk-avatar{width:44px;height:44px;border-radius:50%;background:#0b64b8;color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tf-lk-info{flex:1;min-width:0}.tf-lk-name{font-size:14px;font-weight:800;color:#0f172a}.tf-lk-faecher{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.tf-lk-fach-tag{padding:2px 7px;border-radius:5px;font-size:10px;font-weight:700;background:#dbeafe;color:#0b64b8}.tf-lk-status-box{background:#f8fafc;border-radius:10px;padding:10px 12px;border:1px solid #e2e8f0}.tf-lk-status-box.aktiv{background:#fff7ed;border-color:#fed7aa}.tf-lk-status-label{font-size:9px;font-weight:800;letter-spacing:.08em;color:#94a3b8;margin-bottom:4px;text-transform:uppercase}.tf-lk-status-text{font-size:12px;color:#334155;font-weight:500;line-height:1.4;display:flex;flex-direction:column;gap:2px}.tf-lk-status-text.muted{color:#94a3b8}.tf-lk-status-meta{font-size:11px;font-weight:400;color:#64748b}.tf-lk-verlauf-label{font-size:9px;font-weight:800;letter-spacing:.08em;color:#94a3b8;text-transform:uppercase;margin-top:2px}.tf-lk-verlauf{display:flex;gap:3px;margin-top:4px}.tf-lk-slot{flex:1;height:8px;border-radius:3px;background:#f1f5f9;border:1px solid #e2e8f0;transition:background .15s}.tf-lk-slot.belegt{background:#bfdbfe;border-color:#93c5fd}.tf-lk-slot.aktiv{background:#0b64b8;border-color:#0b64b8}.tf-lk-tage{display:flex;gap:4px;margin-top:2px}.tf-lk-tag{font-size:10px;font-weight:700;padding:3px 6px;border-radius:6px;background:#f1f5f9;color:#94a3b8}.tf-lk-tag.aktiv{background:#dbeafe;color:#0b64b8}.tf-lk-profil-btn{width:100%;padding:8px 12px;border-radius:10px;border:1.5px solid #e2e8f0;background:#fff;font-family:inherit;font-size:12.5px;font-weight:700;color:#0b64b8;cursor:pointer;transition:all .15s;margin-top:auto}.tf-lk-profil-btn:hover{background:#eef2ff;border-color:#0b64b8}.tf-profile-root{max-width:900px}.tf-profile-title{font-family:Montserrat,sans-serif;font-size:28px;font-weight:900;color:#0f172a;letter-spacing:-.5px;margin:0 0 20px}.tf-profile-body{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:28px}@media (max-width: 720px){.tf-profile-body{grid-template-columns:1fr}}.tp2-absenz-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:2px 0 14px;padding:10px 14px;border-radius:10px;background:color-mix(in srgb,var(--status-abwesend) 8%,white);box-shadow:var(--shadow-card);font-size:12.5px;font-weight:600;color:#7a271a}.tp2-absenz-banner svg{flex-shrink:0;color:var(--status-abwesend)}.tp2-hero{position:relative;display:flex;flex-wrap:wrap;align-items:flex-start;gap:24px 48px;padding:10px 2px 24px}.tp2-id{position:relative;flex:1 1 420px;min-width:0;display:flex;gap:20px}.tp2-watermark{position:absolute;right:0;top:-14px;width:170px;height:170px;opacity:.09;filter:url(#sketchy);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tp2-avwrap{position:relative;flex-shrink:0;margin-top:8px}.tp2-av{width:88px;height:88px;border-radius:50%;background:var(--mos-navy);color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;text-transform:uppercase;border:3px solid #fff;box-shadow:var(--shadow-card)}.tp2-av.abw{background:#9aa4b2}.tp2-badge{position:absolute;right:4px;bottom:5px;width:24px;height:24px;border-radius:50%;border:3px solid #fff;box-shadow:0 1px 2px #10182814;display:flex;align-items:center;justify-content:center;color:#fff}.tp2-id-text{min-width:0}.tp2-eyebrow{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--mos-orange-ink);margin-bottom:5px}.tp2-name{margin:0;font-size:30px;font-weight:800;letter-spacing:-.6px;line-height:1.05;color:#1b1b1b}.tp2-underline{display:block;margin:3px 0 0 1px;max-width:100%}.tp2-sub{font-size:12.5px;font-weight:600;color:#6b7684;margin-top:6px}.tp2-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.tp2-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;border:2px solid #e4e8ee;background:#fff;font-size:11.5px;font-weight:600;color:#4a5361}.tp2-chip img{width:15px;height:15px;opacity:.8;filter:url(#sketchy)}.tp2-id-foot{display:flex;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-top:16px}.tp2-days-label{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#9aa4b2;margin-bottom:6px}.tp2-email-btn{display:inline-flex;align-items:center;gap:7px;padding:7px 15px;border-radius:12px;border:2px solid var(--mos-blue);background:var(--mos-blue);color:#fff;font-size:12.5px;font-weight:600;text-decoration:none;transition:filter .15s ease,transform .12s}.tp2-email-btn:hover{filter:brightness(.95);transform:translateY(-1px)}.tp2-standort{position:relative;flex:0 1 330px;min-width:270px;padding:24px 20px 20px 22px;margin-top:2px}.tp2-standort:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:color-mix(in srgb,var(--scol, #9aa4b2) 9%,transparent);border-radius:58% 42% 55% 45%/46% 56% 44% 54%}.tp2-scene{position:relative;z-index:1;display:flex;gap:16px}.tp2-scene-icon{width:70px;height:70px;flex-shrink:0;color:var(--ink-sketch);filter:url(#sketchy);margin-top:2px}.tp2-standort.st-abwesend .tp2-scene-icon{color:var(--status-abwesend)}.tp2-scene-icon .steam{animation:tp2-steam 2.6s ease-out infinite}.tp2-scene-icon .steam.s2{animation-delay:1.1s}@keyframes tp2-steam{0%{transform:translateY(2.5px);opacity:0}35%{opacity:.8}to{transform:translateY(-4px);opacity:0}}.tp2-s-label{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb,var(--scol, #6b7684) 65%,black);opacity:.8}.tp2-s-main{font-size:17px;font-weight:800;letter-spacing:-.2px;margin-top:7px;line-height:1.2;color:#1b1b1b}.tp2-s-zeit{font-size:12px;font-weight:600;color:#6b7684;margin-top:4px;font-variant-numeric:tabular-nums}.tp2-s-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:9px;font-size:12px;font-weight:700;color:#4a5361}.tp2-s-meta svg{color:#9aa4b2;flex-shrink:0}.tp2-s-meta .sep{color:#cfd6df;font-weight:400}.tp2-maplink{position:relative;z-index:1;margin-top:12px;display:inline-flex;align-items:center;gap:6px;padding:5px 13px;border-radius:999px;border:2px solid var(--mos-blue);color:var(--mos-blue);background:transparent;font-family:inherit;font-size:11.5px;font-weight:700;cursor:pointer;transition:all .15s ease}.tp2-maplink:hover{background:var(--mos-blue);color:#fff}.tp2-plan{border-radius:10px;background:#fff;box-shadow:var(--shadow-card);padding:16px 18px}.tp2-plan-head{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-bottom:12px}.tp2-plan-title-wrap{margin-right:auto}.tp2-plan-title{font-size:15px;font-weight:800;letter-spacing:-.2px;color:#1b1b1b}.tp2-day-btn{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 13px;border-radius:12px;border:2px solid var(--mos-orange-soft);color:var(--mos-orange-soft);background:transparent;cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s ease}.tp2-day-btn.arrow{padding:0;width:32px}.tp2-day-btn:hover{background:var(--mos-orange-soft);color:#fff}.tp2-tl-wrap{max-width:520px}.tp2-tl-caption{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#9aa4b2;margin-bottom:6px}.tp2-tl{height:20px;margin-top:0}.tp2-times{margin-bottom:14px}.tp2-scroll{overflow-x:auto}.tp2-table{min-width:540px}.tp2-hrow,.tp2-row{display:grid;grid-template-columns:52px 104px 1fr 96px 130px;gap:10px;align-items:center}.tp2-hrow{padding:0 12px 7px;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#9aa4b2}.tp2-hrow .re{text-align:right}.tp2-row{position:relative;padding:8px 12px;border-radius:10px;background:#fff;box-shadow:inset 0 0 0 1px #e4e8ee;margin-bottom:6px;font-size:12.5px}.tp2-row:before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:4px;border-radius:4px;background:var(--rowbar, #cfd6df)}.tp2-row.k-impuls{--rowbar: var(--kind-impuls-bar)}.tp2-row.k-lernzeit{--rowbar: var(--kind-lernzeit-bar)}.tp2-row.k-betreuung{--rowbar: var(--kind-betreuung-bar)}.tp2-row.k-wahl{--rowbar: var(--kind-wahl-bar)}.tp2-row.k-abw{--rowbar: var(--status-abwesend);background:color-mix(in srgb,var(--status-abwesend) 5%,white);box-shadow:inset 0 0 0 1px #f1c3bd}.tp2-row.laeuft{background:#fdf1e7;box-shadow:inset 0 0 0 1.5px var(--mos-orange-soft-2)}.tp2-row.vorbei{opacity:.55}.tp2-stunde{font-weight:800;font-variant-numeric:tabular-nums}.tp2-zeit{color:#6b7684;font-weight:600;font-variant-numeric:tabular-nums;font-size:11.5px}.tp2-fach{display:flex;align-items:center;gap:8px;font-weight:700;min-width:0;color:#1b1b1b}.tp2-kind{position:static;flex-shrink:0;width:24px;height:16px;border-radius:5px;font-size:7.5px}.tp2-klasse{padding:1px 7px;border-radius:999px;background:#f1f3f6;font-size:9.5px;font-weight:700;color:#4a5361;white-space:nowrap}.tp2-raum{color:#4a5361;font-weight:600;font-size:12px}.tp2-status-cell{display:flex;justify-content:flex-end}.tp2-st-laeuft{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;background:#fdeadd;color:var(--mos-orange-ink);font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.tp2-st-laeuft .dot{width:6px;height:6px;border-radius:50%;background:var(--mos-orange);animation:tv2-pulse 2s infinite}.tp2-st-vorbei{color:var(--status-da);display:inline-flex}.tp2-st-geplant{font-size:11px;font-weight:600;color:#9aa4b2}.tp2-st-entfaellt{padding:3px 10px;border-radius:999px;background:#fde3e1;color:#991b1b;font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.tp2-empty{padding:24px 0;text-align:center;font-size:12.5px;font-weight:600;color:#9aa4b2}.tf-profile-card{background:#fff;border:1.5px solid #e2e8f0;border-radius:18px;padding:24px 20px;display:flex;flex-direction:column;align-items:center;gap:10px}.tf-profile-avatar-big{width:80px;height:80px;border-radius:50%;background:#0b64b8;color:#fff;font-size:24px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tf-profile-name{font-size:18px;font-weight:800;color:#0f172a;text-align:center}.tf-profile-role{font-size:12px;color:#64748b;text-align:center}.tf-profile-faecher{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.tf-profile-fach-tag{padding:3px 10px;border-radius:7px;font-size:11px;font-weight:800;letter-spacing:.04em}.tf-profile-contact{display:flex;align-items:center;gap:6px;font-size:12px;color:#64748b}.tf-profile-email-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;margin-top:4px;background:#0b64b8;color:#fff;font-size:12px;font-weight:600;text-decoration:none;transition:background .15s}.tf-profile-email-btn:hover{background:#1e3a9a}.tf-standort-card{background:#fff;border:1.5px solid #e2e8f0;border-radius:18px;padding:24px 20px;display:flex;flex-direction:column;gap:10px}.tf-standort-card.aktiv{background:#0b64b8;border-color:#0b64b8;color:#fff}.tf-standort-label{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#94a3b8}.tf-standort-card.aktiv .tf-standort-label{color:#ffffffb3}.tf-standort-fach{font-size:22px;font-weight:900;color:#fff;line-height:1.2;letter-spacing:-.3px}.tf-standort-zeit{font-size:16px;font-weight:700;color:#ffffffd9}.tf-standort-detail-row{display:flex;gap:12px;margin-top:4px}.tf-standort-detail-card{flex:1;background:#ffffff1f;border-radius:12px;padding:12px 14px}.tf-standort-detail-icon{color:#ffffffb3;margin-bottom:4px}.tf-standort-detail-label{font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#fff9;margin-bottom:4px}.tf-standort-detail-val{font-size:15px;font-weight:800;color:#fff}.tf-standort-frei{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:100px}.tf-standort-frei-icon{font-size:32px}.tf-standort-frei-text{font-size:14px;color:#94a3b8;font-weight:600}.tf-tagesplan{margin-top:8px}.tf-tagesplan-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:12px;flex-wrap:wrap}.tf-tagesplan-title{font-size:18px;font-weight:800;color:#0f172a;margin:0}.tf-tagesplan-nav{display:flex;align-items:center;gap:4px}.tf-day-btn{padding:5px 12px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-family:inherit;font-size:13px;font-weight:600;color:#475569;cursor:pointer;transition:background .12s}.tf-day-btn:hover{background:#f5f7fb}.tf-day-btn-today{font-size:12px}.tf-tagesplan-empty{font-size:13px;color:#94a3b8;padding:20px 0;text-align:center}.tf-tagesplan-table{border:1px solid #e2e8f0;border-radius:14px;overflow:hidden}.tf-tp-header-row{display:grid;grid-template-columns:60px 110px 1fr 90px 110px;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:8px 14px}.tf-tp-row{display:grid;grid-template-columns:60px 110px 1fr 90px 110px;padding:12px 14px;border-bottom:1px solid #f1f5f9;align-items:center;transition:background .1s}.tf-tp-row:last-child{border-bottom:none}.tf-tp-row.laeuft{background:#f0f7ff;border-left:3px solid #0b64b8;padding-left:11px}.tf-tp-row.vorbei{opacity:.7}.tf-tp-cell{font-size:12.5px;color:#334155}.tf-tp-header-row .tf-tp-cell{font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#94a3b8}.tf-tp-stunde{font-weight:800;color:#0f172a}.tf-tp-fach{font-weight:600;display:flex;align-items:center;gap:6px}.tf-tp-klasse-tag{padding:2px 7px;border-radius:5px;background:#dbeafe;color:#0b64b8;font-size:10px;font-weight:700}.tf-tp-status{display:flex;align-items:center}.tf-tp-status-laueft{padding:3px 8px;border-radius:6px;background:#0b64b8;color:#fff;font-size:10px;font-weight:800;letter-spacing:.04em;animation:tf-pulse 2s infinite}.tf-tp-status-ok{color:#22c55e}.tf-tp-status-geplant{font-size:11px;color:#94a3b8}.tf-empty{font-size:13px;color:#94a3b8;padding:8px 4px}.tf-empty-center{text-align:center;padding:40px 20px;line-height:1.7}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eef2ff,#f8fafc);padding:20px}.login-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 10px 40px #1e293b14;padding:36px 32px;max-width:380px;width:100%;text-align:center}.login-logo{width:52px;height:52px;margin:0 auto 18px;border-radius:14px;background:linear-gradient(135deg,#4f46e5,#6366f1);display:flex;align-items:center;justify-content:center}.login-title{font-size:22px;font-weight:700;color:#0f172a;margin:0 0 8px}.login-sub{font-size:14px;color:#64748b;line-height:1.6;margin:0 0 24px}.login-btn{width:100%;padding:12px 16px;border:none;border-radius:10px;background:#4f46e5;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s}.login-btn:hover{background:#4338ca}.login-hint{font-size:12px;color:#94a3b8;margin:18px 0 0;line-height:1.7}.login-hint code{background:#f1f5f9;padding:1px 5px;border-radius:4px;font-family:ui-monospace,monospace;margin:0 3px;color:#475569}.login-spinner{width:32px;height:32px;margin:0 auto 16px;border:3px solid #e2e8f0;border-top-color:#4f46e5;border-radius:50%;animation:login-spin .8s linear infinite}@keyframes login-spin{to{transform:rotate(360deg)}}.tf-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.tf-view-toggle{display:inline-flex;gap:8px}.tf-view-toggle button{display:inline-flex;align-items:center;gap:6px;border:2px solid var(--mos-orange-soft-2);background:#fff;cursor:pointer;padding:6px 14px;border-radius:12px;font-size:13px;font-weight:600;color:var(--mos-orange-ink);font-family:inherit;transition:background .15s,color .15s}.tf-view-toggle button:not(.aktiv):hover{background:#fdf1e7}.tf-view-toggle button.aktiv{background:var(--mos-orange-soft-2);color:#fff}.tf-view-toggle button.aktiv.gruen{background:#eef9f0;border-color:#9fdcae;color:#1c7c38}.tf-presence-dot{width:8px;height:8px;border-radius:50%;background:#cfd6df;flex-shrink:0;transition:background .15s}.tf-view-toggle button.aktiv.gruen .tf-presence-dot{background:var(--status-da);animation:tv2-pulse 2s infinite}.tf-toolbar{display:flex;gap:10px;align-items:center}.tf-toolbar .tf-search-wrap{flex:1;min-width:0}.tf-slot-select{height:40px;padding:0 10px;border:2px solid #cfd6df;border-radius:12px;background:#fff;font-size:13px;font-weight:600;color:#4a5361;cursor:pointer;font-family:inherit;max-width:170px}.tf-slot-select:focus{border-color:var(--mos-orange-soft);outline:none}.tf-chips{display:flex;gap:8px;margin-top:12px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.tf-chips::-webkit-scrollbar{display:none}.tf-chip{flex-shrink:0;border:1.5px solid #e2e8f0;border-radius:999px;background:#fff;color:#475569;padding:6px 13px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;transition:transform .1s,box-shadow .15s}.tf-chip-pikto{width:15px;height:15px;flex-shrink:0;opacity:.8;filter:url(#sketchy);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tf-chip-pikto.invert{filter:url(#sketchy) invert(1) brightness(2);opacity:.95}.tf-chip:hover{transform:translateY(-1px);box-shadow:0 2px 6px #0f172a1a}.tf-chip.aktiv{border-color:#0f172a;background:#0f172a;color:#fff}.tf-map-wrap{display:flex;flex-direction:column;gap:10px}.tf-map-canvas{position:relative;background:#fbf9f8;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;height:min(62vh,560px);min-height:340px}.tf-map-svg{width:100%;height:100%;display:block;touch-action:none;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tf-map-svg:active{cursor:grabbing}.tf-map-switcher{position:absolute;top:10px;left:10px;z-index:5;display:flex;align-items:center;gap:6px;background:#ffffffeb;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid #e2e8f0;border-radius:10px;padding:5px 8px}.tf-map-gebaeude-slider{display:inline-flex;background:#f1f5f9;border-radius:8px;padding:2px}.tf-map-gebaeude-btn{border:none;background:transparent;border-radius:6px;font-size:12px;font-weight:800;color:#64748b;padding:3px 9px;cursor:pointer}.tf-map-gebaeude-btn.aktiv{background:#0b1e40;color:#fff}.tf-map-gebaeude{font-size:12px;font-weight:700;color:#0b1e40;padding-right:6px;border-right:1px solid #e2e8f0}@media (max-width: 720px){.tf-map-gebaeude{display:none}}.tf-map-floor-btn{border:none;background:transparent;border-radius:6px;font-size:12px;font-weight:600;color:#334155;padding:3px 8px;cursor:pointer}.tf-map-floor-btn:disabled{color:#cbd5e1;cursor:not-allowed}.tf-map-floor-btn.aktiv{background:#eb6a0a;color:#fff;cursor:default}.tf-map-count{display:inline-block;margin-left:4px;min-width:15px;padding:0 3px;border-radius:8px;background:#e2e8f0;color:#334155;font-size:10px;font-weight:800;line-height:15px;text-align:center;vertical-align:1px}.tf-map-gebaeude-btn.aktiv .tf-map-count,.tf-map-floor-btn.aktiv .tf-map-count{background:#ffffff47;color:#fff}.tf-map-zoom{position:absolute;top:10px;right:10px;z-index:5;display:flex;flex-direction:column;gap:4px}.tf-map-zoom button{width:34px;height:34px;border:1px solid #e2e8f0;border-radius:8px;background:#ffffffeb;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-size:16px;font-weight:700;color:#334155;cursor:pointer}.tf-map-zoom button:hover{background:#fff;border-color:#cbd5e1}.tf-map-outline{fill:#fff;stroke:#64748b;stroke-width:3}.tf-map-room{stroke:#94a3b8;stroke-width:1.2;transition:fill .15s}.tf-map-room-klasse{fill:#fdf1e7}.tf-map-room-fachraum{fill:#eaf3fb}.tf-map-room-besprechung{fill:#f3eefc}.tf-map-room-neben{fill:#f1f3f6}.tf-map-room-lounge{fill:#fbfcfd}.tf-map-room-aula{fill:#f3eefc}.tf-map-room-treppe{fill:#e4e8ee}.tf-map-room.belegt{fill:#fdeadd;stroke:var(--mos-orange);stroke-width:1.6}.tf-map-room-label{font-size:12px;font-weight:700;fill:#475569;pointer-events:none}.tf-map-room-name{font-size:10.5px;fill:#64748b;text-anchor:middle;pointer-events:none}.tf-map-feature-text{font-size:14px;font-weight:700;fill:#94a3b8;letter-spacing:.15em;text-anchor:middle;text-transform:uppercase}.tf-map-eingang path{stroke:#0b1e40;stroke-width:2.5}.tf-map-eingang text{font-size:11px;font-weight:700;fill:#0b1e40}.tf-map-marker{cursor:pointer}.tf-map-marker.dim{opacity:.22}.tf-map-marker-bg{stroke:#fff;stroke-width:2.5;filter:drop-shadow(0 2px 3px rgba(15,23,42,.35))}.tf-map-marker-more{fill:#64748b}.tf-map-marker.sel .tf-map-marker-bg{stroke:#0f172a;stroke-width:3}.tf-map-marker-text{font-size:12px;font-weight:800;fill:#fff;pointer-events:none}.tf-map-marker-pulse{fill:none;stroke:#eb6a0a;stroke-width:2;animation:tf-map-pulse 2s ease-out infinite;pointer-events:none}.tf-map-marker-fach{font-size:8px;font-weight:700;paint-order:stroke;stroke:#ffffffe6;stroke-width:2.5px;pointer-events:none}@keyframes tf-map-pulse{0%{transform:scale(1);opacity:.8}70%{transform:scale(1.7);opacity:0}to{transform:scale(1.7);opacity:0}}.tf-map-card{position:absolute;left:10px;right:10px;bottom:10px;z-index:6;display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:10px 12px;box-shadow:0 8px 24px #0f172a29}.tf-map-card-avatar{width:42px;height:42px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:14px}.tf-map-card-info{flex:1;min-width:0}.tf-map-card-name{font-weight:700;font-size:14px;color:#0f172a}.tf-map-card-sub{font-size:12px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tf-map-card-faecher{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.tf-map-card-fach{font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}.tf-map-card-fach img{width:13px;height:13px;opacity:.8;filter:url(#sketchy)}.tf-map-card-btn{border:none;border-radius:10px;background:#eb6a0a;color:#fff;font-size:13px;font-weight:700;padding:9px 14px;cursor:pointer;white-space:nowrap}.tf-map-card-btn:hover{background:#d97a26}.tf-map-card-close{border:none;background:transparent;color:#94a3b8;font-size:20px;cursor:pointer;padding:0 2px;line-height:1}.tf-map-empty{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;display:flex;align-items:center;justify-content:center;padding:24px;pointer-events:none}.tf-map-empty-card{display:inline-flex;align-items:center;gap:9px;max-width:min(420px,86%);background:#ffffffe0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid #e2e8f0;border-radius:999px;padding:9px 18px;box-shadow:0 4px 16px #0f172a1a;color:#475569;font-size:13px;font-weight:500;text-align:center;line-height:1.35}.tf-map-empty-icon{font-size:15px;flex-shrink:0}.tf-map-status{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px;color:#64748b}.tf-map-status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#22c55e;margin-right:4px}.tf-map-status-hint{color:#94a3b8}.tf-map-fallback{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:#64748b}.tf-map-fallback-label{font-weight:600}.tf-map-fallback-chip{border:1px solid #e2e8f0;border-radius:999px;background:#fff;padding:4px 10px;font-size:12px;color:#334155;cursor:pointer}.tf-map-fallback-chip:hover{border-color:#eb6a0a;color:#0f172a}@media (max-width: 1024px){.tp2-watermark{display:none}}@media (max-width: 720px){.tp2-hero{gap:16px;padding-bottom:16px}.tp2-id{gap:14px;flex:1 1 100%}.tp2-av{width:68px;height:68px;font-size:20px}.tp2-badge{width:20px;height:20px;right:2px;bottom:3px}.tp2-name{font-size:24px}.tp2-standort{flex:1 1 100%;min-width:0}.tp2-scene-icon{width:56px;height:56px}.tp2-id-foot{gap:14px}.tp2-email-btn{flex:1;justify-content:center}.tf-title-row{gap:8px}.tf-toolbar{flex-wrap:wrap}.tf-toolbar .tf-search-wrap{flex:1 1 100%;max-width:none}.tf-toolbar .tf-view-toggle{flex:1;display:flex}.tf-toolbar .tf-view-toggle button{flex:1}.tf-slot-select{max-width:none;flex:1}.tf-map-canvas{height:min(58vh,480px)}.tf-map-card{flex-wrap:wrap}.tf-map-card-btn{flex:1}}.abs-root{max-width:980px;margin:0 auto;padding:22px 18px 40px;display:flex;flex-direction:column;gap:14px}.abs-head{display:flex;align-items:flex-start;gap:12px}.abs-back{border:1px solid #e2e8f0;background:#fff;border-radius:10px;width:34px;height:34px;font-size:16px;color:#334155;cursor:pointer;flex-shrink:0;margin-top:2px}.abs-back:hover{background:#f8fafc}.abs-title{font-size:20px;font-weight:800;color:#0f172a;margin:0}.abs-sub{font-size:13px;color:#64748b;margin:2px 0 0}.abs-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:14px 16px;box-shadow:0 1px 3px #0f172a0d}.abs-card-title{font-size:13px;font-weight:800;color:#0f172a;margin-bottom:10px}.abs-hinweis{color:#92400e;background:#fffbeb;border-color:#fde68a;font-size:13px}.kal-klasse-hinweis{display:flex;align-items:flex-start;gap:10px;margin:0 0 14px;padding:11px 14px;border:1px solid #fde68a;border-radius:10px;background:#fffbeb;color:#92400e;font-size:13px;line-height:1.5}.kal-klasse-hinweis svg{flex-shrink:0;margin-top:1px;color:#d97706}.kal-klasse-hinweis strong{font-weight:700}.abs-empty{text-align:center;color:#64748b;font-size:13.5px;padding:26px;background:#fff;border:1px dashed #cbd5e1;border-radius:14px}.abs-form-row{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.abs-form-row+.abs-form-row{margin-top:10px}.abs-field{display:flex;flex-direction:column;gap:3px}.abs-field.grow{flex:1;min-width:180px}.abs-field span{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.abs-field input,.abs-field select{border:1px solid #cbd5e1;border-radius:8px;padding:7px 9px;font-size:13px;color:#0f172a;background:#fff;min-height:34px}.abs-field input:focus,.abs-field select:focus{outline:2px solid #93c5fd;border-color:#93c5fd}.abs-quick{border:1px solid #cbd5e1;background:#fff;border-radius:8px;padding:7px 11px;font-size:12.5px;font-weight:600;color:#334155;cursor:pointer;min-height:34px}.abs-quick.aktiv{background:#eff6ff;border-color:#60a5fa;color:#1d4ed8}.abs-primary{border:none;border-radius:9px;background:#eb6a0a;color:#fff;font-size:13px;font-weight:700;padding:8px 16px;cursor:pointer;min-height:34px}.abs-primary:hover{background:#d97a26}.abs-primary:disabled{opacity:.45;cursor:not-allowed}.abs-absenz-head{display:flex;align-items:center;gap:11px}.abs-avatar{width:38px;height:38px;border-radius:50%;flex-shrink:0;background:#0b1e40;color:#fff;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}.abs-absenz-info{flex:1;min-width:0}.abs-absenz-name{font-weight:700;font-size:14.5px;color:#0f172a;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.abs-absenz-meta{font-size:12.5px;color:#64748b;margin-top:1px}.abs-status{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:2px 8px;border-radius:999px}.abs-status.aktiv{background:#fee2e2;color:#b91c1c}.abs-status.geplant{background:#fef3c7;color:#92400e}.abs-status.vorbei{background:#f1f5f9;color:#64748b}.abs-absenz-actions{display:flex;gap:6px;flex-shrink:0}.abs-mini{border:1px solid #cbd5e1;background:#fff;border-radius:7px;font-size:11.5px;font-weight:600;color:#334155;padding:4px 9px;cursor:pointer}.abs-mini:hover{background:#f8fafc}.abs-mini.danger{color:#b91c1c;border-color:#fecaca}.abs-mini.danger:hover{background:#fef2f2}.abs-mini:disabled{opacity:.5;cursor:not-allowed}.abs-edit-row{margin-top:12px;padding:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.abs-stunden{width:100%;margin-top:12px;border-collapse:collapse;font-size:12.5px}.abs-stunden th{text-align:left;font-size:10.5px;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.04em;padding:5px 8px;border-bottom:1px solid #e2e8f0}.abs-stunden td{padding:6px 8px;border-bottom:1px solid #f1f5f9;color:#334155}.abs-stunden tr:last-child td{border-bottom:none}.abs-stunden tr.vertreten td{background:#f0fdf4}.abs-td-vertretung select{border:1px solid #cbd5e1;border-radius:7px;padding:4px 6px;font-size:12px;max-width:230px;background:#fff}.abs-ver-cell{display:inline-flex;align-items:center;gap:5px}.abs-ver-ok{color:#15803d;font-weight:700}.abs-ver-offen{color:#b45309;font-weight:700}.abs-keine-stunden{margin-top:10px;font-size:12.5px;color:#94a3b8}.kal-absenz-btn{display:inline-flex;align-items:center;gap:6px;border:2px solid #cfd6df;background:#fff;color:#4a5361;border-radius:12px;font-size:12px;font-weight:600;padding:5px 12px;cursor:pointer;white-space:nowrap;transition:all .15s}.kal-absenz-btn:hover{border-color:var(--mos-orange-soft-2);background:#fdf1e7}@media (max-width: 720px){.abs-stunden{display:block;overflow-x:auto}.abs-absenz-actions{flex-direction:column}}.tf-abwesend-badge{font-size:9px;font-weight:800;letter-spacing:.08em;background:#fee2e2;color:#b91c1c;padding:3px 8px;border-radius:999px;flex-shrink:0}.tf-lk-status-box.abwesend{background:#fef2f2;border-color:#fecaca}.tf-lk-status-box.abwesend strong{color:#b91c1c}.tf-profile-absenz{background:#fef2f2;border:1px solid #fecaca;border-radius:12px;color:#991b1b;font-size:13px;font-weight:600;padding:10px 14px;margin:10px 0 4px}.kal-user-wrap{position:relative}.kal-avatar-btn{padding:0}.kal-avatar-btn:hover{border-color:#fff9}.kal-user-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:60;min-width:240px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 10px 30px #0f172a2e;padding:12px;color:#0f172a}.kal-user-head{display:flex;align-items:center;gap:10px}.kal-user-avatar{width:38px;height:38px;border-radius:50%;flex-shrink:0;background:var(--orange);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800}.kal-user-info{min-width:0}.kal-user-name{font-size:13.5px;font-weight:700}.kal-user-role{font-size:11.5px;font-weight:600;color:#eb6a0a;margin-top:1px}.kal-user-mail{font-size:11.5px;color:#64748b;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kal-user-logout{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin-top:11px;border:1px solid #fecaca;background:#fef2f2;color:#b91c1c;border-radius:9px;font-size:12.5px;font-weight:700;padding:8px 10px;cursor:pointer}.kal-user-logout:hover{background:#fee2e2}.kal-panel-backdrop{display:none}@media (max-width: 1024px){.kal-page{padding:12px 12px 14px;gap:10px}.kal-body-row{gap:10px}.kal-todo-panel:not(.closed){width:200px}.kal-todo-panel-inner{width:200px}.kal-hdr-search{padding:0 12px}.kal-logo{margin-right:20px}.tf-root{padding:20px 18px 32px}.kal-rail{width:60px}.kal-rail-logo{padding:16px 0 18px;text-align:center}.kal-rail-logo .rest,.kal-rail-item .lbl{display:none}.kal-rail-item{padding:12px 4px}.kal-rail-user{display:none}}@media (max-width: 720px){.kal-root{height:100vh;height:100dvh}.kal-rail{display:none}.kal-header{padding:0 10px}.kal-top-tabs,.kal-hdr-search{display:none}.kal-header-right{margin-left:auto;gap:8px}.kal-hbtn.ico,.kal-hbtn-label{display:none}.kal-logo{display:flex;margin-right:0;font-size:14px}.kal-burger-wrap{display:block;margin-right:10px}.kal-page{padding:10px 10px 12px;gap:10px}.kal-cal-top{flex-direction:column;align-items:stretch;gap:10px;padding:14px 0 12px}.kal-cal-month{font-size:20px;letter-spacing:-.5px}.kal-cal-actions{flex-wrap:wrap;row-gap:8px}.kal-seg-toggle{order:-1;width:100%}.kal-seg-btn{flex:1;padding:7px 10px}.kal-actions-divider{display:none}.kal-absenz-btn{flex:1;justify-content:center}.kal-nav-btn{width:36px;height:36px}.kal-today-btn{padding:8px 14px}.kal-new-btn{flex:1;justify-content:center;padding:8px 12px}.kal-legend-strip{gap:8px;padding:6px 10px}.kal-legend-item-inline{font-size:8.5px;gap:4px}.kal-legend-swatch-inline{width:9px;height:9px}.kal-fc{border-radius:14px}.kal-panel-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:290;background:#0f172a59;animation:kal-fadein .15s ease}.kal-todo-panel,.kal-todo-panel:not(.closed){position:fixed;left:10px;top:60px;bottom:10px;z-index:300;width:min(320px,calc(100vw - 52px));box-shadow:0 18px 50px #0f172a47;transition:transform .28s cubic-bezier(.4,0,.2,1),opacity .2s}.kal-todo-panel.closed{width:min(320px,calc(100vw - 52px));margin-right:0;border-width:1px;transform:translate(calc(-100% - 24px));opacity:0}.kal-todo-panel-inner{width:100%}.kal-panel-reopen{position:fixed;left:14px;bottom:16px;z-index:250;width:46px;height:46px;border-radius:15px;box-shadow:0 6px 20px #0f172a38}.kal-tg-gutter-h,.kal-tg-gutter{width:34px}.kal-tg-hour-label{right:3px;font-size:8.5px}.kal-tg-day-header{padding:6px 2px 5px}.kal-tg-day-name{font-size:7.5px;letter-spacing:.06em;margin-bottom:1px}.kal-tg-day-num{font-size:15px}.kal-tg-today-dot{width:5px;height:5px;right:-7px}.kal-tg-day-ferien{font-size:6.5px;letter-spacing:.05em;margin-top:2px}.kal-tg-ferien-mark{font-size:8px;top:5px}.kal-tg-day-feiertag{font-size:6.5px;letter-spacing:.02em;margin-top:2px}.kal-tg-feiertag-mark{font-size:7px;top:5px}.kal-tg-ev-card{padding:3px 4px 3px 10px;border-radius:8px}.kal-tg-ev-card.has-pikto{padding-right:4px}.kal-tg-ev-bar{left:3px;top:4px;bottom:4px;width:3px}.kal-tg-ev-pikto,.kal-tg-ev-piktochip{display:none}.kal-tg-ev-top{gap:2px;margin-bottom:1px}.kal-tg-ev-time{font-size:8px}.kal-tg-ev-badge{font-size:6.5px;padding:1px 3px;letter-spacing:.02em}.kal-tg-ev-title{font-size:9.5px;line-height:1.25;word-break:break-word;overflow-wrap:anywhere}.kal-tg-ev-room{font-size:8.5px;margin-top:1px}.kal-tg-lz-label{font-size:7.5px;top:4px;right:5px}.kal-tg-lz-teacher{left:4px;bottom:4px;right:4px;gap:4px}.kal-tg-lz-av{width:18px;height:18px;font-size:8px;border-width:1.5px}.kal-tg-lz-name{font-size:9.5px}.kal-tg-lz-fach,.kal-tg-lz-room{font-size:8px}.kal-tp-todo-row,.kal-tg-ev-card{touch-action:manipulation}.tf-root{padding:14px 12px 30px}.tf-title{font-size:22px;margin-bottom:10px}.tf-page-header{margin-bottom:14px}.tf-fach-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.tf-fach-card{padding:14px 13px 12px;border-radius:14px}.tf-fach-name{font-size:16px}.tf-lehrer-grid{grid-template-columns:1fr;gap:10px}.tf-profile-title{font-size:20px;margin-bottom:12px}.tf-search{padding:10px 36px 10px 38px;font-size:13px}.tf-tagesplan-table{overflow-x:auto}.tf-tp-header-row,.tf-tp-row{min-width:470px}.abs-root{padding:12px 10px 30px}.abs-card{padding:12px;border-radius:12px}.abs-form-row{gap:8px}.abs-field.grow{min-width:100%}.abs-absenz-head{flex-wrap:wrap}.abs-td-vertretung select{max-width:160px}}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,Segoe UI,system-ui,Roboto,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.bottom-1{bottom:.25rem}.left-1\/2{left:50%}.right-1\.5{right:.375rem}.top-1\/2{top:50%}.z-40{z-index:40}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-3\.5{height:.875rem}.h-5{height:1.25rem}.h-full{height:100%}.max-h-\[92vh\]{max-height:92vh}.w-5{width:1.25rem}.w-\[94vw\]{width:94vw}.w-full{width:100%}.max-w-5xl{max-width:64rem}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize-y{resize:vertical}.list-disc{list-style-type:disc}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-brand-blue{--tw-border-opacity: 1;border-color:rgb(11 100 184 / var(--tw-border-opacity, 1))}.border-cyan-300{--tw-border-opacity: 1;border-color:rgb(103 232 249 / var(--tw-border-opacity, 1))}.border-cyan-400{--tw-border-opacity: 1;border-color:rgb(34 211 238 / var(--tw-border-opacity, 1))}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-gray-500{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.border-green-300{--tw-border-opacity: 1;border-color:rgb(134 239 172 / var(--tw-border-opacity, 1))}.border-green-500{--tw-border-opacity: 1;border-color:rgb(34 197 94 / var(--tw-border-opacity, 1))}.border-purple-500{--tw-border-opacity: 1;border-color:rgb(168 85 247 / var(--tw-border-opacity, 1))}.border-red-400{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-violet-400{--tw-border-opacity: 1;border-color:rgb(167 139 250 / var(--tw-border-opacity, 1))}.border-yellow-300{--tw-border-opacity: 1;border-color:rgb(253 224 71 / var(--tw-border-opacity, 1))}.bg-black\/40{background-color:#0006}.bg-brand-blue{--tw-bg-opacity: 1;background-color:rgb(11 100 184 / var(--tw-bg-opacity, 1))}.bg-brand-orange{--tw-bg-opacity: 1;background-color:rgb(235 106 10 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-50\/80{background-color:#f9fafbcc}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-kind-betreuung{--tw-bg-opacity: 1;background-color:rgb(201 163 240 / var(--tw-bg-opacity, 1))}.bg-kind-impuls{--tw-bg-opacity: 1;background-color:rgb(158 230 164 / var(--tw-bg-opacity, 1))}.bg-kind-lernangebot{--tw-bg-opacity: 1;background-color:rgb(142 232 238 / var(--tw-bg-opacity, 1))}.bg-kind-lernzeit{--tw-bg-opacity: 1;background-color:rgb(147 197 253 / var(--tw-bg-opacity, 1))}.bg-kind-test{--tw-bg-opacity: 1;background-color:rgb(233 213 255 / var(--tw-bg-opacity, 1))}.bg-kind-todo{--tw-bg-opacity: 1;background-color:rgb(255 243 141 / var(--tw-bg-opacity, 1))}.bg-red-200{--tw-bg-opacity: 1;background-color:rgb(254 202 202 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/70{background-color:#ffffffb3}.bg-white\/80{background-color:#fffc}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pb-12{padding-bottom:3rem}.pl-5{padding-left:1.25rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.align-top{vertical-align:top}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-tight{line-height:1.25}.tracking-wide{letter-spacing:.025em}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.line-through{text-decoration-line:line-through}.opacity-40{opacity:.4}.opacity-70{opacity:.7}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}html,body,#root{height:100%}body{margin:0;background:#edf0f7;color:#1a1a1a;font-family:DM Sans,Helvetica Neue,Helvetica,Arial,sans-serif}.no-select{-moz-user-select:none;user-select:none;-webkit-user-select:none}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-green-500:hover{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.hover\:bg-green-600:hover{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:brightness-110:hover{--tw-brightness: brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:brightness-95:hover{--tw-brightness: brightness(.95);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus\:border-brand-blue:focus{--tw-border-opacity: 1;border-color:rgb(11 100 184 / var(--tw-border-opacity, 1))}.active\:cursor-grabbing:active{cursor:grabbing}@media (min-width: 640px){.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}}
