/* TDMA Urlaubsplaner – Stylesheet */
:root{--p:#4f5bd5;--pd:#3e49b8;--bg:#f3f4f8;--card:#fff;--bd:#e4e6ef;--tx:#1f2233;--mu:#6b7085;--band:#e9ebf8;
--ok:#a5d6a7;--okt:#1b5e20;--okd:#2e7d32;--pend:#ffe0b2;--pendt:#e65100;--rej:#c62828;--rejbg:#ffcdd2;--free:#e9ebf3;--inp:#fff;--fer:#7ec8e3;--ferbg:#dbeefb;--sick:#e1bee7;--sickt:#4a148c;--hd:#1f4e8c;--ftbg:#e4f6d9;--fttx:#3d7a1f;--ftbd:#9ccc65;
--font:"Inter","Segoe UI",system-ui,sans-serif}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg:#15161c;--card:#1e2029;--bd:#2f3240;--tx:#e8e9f0;--mu:#9a9fb5;--band:#262a40;--free:#2a2d39;--inp:#262833;--ok:#2e5e32;--okt:#c5e8c7;--pend:#6b4315;--pendt:#ffd59a;--rejbg:#5a2327;--fer:#3a8fb0;--ferbg:#1d3340;--sick:#5a2e6b;--sickt:#ead6f2;--hd:#2a5a9a;--ftbg:#2d4a26;--fttx:#c5e8a8;--ftbd:#6a9e45;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#15161c;--card:#1e2029;--bd:#2f3240;--tx:#e8e9f0;--mu:#9a9fb5;--band:#262a40;--free:#2a2d39;--inp:#262833;--ok:#2e5e32;--okt:#c5e8c7;--pend:#6b4315;--pendt:#ffd59a;--rejbg:#5a2327;--fer:#3a8fb0;--ferbg:#1d3340;--sick:#5a2e6b;--sickt:#ead6f2;--hd:#2a5a9a;--ftbg:#2d4a26;--fttx:#c5e8a8;--ftbd:#6a9e45;color-scheme:dark}
*{box-sizing:border-box}body{font-family:var(--font);margin:0;background:var(--bg);color:var(--tx);font-size:14px}
header{background:var(--card);border-bottom:1px solid var(--bd);padding-inline:max(16px,env(safe-area-inset-left,0px)) max(16px,env(safe-area-inset-right,0px));height:56px;display:flex;align-items:center;gap:4px;flex-wrap:wrap}
header .logo{font-weight:800;font-size:20px;margin-right:16px}
header button.nav{background:none;border:0;color:var(--tx);padding:8px 12px;border-radius:8px;font:inherit;font-size:14px;cursor:pointer}
header button.nav.on,header button.nav:hover{background:var(--band);color:var(--pd)}header .sp{flex:1}
main{max-width:none;margin:0 auto;padding-block:18px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.card{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:16px;margin-bottom:14px;min-width:0}
h1{margin:0 0 12px;font-size:22px;font-weight:600;text-wrap:balance}h2{margin:0 0 10px;font-size:15px;font-weight:600}
.bar{background:var(--band);border-radius:10px;padding:10px 12px;display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.bar select{width:auto;min-width:180px}.bar .sp{flex:1}
.yr{display:flex;align-items:center;gap:6px;font-weight:600}.yr button{background:var(--card);border:1px solid var(--bd);border-radius:6px;padding:3px 10px;color:var(--tx);cursor:pointer;font:inherit}
label{display:block;font-weight:600;margin:8px 0 4px;font-size:13px}
input,select,textarea{width:100%;padding:8px 10px;border:1px solid var(--bd);border-radius:8px;font:inherit;font-size:14px;background:var(--inp);color:var(--tx)}
input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--p);outline-offset:1px}
.btn{display:inline-block;background:var(--p);color:#fff;border:0;padding:9px 16px;border-radius:8px;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.btn.sec{background:var(--band);color:var(--tx)}.btn.g{background:var(--okd)}.btn.r{background:var(--rej)}.btn.s{padding:4px 9px;font-size:12px}
table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}th,td{padding:7px 6px;border-bottom:1px solid var(--bd);text-align:left;vertical-align:middle}th{color:var(--mu);font-weight:600}
.tw{overflow-x:auto}
.st-offen{color:var(--pendt);font-weight:600}.st-genehmigt{color:var(--okd);font-weight:600}.st-abgelehnt{color:var(--rej);font-weight:600}
.flash{background:var(--ok);color:var(--okt);padding:10px 14px;margin-bottom:12px;border-radius:8px}.flash.err{background:var(--rejbg);color:var(--rej)}
.mailbox{background:var(--band);border-left:4px solid var(--p);padding:10px 14px;margin-bottom:12px;border-radius:8px;white-space:pre-wrap;font-size:13px}
.wrap{display:grid;grid-template-columns:1fr;gap:14px}.side{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.wrap.m .side .card{padding:10px 14px}.wrap.m .quota .big{font-size:26px}.wrap.m .side .kv{padding:3px 0}@media(max-width:900px){.side{grid-template-columns:1fr}}.side .card{margin:0}
.quota .big{font-size:34px;font-weight:700;font-variant-numeric:tabular-nums}.quota .big small{font-size:15px;font-weight:400;margin-left:4px}
.prog{height:7px;background:var(--free);border-radius:4px;margin:8px 0 4px}.prog i{display:block;height:100%;background:var(--p);border-radius:4px}
.mu{color:var(--mu);font-size:12px}.kv{display:flex;justify-content:space-between;padding:6px 0;border-top:1px solid var(--bd);font-size:13px}
.seg{display:inline-flex;border:1px solid var(--bd);border-radius:8px;overflow:hidden;background:var(--card)}.seg button{background:none;border:0;padding:6px 14px;font:inherit;font-size:13px;color:var(--tx);cursor:pointer}.seg button.on{background:var(--p);color:#fff}
.months.single,.months.planer{grid-template-columns:1fr;max-width:none}.months.planer .card{margin:0}.months.single .mon h3{font-size:18px;padding:8px 14px;display:flex;align-items:center;justify-content:space-between}.mon h3 .mnav{background:#fff2;border:1px solid #fff5;color:#fff;border-radius:8px;width:44px;height:36px;font-size:22px;line-height:1;cursor:pointer;font:inherit;font-size:24px}.mon h3 .mnav:hover{background:#fff4}.months:not(.single) .mon h3[data-mon]:hover{background:var(--pd)}.months.single .dg{grid-template-columns:40px repeat(7,1fr);gap:5px;padding:8px 12px}.months.single .dg .h{font-size:14px;padding:4px 0}.months.single .dg .d{min-height:calc((100vh - 420px) / 6);font-size:16px;align-items:flex-start;padding:6px 8px;border-radius:6px;border:1.5px solid #b9bfd0;min-width:0}:root[data-theme="dark"] .months.single .dg .d{border-color:#4a4f60}@media(max-width:900px){.months.single .dg .d{min-height:70px}}.months.single .dg .d>span:first-child{font-weight:600}.months.single .dg .ini{justify-content:flex-start;flex-direction:column;align-items:stretch;width:100%;gap:3px}.months.single .dg .ini i{font-size:12px;padding:3px 6px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:0;font-weight:600}.months.single .dg .ini i::before{content:attr(data-name)}.months.single .dg .ini i span{display:none}
.months:not(.single) .dg .ini i::before{content:attr(data-kz)}.months:not(.single) .dg .ini i span{display:none}
.months{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}@media(max-width:1500px){.months{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1000px){.months{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.months{grid-template-columns:1fr}}
.mon{background:var(--card);border:1px solid var(--bd);border-radius:8px;padding:0 0 6px;min-width:0;overflow:hidden}.mon h3{margin:0 0 6px;padding:7px 10px;background:var(--hd);color:#fff;font-size:13px;font-weight:700;text-align:left}
.dg{display:grid;grid-template-columns:26px repeat(7,1fr);gap:2px;padding:0 6px}.dg .h{text-align:center;font-size:11px;font-weight:700;color:var(--tx);padding-bottom:2px;border-bottom:1px solid var(--bd)}.dg .h.kw,.dg .kw{color:var(--mu);font-weight:400;font-size:10px}.dg .kw{display:flex;align-items:center;justify-content:center}
.dg .d{min-height:52px;max-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:3px 1px 3px;border-radius:4px;font-size:13px;cursor:default;gap:3px;border:1px solid var(--bd);background:var(--card)}
.dg .ini{display:flex;flex-wrap:wrap;gap:2px;justify-content:center;max-width:100%}.dg .ini i{font-style:normal;font-size:10px;font-weight:800;line-height:1.1;padding:2px 3px;border-radius:3px;background:var(--okd);color:#fff;letter-spacing:.3px}.dg .ini i.pd{background:var(--pendt);color:#fff}.dg .ini i.kr{background:var(--sickt);color:#fff}
.dg .d{position:relative}
body[data-we="grau"] .dg .we{background:var(--free);color:var(--mu)}
body[data-we="schraffur"] .dg .we{background:repeating-linear-gradient(135deg,transparent 0 5px,var(--free) 5px 7px);color:var(--mu);border-style:dashed}
body[data-we="blass"] .dg .we{background:var(--card);color:#b4b8c6;border-style:dashed}body[data-we="blass"] .dg .we>span:first-child{font-weight:400}
body[data-we="punkte"] .dg .we{background:radial-gradient(#c9cdda 1.4px,transparent 1.7px) 0 0/7px 7px;color:var(--mu)}:root[data-theme="dark"] body[data-we="punkte"] .dg .we{background:radial-gradient(#3f4455 1.4px,transparent 1.7px) 0 0/7px 7px}
body[data-we="ohne"] .dg .we{background:var(--card);color:var(--mu);border-color:transparent;box-shadow:inset 0 0 0 1px var(--bd)}body[data-we="ohne"] .dg .we>span:first-child{opacity:.45}
.dg .ft{background:var(--ftbg);color:var(--fttx);font-weight:700}
.dg .fe::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--fer);border-radius:0 0 3px 3px}.months.single .dg .fe::after{height:5px}
.dg .ok{background:var(--ok);color:var(--okt);font-weight:600}.dg .kr{background:var(--sick);color:var(--sickt);font-weight:600}.team .kr{background:var(--sick)}.dg .pd{background:var(--pend);color:var(--pendt);font-weight:600}.dg .ab{background:var(--rejbg);color:var(--rej)}
.dg .ft{border-color:var(--ftbd)}
.dg .sp{background:repeating-linear-gradient(135deg,var(--free) 0 3px,var(--card) 3px 6px);color:var(--mu)}.dg .sp>span:first-child::after{content:" \1F512";font-size:8px}
.team td.sp,.team th.sp{background:repeating-linear-gradient(135deg,var(--free) 0 3px,var(--card) 3px 6px)}
.dg .hs::before{content:"";position:absolute;top:0;left:0;border-style:solid;border-width:9px 9px 0 0;border-color:var(--pendt) transparent transparent transparent;border-radius:3px 0 0 0}.months.single .dg .hs::before{border-width:12px 12px 0 0}
.badge{display:inline-block;font-size:10px;font-weight:700;padding:1px 5px;border-radius:4px;background:var(--pend);color:var(--pendt);margin-left:4px;vertical-align:middle}
.dg .td{outline:2px solid var(--p)}
.months .dg .d{cursor:pointer}.months .dg .d:hover{box-shadow:inset 0 0 0 2px var(--p)}.dg .sel{background:var(--p)!important;color:#fff!important}.dg .sel .ini i{opacity:.85}
.pick{background:var(--p);color:#fff;border-radius:8px;padding:8px 14px;margin-bottom:12px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.pick button{background:#fff3;border:0;color:#fff;border-radius:6px;padding:4px 10px;cursor:pointer;font:inherit}
.leg span{display:inline-block;width:13px;height:13px;border-radius:4px;vertical-align:middle;margin:0 4px 0 10px}
.row{display:flex;gap:12px;flex-wrap:wrap}.row>div{flex:1;min-width:140px}
.modal{position:fixed;inset:0;background:#0007;display:flex;align-items:center;justify-content:center;z-index:9;padding:16px}
.modal .box{background:var(--card);border-radius:14px;padding:20px;width:480px;max-width:100%;position:relative;max-height:95vh;overflow:auto}
.modal .x{position:absolute;right:12px;top:8px;font-size:22px;background:none;border:0;color:var(--mu);cursor:pointer}
.modal .foot{display:flex;gap:10px;margin-top:16px}.modal .foot .btn{flex:1;text-align:center}
.radio{display:flex;gap:16px;flex-wrap:wrap}.radio label{font-weight:400;margin:0;display:flex;align-items:center;gap:6px}.radio input{width:auto}
.team td.c{padding:3px 2px;height:22px}.team th.c{text-align:center;padding:3px 2px;font-size:11px}
.team th.c{position:relative}.team th.fe{box-shadow:inset 0 -3px 0 var(--fer)}.team th.ft{background:var(--ftbg);color:var(--fttx)}.team .ok{background:var(--ok)}.team .pd{background:var(--pend)}.team .fr{background:var(--free)}
.rep{background:#fff;color:#111;border:1px solid var(--bd);border-radius:12px;padding:28px 32px;max-width:860px;margin:0 auto;font-size:13px}.rep h2{font-size:20px;margin:0}.rep .hd{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid #111;padding-bottom:10px;margin-bottom:14px;gap:12px;flex-wrap:wrap}.rep .hd small{color:#555;display:block;margin-top:3px}.rep table{color:#111;font-size:12.5px}.rep th{color:#333;border-bottom:1.5px solid #111;background:none}.rep td{border-bottom:1px solid #ddd}.rep tr.sum td{border-top:1.5px solid #111;border-bottom:0;font-weight:700}.rep .kp{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.rep .kp div{border:1px solid #ddd;border-radius:8px;padding:8px 10px}.rep .kp b{font-size:18px;display:block}.rep .kp span{color:#555;font-size:11px}.rep h3{font-size:14px;margin:18px 0 6px;padding-bottom:4px;border-bottom:1px solid #999}.rep .ft{margin-top:18px;color:#666;font-size:11px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
.warn{background:var(--pend);color:var(--pendt);border-left:4px solid var(--pendt);padding:8px 12px;border-radius:8px;margin:8px 0;font-size:13px}.warn b{display:block;margin-bottom:2px}
.mailcal{border-collapse:collapse;font-size:11px;margin-top:8px;background:#fff;color:#111}.mailcal th,.mailcal td{border:1px solid #ccc;padding:2px 4px;text-align:center;min-width:26px}.mailcal th{background:#1f4e8c;color:#fff}.mailcal td.we{background:#eee;color:#888}.mailcal td.neu{background:#ffe0b2;font-weight:700}.mailcal td.ok{background:#a5d6a7}.mailcal td.pd{background:#fff3cd}.mailcal td.kr{background:#e1bee7}.mailcal td.nm{text-align:left;font-weight:600;white-space:nowrap}
.nmlink{background:none;border:0;padding:0;font:inherit;font-weight:600;color:var(--pd);cursor:pointer;text-decoration:underline dotted}.nmlink::after{content:" ▾";font-size:11px}tr.open .nmlink::after{content:" ▴"}
tr.detail td{background:var(--band);padding:12px 14px}tr.detail .mailcal{font-size:12px;margin-top:6px}tr.detail .mailcal td,tr.detail .mailcal th{min-width:28px;padding:4px 3px}tr.detail .mailcal td.neu{outline:2px solid var(--pendt);outline-offset:-2px}
.plan{border-collapse:separate;border-spacing:2px;width:100%;table-layout:fixed;font-size:11px}.plan th{background:var(--hd);color:#fff;padding:6px 4px;font-size:13px;border-radius:4px}.plan th.dn{width:28px;background:none;color:var(--mu);font-size:11px}
.plan td{border:1px solid var(--bd);border-radius:4px;padding:2px 4px;height:calc((100vh - 380px) / 31);min-height:22px;vertical-align:top;background:var(--card);position:relative;overflow:hidden;cursor:pointer}.plan td:hover{box-shadow:inset 0 0 0 2px var(--p)}.plan td.leer{border:0;background:none;cursor:default}
.plan td .wd{font-weight:700;font-size:10px;color:var(--mu);margin-right:3px}.plan td .ftn{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan td.we{background:repeating-linear-gradient(135deg,transparent 0 5px,var(--free) 5px 7px);border-style:dashed}.plan td.we .wd{color:var(--mu)}
.plan td.ft{background:var(--ftbg);border-color:var(--ftbd)}.plan td.ft .ftn{color:var(--fttx);font-size:9px}.plan td.fe::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--fer)}
.plan td.sp{background:repeating-linear-gradient(135deg,var(--free) 0 3px,var(--card) 3px 6px)}.plan td.hs::before{content:"";position:absolute;top:0;right:0;border-style:solid;border-width:0 8px 8px 0;border-color:transparent var(--pendt) transparent transparent}
.plan .nm{display:block;font-size:10px;font-weight:600;line-height:1.25;padding:0 3px;border-radius:3px;background:var(--okd);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.plan .nm.pd{background:var(--pendt)}.plan .nm.kr{background:var(--sickt)}.plan .nm.st{background:var(--rej)}
.plan td.sel{outline:2px solid var(--p)}.plan td.td{outline:2px solid var(--p);outline-offset:-2px}
.storno{display:inline-block;font-size:10px;font-weight:700;padding:1px 5px;border-radius:4px;background:var(--rejbg);color:var(--rej);margin-left:4px}
.hint{background:var(--card);border:1px dashed var(--bd);border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:13px;color:var(--mu)}
@media(prefers-reduced-motion:no-preference){.modal .box{animation:in .15s ease-out}}@keyframes in{from{transform:translateY(8px);opacity:0}}

.sbtn{background:none;border:1px solid var(--bd);color:var(--tx);border-radius:6px;padding:4px 8px;font:inherit;font-size:12px;cursor:pointer}
@media print{header,.bar,.hint,#msg{display:none!important}body{background:#fff}main{padding:0}.rep{border:0;max-width:none}}
