:root{--color-ink:#1f2a24;--color-ink-soft:#4b5a52;--color-ink-faint:#7c8a80;--color-paper:#f5f6f0;--color-paper-raised:#fff;--color-line:#dfe1d6;--color-line-strong:#c7cabb;--color-primary:#2f7a52;--color-primary-dark:#215d3d;--color-primary-soft:#e3f0e6;--color-accent:#e8a33d;--color-accent-dark:#c07f22;--color-accent-soft:#fbecd3;--color-danger:#b3432d;--color-danger-dark:#8f3423;--color-danger-soft:#f7e5e0;--typ-winter:#4c7ea8;--typ-winter-soft:#e4edf3;--typ-ostern:#71923f;--typ-ostern-soft:#eaf0e0;--typ-pfingsten:#b4587a;--typ-pfingsten-soft:#f5e6ec;--typ-sommer:#c9861f;--typ-sommer-soft:#fbecd3;--typ-herbst:#c15b2c;--typ-herbst-soft:#f5e2d8;--typ-weihnachten:#7a5c9e;--typ-weihnachten-soft:#eae4f1;--status-ja:#2f7a52;--status-ja-bg:#e3f0e6;--status-nein:#b3432d;--status-nein-bg:#f7e5e0;--status-offen:#7c8a80;--status-offen-bg:#eceee6;--font-display:"Fraunces", Georgia, "Times New Roman", serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--radius-sm:7px;--radius-md:12px;--radius-lg:18px;--shadow-sm:0 1px 2px #1f2a2412, 0 1px 1px #1f2a240a;--shadow-md:0 8px 24px #1f2a241a;--content-width:1120px}*,:before,:after{box-sizing:border-box}html,body,#app{height:100%}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15.5px;line-height:1.5}h1,h2,h3,p,ul,ol{margin:0}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer}a{color:var(--color-primary-dark)}:focus-visible{outline:2.5px solid var(--color-accent-dark);outline-offset:2px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-shell{flex-direction:column;min-height:100%;display:flex}.app-header{background:var(--color-paper-raised);border-bottom:1px solid var(--color-line);z-index:20;position:sticky;top:0}.app-header__inner{max-width:var(--content-width);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin:0 auto;padding:18px 28px 0;display:flex}.app-header__brand{align-items:center;gap:12px;padding-bottom:14px;display:flex}.app-header__mark{flex-shrink:0}.app-header__title{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.5rem;font-weight:600}.app-header__subtitle{color:var(--color-ink-faint);margin-top:2px;font-size:.83rem}.app-nav{gap:4px;display:flex}.app-nav__tab{color:var(--color-ink-soft);background:0 0;border:none;border-bottom:2.5px solid #0000;margin:0 12px;padding:10px 4px;font-size:.92rem;font-weight:500;transition:color .15s,border-color .15s}.app-nav__tab:hover{color:var(--color-ink)}.app-nav__tab--aktiv{color:var(--color-primary-dark);border-bottom-color:var(--color-primary)}.app-main{width:100%;max-width:var(--content-width);flex:1;margin:0 auto;padding:32px 28px 64px}.view__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.view__title{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.7rem;font-weight:600}.view__subtitle{color:var(--color-ink-soft);max-width:60ch;margin-top:6px;font-size:.94rem}.view__actions{flex-wrap:wrap;gap:10px;display:flex}.view__back{color:var(--color-ink-soft);background:0 0;border:none;align-items:center;gap:6px;margin-bottom:14px;padding:0;font-size:.87rem;display:inline-flex}.view__back:hover{color:var(--color-primary-dark)}.btn{border-radius:var(--radius-sm);white-space:nowrap;border:1.5px solid #0000;justify-content:center;align-items:center;gap:7px;padding:9px 16px;font-size:.87rem;font-weight:600;line-height:1.2;transition:background-color .15s,border-color .15s,color .15s,transform 50ms;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.btn--accent{background:var(--color-accent);border-color:var(--color-accent);color:#402c05}.btn--accent:hover:not(:disabled){background:var(--color-accent-dark);border-color:var(--color-accent-dark)}.btn--secondary{background:var(--color-paper-raised);border-color:var(--color-line-strong);color:var(--color-ink)}.btn--secondary:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary-dark)}.btn--ghost{color:var(--color-ink-soft);background:0 0;border-color:#0000;padding:9px 10px}.btn--ghost:hover:not(:disabled){color:var(--color-ink);background:var(--color-line)}.btn--danger{color:var(--color-danger);background:0 0;border-color:#0000;padding:9px 10px}.btn--danger:hover:not(:disabled){background:var(--color-danger-soft);border-color:var(--color-danger-soft)}.btn--small{padding:6px 11px;font-size:.8rem}.btn--full{width:100%}.field{flex-direction:column;gap:6px;display:flex}.field__label{color:var(--color-ink-soft);font-size:.8rem;font-weight:600}.field__hint{color:var(--color-ink-faint);font-size:.78rem}.input,.select,.textarea{border:1.5px solid var(--color-line-strong);border-radius:var(--radius-sm);background:var(--color-paper-raised);color:var(--color-ink);width:100%;padding:9px 11px}.input:focus,.select:focus,.textarea:focus{border-color:var(--color-primary)}.input--inline{border-radius:var(--radius-sm);background:0 0;border-color:#0000;padding:4px 6px}.input--inline:hover{border-color:var(--color-line-strong)}.input--inline:focus{background:var(--color-paper-raised);border-color:var(--color-primary)}.form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-grid--eng{grid-template-columns:1fr}@media (width<=640px){.form-grid{grid-template-columns:1fr}}.card{background:var(--color-paper-raised);border:1px solid var(--color-line);border-radius:var(--radius-md);padding:20px}.empty-state{text-align:center;border:1.5px dashed var(--color-line-strong);border-radius:var(--radius-lg);color:var(--color-ink-soft);padding:56px 24px}.empty-state__icon{margin-bottom:10px;font-size:1.8rem}.empty-state__title{font-family:var(--font-display);color:var(--color-ink);margin-bottom:6px;font-size:1.15rem}.empty-state__text{max-width:44ch;margin:0 auto 18px;font-size:.9rem}.table-wrap{border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-paper-raised);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.89rem}.table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--color-ink-faint);border-bottom:1.5px solid var(--color-line);white-space:nowrap;padding:12px 16px;font-size:.72rem;font-weight:600}.table td{border-bottom:1px solid var(--color-line);vertical-align:middle;padding:10px 16px}.table tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--color-paper)}.table__num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.table__actions{justify-content:flex-end;gap:4px;display:flex}.table__name-btn{color:var(--color-ink);text-align:left;background:0 0;border:none;padding:0;font-weight:600}.table__name-btn:hover{color:var(--color-primary-dark);text-decoration:underline}.table__muted{color:var(--color-ink-faint)}.tag{background:var(--tag-color-soft,var(--color-primary-soft));color:var(--color-ink-soft);border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 8px;font-size:.76rem;font-weight:600;display:inline-flex}.tag:before{content:"";background:var(--tag-color,var(--color-primary));border-radius:50%;width:7px;height:7px}.chip{background:var(--color-primary-soft);color:var(--color-primary-dark);border-radius:999px;align-items:center;gap:8px;padding:5px 6px 5px 12px;font-size:.85rem;font-weight:500;display:inline-flex}.chip__remove{width:20px;height:20px;color:var(--color-primary-dark);background:#fff9;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:.9rem;line-height:1;display:inline-flex}.chip__remove:hover{background:#fff}.chip-list{flex-wrap:wrap;gap:8px;display:flex}.modal-overlay{z-index:100;background:#1f2a2473;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--color-paper-raised);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.modal__header{justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 22px 0;display:flex}.modal__title{font-family:var(--font-display);font-size:1.25rem;font-weight:600}.modal__close{color:var(--color-ink-faint);background:0 0;border:none;padding:2px 6px;font-size:1.3rem;line-height:1}.modal__close:hover{color:var(--color-ink)}.modal__body{flex-direction:column;gap:16px;padding:16px 22px;display:flex}.modal__footer{justify-content:flex-end;gap:10px;padding:0 22px 22px;display:flex}.toast{background:var(--color-ink);color:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:200;padding:12px 20px;font-size:.87rem;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast--fehler{background:var(--color-danger-dark)}.toast-fade-enter-active,.toast-fade-leave-active{transition:opacity .2s,transform .2s}.toast-fade-enter-from,.toast-fade-leave-to{opacity:0;transform:translate(-50%)translateY(6px)}.ferientag-card{border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-paper-raised);display:flex;overflow:hidden}.ferientag-card__rail{background:var(--tag-color-soft,var(--color-primary-soft));width:78px;color:var(--color-ink);font-family:var(--font-mono);border-right:1px solid var(--color-line);border-top:4px solid var(--tag-color,var(--color-primary));flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;padding:14px 6px;display:flex}.ferientag-card__wochentag{letter-spacing:.06em;font-size:.7rem;font-weight:600}.ferientag-card__tagnr{font-size:1.7rem;font-weight:600;line-height:1.1}.ferientag-card__monat{letter-spacing:.06em;font-size:.7rem;font-weight:600}.ferientag-card__body{flex-direction:column;flex:1;gap:12px;min-width:0;padding:14px 18px;display:flex}.ferientag-card__teilnehmerliste{flex-direction:column;gap:8px;display:flex}.ferientag-card__teilnehmer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.ferientag-card__name{font-size:.91rem;font-weight:500}.ferientag-card__footer{border-top:1px solid var(--color-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:10px;display:flex}.ferientag-card__summary{color:var(--color-ink-soft);font-size:.8rem;font-family:var(--font-mono)}.ferientag-card__leer{color:var(--color-ink-faint);font-size:.87rem;font-style:italic}.ferientage-liste{flex-direction:column;gap:12px;display:flex}.segmented{border:1.5px solid var(--color-line-strong);border-radius:999px;flex-shrink:0;display:inline-flex;overflow:hidden}.segmented__btn{background:var(--color-paper-raised);color:var(--color-ink-faint);border:none;border-right:1.5px solid var(--color-line-strong);padding:5px 12px;font-size:.76rem;font-weight:600}.segmented__btn:last-child{border-right:none}.segmented__btn:hover{background:var(--color-paper)}.segmented__btn--ja.segmented__btn--aktiv{background:var(--status-ja-bg);color:var(--status-ja)}.segmented__btn--nein.segmented__btn--aktiv{background:var(--status-nein-bg);color:var(--status-nein)}.segmented__btn--offen.segmented__btn--aktiv{background:var(--status-offen-bg);color:var(--color-ink)}.kontaktblock{color:var(--color-ink-soft);flex-wrap:wrap;gap:4px 20px;font-size:.85rem;display:flex}.kontaktblock strong{color:var(--color-ink)}.plan-kopf{background:var(--color-paper-raised);border:1px solid var(--color-line);border-radius:var(--radius-lg);flex-direction:column;gap:14px;margin-bottom:22px;padding:22px 24px;display:flex}.plan-kopf__top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.plan-kopf__name{font-family:var(--font-display);font-size:1.4rem;font-weight:600}.plan-kopf__einrichtung{color:var(--color-ink-soft);margin-top:2px;font-size:.92rem}.plan-kopf__actions{flex-wrap:wrap;gap:8px;display:flex}.plan-kopf__hinweis{color:var(--color-ink-faint);font-size:.78rem}.import-section{flex-direction:column;gap:14px;display:flex}.import-section+.import-section{border-top:1px solid var(--color-line);margin-top:28px;padding-top:28px}.import-section__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.import-section__title{font-family:var(--font-display);font-size:1.15rem;font-weight:600}.import-section__text{color:var(--color-ink-soft);max-width:68ch;font-size:.89rem}.file-drop{border:1.5px dashed var(--color-line-strong);border-radius:var(--radius-md);text-align:center;background:var(--color-paper);padding:22px}.file-drop input[type=file]{margin:10px auto 0;font-size:.85rem;display:block}.import-summary{background:var(--color-primary-soft);border-radius:var(--radius-md);color:var(--color-primary-dark);flex-direction:column;gap:6px;padding:14px 16px;font-size:.87rem;display:flex}.import-summary--fehler{background:var(--color-danger-soft);color:var(--color-danger-dark)}.import-summary ul{margin:0;padding-left:18px}.format-beispiel{background:var(--color-paper);border:1px solid var(--color-line);border-radius:var(--radius-sm);font-family:var(--font-mono);white-space:pre;color:var(--color-ink-soft);padding:10px 12px;font-size:.76rem;overflow-x:auto}@media (width<=720px){.app-header__inner{padding:16px 18px 0}.app-nav__tab{margin:0 8px;font-size:.85rem}.app-main{padding:22px 16px 48px}.view__title{font-size:1.4rem}.ferientag-card{flex-direction:column}.ferientag-card__rail{border-right:none;border-bottom:1px solid var(--color-line);flex-direction:row;gap:8px;width:100%;padding:10px 14px}}
