/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--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{--color-neutral-100:oklch(97% 0 none);--color-neutral-500:oklch(55.6% 0 none);--color-neutral-900:oklch(20.5% 0 none);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-medium:500;--font-weight-semibold:600;--radius-md:.375rem;--radius-xl:.75rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base;@layer legacy{:root{--text:#3f3b46;--text-h:#08060d;--bg:#fafafa;--surface:#fff;--border:#e5e4e7;--accent:#6b3bff;--accent-bg:#6b3bff1a;--closed-bg:#f1f0f3;--warn-bg:#fff4e5;--warn-text:#8a5300;--free-bg:#fff3b0;--free-text:#6b5300;--taken-bg:#d9f2e3;--taken-text:#1f7a4d;--swap-bg:#f8d7da;--swap-text:#a4151f;--error:#c0392b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font:15px/145% system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}h1,h2{color:var(--text-h);font-weight:600}button{font:inherit;cursor:pointer}.app-layout{flex-direction:column;min-height:100svh;display:flex}.app-header{border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:16px;padding:12px 20px;display:flex}.app-brand{align-items:center;gap:10px;margin-right:auto;text-decoration:none;display:flex}.app-logo{width:auto;height:22px;display:block}.app-brand-divider{color:var(--border);font-weight:300}.app-brand-name{color:var(--text-h);font-weight:700}.app-menu{position:relative}.app-menu-popup{background:var(--surface);border:1px solid var(--border);z-index:50;border-radius:6px;flex-direction:column;min-width:100%;display:flex;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 4px 12px #00000026}.app-menu-popup button{text-align:left;white-space:nowrap;border:0;border-radius:0;padding:10px 14px}.app-notice{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:8px 20px;display:flex}.app-main{flex:1;padding:16px;overflow-x:auto}.full-page-loading{justify-content:center;align-items:center;min-height:100svh;display:flex}.login-page{justify-content:center;align-items:center;min-height:100svh;padding:16px;display:flex}.login-form{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:12px;width:min(320px,100%);padding:24px;display:flex}.login-form label{flex-direction:column;gap:4px;font-size:14px;display:flex}.login-form input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:8px 10px}.form-error{color:var(--error);font-size:13px}.calendar-toolbar{align-items:center;gap:12px;margin-bottom:12px;display:flex}.calendar-toolbar__right{flex-direction:column;align-items:flex-end;gap:8px;margin-left:auto;display:flex}.calendar-toggle{align-items:center;gap:6px;font-size:14px;display:flex}.unit-filter{position:relative}.unit-filter__button{font-size:14px}.unit-filter__menu{z-index:20;background:var(--surface);min-width:180px;max-height:300px;color:inherit;border:1px solid #80808066;border-radius:8px;flex-direction:column;gap:6px;margin-top:4px;padding:8px;display:flex;position:absolute;top:100%;right:0;overflow-y:auto;box-shadow:0 4px 12px #00000026}.unit-filter__option{white-space:nowrap;align-items:center;gap:6px;font-size:14px;display:flex}.unit-filter__clear{font-size:13px}.quota-hint{background:var(--warn-bg);color:var(--warn-text);border-radius:8px;margin-bottom:12px;padding:8px 12px;font-size:14px;display:inline-block}.quota-hint--met{background:var(--accent-bg);color:var(--accent)}.calendar-grid{flex-direction:column;gap:16px;min-width:900px;display:flex}.calendar-week{border:1px solid var(--border);border-radius:8px;overflow:hidden}.calendar-week-header,.calendar-week-body{grid-template-columns:repeat(7,1fr);display:grid}.calendar-day-header{background:var(--surface);border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:6px 8px}.calendar-day-header-date{color:var(--text-h);align-items:baseline;gap:4px;font-size:12px;font-weight:700;display:flex}.calendar-day-header-periods{text-transform:uppercase;opacity:.6;justify-content:space-between;margin-top:2px;font-size:10px;font-weight:600;display:flex}.calendar-day-cell{border-right:1px solid var(--border);flex-direction:column;gap:8px;min-height:64px;padding:6px;display:flex}.slot-unit-group{flex-direction:column;gap:2px;display:flex}.slot-periods{gap:4px;display:flex}.slot-cell{text-align:left;border:1px solid var(--border);background:var(--surface);min-width:0;color:var(--text);border-radius:6px;flex-direction:column;flex:1;align-items:flex-start;gap:2px;padding:4px 6px;font-size:12px;display:flex;position:relative}.slot-cell--closed{background:var(--closed-bg);color:var(--text);opacity:.6;cursor:not-allowed}.slot-cell--closed:not(:disabled){cursor:pointer}.slot-cell--free{background:var(--free-bg);color:var(--free-text);border-color:var(--free-bg)}.slot-cell--taken{background:var(--taken-bg);color:var(--taken-text);border-color:var(--taken-bg)}.slot-cell--swap{background:var(--swap-bg);color:var(--swap-text);border-color:var(--swap-text)}.slot-swap-icon{width:13px;height:13px;color:var(--swap-text);position:absolute;top:3px;right:3px}.slot-note-icon{opacity:.8;width:12px;height:12px;position:absolute;top:3px;right:3px}.slot-cell--note .slot-swap-icon{right:18px}.slot-free-label{font-weight:600}.slot-closed-label{opacity:.8;font-weight:600}.slot-unit-name,.slot-vet-name{font-size:11px;font-weight:600}.modal-backdrop{background:#0006;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border-radius:12px;width:min(400px,100%);max-height:80vh;padding:20px;overflow-y:auto}.modal-assignment-list{flex-direction:column;gap:6px;margin:12px 0;padding:0;list-style:none;display:flex}.modal-assignment-list .empty{opacity:.6;font-size:13px}.slot-comments-title{margin:12px 0 6px;font-size:13px;font-weight:600}.slot-comment-list{flex-direction:column;gap:6px;max-height:180px;margin:0 0 8px;padding:0;list-style:none;display:flex;overflow-y:auto}.slot-comment-list .empty{opacity:.6;font-size:13px}.slot-comment{justify-content:space-between;align-items:flex-start;gap:8px;font-size:13px;display:flex}.slot-comment-body{flex-direction:column;min-width:0;display:flex}.slot-comment-text{overflow-wrap:anywhere;white-space:pre-wrap}.slot-comment-form{gap:8px;display:flex}.slot-comment-input{background:0 0;border:1px solid;border-radius:6px;flex:1;min-width:0;padding:6px 8px;font-size:13px}.level-badge{background:var(--accent-bg);color:var(--accent);border-radius:4px;padding:2px 6px;font-size:11px}.swap-badge{background:var(--swap-bg);color:var(--swap-text);border-radius:4px;align-items:center;gap:3px;padding:2px 6px;font-size:11px;font-weight:600;display:inline-flex}.swap-badge-icon{width:11px;height:11px}.modal-actions{gap:8px;margin-top:16px;display:flex}.slot-closed-notice{color:var(--warn-text);font-weight:600}.slot-no-room-notice{color:var(--muted-text,#6b7280);align-self:center;font-size:12px}.slot-admin-hint{opacity:.7;margin-top:8px;font-size:11px}.slot-admin-toggle{border-color:var(--warn-text);color:var(--warn-text);margin-left:auto}.slot-swap-toggle{border-color:var(--swap-text);color:var(--swap-text)}.admin-nav{border-bottom:1px solid var(--border);gap:4px;margin-bottom:16px;display:flex}.admin-nav-link{color:var(--text);opacity:.6;border-bottom:2px solid #0000;padding:8px 14px;font-size:14px;text-decoration:none}.admin-nav-link--active{opacity:1;border-bottom-color:var(--accent)}.admin-toolbar{align-items:center;gap:12px;margin-bottom:12px;display:flex}.admin-toolbar h2{margin:0 auto 0 0}.admin-table{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:8px;width:100%;overflow:hidden}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px;font-size:14px}.admin-table th{text-transform:uppercase;opacity:.6;font-size:12px}.admin-table tr:last-child td{border-bottom:none}.status-badge{background:var(--accent-bg);color:var(--accent);border-radius:4px;padding:2px 8px;font-size:12px;display:inline-block}.status-badge--ended{background:var(--closed-bg);color:var(--text);opacity:.7}.unit-form{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:12px;padding:16px;display:flex}.unit-form label{flex-direction:column;gap:4px;font-size:13px;display:flex}.unit-form input[type=text],.unit-form input[type=date],.unit-form input[type=email],.unit-form input[type=number],.unit-form select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:8px 10px}.unit-form input[type=number]{width:90px}.unit-form-checkbox{align-items:center;flex-direction:row!important;gap:6px!important}.unit-form-actions{gap:8px;display:flex}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:0}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.right-3{right:calc(var(--spacing) * 3)}.left-1\/2{left:50%}.z-50{z-index:50}.m-0{margin:0}.mt-1{margin-top:var(--spacing)}.mt-4{margin-top:calc(var(--spacing) * 4)}.ml-1{margin-left:var(--spacing)}.flex{display:flex}.grid{display:grid}.inline-flex{display:inline-flex}.h-4{height:calc(var(--spacing) * 4)}.h-7{height:calc(var(--spacing) * 7)}.max-h-48{max-height:calc(var(--spacing) * 48)}.w-4{width:calc(var(--spacing) * 4)}.w-7{width:calc(var(--spacing) * 7)}.w-\[calc\(100\%-2rem\)\]{width:calc(100% - 2rem)}.w-full{width:100%}.max-w-md{max-width:var(--container-md)}.flex-1{flex:1}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.overflow-auto{overflow:auto}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-border{border-color:var(--border)}.bg-\[var\(--swap-bg\)\]{background-color:var(--swap-bg)}.bg-accent{background-color:var(--accent)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-destructive{background-color:var(--error)}.bg-surface{background-color:var(--surface)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.p-0{padding:0}.p-5{padding:calc(var(--spacing) * 5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.py-2{padding-block:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-\[var\(--swap-text\)\]{color:var(--swap-text)}.text-destructive{color:var(--error)}.text-foreground{color:var(--text-h)}.text-muted-foreground{color:var(--text)}.text-neutral-500{color:var(--color-neutral-500)}.text-neutral-900{color:var(--color-neutral-900)}.text-white{color:var(--color-white)}.opacity-60{opacity:.6}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.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,)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\:bg-accent-soft:hover{background-color:var(--accent-bg)}.hover\:bg-accent\/90:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/90:hover{background-color:color-mix(in oklab, var(--accent) 90%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--error)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--error) 90%, transparent)}}.hover\:bg-neutral-100:hover{background-color:var(--color-neutral-100)}.hover\:opacity-100:hover{opacity:1}.hover\:brightness-95:hover{--tw-brightness:brightness(95%);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,)}}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-accent:focus-visible{outline-color:var(--accent)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}}.unit-drag-handle{cursor:grab;-webkit-user-select:none;user-select:none;opacity:.5;width:24px}.unit-row--dragging{opacity:.4}.unit-row--drop-target td{box-shadow:inset 0 2px 0 var(--accent,#2563eb)}.admin-hint{opacity:.6;margin:0 0 8px;font-size:13px}.link-button{color:var(--text);opacity:.75;background:0 0;border:0;align-self:center;padding:0;font-size:.85em;text-decoration:underline}.link-button:hover{opacity:1}.modal-assignment-list li{justify-content:space-between;align-items:center;gap:8px;display:flex}.modal-assignment-name{align-items:center;gap:6px;min-width:0;display:inline-flex}.modal-assignment-remove{height:auto;color:var(--warn-text);padding:2px 6px;font-size:12px}.slot-override-panel{border-top:1px solid var(--border);margin-top:16px;padding-top:12px}.slot-override-title{margin:0 0 8px;font-size:13px;font-weight:600}.slot-override-fields{flex-wrap:wrap;gap:8px;display:flex}.slot-override-fields label{flex-direction:column;gap:4px;font-size:12px;display:flex}.slot-override-fields input[type=number],.slot-override-fields input[type=text]{background:0 0;border:1px solid;border-radius:6px;width:140px;min-width:0;padding:6px 8px;font-size:13px}.slot-override-checkbox{align-self:flex-end;align-items:center;padding-bottom:6px;flex-direction:row!important}.slot-override-actions{gap:8px;margin-top:10px;display:flex}.password-field{display:flex;position:relative}.password-field input{flex:1;min-width:0;padding-right:38px}.password-reveal{width:36px;color:var(--text);opacity:.6;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:0;bottom:0;right:0}.password-reveal:hover{opacity:1}.password-reveal-icon{width:18px;height:18px}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@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}
