:root{--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--bg:#fff;--bg-subtle:#f7f8fa;--bg-hover:#f0f1f4;--bg-active:#e6e8ec;--border:#e3e5e8;--border-strong:#c6c9ce;--text:#1c1e21;--text-muted:#5f6570;--text-subtle:#9ca3af;--accent:#4f46e5;--accent-hover:#4338ca;--accent-subtle:#eef2ff;--accent-fg:#fff;--success:#16a34a;--warning:#b45309;--error:#b91c1c;--info:#2563eb;--radius:4px;--radius-full:999px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-sans);color:var(--text);font-size:14px;line-height:1.4}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;padding:0}.app{min-height:100vh}.app__header{border-bottom:1px solid var(--border);background:var(--bg);z-index:10;align-items:center;gap:16px;min-height:42px;padding:0 20px;display:flex;position:sticky;top:0}.app__brand{letter-spacing:-.01em;margin:0;font-size:14px;font-weight:600}.app__meta{color:var(--text-muted);font-size:12px}.app__spacer{flex:1}.app__user{color:var(--text-muted);align-items:center;gap:8px;font-size:13px;display:inline-flex}.app__user strong{color:var(--text);font-weight:500}.tabs{z-index:auto;background:0 0;border-bottom:0;align-self:stretch;gap:2px;padding:0;display:flex;position:static;top:auto}.tabs__button{appearance:none;font:inherit;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:10px 12px}.tabs__button:hover{color:var(--text);background:var(--bg-subtle)}.tabs__button[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.tabs__button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.app__main{max-width:1400px;margin:0 auto;padding:20px}.view{flex-direction:column;gap:24px;display:flex}.panel{margin:0;padding:0}.panel>h2{color:var(--text);margin:0 0 12px;font-size:15px;font-weight:600}.panel>h3{color:var(--text-muted);margin:20px 0 8px;font-size:12px;font-weight:600}.form{flex-wrap:wrap;align-items:flex-end;gap:8px 12px;padding:8px 0;display:flex}.form label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:12px;display:flex}input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{appearance:none;border:1px solid var(--border-strong);border-radius:var(--radius);font:inherit;color:var(--text);background:var(--bg);min-width:0;padding:5px 8px;font-size:13px}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}button{appearance:none;font:inherit;cursor:pointer;border:1px solid var(--border-strong);background:var(--bg);color:var(--text);border-radius:var(--radius);padding:4px 10px;font-size:13px;line-height:1.5}button:hover:not(:disabled){background:var(--bg-hover)}button[aria-label^=Delete\ ]:hover:not(:disabled){color:var(--error);border-color:var(--error)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.icon-button{appearance:none;color:var(--text-muted);border-radius:var(--radius);cursor:pointer;background:0 0;border:0;padding:3px 5px;font-size:13px;line-height:1}.icon-button:hover:not(:disabled){color:var(--accent);background:var(--bg-subtle)}.form button[type=submit]{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.form button[type=submit]:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.tasks,.shifts{margin:0;padding:0;list-style:none}.task,.shift{border-left:2px solid var(--border);margin:2px 0;padding:4px 0 4px 10px}.task__row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.task__header,.shift__header{flex-wrap:wrap;align-items:center;gap:6px;min-height:26px;display:flex}button.task__header{appearance:none;text-align:left;cursor:pointer;background:0 0;border:0;flex:auto;padding:0}.task__name{font-weight:600}.task__hours,.shift__when{color:var(--text-muted);font-size:12px}.shift__persons input{width:60px}.status{text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--border-strong);border-radius:var(--radius-full);color:var(--text-muted);padding:1px 8px;font-size:11px}.warning{color:var(--warning);font-size:12px}.error{color:var(--error);margin:6px 0;font-size:13px}.empty{color:var(--text-muted);margin:6px 0;font-size:13px}.empty--actionable{border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--bg-subtle);align-items:center;gap:10px;padding:16px;display:flex}.empty--actionable p{color:var(--text-muted);margin:0}.muted{color:var(--text-muted);font-size:13px}.task__add-root{border-bottom:1px solid var(--border);margin-bottom:12px;padding:0 0 8px}.task__filter{margin-bottom:8px}.task__filter input[type=search]{width:100%;max-width:320px}.task__add-inline{flex-wrap:wrap;align-items:center;gap:6px;padding:4px 0;display:flex}.task__add-inline input[type=text]{flex:200px;min-width:160px}.task__add-inline input[type=number]{width:80px}.task__add-subtask-button:hover:not(:disabled),.task__add-inline button[type=submit]:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}.slots{border-collapse:collapse;margin:6px 0 6px 12px;font-size:13px}.slots th,.slots td{border:1px solid var(--border);text-align:left;padding:3px 10px}.slots th{background:var(--bg-subtle);color:var(--text-muted);font-weight:500}.staffing{margin:4px 0;padding:0;list-style:none}.staffing li{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0;display:flex}.staffing li:last-child{border-bottom:0}.crew__name{font-weight:600}.backup__file{display:none}.users{margin:4px 0;padding:0;list-style:none}.users__row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0;display:flex}.users__row:last-child{border-bottom:0}.users__name{min-width:10rem;font-weight:600}.users__role-summary{flex:1}.users__actions{gap:6px;display:flex}.cockpit__controls{flex-wrap:wrap;align-items:flex-end;gap:12px;padding:4px 0 12px;display:flex}.cockpit__controls>label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.cockpit__upcoming{align-items:center;padding-bottom:6px;flex-direction:row!important;gap:4px!important}.status-filter{flex-direction:column;gap:4px;display:flex;position:relative}.status-filter__caption{color:var(--text-muted);font-size:12px}.status-filter__disclosure{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg);color:var(--text);min-width:120px;padding:5px 8px;font-size:13px}.status-filter__disclosure summary{cursor:pointer;list-style:none}.status-filter__disclosure summary::-webkit-details-marker{display:none}.status-filter__disclosure summary:after{content:"▾";float:right;color:var(--text-muted);margin-left:8px;font-size:10px;line-height:1.4}.status-filter__options{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);z-index:5;flex-direction:column;gap:4px;min-width:140px;margin-top:4px;padding:6px 10px;display:flex;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #0000000d}.status-filter__options label{align-items:center;gap:6px;font-size:12px;display:inline-flex}.cockpit__totals{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;font-size:13px;display:flex}.cockpit__clear-filters{border-color:var(--border);color:var(--text-muted);margin-left:auto;padding:2px 10px;font-size:12px}.cockpit__clear-filters:hover:not(:disabled){color:var(--text);border-color:var(--border-strong)}.cockpit__more{align-items:center;gap:10px;margin:12px 0;font-size:13px;display:flex}.shift-list{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);contain:strict;height:70vh;max-height:70vh;margin:8px 0;overflow:auto}.shift-list__inner{width:100%;position:relative}.shift-list__row{will-change:transform;position:absolute;top:0;left:0;right:0}.chips{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);flex-wrap:wrap;align-items:center;gap:4px;padding:4px 6px;display:flex}.chips legend{color:var(--text-muted);padding:0 6px;font-size:12px}.chip{appearance:none;border:1px solid var(--border-strong);background:var(--bg);border-radius:var(--radius-full);cursor:pointer;color:var(--text);padding:2px 10px;font-size:12px;line-height:1.5}.chip:hover:not(:disabled){background:var(--bg-hover)}.chip[aria-pressed=true]{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent)}.quick-add-slot{margin:8px 0}.quick-add-slot--sticky{background:var(--bg);border-top:1px solid var(--border);z-index:5;margin:16px -20px 0;padding:8px 20px;position:sticky;bottom:0}.quick-add{flex-wrap:wrap;align-items:flex-end;gap:8px 12px;padding:4px 0;display:flex}.quick-add__field{color:var(--text-muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.quick-add__field--task{flex:240px;min-width:200px}.quick-add__label{font-size:12px}.quick-add__submit{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.quick-add__submit:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.quick-add__error{color:var(--error);flex:1 0 100%;margin:0;font-size:13px}.checkbox-group{border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:8px;padding:4px 8px;display:flex}.checkbox-group legend{color:var(--text-muted);padding:0 4px;font-size:12px}.checkbox-group label{color:var(--text);align-items:center;gap:4px;font-size:12px;display:inline-flex}.selection-bar{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-subtle);justify-content:space-between;align-items:center;gap:12px;margin:8px 0;padding:8px 12px;font-size:13px;display:flex}.selection-bar__count{color:var(--text-muted)}.selection-bar__actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.selection-bar__divider{color:var(--text-muted)}.selection-bar__actions form{display:contents}.selection-bar__actions input[type=number]{width:64px}.selection-bar__result{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-subtle);align-items:flex-start;gap:8px;margin:4px 0 8px;padding:6px 10px;font-size:13px;display:flex}.selection-bar__result>span{flex:1}.selection-bar__refused{color:var(--warning);font-weight:500}.selection-bar__refused-list{color:var(--text-muted);margin:4px 0 0;padding-left:20px;font-size:12px}.selection-bar__result button{color:var(--text-muted);cursor:pointer;background:0 0;border:0;padding:0 4px}.shift-row{border-bottom:1px solid var(--border);background:var(--bg);cursor:pointer;grid-template-columns:auto 6px minmax(160px,3fr) minmax(140px,1.2fr) 56px minmax(100px,1fr) 24px auto;align-items:center;gap:8px;min-height:32px;padding:0 12px 0 8px;font-size:13px;display:grid}.shift-row--planned{background:color-mix(in srgb, var(--info) 4%, var(--bg))}.shift-row--working{background:color-mix(in srgb, var(--success) 5%, var(--bg))}.shift-row--finished{background:color-mix(in srgb, var(--text-subtle) 5%, var(--bg))}.shift-row--aborted{background:color-mix(in srgb, var(--error) 5%, var(--bg))}.shift-row:hover:not(.shift-row--focused){background:var(--bg-subtle)}.shift-row--focused{background:var(--bg-hover);outline:1px solid var(--accent);outline-offset:-1px}.shift-row--selected{background:var(--accent-subtle)}.shift-row__cell{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shift-row__cell--checkbox{justify-content:center;align-items:center;display:flex}.shift-row__cell--checkbox input[type=checkbox]{cursor:pointer;accent-color:var(--accent);margin:0}.shift-row__rail{background:var(--border-strong);border-radius:0;align-self:stretch}.shift-row--open .shift-row__rail{background:var(--border-strong)}.shift-row--planned .shift-row__rail{background:var(--info)}.shift-row--working .shift-row__rail{background:var(--success)}.shift-row--finished .shift-row__rail{background:var(--text-subtle)}.shift-row--aborted .shift-row__rail{background:var(--error)}.shift-row__cell--task{font-weight:500}.shift-row__shift-name{color:var(--text-muted);margin-left:6px;font-weight:400}.shift-row__cell--when,.shift-row__cell--duration{color:var(--text-muted);font-size:12px}.shift-row__cell--staffing{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.shift-row__staff-count{text-align:right;min-width:32px}.shift-row__staff-bar{background:var(--bg-hover);border-radius:3px;flex:1;min-width:40px;height:6px;overflow:hidden}.shift-row__staff-bar-fill{background:var(--success);height:100%;transition:width .12s;display:block}.shift-row__cell--warning{justify-content:center;align-items:center;display:flex}.shift-row__cell--warning .warning{font-size:14px;font-weight:600;line-height:1}.shift-row__cell--actions{align-items:center;gap:6px;display:flex}.shift-row__cell--actions select{min-width:90px}.shift-row__error{color:var(--error);grid-column:1/-1;padding:2px 8px;font-size:12px}.gantt{margin:8px 0;position:relative}.cgantt{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);min-height:320px;position:relative;overflow:hidden}.cgantt__scroll{height:100%;overflow:auto}.cgantt__inner{position:relative}.cgantt__header{z-index:3;background:var(--bg-subtle);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.cgantt__header-sidebar{z-index:4;background:var(--bg-subtle);border-right:1px solid var(--border);align-items:flex-end;gap:2px;padding:6px 10px;display:flex;position:sticky;left:0}.cgantt__sidebar-title{color:var(--text-muted);flex:1;font-size:12px}.cgantt__header-timeline{position:relative}.cgantt__scale{height:22px;position:relative}.cgantt__scale--days{border-bottom:1px solid var(--border)}.cgantt__day{height:100%;color:var(--text);border-right:1px solid var(--border);box-sizing:border-box;align-items:center;padding:0 8px;font-size:11px;display:flex;position:absolute;top:0}.cgantt__hour{color:var(--text-muted);font-size:10px;font-family:var(--font-mono);position:absolute;top:4px;transform:translate(-50%)}.cgantt__body{display:flex;position:relative}.cgantt__sidebar{z-index:2;background:var(--bg);border-right:1px solid var(--border);flex:none;position:sticky;left:0}.cgantt__label{color:var(--text);border-bottom:1px solid var(--border);text-overflow:ellipsis;white-space:nowrap;align-items:center;padding:0 10px;font-size:12px;display:flex;position:absolute;left:0;right:0;overflow:hidden}.cgantt__label--task{background:var(--bg-subtle);font-weight:600}.cgantt__hours{color:var(--text-muted);white-space:nowrap;flex:none;margin-left:auto;padding-left:8px;font-size:11px;font-weight:400}.cgantt__hours--over{color:var(--warning);font-weight:600}.cgantt__label:hover .cgantt__hours,.cgantt__label:focus-within .cgantt__hours{visibility:hidden}.cgantt__bar--over{box-shadow:inset 0 -3px 0 var(--warning)}.cgantt__row-actions{background:var(--bg-hover);white-space:nowrap;opacity:0;pointer-events:none;align-items:center;gap:1px;padding-left:8px;transition:opacity .12s;display:flex;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.cgantt__label:hover .cgantt__row-actions,.cgantt__label:focus-within .cgantt__row-actions{opacity:1;pointer-events:auto}.cgantt__row-actions>button{flex:none}.cgantt__label:hover{background:var(--bg-hover)}.cgantt__label-name{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:2px;width:100%;display:inline-flex;overflow:hidden}.cgantt__chevron{appearance:none;cursor:pointer;color:var(--text-muted);background:0 0;border:0;margin-left:-6px;padding:0 4px;font-size:10px;line-height:1;transition:transform .12s}.cgantt__chevron:hover:not(:disabled){color:var(--text)}.cgantt__chevron--collapsed{transform:rotate(-90deg)}.cgantt__timeline{flex:none;position:relative}.cgantt__rowbg{border-bottom:1px solid var(--border);position:absolute;left:0;right:0}.cgantt__rowbg--alt{background:color-mix(in srgb, var(--bg-subtle) 40%, transparent)}.cgantt__gridline{background:var(--border);pointer-events:none;width:1px;position:absolute;top:0}.cgantt__bar{cursor:default;box-sizing:border-box;color:var(--text);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:3px;align-items:center;padding:0 6px;font-size:11px;display:flex;position:absolute;overflow:visible}.cgantt__bar-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.cgantt__bar--draggable{cursor:grab}.cgantt__bar--dragging{cursor:grabbing;opacity:.85;z-index:2;box-shadow:0 4px 12px #0000001f}.cgantt__bar--task{background:color-mix(in srgb, var(--text) 78%, transparent);color:var(--accent-fg);border:0;border-radius:0;font-style:italic}.cgantt__bar--shift{background:color-mix(in srgb, var(--text-muted) 12%, var(--bg));border:1px solid var(--border-strong)}.cgantt__bar--planned{background:color-mix(in srgb, var(--info) 20%, var(--bg));border-color:var(--info);color:var(--text)}.cgantt__bar--working{background:color-mix(in srgb, var(--success) 25%, var(--bg));border-color:var(--success);color:var(--text)}.cgantt__bar--finished{background:color-mix(in srgb, var(--text-subtle) 15%, var(--bg));border-color:var(--text-subtle);color:var(--text-muted)}.cgantt__bar--aborted{background:color-mix(in srgb, var(--error) 20%, var(--bg));border-color:var(--error);color:var(--text)}.cgantt__bar--critical{outline:2px solid var(--warning);outline-offset:-2px}.cgantt__bar--warning:after{content:"!";color:var(--warning);background:var(--bg);border:1px solid var(--warning);border-radius:999px;justify-content:center;align-items:center;width:14px;height:14px;font-size:12px;font-weight:700;display:flex;position:absolute;top:-6px;right:4px}.cgantt__links{pointer-events:none;position:absolute;top:0;left:0}.cgantt__link{fill:none;stroke:var(--text-muted);stroke-width:1.5px;pointer-events:none}.cgantt__link--critical{stroke:var(--warning);stroke-width:2px}.cgantt__link--collapsed{stroke-dasharray:4 3;opacity:.7}.cgantt__link-hit{fill:none;stroke:#0000;stroke-width:12px;cursor:pointer;pointer-events:stroke}.cgantt__link-hit:hover+.cgantt__link{stroke:var(--error);stroke-width:2.5px}.cgantt__link-preview{fill:none;stroke:var(--accent);stroke-width:2px;stroke-dasharray:4 3;pointer-events:none}.cgantt__bar-linkhandle{background:var(--accent);border:2px solid var(--bg);cursor:crosshair;opacity:0;z-index:1;border-radius:50%;width:12px;height:12px;transition:opacity .12s;position:absolute;top:50%;right:-6px;transform:translateY(-50%)}.cgantt__bar:hover .cgantt__bar-linkhandle,.cgantt__bar-linkhandle:hover{opacity:1}.cgantt__bar--link-target{outline:2px solid var(--accent);outline-offset:1px;background:color-mix(in srgb, var(--accent) 12%, var(--bg))}.cgantt__bar--selected{outline:2px solid var(--accent);outline-offset:-2px}.cgantt__bar-resize{cursor:ew-resize;z-index:2;background:0 0;width:5px;position:absolute;top:0;bottom:0}.cgantt__bar-resize--start{left:0}.cgantt__bar-resize--end{right:0}.cgantt__bar:hover .cgantt__bar-resize{background:color-mix(in srgb, var(--accent) 50%, transparent)}.cgantt__link-popover{z-index:50;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius);flex-direction:column;gap:6px;min-width:200px;padding:8px;font-size:12px;display:flex;box-shadow:0 8px 24px #0000001f}.cgantt__link-popover-title{color:var(--text-muted);font-weight:600}.cgantt__link-popover-types{grid-template-columns:1fr 1fr;gap:4px;display:grid}.cgantt__link-popover-types button{text-align:left;padding:4px 6px;font-size:12px}.cgantt__link-popover-types button[aria-pressed=true]{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent)}.cgantt__link-popover-footer{border-top:1px solid var(--border);justify-content:space-between;gap:6px;padding-top:6px;display:flex}.cgantt__link-popover-delete{color:var(--error);border-color:var(--error)}.cgantt__link-popover-delete:hover:not(:disabled){background:color-mix(in srgb, var(--error) 8%, var(--bg))}.gantt__controls{flex-wrap:wrap;align-items:flex-end;gap:12px;padding:4px 0;display:flex}.gantt__controls>label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.gantt__zoom{align-items:center;gap:6px;margin:4px 0;display:flex}.gantt__zoom button{min-width:28px}.export__columns{margin:4px 0;padding-left:20px;font-size:13px}.export__columns li{align-items:center;gap:4px;padding:2px 0;display:flex}.import__columns{border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;gap:12px;margin:6px 0;padding:8px 12px;display:flex}.import__columns label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.import__errors{color:var(--error);margin:4px 0;padding-left:20px;font-size:13px}.panel--login{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);max-width:340px;margin:80px auto 0;padding:20px}.panel--login>h2{margin:0 0 12px;font-size:15px}.panel--login .form{flex-direction:column;align-items:stretch;gap:10px;padding:0}.panel--login .form label{gap:4px}.panel--login .form button[type=submit]{align-self:flex-start;padding:6px 14px}.cockpit__body{grid-template-columns:minmax(0,1fr);align-items:start;gap:12px;display:grid}.cockpit__body--drawer-open{grid-template-columns:minmax(0,1fr) 380px}.shift-drawer{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);align-self:start;max-height:calc(100vh - 60px);padding:12px 16px 16px;position:sticky;top:52px;overflow:auto}@media (width<=900px){.cockpit__body--drawer-open{grid-template-columns:minmax(0,1fr)}.shift-drawer{max-height:none;position:static}}.shift-drawer__header{border-bottom:1px solid var(--border);align-items:baseline;gap:8px;margin-bottom:12px;padding-bottom:8px;display:flex}.shift-drawer__header h2{margin:0;font-size:15px;font-weight:600}.shift-drawer__header button{color:var(--text-muted);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0 4px;font-size:18px}.shift-drawer__section h3{color:var(--text-muted);margin:16px 0 8px;font-size:12px;font-weight:600}.shift-drawer__field{color:var(--text-muted);flex-direction:column;gap:4px;margin-bottom:8px;font-size:12px;display:flex}.shift-drawer__field input,.shift-drawer__field select,.shift-drawer__field textarea{font-size:13px}.shift-drawer__footer{background:var(--bg);border-top:1px solid var(--border);justify-content:flex-end;gap:8px;margin:12px -16px -16px;padding:10px 16px;display:flex;position:sticky;bottom:0}.palette-backdrop{z-index:50;background:#00000059;justify-content:center;align-items:flex-start;padding-top:80px;display:flex;position:fixed;inset:0}.palette{background:var(--bg);border:1px solid var(--border-strong);border-radius:calc(var(--radius) * 2);flex-direction:column;width:560px;max-width:calc(100vw - 32px);max-height:calc(100vh - 120px);display:flex;overflow:hidden;box-shadow:0 16px 48px #0000002e}.palette__sr-title{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.palette__input-row{border-bottom:1px solid var(--border);padding:12px}.palette__input{border:1px solid var(--border-strong);border-radius:var(--radius);width:100%;font:inherit;color:var(--text);background:var(--bg);padding:8px 12px;font-size:15px}.palette__input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.palette__list{flex:1;margin:0;padding:4px 0;list-style:none;overflow-y:auto}.palette__empty{color:var(--text-muted);padding:12px 16px;font-size:13px}.palette__group{margin:0;padding:0;list-style:none}.palette__section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);padding:6px 16px 2px;font-size:11px;font-weight:600}.palette__item{cursor:pointer;color:var(--text);justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;font-size:14px;display:flex}.palette__item--active{background:var(--accent-subtle);color:var(--accent)}.palette__item-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.palette__item-shortcut{font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius);white-space:nowrap;flex-shrink:0;padding:1px 6px;font-size:11px}.view--with-rail{grid-template-columns:260px minmax(0,1fr);align-items:start;gap:16px;display:grid}.view__main{flex-direction:column;gap:24px;min-width:0;display:flex}.task-rail{border-right:1px solid var(--border);max-height:calc(100vh - 60px);padding-right:12px;position:sticky;top:52px;overflow-y:auto}.task-rail__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:8px;padding:4px 0 8px;display:flex}.task-rail__title{color:var(--text-muted);font-size:12px;font-weight:600}.task-rail__clear{padding:2px 8px;font-size:11px}.task-rail .task{border-left:2px solid var(--border);margin:0;padding:2px 0 2px 8px;font-size:13px}.task-rail .task__row{gap:4px}.task-rail .task__header{border-radius:var(--radius);padding:2px 4px}.task-rail .task__header[data-selected=true]{background:var(--accent-subtle);color:var(--accent)}.anchored-popover{z-index:60;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius);padding:10px 12px 12px;overflow:auto;box-shadow:0 8px 24px #0000001f}.anchored-popover__header{border-bottom:1px solid var(--border);align-items:baseline;gap:8px;margin-bottom:10px;padding-bottom:8px;display:flex}.anchored-popover__header h2{margin:0;font-size:13px;font-weight:600}.anchored-popover__header button{color:var(--text-muted);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0 4px;font-size:18px;line-height:1}.edit-form{flex-direction:column;gap:8px;display:flex}.edit-form__field{color:var(--text-muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.edit-form__field input,.edit-form__field select,.edit-form__field textarea{box-sizing:border-box;width:100%;min-width:0;font-size:13px}.edit-form__field textarea{resize:vertical}.edit-form__pair{grid-template-columns:1fr 1fr;gap:8px;display:grid}.edit-form__error{color:var(--error);margin:0;font-size:12px}.edit-form__footer{border-top:1px solid var(--border);justify-content:flex-end;gap:6px;margin-top:2px;padding-top:8px;display:flex}.edit-form__save{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.edit-form__save:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.task-subtask-popover .task__add-inline{flex-direction:column;align-items:stretch;gap:8px;padding:0;display:flex}.task-subtask-popover .task__add-inline label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.task-subtask-popover .task__add-inline input[type=text],.task-subtask-popover .task__add-inline input[type=number]{box-sizing:border-box;flex:none;width:100%;min-width:0}.plan-shift-popover .add-shift-form__row{grid-template-columns:1fr 1fr;align-items:end;gap:8px;display:grid}.plan-shift-popover .add-shift-form__field--task{grid-column:1/-1;min-width:0}.plan-shift-popover .add-shift-form__field--number input,.plan-shift-popover .add-shift-form__field input{box-sizing:border-box;width:100%}.plan-shift-popover .add-shift-form__submit{grid-column:1/-1}.add-shift-form{flex-direction:column;gap:8px;display:flex}.add-shift-form__row{flex-wrap:wrap;align-items:flex-end;gap:8px 12px;display:flex}.add-shift-form__field{color:var(--text-muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.add-shift-form__field--task{flex:240px;min-width:200px}.add-shift-form__task-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.add-shift-form__field--number input{width:80px}.add-shift-form__submit{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.add-shift-form__submit:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.add-shift-form__error{color:var(--error);margin:0;font-size:13px}.add-shift-form__result{color:var(--text-muted);margin:0;font-size:13px}.slot-staffing__list{flex-direction:column;gap:4px;margin:4px 0 0;padding:0;list-style:none;display:flex}.slot-staffing__row{grid-template-columns:48px minmax(0,1fr);align-items:center;gap:8px;padding:2px 0;font-size:12px;display:grid}.slot-staffing__number{color:var(--text-muted);font-family:var(--font-mono);font-size:11px}.slot-staffing__row select{width:100%}.slot-staffing__label{color:var(--text)}.plan-report{display:none}.print-dialog{background:var(--surface,#fff);border-radius:8px;flex-direction:column;gap:14px;width:min(520px,92vw);max-height:88vh;padding:20px 22px;display:flex;overflow-y:auto;box-shadow:0 18px 48px #0000003d}.print-dialog__title{margin:0;font-size:1.1rem}.print-dialog__group{border:1px solid var(--border,#ddd);border-radius:6px;flex-wrap:wrap;gap:6px 18px;margin:0;padding:8px 12px 10px;display:flex}.print-dialog__group legend{color:var(--text-muted,#666);padding:0 4px;font-size:.8rem}.print-dialog__group label{align-items:center;gap:6px;display:flex}.print-dialog__row{flex-wrap:wrap;gap:16px;display:flex}.print-dialog__row label{flex-direction:column;flex:1;gap:4px;min-width:180px;display:flex}.print-dialog__estimate{margin:0;font-weight:600}.print-dialog__note{color:var(--text-muted,#666);margin:0;font-size:.85rem}.print-dialog__actions{justify-content:flex-end;gap:8px;display:flex}@media print{.app,.palette-backdrop{display:none!important}.plan-report{color:#000;background:#fff;display:block}.plan-report,.plan-report *{-webkit-print-color-adjust:exact;print-color-adjust:exact}.plan-report__page{break-after:page;page-break-after:always}.plan-report__page:last-child{break-after:auto;page-break-after:auto}.plan-report__page--chart{break-inside:avoid}.plan-report table{break-inside:auto}.plan-report thead{display:table-header-group}.plan-report tr{break-inside:avoid;page-break-inside:avoid}}.plan-report__title-block h1{margin:0 0 4px;font-size:1.6rem}.plan-report__subtitle{margin:0;font-size:1rem}.plan-report__stamp{color:#444;margin:2px 0 18px;font-size:.85rem}.plan-report__running-title{color:#444;border-bottom:1px solid #ccc;margin:0 0 8px;padding-bottom:3px;font-size:.8rem}.plan-report__slice{font-style:italic}.plan-report__totals{grid-template-columns:repeat(3,1fr);gap:10px 24px;margin:0;display:grid}.plan-report__figure dt{color:#444;font-size:.78rem}.plan-report__figure dd{margin:0;font-size:1.25rem;font-weight:600}.plan-report__table{border-collapse:collapse;width:100%;font-size:.72rem}.plan-report__table th,.plan-report__table td{text-align:left;vertical-align:top;border:1px solid #bbb;padding:3px 6px}.plan-report__table thead th{background:#eee;font-weight:600}.plan-report__group-row th{background:#f5f5f5;font-weight:600}.plan-report__muted{color:#666;font-style:italic}.cgantt--print{border:0;border-radius:0;height:auto;position:relative;overflow:visible}.cgantt--print .cgantt__sidebar{flex:none;position:relative}.cgantt--print .cgantt__timeline{overflow:hidden}
