@import "https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap";
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.static{position:static}.flex{display:flex}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}}:root{--valoon-blue:#0080ff;--valoon-blue-600:#0270dd;--valoon-blue-700:#0052b4;--valoon-blue-ink:#3f3d56;--valoon-black:#181d27;--base-black:#000;--base-gray-900:#212121;--base-gray-700:#414651;--base-gray-600:#535862;--base-gray-500:#717680;--base-gray-400:#bcbcbc;--base-gray-300:#d5d7da;--base-gray-200:#e9eaeb;--base-gray-100:#f0f0f0;--base-gray-50:#f3f3f3;--base-gray-25:#f6f6f9;--base-white:#fdfdfd;--base-pure-white:#fff;--neutral-ECEFF1:#eceff1;--neutral-DADFE2:#dadfe2;--neutral-78909D:#78909d;--neutral-616161:#616161;--accent-blue-400:#42a5f4;--accent-blue-500:#0080ff;--accent-blue-600:#0270dd;--accent-blue-pale:#e3f2fd;--accent-blue-soft:#c0e5ff;--accent-yellow-500:#f6b802;--accent-chart-green-400:#66bb6a;--accent-chart-green-200:#d4e057;--status-yellow-soft:#fff9c4;--status-lime-soft:#f0f4c3;--status-rose-soft:#ede2e3;--status-orange-soft:#ffccbc;--status-red-soft:#ffcdd3;--status-violet-soft:#ede7f6;--status-amber:#ffa000;--status-orange:#f57f16;--status-olive:#8b8128;--status-clay:#d9745a;--status-red:#b71d1c;--status-violet:#512da8;--indicator-yellow:#ffca28;--indicator-yellow-200:#feecb4;--indicator-red:#ef5350;--indicator-green:#6da544;--fg-1:var(--valoon-black);--fg-2:var(--base-gray-600);--fg-3:var(--base-gray-500);--fg-inverse:var(--base-white);--fg-brand:var(--valoon-blue);--fg-danger:var(--indicator-red);--fg-success:var(--indicator-green);--bg-app:var(--base-white);--bg-surface:var(--base-pure-white);--bg-subtle:var(--base-gray-25);--bg-muted:var(--base-gray-100);--bg-sidebar:var(--base-gray-900);--bg-inverse:var(--valoon-black);--border-subtle:var(--base-gray-200);--border-default:var(--base-gray-300);--border-strong:var(--base-gray-400);--border-brand:var(--valoon-blue);--radius-xs:4px;--radius-sm:5px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--radius-pill:9999px;--shadow-xs:0 1px 2px #0000000d;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow-md:0 4px 8px #00000014, 0 2px 4px #0000000a;--shadow-lg:0 10px 24px #0000001a, 0 4px 8px #0000000d;--shadow-xl:0 20px 40px #0000001f;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--font-display:"Outfit", "Inter", system-ui, sans-serif;--font-body:"Inter", "Outfit", system-ui, sans-serif;--font-ui:"Outfit", "Inter", system-ui, sans-serif;--text-display-2xl:700 60px/72px var(--font-display);--text-display-xl:700 48px/60px var(--font-display);--text-display-lg:700 36px/44px var(--font-display);--text-display-md:500 30px/38px var(--font-display);--text-display-sm:500 24px/32px var(--font-display);--text-display-xs:500 20px/28px var(--font-display);--text-body-lg:400 18px/28px var(--font-body);--text-body:400 16px/24px var(--font-body);--text-body-sm:400 14px/20px var(--font-body);--text-caption:400 12px/16px var(--font-body);--text-label:600 14px/16px var(--font-ui)}html,body{font-family:var(--font-body);color:var(--fg-1);background:var(--bg-app);font-feature-settings:"cv11","ss01","ss02";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.h1,h1{font:var(--text-display-2xl);letter-spacing:-.02em;color:var(--fg-1);margin:0}.h2,h2{font:var(--text-display-xl);letter-spacing:-.02em;color:var(--fg-1);margin:0}.h3,h3{font:var(--text-display-lg);letter-spacing:-.015em;color:var(--fg-1);margin:0}.h4,h4{font:var(--text-display-md);color:var(--fg-1);margin:0}.h5,h5{font:var(--text-display-sm);color:var(--fg-1);margin:0}.h6,h6{font:var(--text-display-xs);color:var(--fg-1);margin:0}.body-lg,p.lg{font:var(--text-body-lg);color:var(--fg-1);margin:0}.body,p{font:var(--text-body);color:var(--fg-1);margin:0}.body-sm{font:var(--text-body-sm);color:var(--fg-2)}.caption{font:var(--text-caption);color:var(--fg-3)}.label{font:var(--text-label);color:var(--fg-1)}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px}:root{--eg-red:#c8102e;--eg-red-700:#a20d26;--eg-red-800:#7e0a1e;--eg-red-pale:#fbeaec;--eg-red-soft:#f5d6db;--eg-red-tint-2:#fcf4f5;--cell-U-bg:#dcefd2;--cell-U-fg:#2f5f1e;--cell-U-border:#a8d08c;--cell-P-bg:#e5e7eb;--cell-P-fg:#374151;--cell-P-border:#9ca3af;--cell-K-bg:#dbe9f8;--cell-K-fg:#1b4f8a;--cell-K-border:#93b6e0;--cell-S-bg:#f4eccc;--cell-S-fg:#7a5810;--cell-S-border:#d9c078;--col-name:192px;--col-day:42px;--col-urlaub:76px;--row-h:38px;--row-h-compact:30px;--row-header-h:48px}*{box-sizing:border-box}html,body{background:var(--bg-app);color:var(--fg-1);margin:0}.app{flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-header{align-items:center;gap:var(--space-6);border-bottom:1px solid var(--border-subtle);background:var(--bg-surface);padding:16px;display:flex}.eg-logo{-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:inline-flex}.eg-logo__mark{background:var(--eg-red);color:#fff;width:38px;height:38px;font:700 16px/1 var(--font-display);letter-spacing:.02em;border-radius:2px;place-items:center;display:grid;position:relative}.eg-logo__mark:after{content:"";background:var(--eg-red);clip-path:polygon(0 100%,50% 0,100% 100%);height:6px;position:absolute;top:-3px;left:-3px;right:-3px}.eg-logo__text{flex-direction:column;line-height:1.05;display:flex}.eg-logo__name{font:700 14px/1.1 var(--font-display);letter-spacing:.02em;color:var(--fg-1)}.eg-logo__sub{font:500 10px/1.2 var(--font-body);color:var(--fg-3);letter-spacing:.06em;text-transform:uppercase}.app-title{flex:1;align-items:baseline;gap:16px;display:flex}.app-title__pre{font:500 14px/1 var(--font-body);color:var(--fg-3);letter-spacing:.06em;text-transform:uppercase}.app-title__main{font:700 28px/1 var(--font-display);color:var(--eg-red);letter-spacing:-.01em}.month-picker{align-items:center;gap:8px;display:flex}.select{appearance:none;font:500 13px/1 var(--font-ui);color:var(--fg-1);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);background-image:linear-gradient(45deg, transparent 50%, var(--fg-3) 50%), linear-gradient(135deg, var(--fg-3) 50%, transparent 50%);cursor:pointer;background-position:calc(100% - 14px),calc(100% - 10px);background-repeat:no-repeat;background-size:4px 4px,4px 4px;padding:8px 30px 8px 12px;transition:border-color .12s,box-shadow .12s}.select:hover{border-color:var(--border-strong)}.select:focus{border-color:var(--eg-red);outline:none;box-shadow:0 0 0 3px #c8102e1f}.app-iconbtn{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;width:36px;height:36px;color:var(--fg-2);place-items:center;transition:all .12s;display:grid}.app-iconbtn:hover{color:var(--fg-1);border-color:var(--border-strong);background:var(--bg-subtle)}.subbar{background:var(--bg-app);border-bottom:1px solid var(--border-subtle);align-items:center;gap:20px;padding:10px 16px;display:flex}.legend-title{font:600 12px/1 var(--font-ui);color:var(--fg-3);letter-spacing:.06em;text-transform:uppercase}.legend{flex-wrap:wrap;gap:8px;display:flex}.legend-chip{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);font:500 12px/1 var(--font-ui);color:var(--fg-1);align-items:center;gap:8px;padding:5px 10px 5px 5px;display:inline-flex}.legend-chip__letter{width:18px;height:18px;font:700 11px/1 var(--font-ui);border:1px solid #0000;border-radius:3px;place-items:center;display:grid}.subbar-spacer{flex:1}.subbar-meta{font:400 12px/1 var(--font-body);color:var(--fg-3);gap:16px;display:flex}.subbar-meta b{color:var(--fg-1);font-weight:600}.live-dot{background:var(--indicator-green);vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block;box-shadow:0 0 0 3px #6da54426}.app-main{flex:1;min-height:0;padding:12px 16px 16px;display:flex;overflow:hidden}.table-wrap{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex:1;max-width:100%;min-height:0;position:relative;overflow:auto}.plan{border-collapse:separate;border-spacing:0;font:400 13px/1 var(--font-body);width:max-content;min-width:100%}.plan thead th{z-index:3;background:var(--bg-subtle);border-bottom:1px solid var(--border-default);height:var(--row-header-h);text-align:center;vertical-align:middle;padding:0;position:sticky;top:0}.plan thead th.col-name{z-index:5;background:var(--bg-subtle);text-align:left;border-right:1px solid var(--border-default);font:600 12px/1 var(--font-ui);color:var(--fg-2);letter-spacing:.04em;text-transform:uppercase;width:var(--col-name);min-width:var(--col-name);max-width:var(--col-name);padding:0 14px;left:0}.plan thead th.col-day{width:var(--col-day);min-width:var(--col-day);max-width:var(--col-day)}.plan thead th.col-day .dh-wk{font:500 10px/1.2 var(--font-ui);color:var(--fg-3);letter-spacing:.04em}.plan thead th.col-day .dh-num{font:700 13px/1.1 var(--font-display);color:var(--fg-1);margin-top:2px}.plan thead th.col-day.is-today .dh-num{color:var(--eg-red)}.plan thead th.col-day.is-today{background:var(--eg-red-pale)}.plan thead th.col-day.is-weekend{background:var(--eg-red-tint-2)}.plan thead th.col-day.is-weekend .dh-wk{color:var(--eg-red-700)}.plan thead th.col-urlaub{width:var(--col-urlaub);min-width:var(--col-urlaub);max-width:var(--col-urlaub);border-left:1px solid var(--border-default);font:600 10px/1.2 var(--font-ui);color:var(--fg-2);letter-spacing:.04em;text-transform:uppercase;z-index:5;background:var(--bg-subtle);padding:0 8px;position:sticky;right:0}.plan tbody tr{height:var(--row-h)}.is-compact .plan tbody tr{height:var(--row-h-compact)}.plan td{border-bottom:1px solid var(--border-subtle);vertical-align:middle;text-align:center;padding:0;position:relative}.plan td.col-name{z-index:2;background:var(--bg-surface);border-right:1px solid var(--border-default);text-align:left;font:500 13px/1.2 var(--font-body);color:var(--fg-1);white-space:nowrap;text-overflow:ellipsis;width:var(--col-name);min-width:var(--col-name);max-width:var(--col-name);padding:0 14px;position:sticky;left:0;overflow:hidden}.plan td.col-name>div{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.plan tbody tr:hover td.col-name{background:var(--base-gray-200)}.plan td.col-name .role{font:400 11px/1 var(--font-body);color:var(--fg-3);margin-top:2px}.plan td.col-day{width:var(--col-day);min-width:var(--col-day);max-width:var(--col-day);border-right:1px solid var(--base-gray-100);cursor:pointer;transition:background-color 80ms}.plan td.col-day.is-weekend{background:var(--eg-red-tint-2)}.plan td.col-day:hover{background:var(--accent-blue-pale)}.plan td.col-day.is-weekend:hover{background:var(--eg-red-pale)}.plan thead th.col-day.is-col-hover{background:var(--base-gray-200)}.plan thead th.col-day.is-col-hover.is-weekend{background:var(--eg-red-soft)}.plan tfoot td.col-day.is-col-hover{background:var(--base-gray-200)}.plan tfoot td.col-day.is-col-hover.is-weekend{background:var(--eg-red-soft)}.plan td.col-urlaub{border-left:1px solid var(--border-default);font:600 12px/1 var(--font-ui);color:var(--fg-2);text-align:center;width:var(--col-urlaub);min-width:var(--col-urlaub);max-width:var(--col-urlaub);z-index:2;background:var(--bg-surface);position:sticky;right:0}.plan tbody tr:hover td.col-urlaub{background:var(--bg-subtle)}.cell-empty{color:#0000;width:100%;height:100%;font:600 14px/1 var(--font-display);place-items:center;display:grid}.plan td.col-day:hover .cell-empty{color:var(--accent-blue-600)}.cell-code{font:500 11px/1 var(--font-body);color:var(--fg-1);white-space:nowrap;text-overflow:ellipsis;padding:4px 2px;display:block;overflow:hidden}.is-mono .cell-code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:10.5px}.cell-code__activity{color:var(--fg-3)}.cell-code--stack{grid-template-rows:auto auto;place-items:center;gap:2px;padding:4px 6px;line-height:1;display:grid}.cell-code--stack .cell-code__proj{font:700 12px/1 var(--font-display);color:var(--fg-1);letter-spacing:-.01em}.cell-code--stack .cell-code__activity{font:500 10px/1 var(--font-body);color:var(--fg-3)}.is-mono .cell-code--stack .cell-code__proj,.is-mono .cell-code--stack .cell-code__activity{font-family:ui-monospace,SF Mono,Menlo,monospace}.cell-special{width:calc(100% - 6px);height:calc(100% - 6px);font:700 14px/1 var(--font-display);border-radius:var(--radius-xs);border:1px solid #0000;place-items:center;margin:3px;display:grid}.cell-special.t-U{background:var(--cell-U-bg);color:var(--cell-U-fg);border-color:var(--cell-U-border)}.cell-special.t-P{background:var(--cell-P-bg);color:var(--cell-P-fg);border-color:var(--cell-P-border)}.cell-special.t-K{background:var(--cell-K-bg);color:var(--cell-K-fg);border-color:var(--cell-K-border)}.cell-special.t-S{background:var(--cell-S-bg);color:var(--cell-S-fg);border-color:var(--cell-S-border)}.plan td.col-day:focus-visible{outline:2px solid var(--eg-red);outline-offset:-2px;z-index:2}.plan tfoot td{z-index:2;background:var(--bg-subtle);border-top:1px solid var(--border-default);height:38px;font:600 12px/1 var(--font-ui);color:var(--fg-1);text-align:center;position:sticky;bottom:0}.plan tfoot td.col-name{z-index:4;background:var(--bg-subtle);text-align:left;text-transform:uppercase;letter-spacing:.04em;font:600 11px/1 var(--font-ui);color:var(--fg-2);width:var(--col-name);min-width:var(--col-name);max-width:var(--col-name);padding:0 14px;left:0}.plan tfoot td.col-day.is-weekend{background:#f6e4e7}.plan tfoot td.col-urlaub{border-left:1px solid var(--border-default);z-index:4;background:var(--bg-subtle);position:sticky;right:0}.tot{background:var(--bg-surface);border:1px solid var(--border-subtle);min-width:22px;height:18px;font:600 11px/1 var(--font-ui);color:var(--fg-1);border-radius:4px;place-items:center;padding:0 4px;display:inline-grid}.tot.is-zero{color:var(--fg-3);background:0 0;border-color:#0000}.tooltip{z-index:100;background:var(--valoon-black);color:var(--fg-inverse);border-radius:var(--radius-md);min-width:200px;max-width:280px;font:400 12px/1.4 var(--font-body);box-shadow:var(--shadow-lg);pointer-events:none;padding:10px 12px;position:fixed;transform:translate(-50%,-100%)translateY(-10px)}.tooltip:after{content:"";background:var(--valoon-black);width:10px;height:10px;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)rotate(45deg)}.tooltip__row{justify-content:space-between;gap:12px;padding:2px 0;display:flex}.tooltip__label{color:#ffffff8c;font-size:11px}.tooltip__value{color:#fff;font-weight:500}.tooltip__title{font:600 13px/1.2 var(--font-display);color:#fff;margin-bottom:6px}.tooltip__div{border-top:1px solid #ffffff1a;margin:6px 0}.tooltip__activity{font:400 12px/1.3 var(--font-body);color:#fffc}.modal-scrim{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background:#181d2773;place-items:center;animation:.15s ease-out scrim;display:grid;position:fixed;inset:0}@keyframes scrim{0%{opacity:0}}.modal{background:var(--bg-surface);border-radius:var(--radius-xl);width:560px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-xl);animation:.18s ease-out modal;overflow:hidden}@keyframes modal{0%{opacity:0;transform:translateY(8px)scale(.98)}}.modal__header{align-items:flex-start;gap:12px;padding:20px 24px 8px;display:flex}.modal__title{font:600 18px/1.2 var(--font-display);color:var(--fg-1);flex:1}.modal__sub{font:400 13px/1.4 var(--font-body);color:var(--fg-3);margin-top:2px}.modal__close{border-radius:var(--radius-sm);cursor:pointer;width:32px;height:32px;color:var(--fg-3);background:0 0;border:none;place-items:center;font-size:18px;display:grid}.modal__close:hover{background:var(--bg-muted);color:var(--fg-1)}.modal__body{grid-template-columns:1fr 1fr;gap:16px;padding:12px 24px 8px;display:grid}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field--full{grid-column:1/-1}.field__label{font:600 12px/1 var(--font-ui);color:var(--fg-2);letter-spacing:.02em}.field__label .req{color:var(--eg-red);margin-left:2px}.field__hint{font:400 11px/1.2 var(--font-body);color:var(--fg-3)}.input,.textarea{width:100%;font:400 14px/1.3 var(--font-body);color:var(--fg-1);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:9px 12px;transition:border-color .12s,box-shadow .12s}.input:focus,.textarea:focus{border-color:var(--eg-red);outline:none;box-shadow:0 0 0 3px #c8102e1a}.textarea{resize:vertical;min-height:64px}.select-field{appearance:none;width:100%;font:400 14px/1.3 var(--font-body);color:var(--fg-1);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);background-image:linear-gradient(45deg, transparent 50%, var(--fg-2) 50%), linear-gradient(135deg, var(--fg-2) 50%, transparent 50%);cursor:pointer;background-position:calc(100% - 14px),calc(100% - 10px);background-repeat:no-repeat;background-size:4px 4px,4px 4px;padding:9px 32px 9px 12px}.select-field:focus{border-color:var(--eg-red);outline:none;box-shadow:0 0 0 3px #c8102e1a}.chips{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);flex-wrap:wrap;gap:6px;min-height:38px;padding:6px 8px;transition:border-color .12s,box-shadow .12s;display:flex;position:relative}.chips:focus-within{border-color:var(--eg-red);box-shadow:0 0 0 3px #c8102e1a}.chip{background:var(--accent-blue-pale);color:var(--valoon-blue-700);border:1px solid var(--accent-blue-soft);border-radius:var(--radius-pill);font:500 12px/1 var(--font-ui);white-space:nowrap;align-items:center;gap:4px;padding:3px 4px 3px 8px;display:inline-flex}.chip__x{width:16px;height:16px;color:var(--valoon-blue-700);cursor:pointer;background:0 0;border:none;border-radius:50%;place-items:center;font-size:12px;line-height:1;display:grid}.chip__x:hover{background:#0080ff2e}.chips__input{min-width:120px;font:400 13px/1.3 var(--font-body);background:0 0;border:none;outline:none;flex:1;padding:4px}.chips__menu{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:5;max-height:200px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto}.chips__opt{font:400 13px/1.3 var(--font-body);cursor:pointer;justify-content:space-between;gap:8px;padding:8px 12px;display:flex}.chips__opt:hover,.chips__opt[aria-selected=true]{background:var(--bg-subtle)}.chips__opt .meta{color:var(--fg-3);font-size:11px}.chips__opt.is-active{background:var(--accent-blue-pale)}.chips__empty{font:400 12px/1 var(--font-body);color:var(--fg-3);text-align:center;padding:12px}.stepper{border:1px solid var(--border-default);border-radius:var(--radius-sm);align-items:stretch;width:max-content;display:flex;overflow:hidden}.stepper:focus-within{border-color:var(--eg-red);box-shadow:0 0 0 3px #c8102e1a}.stepper button{background:var(--bg-subtle);width:32px;height:38px;font:700 14px/1 var(--font-ui);color:var(--fg-2);cursor:pointer;border:none}.stepper button:hover{color:var(--fg-1);background:var(--bg-muted)}.stepper input{text-align:center;width:56px;font:500 14px/1 var(--font-body);color:var(--fg-1);border:none;border-left:1px solid var(--border-default);border-right:1px solid var(--border-default);background:var(--bg-surface);outline:none}.modal__footer{border-top:1px solid var(--border-subtle);align-items:center;gap:12px;margin-top:12px;padding:16px 24px 20px;display:flex}.modal__footer .spacer{flex:1}.btn{font:600 13px/1 var(--font-ui);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;padding:10px 16px;transition:all .12s}.btn--primary{background:var(--eg-red);color:#fff}.btn--primary:hover{background:var(--eg-red-700)}.btn--primary:active{background:var(--eg-red-800)}.btn--primary:disabled{background:var(--eg-red);opacity:.4;cursor:not-allowed}.btn--secondary{background:var(--bg-surface);color:var(--fg-1);border-color:var(--border-default)}.btn--secondary:hover{background:var(--bg-subtle);border-color:var(--border-strong)}.modal__hint{font:400 11px/1.3 var(--font-body);color:var(--fg-3);align-items:center;gap:6px;display:flex}.kbd{background:var(--bg-subtle);border:1px solid var(--border-subtle);min-width:18px;height:18px;font:600 10px/1 var(--font-ui);color:var(--fg-2);border-bottom-width:2px;border-radius:3px;place-items:center;padding:0 4px;display:inline-grid}.cat-grid{grid-template-columns:repeat(4,1fr);gap:6px;margin-top:4px;display:grid}.cat-card{border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface);cursor:pointer;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;transition:all .12s;display:flex}.cat-card:hover{border-color:var(--border-strong)}.cat-card[aria-checked=true]{border-color:var(--eg-red);background:var(--eg-red-pale);box-shadow:0 0 0 2px #c8102e14}.cat-card .letter{width:28px;height:28px;font:700 14px/1 var(--font-display);border:1px solid #0000;border-radius:4px;place-items:center;display:grid}.cat-card.k-U .letter{background:var(--cell-U-bg);color:var(--cell-U-fg);border-color:var(--cell-U-border)}.cat-card.k-P .letter{background:var(--cell-P-bg);color:var(--cell-P-fg);border-color:var(--cell-P-border)}.cat-card.k-K .letter{background:var(--cell-K-bg);color:var(--cell-K-fg);border-color:var(--cell-K-border)}.cat-card.k-S .letter{background:var(--cell-S-bg);color:var(--cell-S-fg);border-color:var(--cell-S-border)}.cat-card.k-W .letter{background:var(--accent-blue-pale);color:var(--valoon-blue-700);border-color:var(--accent-blue-soft)}.cat-card .name{font:500 11px/1.1 var(--font-ui);color:var(--fg-1)}.cat-card .desc{font:400 10px/1.1 var(--font-body);color:var(--fg-3);text-align:center}.app-footer{border-top:1px solid var(--border-subtle);background:var(--bg-surface);align-items:center;gap:16px;padding:12px 16px;display:flex}.app-footer .left{font:400 11px/1.4 var(--font-body);color:var(--fg-3)}.app-footer .spacer{flex:1}.app-footer .powered{font:400 11px/1 var(--font-body);color:var(--fg-3);align-items:center;gap:8px;display:inline-flex}.app-footer .powered img{height:18px}.state-block{text-align:center;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);flex:1;place-items:center;min-height:0;padding:80px 24px;display:grid}.state-block__icon{border-radius:50%;place-items:center;width:72px;height:72px;margin-bottom:16px;font-size:28px;display:grid}.state-block--empty .state-block__icon{background:var(--accent-blue-pale);color:var(--valoon-blue-700)}.state-block--error .state-block__icon{background:var(--eg-red-pale);color:var(--eg-red)}.state-block__title{font:600 18px/1.2 var(--font-display);color:var(--fg-1);margin-bottom:6px}.state-block__body{font:400 14px/1.5 var(--font-body);color:var(--fg-2);max-width:420px;margin:0 0 16px}.login-wrap{background:var(--bg-app);justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.login-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);width:400px;max-width:100%;box-shadow:var(--shadow-lg);flex-direction:column;gap:16px;padding:28px;display:flex}.login-logo{justify-content:center;margin-bottom:4px;display:flex}.login-logo img{width:auto;height:44px}.login-heading{text-align:center}.login-pre{font:500 12px/1 var(--font-body);color:var(--fg-3);letter-spacing:.06em;text-transform:uppercase}.login-title{font:700 22px/1.2 var(--font-display);color:var(--fg-1);margin-top:4px}.login-error{background:var(--eg-red-pale);color:var(--eg-red-800);border-radius:var(--radius-sm);font:500 12px/1.4 var(--font-body);border:1px solid var(--eg-red-soft);padding:8px 12px}.login-submit{margin-top:4px}.login-powered{font:400 11px/1.4 var(--font-body);color:var(--fg-3);text-align:center;margin-top:4px}.dim{color:var(--fg-3)}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:900px){:root{--col-name:152px;--col-day:38px;--col-urlaub:64px}.app-header{gap:var(--space-3);flex-wrap:wrap;padding:12px}.eg-logo img{height:32px!important}.app-title{flex-basis:100%;order:3;gap:8px}.app-title__main{font-size:22px}.month-picker{margin-left:auto}.subbar{flex-wrap:wrap;gap:12px;padding:10px 12px}.subbar-spacer{display:none}.subbar-meta{flex-wrap:wrap;gap:12px;width:100%}.app-main{padding:10px}}@media (max-width:600px){:root{--col-name:128px;--col-day:34px;--col-urlaub:56px;--row-h:36px;--row-h-compact:30px;--row-header-h:42px}.app-header{flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px}.eg-logo{flex:1;order:1;min-width:0}.eg-logo img{height:32px!important}.app-title{flex:none;order:2;align-items:baseline;gap:6px}.app-title__pre{display:none}.app-title__main{letter-spacing:-.015em;font-size:20px}.month-picker{flex-basis:100%;order:3;justify-content:flex-end;gap:6px}.month-picker .select{flex:1;padding:8px 26px 8px 10px;font-size:13px}.app-iconbtn{flex:none;width:34px;height:34px}.subbar{flex-wrap:wrap;gap:8px 10px;padding:8px 12px;font-size:11px}.legend-title{display:none}.legend{gap:5px;width:100%}.legend-chip{font:500 11px/1 var(--font-ui);padding:3px 8px 3px 3px}.legend-chip__letter{width:16px;height:16px;font-size:10px}.subbar-spacer{display:none}.subbar-meta{flex-wrap:wrap;gap:4px 12px;width:100%;font-size:11px}.plan{font-size:12px}.plan td.col-name{padding:0 8px;font-size:12px}.plan td.col-name .role{font-size:10px}.plan thead th.col-name{padding:0 8px;font-size:11px}.cell-code--stack .cell-code__proj{font-size:11px}.cell-code--stack .cell-code__activity{font-size:9px}.cell-special{font-size:13px}.app-main{padding:8px}.app-footer{text-align:center;flex-direction:column;gap:6px;padding:10px 12px}.app-footer .spacer{display:none}.app-footer .left{font-size:10px}.modal{border-radius:var(--radius-lg);width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow-y:auto}.modal__header{padding:16px 16px 6px}.modal__title{font-size:16px}.modal__body{grid-template-columns:1fr;gap:12px;padding:10px 16px 8px}.modal__footer{flex-wrap:wrap;padding:12px 16px 16px}.modal__hint{display:none}.cat-grid{gap:4px;grid-template-columns:repeat(5,1fr)!important}.cat-card{padding:6px 2px}.cat-card .letter{width:24px;height:24px;font-size:12px}.cat-card .name{font-size:10px}.state-block{padding:48px 16px}.state-block__icon{width:56px;height:56px}.state-block__title{font-size:16px}.state-block__body{font-size:13px}.login-wrap{padding:12px}.login-card{border-radius:var(--radius-lg);gap:12px;padding:20px 18px}.login-logo img{height:38px}.login-pre{font-size:11px}.login-title{font-size:20px}.login-submit{padding:12px 16px;font-size:14px}}@media (max-width:380px){:root{--col-name:104px;--col-day:32px;--col-urlaub:48px}.app-title__main{font-size:17px}.month-picker .select{padding:7px 22px 7px 8px;font-size:12px}.login-card{padding:18px 14px}.login-logo img{height:32px}.login-title{font-size:18px}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
