:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f7f9;--surface:#fff;--surface-2:#eef1f5;--border:#d9dee5;--border-strong:#818b9a;--text:#111827;--text-muted:#4b5563;--primary:#3949ab;--primary-bg:#3949ab;--primary-fg:#fff;--danger:#b91c1c;--danger-bg:#b91c1c;--danger-fg:#fff;--focus:#3949ab;--header-bg:#111827;--header-fg:#f3f4f6;--scrim:#0a0d128c;--good-fg:#166534;--good-bg:#dcfce7;--warn-fg:#92400e;--warn-bg:#fef3c7;--bad-fg:#991b1b;--bad-bg:#fee2e2;--info-fg:#1e40af;--info-bg:#dbeafe;--neutral-fg:#374151;--neutral-bg:#e5e7eb;--font-sans:inter, system-ui, -apple-system, "Segoe UI", roboto, sans-serif;--font-mono:ui-monospace, "JetBrains Mono", menlo, monospace;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-md:.875rem;--fs-lg:1rem;--fs-xl:1.25rem;--fs-2xl:1.5rem;--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-7:3rem;--r-sm:4px;--r-md:8px;--r-lg:12px;--r-full:999px;--shadow-menu:0 4px 16px #0000001f;--shadow-dialog:0 12px 40px #0000003d;--dur-fast:.12s;--dur-base:.18s;--header-h:52px;--sidebar-w:240px;--control-h:36px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1217;--surface:#171b22;--surface-2:#1e242d;--border:#2c3441;--border-strong:#6b7585;--text:#e6e9ee;--text-muted:#a0a9b8;--primary:#bac3ff;--primary-bg:#5c6bc0;--primary-fg:#fff;--danger:#f87171;--danger-bg:#f87171;--danger-fg:#1a0505;--focus:#bac3ff;--header-bg:#0b0e13;--header-fg:#f3f4f6;--good-fg:#86efac;--good-bg:#14301f;--warn-fg:#fcd34d;--warn-bg:#3a2a07;--bad-fg:#fca5a5;--bad-bg:#3f1414;--info-fg:#93c5fd;--info-bg:#14284a;--neutral-fg:#cbd2dc;--neutral-bg:#262d38}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1217;--surface:#171b22;--surface-2:#1e242d;--border:#2c3441;--border-strong:#6b7585;--text:#e6e9ee;--text-muted:#a0a9b8;--primary:#bac3ff;--primary-bg:#5c6bc0;--primary-fg:#fff;--danger:#f87171;--danger-bg:#f87171;--danger-fg:#1a0505;--focus:#bac3ff;--header-bg:#0b0e13;--header-fg:#f3f4f6;--good-fg:#86efac;--good-bg:#14301f;--warn-fg:#fcd34d;--warn-bg:#3a2a07;--bad-fg:#fca5a5;--bad-bg:#3f1414;--info-fg:#93c5fd;--info-bg:#14284a;--neutral-fg:#cbd2dc;--neutral-bg:#262d38}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--fs-md);color:var(--text);background:var(--bg);margin:0;line-height:1.4286}h1,h2,h3,h4,p{margin-block:0 var(--sp-3)}h1{font-size:var(--fs-xl);font-weight:600;line-height:1.4}h2,h3{font-size:var(--fs-lg);font-weight:600;line-height:1.5}a{color:var(--primary);text-underline-offset:2px}code,kbd,.mono{font-family:var(--font-mono)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}main:focus{outline:none}.skip-link{top:var(--sp-2);left:var(--sp-2);z-index:100;padding:var(--sp-2) var(--sp-4);color:var(--primary-fg);background:var(--primary-bg);border-radius:var(--r-md);position:absolute;transform:translateY(-200%)}.skip-link:focus{transform:none}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-contrast:more){:root{--border:var(--border-strong)}}.app-layout{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);grid-template-rows:var(--header-h) 1fr;grid-template-areas:"header header""sidebar main";min-height:100vh;display:grid}.app-loading{padding:var(--sp-6)}.app-header{z-index:30;align-items:center;gap:var(--sp-3);height:var(--header-h);padding:0 var(--sp-4);color:var(--header-fg);background:var(--header-bg);grid-area:header;display:flex;position:sticky;top:0}.app-header__menu{display:none}.app-header__brand{align-items:baseline;gap:var(--sp-3);white-space:nowrap;margin:0;display:flex}.app-header__title{font-size:var(--fs-lg);font-weight:700}.app-header__mode{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;opacity:.8;font-weight:600}.app-header__user{align-items:center;gap:var(--sp-3);min-width:0;margin-left:auto;display:flex}.app-header__workshop{align-items:center;gap:var(--sp-2);min-width:0;display:inline-flex}.app-header__workshop-name{text-overflow:ellipsis;white-space:nowrap;max-width:22ch;font-weight:600;overflow:hidden}.app-header__person{align-items:center;gap:var(--sp-2);min-width:0;display:inline-flex}.app-header__person-text{flex-direction:column;min-width:0;line-height:1.2;display:flex}.app-header__name{text-overflow:ellipsis;white-space:nowrap;max-width:20ch;font-weight:600;overflow:hidden}.avatar{width:32px;height:32px;font-size:var(--fs-xs);color:var(--primary-fg);background:var(--primary-bg);border-radius:var(--r-full);flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.role-chip{font-size:var(--fs-xs);opacity:.85;align-self:flex-start}.header-select{min-height:var(--control-h);max-width:24ch;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm)}.app-sidebar{top:var(--header-h);height:calc(100vh - var(--header-h));padding:var(--sp-4) var(--sp-3);background:var(--surface);border-right:1px solid var(--border);grid-area:sidebar;align-self:start;position:sticky;overflow-y:auto}.app-sidebar__group+.app-sidebar__group{margin-top:var(--sp-4)}.app-sidebar__group-label{margin:0 0 var(--sp-1);padding:0 var(--sp-2);font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.app-sidebar__list{margin:0;padding:0;list-style:none}.app-sidebar__link{align-items:center;gap:var(--sp-3);min-height:var(--control-h);padding:var(--sp-2);color:var(--text);border-radius:var(--r-md);transition:background var(--dur-fast) ease-out;text-decoration:none;display:flex}.app-sidebar__link svg{flex:none}.app-sidebar__link:hover{background:var(--surface-2)}.app-sidebar__link.active{color:var(--primary);background:var(--surface-2);box-shadow:inset 3px 0 0 var(--primary);font-weight:600}.app-main{min-width:0;padding:var(--sp-5);grid-area:main}.app-main__inner{max-width:1440px;margin:0 auto}.nav-scrim{display:none}.breadcrumbs{margin-bottom:var(--sp-3);font-size:var(--fs-sm);color:var(--text-muted)}.breadcrumbs ol{gap:var(--sp-1);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs li+li:before{margin-right:var(--sp-1);content:"/"}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.page-header__main{min-width:0}.page-header__title{overflow-wrap:anywhere;font-size:var(--fs-xl);margin:0;font-weight:600}.page-header__title:focus{outline:none}.page-header__actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.banner{margin:0 0 var(--sp-4);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md)}.banner--bad{color:var(--bad-fg);background:var(--bad-bg)}.login-page{width:min(400px,100vw - 2rem);margin:var(--sp-7) auto;padding:var(--sp-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg)}.login-brand{margin:0 0 var(--sp-2);font-size:var(--fs-2xl);color:var(--primary);font-weight:700}.login-title{margin-bottom:var(--sp-4)}.login-form{gap:var(--sp-2);flex-direction:column;display:flex}.login-form label{font-weight:600}.login-notice{padding:var(--sp-2) var(--sp-3);color:var(--warn-fg);background:var(--warn-bg);border-radius:var(--r-sm)}button,.button-link{justify-content:center;align-items:center;gap:var(--sp-2);min-height:var(--control-h);padding:0 var(--sp-4);font:inherit;color:var(--text);cursor:pointer;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);transition:background var(--dur-fast) ease-out;font-weight:500;text-decoration:none;display:inline-flex}button:hover:not(:disabled),.button-link:hover{background:var(--surface-2)}button:disabled{cursor:not-allowed;opacity:.55}button.button-primary,.button-link--primary{color:var(--primary-fg);background:var(--primary-bg);border-color:var(--primary-bg)}button.button-primary:hover:not(:disabled),.button-link--primary:hover{background:var(--primary-bg);filter:brightness(1.08)}button.button-danger{color:var(--danger-fg);background:var(--danger-bg);border-color:var(--danger-bg)}button.button-danger:hover:not(:disabled){background:var(--danger-bg);filter:brightness(1.08)}button.button-text{color:var(--primary);background:0 0;border-color:#0000}button.icon-button{width:var(--control-h);padding:0}button.icon-button--header,button.button-header{color:var(--header-fg);background:0 0;border-color:#0000}button.icon-button--header:hover:not(:disabled),button.button-header:hover:not(:disabled){background:#ffffff1f}input,select,textarea{min-height:var(--control-h);padding:var(--sp-2) var(--sp-3);font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm)}input[type=checkbox],input[type=radio]{min-height:0;accent-color:var(--primary-bg)}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--danger)}input:disabled,select:disabled,textarea:disabled{opacity:.6}@media (pointer:coarse){:root{--control-h:44px}}.stack-form{gap:var(--sp-4);flex-direction:column;max-width:720px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field label{font-weight:600}.field input,.field select,.field textarea,.stack-form textarea,.stack-form select{width:100%}.checkbox{align-items:center;gap:var(--sp-2);display:inline-flex}.checkbox-group,.checkbox-grid{gap:var(--sp-2) var(--sp-5);flex-wrap:wrap;display:flex}.form-error{min-height:1.25rem;color:var(--danger)}.form-saved{min-height:1.25rem;color:var(--good-fg)}.hint,small{font-size:var(--fs-sm);color:var(--text-muted)}.plain-fieldset{border:0;min-width:0;margin:0;padding:0}.button-row{gap:var(--sp-2);margin:var(--sp-3) 0;flex-wrap:wrap;display:flex}.filter-bar{align-items:center;gap:var(--sp-3);margin:0 0 var(--sp-3);flex-wrap:wrap;display:flex}.filter-field{align-items:center;gap:var(--sp-2);display:inline-flex}.state-message{padding:var(--sp-4) 0}.state-message--error{color:var(--danger)}.empty-state{align-items:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-4);color:var(--text-muted);text-align:center;background:var(--surface);border:1px dashed var(--border);border-radius:var(--r-md);flex-direction:column;display:flex}.empty-state__title{font-size:var(--fs-lg);color:var(--text);margin:0;font-weight:600}.error-state{align-items:center;gap:var(--sp-3);padding:var(--sp-4);color:var(--bad-fg);background:var(--bad-bg);border-radius:var(--r-md);flex-wrap:wrap;display:flex}.error-state p{flex:1;margin:0}.skeleton__block{height:40px;margin-bottom:var(--sp-2);background:linear-gradient(90deg, var(--surface-2) 25%, var(--border) 50%, var(--surface-2) 75%);border-radius:var(--r-sm);opacity:0;background-size:200% 100%;animation:0s linear .15s forwards skeleton-in,1.2s linear infinite skeleton-shimmer}.skeleton__block--title{width:40%;height:24px}@keyframes skeleton-in{to{opacity:1}}@keyframes skeleton-shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton__block{animation:0s linear .15s forwards skeleton-in}}.list-footer{margin:var(--sp-4) 0}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md)}.data-table{font-variant-numeric:tabular-nums;border-collapse:separate;border-spacing:0;width:100%}.data-table th,.data-table td{height:40px;padding:var(--sp-2) var(--sp-3);text-align:left;vertical-align:middle;overflow-wrap:anywhere;border-bottom:1px solid var(--border)}.data-table tbody tr:last-child td{border-bottom:0}.data-table thead th{top:var(--header-h);z-index:1;font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;background:var(--surface-2);font-weight:600;position:sticky}.data-table tbody tr:hover td{background:var(--surface-2)}.data-table .is-numeric{text-align:right}button.sort-button{min-height:0;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;background:0 0;border:0;padding:0}button.sort-button:hover:not(:disabled){color:var(--text);background:0 0}.diff-changed td,.diff-changed th{background:var(--warn-bg)}.badge-group{align-items:center;gap:var(--sp-2);display:inline-flex}.badge{max-width:18ch;height:22px;padding:0 var(--sp-2);font-size:var(--fs-xs);color:var(--neutral-fg);white-space:nowrap;background:var(--neutral-bg);border:1px solid color-mix(in srgb, currentcolor 40%, transparent);border-radius:var(--r-sm);align-items:center;gap:4px;font-weight:600;line-height:1;display:inline-flex}.badge svg{flex:none}.badge__label{text-overflow:ellipsis;overflow:hidden}.badge--good{color:var(--good-fg);background:var(--good-bg)}.badge--warn{color:var(--warn-fg);background:var(--warn-bg)}.badge--bad{color:var(--bad-fg);background:var(--bad-bg)}.badge--info{color:var(--info-fg);background:var(--info-bg)}.plain-list{padding-left:var(--sp-5)}.key-value{gap:var(--sp-1) var(--sp-4);grid-template-columns:max-content 1fr;display:grid}.key-value dt{color:var(--text-muted)}.key-value dd{overflow-wrap:anywhere;margin:0}.map-placeholder{margin:var(--sp-4) 0;padding:var(--sp-4);background:var(--surface-2);border:2px dashed var(--border-strong);border-radius:var(--r-md)}.editor-section{margin:var(--sp-5) 0;padding:var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md)}.hours-day{margin:var(--sp-2) 0;border:1px solid var(--border);border-radius:var(--r-sm)}.hours-row{align-items:end;gap:var(--sp-3);margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.hours-row label{font-size:var(--fs-sm);flex-direction:column;display:flex}.user-card{max-width:720px;padding:var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow-wrap:anywhere}.user-card+.user-card{margin-top:var(--sp-3)}.user-card blockquote{margin:var(--sp-2) 0;padding-left:var(--sp-3);border-left:3px solid var(--border-strong)}.dialog-backdrop{z-index:50;background:var(--scrim);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{width:min(440px,100vw - 2rem);max-height:calc(100vh - 2rem);padding:var(--sp-5);background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-dialog);animation:dialog-in var(--dur-base) ease-out;overflow-y:auto}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px)}}.dialog__title{margin-bottom:var(--sp-2)}.dialog__description{color:var(--text-muted)}.dialog form{gap:var(--sp-2);flex-direction:column;display:flex}.dialog__counter{align-self:flex-end}.dialog__actions{justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap;display:flex}.dialog__actions button{min-width:96px}@media (width<1024px){.app-main{padding:var(--sp-4)}.table-wrap{overflow-x:auto}.data-table thead th{position:static}.data-table th:first-child,.data-table td:first-child{background:var(--surface);position:sticky;left:0}}@media (width<1024px) and (width>=768px){:root{--sidebar-w:64px}.app-sidebar__text,.app-sidebar__group-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-sidebar__link{justify-content:center}}@media (width<768px){.app-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"header""main"}.app-header__menu{display:inline-flex}.app-header__mode,.app-header__person-text,.app-header__logout-text{display:none}.app-sidebar{top:var(--header-h);z-index:40;visibility:hidden;width:min(280px,85vw);height:auto;transition:transform var(--dur-base) ease-out, visibility var(--dur-base);position:fixed;bottom:0;left:0;transform:translate(-100%)}[data-nav-open=true] .app-sidebar{visibility:visible;transform:none}[data-nav-open=true] .nav-scrim{inset:var(--header-h) 0 0;z-index:35;background:var(--scrim);display:block;position:fixed}.data-table thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.data-table,.data-table tbody,.data-table tr,.data-table td{display:block}.table-wrap{background:0 0;border:0}.data-table tr{margin-bottom:var(--sp-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md)}.data-table td,.data-table td:first-child{gap:var(--sp-3);text-align:right;background:0 0;justify-content:space-between;height:auto;display:flex;position:static}.data-table td:before{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;content:attr(data-label);flex:none;font-weight:600}.data-table tbody tr:last-child td{border-bottom:1px solid var(--border)}.data-table tr td:last-child{border-bottom:0}.key-value{grid-template-columns:1fr}}@media (width<640px){.app-main{padding:var(--sp-3)}.breadcrumbs li:not([data-parent]){display:none}.breadcrumbs li[data-parent]:before{content:"←"}.breadcrumbs li+li[data-parent]:before{margin-right:var(--sp-1);content:"←"}.app-header__workshop-name,.header-select{max-width:14ch}}
