html.mobile-app,body.mobile-app{height:100%;overflow:hidden;overscroll-behavior:none}.m-shell{display:flex;flex-direction:column;height:100dvh;max-height:100dvh;background:var(--fe-bg);color:var(--fe-fg);padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0)}.m-shell__header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px 10px;border-bottom:1px solid var(--fe-border);background:var(--fe-surface-card)}.m-shell__brand{font-size:11px;font-weight:var(--fe-weight-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--fe-fg-muted)}.m-shell__screen{font-size:18px;font-weight:var(--fe-weight-bold);color:var(--fe-fg-strong);line-height:1.2;margin-top:2px}.m-shell__main{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.m-shell__nav{flex-shrink:0;display:flex;gap:4px;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0));border-top:1px solid var(--fe-border);background:var(--fe-surface-card)}.m-shell__nav-item{flex:1;border:none;background:transparent;color:var(--fe-fg-muted);font:inherit;font-size:12px;font-weight:var(--fe-weight-bold);padding:10px 8px;border-radius:var(--fe-radius-md);text-align:center}.m-shell__nav-item.is-active{background:color-mix(in srgb,var(--fe-accent) 12%,var(--fe-bg));color:var(--fe-accent)}.m-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--fe-border);border-radius:var(--fe-radius-md);background:var(--fe-surface-card);color:var(--fe-fg-strong);font:inherit;font-size:13px;font-weight:var(--fe-weight-bold);min-height:44px;padding:0 12px;cursor:pointer;-webkit-tap-highlight-color:transparent}.m-btn--icon{width:44px;padding:0;flex-shrink:0}.m-btn--chip{min-height:36px;font-size:12px;padding:0 12px}.m-btn--chip.is-active{border-color:var(--fe-accent);color:var(--fe-accent);background:color-mix(in srgb,var(--fe-accent) 10%,var(--fe-bg))}.m-loading,.m-empty{padding:28px 16px;text-align:center;color:var(--fe-fg-muted);font-size:14px}.m-empty--error{color:var(--fe-accent)}.m-loading{display:flex;align-items:center;justify-content:center;gap:8px}.spin{animation:m-spin .9s linear infinite}@keyframes m-spin{to{transform:rotate(360deg)}}.m-reception__sticky{position:sticky;top:0;z-index:5;padding:10px 12px 12px;background:color-mix(in srgb,var(--fe-bg) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--fe-border)}.m-reception__date-row{display:flex;align-items:center;gap:8px}.m-reception__date-field{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:44px;padding:6px 10px;border:1px solid var(--fe-border);border-radius:var(--fe-radius-md);background:var(--fe-surface-card);cursor:pointer}.m-reception__date-title{font-size:14px;font-weight:var(--fe-weight-bold);color:var(--fe-fg-strong);text-align:center;line-height:1.25;pointer-events:none}.m-reception__date-field input[type=date]{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;border:0;cursor:pointer;font-size:16px}.m-reception__tools{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;justify-content:center}.m-reception__holiday{margin:10px 12px 0;padding:10px 12px;border-radius:var(--fe-radius-md);border:1px solid var(--fe-accent);background:color-mix(in srgb,var(--fe-accent) 10%,var(--fe-bg));font-size:13px;font-weight:var(--fe-weight-bold)}.m-reception__list{list-style:none;margin:0;padding:12px 12px 24px;display:flex;flex-direction:column;gap:10px}.m-reception__room{border:1px solid var(--fe-border);border-radius:12px;background:var(--fe-surface-card);overflow:hidden}.m-reception__room-name{margin:0;padding:12px 14px 8px;font-size:15px;font-weight:var(--fe-weight-bold);color:var(--fe-fg-strong)}.m-reception__shifts{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--fe-border)}.m-reception__slot{padding:10px 12px 12px;min-height:72px}.m-reception__slot+.m-reception__slot{border-left:1px solid var(--fe-border)}.m-reception__slot-label{font-size:10px;font-weight:var(--fe-weight-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--fe-fg-muted);margin-bottom:6px}.m-reception__free{font-size:13px;color:var(--fe-fg-muted);font-style:italic;padding:4px 0}.m-reception__occupant{padding:6px 8px;border-radius:6px;border:1px solid var(--fe-border);border-left-width:3px;background:var(--fe-bg);margin-bottom:6px}.m-reception__occupant:last-child{margin-bottom:0}.m-reception__code{font-size:13px;font-weight:var(--fe-weight-bold);color:var(--fe-fg-strong)}.m-reception__course{font-size:12px;color:var(--fe-fg);margin-top:1px}.m-reception__meta{font-size:11px;color:var(--fe-fg-muted);margin-top:2px}.m-reception__also{font-size:11px;color:var(--fe-fg-muted);margin-top:4px}@media(max-width:360px){.m-reception__shifts{grid-template-columns:1fr}.m-reception__slot+.m-reception__slot{border-left:none;border-top:1px solid var(--fe-border)}}:root{--fe-color-red: #CC0605;--fe-color-red-rgb: 204, 6, 5;--fe-color-black: #1A1A1A;--fe-color-text: #2B2B2B;--fe-color-dark: #3D3D3D;--fe-color-medium: #7A7A7A;--fe-color-light: #D4D3D1;--fe-surface-base: #FFFFFF;--fe-surface-raised: #F7F7F6;--fe-surface-white: #FFFFFF;--fe-bg: var(--fe-surface-base);--fe-bg-raised: var(--fe-surface-raised);--fe-surface-card: var(--fe-surface-white);--fe-fg: var(--fe-color-text);--fe-fg-strong: var(--fe-color-black);--fe-fg-muted: var(--fe-color-medium);--fe-accent: var(--fe-color-red);--fe-accent-fg: var(--fe-surface-white);--fe-accent-text: var(--fe-color-red);--fe-border: #E8E7E5;--fe-font-base: Tahoma, Verdana, "Liberation Sans", Arial, sans-serif;--fe-weight-regular: 400;--fe-weight-bold: 700;--fe-size-xs: .75rem;--fe-size-sm: .875rem;--fe-size-base: 1rem;--fe-size-lg: 1.125rem;--fe-size-xl: 1.25rem;--fe-size-2xl: 1.5rem;--fe-size-3xl: 1.875rem;--fe-size-4xl: 2.25rem;--fe-size-5xl: 3rem;--fe-leading-tight: 1.2;--fe-leading-base: 1.4;--fe-leading-relaxed: 1.6;--fe-tracking-normal: 0;--fe-tracking-wide: .04em;--fe-space-0: 0;--fe-space-1: .25rem;--fe-space-2: .5rem;--fe-space-3: .75rem;--fe-space-4: 1rem;--fe-space-5: 1.5rem;--fe-space-6: 2rem;--fe-space-7: 3rem;--fe-space-8: 4rem;--fe-radius-none: 0;--fe-radius-sm: 4px;--fe-radius-md: 8px;--fe-radius-lg: 12px;--fe-radius-pill: 999px;--fe-shadow-none: none;--fe-shadow-sm: 0 1px 2px rgba(26, 26, 26, .06);--fe-shadow-md: 0 2px 8px rgba(26, 26, 26, .08);--fe-shadow-lg: 0 8px 24px rgba(26, 26, 26, .1);--fe-border-width: 1px;--fe-border-color: var(--fe-border);--fe-content-max: 1120px;--fe-opacity-watermark: .08;--fe-transition: .16s ease;color-scheme:light}:root[data-theme=dark],:root.theme-dark{color-scheme:only dark;--fe-bg: #1A1A1A;--fe-bg-raised: #242424;--fe-surface-card: #242424;--fe-fg: #F5F4F2;--fe-fg-strong: #FFFFFF;--fe-fg-muted: #A8A8A8;--fe-accent: var(--fe-color-red);--fe-accent-fg: #FFFFFF;--fe-accent-text: #F0625F;--fe-border: #3D3D3D}:root[data-theme=light],:root.theme-light{color-scheme:only light;--fe-bg: #FFFFFF;--fe-bg-raised: #F7F7F6;--fe-surface-card: #FFFFFF;--fe-fg: var(--fe-color-text);--fe-fg-strong: var(--fe-color-black);--fe-fg-muted: var(--fe-color-medium);--fe-accent: var(--fe-color-red);--fe-accent-fg: #FFFFFF;--fe-accent-text: var(--fe-color-red);--fe-border: #E8E7E5}html.theme-light,html.theme-light body,html.theme-light #root{background-color:#fff!important;color:#2b2b2b!important}html.theme-light .app-shell,html.theme-light .app-main,html.theme-light .login-split__form,html.theme-light .app-sidebar,html.theme-light .month-card,html.theme-light .modal-panel,html.theme-light .fe-card,html.theme-light .field,html.theme-light .fe-input,html.theme-light .fe-select,html.theme-light .fe-textarea{background:#fff!important;color:#2b2b2b!important}html.theme-light .app-sidebar__title,html.theme-light .disp,html.theme-light h1,html.theme-light h2,html.theme-light h3{color:#1a1a1a!important}html.theme-light .app-sidebar__meta,html.theme-light .fe-text-muted,html.theme-light .label,html.theme-light .app-sidebar__section-label,html.theme-light .app-sidebar__user{color:#7a7a7a!important}html.theme-light .app-sidebar__nav-btn:not(.is-active),html.theme-light .group-item:not(.is-active),html.theme-light .admin-nav-item:not(.is-active){color:#7a7a7a!important}html.theme-light .group-item.is-active,html.theme-light .app-sidebar__nav-btn:hover:not(.is-active),html.theme-light .group-item:hover,html.theme-light .fe-alert,html.theme-light .app-theme-toggle,html.theme-light .day-cell:hover{background:#f7f7f6!important}html.theme-light .month-card,html.theme-light .app-sidebar,html.theme-light .modal-panel,html.theme-light .field,html.theme-light .btn-ghost{border-color:#e8e7e5!important}html.theme-light .app-theme-toggle button.is-active{background:#fff!important;color:#1a1a1a!important}html.theme-light .btn-ghost{color:#1a1a1a!important;background:#fff!important}html.theme-light .day-cell{border-color:#e8e7e5!important;color:#2b2b2b!important}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:only dark;--fe-bg: #1A1A1A;--fe-bg-raised: #242424;--fe-surface-card: #242424;--fe-fg: #F5F4F2;--fe-fg-strong: #FFFFFF;--fe-fg-muted: #A8A8A8;--fe-accent: var(--fe-color-red);--fe-accent-fg: #FFFFFF;--fe-accent-text: #F0625F;--fe-border: #3D3D3D}}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--fe-font-base);font-size:var(--fe-size-base);font-weight:var(--fe-weight-regular);line-height:var(--fe-leading-base);color:var(--fe-fg);background-color:var(--fe-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,picture,svg,video{display:block;max-width:100%;height:auto}h1,h2,h3,h4,h5,h6{font-weight:var(--fe-weight-bold);line-height:var(--fe-leading-tight);color:var(--fe-fg-strong);text-align:left}h1{font-size:var(--fe-size-3xl)}h2{font-size:var(--fe-size-2xl)}h3{font-size:var(--fe-size-xl)}h4{font-size:var(--fe-size-lg)}h5{font-size:var(--fe-size-base)}h6{font-size:var(--fe-size-sm);text-transform:uppercase;letter-spacing:var(--fe-tracking-wide);color:var(--fe-fg)}h1,h2,h3,h4,h5,h6{font-style:normal}p{max-width:72ch}a{color:var(--fe-accent-text);text-decoration:underline;text-underline-offset:2px;transition:color var(--fe-transition)}a:hover{color:color-mix(in srgb,var(--fe-accent-text) 82%,var(--fe-fg))}a:focus-visible{outline:2px solid var(--fe-accent-text);outline-offset:2px;border-radius:2px}small,.fe-caption{font-size:var(--fe-size-xs);color:var(--fe-fg-muted)}strong,b{font-weight:var(--fe-weight-bold)}hr{border:0;border-top:var(--fe-border-width) solid var(--fe-border-color);margin:var(--fe-space-5) 0}code,kbd,pre{font-family:Consolas,Liberation Mono,monospace;font-size:.9em}code{background:var(--fe-bg-raised);padding:.15em .4em;border-radius:var(--fe-radius-sm);color:var(--fe-fg)}.fe-text-muted{color:var(--fe-fg-muted)}.fe-text-accent{color:var(--fe-accent-text)}.fe-text-strong{color:var(--fe-fg-strong)}.fe-eyebrow{font-size:var(--fe-size-xs);font-weight:var(--fe-weight-bold);text-transform:uppercase;letter-spacing:var(--fe-tracking-wide);color:var(--fe-accent-text)}.fe-container{max-width:var(--fe-content-max);margin-inline:auto;padding-inline:var(--fe-space-5)}.fe-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.fe-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--fe-space-2);font-family:var(--fe-font-base);font-size:var(--fe-size-base);font-weight:var(--fe-weight-bold);line-height:1;padding:var(--fe-space-3) var(--fe-space-5);border:var(--fe-border-width) solid transparent;border-radius:var(--fe-radius-md);cursor:pointer;text-decoration:none;transition:background-color var(--fe-transition),border-color var(--fe-transition),color var(--fe-transition)}.fe-btn:focus-visible{outline:2px solid var(--fe-color-black);outline-offset:2px}.fe-btn[disabled],.fe-btn.is-disabled{opacity:.5;cursor:not-allowed}.fe-btn--primary{background-color:var(--fe-accent);color:var(--fe-accent-fg)}.fe-btn--primary:hover{background-color:#a30504;color:#fff}.fe-btn--secondary{background-color:transparent;color:var(--fe-fg-strong);border-color:var(--fe-color-dark)}.fe-btn--secondary:hover{background-color:var(--fe-bg-raised)}.fe-btn--ghost{background-color:transparent;color:var(--fe-fg)}.fe-btn--ghost:hover{background-color:var(--fe-bg-raised)}.fe-btn--sm{font-size:var(--fe-size-sm);padding:var(--fe-space-2) var(--fe-space-4)}.fe-btn--lg{font-size:var(--fe-size-lg);padding:var(--fe-space-4) var(--fe-space-6)}.fe-btn--block{display:flex;width:100%}.fe-card{background-color:var(--fe-surface-card);border:var(--fe-border-width) solid var(--fe-border-color);border-radius:var(--fe-radius-lg);padding:var(--fe-space-5)}.fe-card--raised{box-shadow:var(--fe-shadow-md);border-color:transparent}.fe-card--muted{background-color:var(--fe-bg-raised);border-color:transparent}.fe-card__title{font-size:var(--fe-size-lg);font-weight:var(--fe-weight-bold);color:var(--fe-fg-strong);margin-bottom:var(--fe-space-2)}.fe-card__body{color:var(--fe-fg)}.fe-card--accent{border-top:3px solid var(--fe-accent)}.fe-badge{display:inline-flex;align-items:center;gap:var(--fe-space-1);font-size:var(--fe-size-xs);font-weight:var(--fe-weight-bold);line-height:1;padding:.35em .7em;border-radius:var(--fe-radius-pill);background-color:var(--fe-bg-raised);color:var(--fe-fg)}.fe-badge--accent{background-color:var(--fe-accent);color:#fff}.fe-badge--neutral{background-color:var(--fe-color-black);color:#fff}.fe-badge--outline{background-color:transparent;border:1px solid var(--fe-border-color);color:var(--fe-fg)}.fe-alert{display:flex;gap:var(--fe-space-3);padding:var(--fe-space-4);border-radius:var(--fe-radius-md);border-left:4px solid var(--fe-color-medium);background-color:var(--fe-bg-raised)}.fe-alert__title{font-weight:var(--fe-weight-bold);color:var(--fe-fg-strong)}.fe-alert--accent{border-left-color:var(--fe-accent)}.fe-alert--neutral{border-left-color:var(--fe-color-black)}.fe-field{display:flex;flex-direction:column;gap:var(--fe-space-2);margin-bottom:var(--fe-space-4)}.fe-label{font-size:var(--fe-size-sm);font-weight:var(--fe-weight-bold);color:var(--fe-fg)}.fe-input,.fe-select,.fe-textarea{font-family:var(--fe-font-base);font-size:var(--fe-size-base);color:var(--fe-fg);background-color:var(--fe-surface-card);border:var(--fe-border-width) solid var(--fe-border-color);border-radius:var(--fe-radius-sm);padding:var(--fe-space-3) var(--fe-space-4);width:100%;transition:border-color var(--fe-transition),box-shadow var(--fe-transition)}.fe-input:focus,.fe-select:focus,.fe-textarea:focus{outline:none;border-color:var(--fe-accent);box-shadow:0 0 0 3px rgba(var(--fe-color-red-rgb),.15)}.fe-input::placeholder,.fe-textarea::placeholder{color:var(--fe-fg-muted)}.fe-input[disabled],.fe-select[disabled],.fe-textarea[disabled]{background:var(--fe-bg-raised);cursor:not-allowed}.fe-textarea{min-height:6rem;resize:vertical}.fe-help{font-size:var(--fe-size-xs);color:var(--fe-fg-muted)}.fe-field--error .fe-input,.fe-field--error .fe-select,.fe-field--error .fe-textarea{border-color:var(--fe-accent)}.fe-field--error .fe-help{color:var(--fe-accent)}.fe-table{width:100%;border-collapse:collapse;font-size:var(--fe-size-sm)}.fe-table th,.fe-table td{text-align:left;padding:var(--fe-space-3) var(--fe-space-4);border-bottom:var(--fe-border-width) solid var(--fe-border-color)}.fe-table thead th{font-weight:var(--fe-weight-bold);color:var(--fe-fg-strong);border-bottom-width:2px}.fe-table tbody tr:hover{background-color:var(--fe-bg-raised)}.fe-table--striped tbody tr:nth-child(2n){background-color:var(--fe-bg)}.fe-arrow{display:inline-block;width:0;height:0;border-block:.5em solid transparent;border-inline-start:.7em solid var(--fe-accent)}.fe-arrow--black{border-inline-start-color:var(--fe-color-black)}.fe-arrow--white{border-inline-start-color:#fff}.fe-doc-header{display:flex;justify-content:flex-end;align-items:center;padding:var(--fe-space-5) var(--fe-space-6);border-bottom:var(--fe-border-width) solid var(--fe-border-color)}.fe-doc-header img{height:32px;width:auto}.fe-doc-footer{display:flex;justify-content:flex-start;align-items:center;gap:var(--fe-space-3);padding:var(--fe-space-4) var(--fe-space-6);border-top:var(--fe-border-width) solid var(--fe-border-color);font-size:var(--fe-size-xs);color:var(--fe-fg-muted)}.fe-watermark{position:absolute;right:-4%;bottom:-6%;width:45%;max-width:480px;opacity:var(--fe-opacity-watermark);transform:rotate(-15deg);pointer-events:none;z-index:0}.fe-nav{display:flex;gap:var(--fe-space-5);align-items:center}.fe-nav a{color:var(--fe-fg);text-decoration:none;font-size:var(--fe-size-sm);padding:var(--fe-space-2) 0;border-bottom:2px solid transparent}.fe-nav a:hover{color:var(--fe-fg-strong)}.fe-nav a[aria-current=page]{color:var(--fe-fg-strong);border-bottom-color:var(--fe-accent)}html,body,#root{min-height:100%;background-color:var(--fe-bg);color:var(--fe-fg)}.disp{font-family:var(--fe-font-base);font-weight:var(--fe-weight-bold);color:var(--fe-fg-strong)}.day-cell{transition:background-color var(--fe-transition)}.day-cell:hover{background:var(--fe-bg-raised);cursor:pointer}.day-holiday{background:var(--fe-bg-raised)}.day-holiday__label{margin:0 0 2px;padding:1px 3px;border-radius:var(--fe-radius-sm);background:var(--fe-surface-card);color:var(--fe-fg-strong);border:1px solid var(--fe-border);font-size:8.5px;font-weight:var(--fe-weight-bold);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.holidays-admin{max-width:1040px}.holidays-admin__create{display:grid;grid-template-columns:170px minmax(220px,1fr) 160px auto;gap:8px;align-items:center}.holidays-admin__helper{margin:6px 0 14px;color:var(--fe-fg-muted);font-size:12px}.holidays-admin__years{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.holidays-admin__year{min-height:36px;padding:6px 10px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--fe-border);border-radius:var(--fe-radius-pill);background:var(--fe-surface-card);color:var(--fe-fg);font:inherit;font-size:13px;cursor:pointer}.holidays-admin__year span{min-width:20px;padding:1px 5px;border-radius:var(--fe-radius-pill);background:var(--fe-bg-raised);color:var(--fe-fg-muted);font-size:11px;text-align:center}.holidays-admin__year:hover,.holidays-admin__year:focus-visible{border-color:var(--fe-fg-strong)}.holidays-admin__year.is-active{background:var(--fe-color-dark);border-color:var(--fe-color-dark);color:var(--fe-accent-fg)}.holidays-admin__year.is-active span{background:var(--fe-accent);color:var(--fe-accent-fg)}.holidays-admin__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:8px}.holidays-admin__item{min-width:0;display:grid;grid-template-columns:54px minmax(0,1fr) 112px 34px;gap:8px;align-items:end;padding:8px;border:1px solid var(--fe-border);border-radius:var(--fe-radius-md);background:var(--fe-surface-card)}.holidays-admin__date{align-self:center;display:flex;flex-direction:column;line-height:1.15}.holidays-admin__date strong{font-size:13px}.holidays-admin__date span,.holidays-admin__field>span{color:var(--fe-fg-muted);font-size:10.5px}.holidays-admin__field{min-width:0;display:flex;flex-direction:column;gap:3px}.holidays-admin__field .field{min-width:0;height:34px;margin:0;padding:5px 7px;font-size:12.5px}.holidays-admin__delete{width:34px;height:34px;display:inline-grid;place-items:center;border:1px solid var(--fe-border);border-radius:var(--fe-radius-sm);background:transparent;color:var(--fe-accent);cursor:pointer}.holidays-admin__delete:hover,.holidays-admin__delete:focus-visible{background:var(--fe-bg-raised);border-color:var(--fe-accent)}@media(max-width:760px){.holidays-admin__create{grid-template-columns:1fr}.holidays-admin__item{grid-template-columns:54px minmax(0,1fr) 34px}.holidays-admin__field--short{grid-column:2}.holidays-admin__delete{grid-column:3;grid-row:1}}.chip{font-size:10px;line-height:1.2;padding:1px 5px;border-radius:var(--fe-radius-sm);color:#fff;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.chip__markers{display:inline-block;margin-right:4px;padding:0 2px;border-radius:2px;background:#ffffffe0;color:#222;text-shadow:none;font-size:8px;font-weight:800;vertical-align:1px}.chip__hours{display:inline-block;margin-right:4px;color:inherit;font-size:9px;font-weight:900}.session-visual-legend{display:flex;align-items:center;flex-wrap:wrap;gap:5px 12px;padding:7px 10px;margin:-4px 0 12px;border:1px solid var(--fe-border);border-radius:var(--fe-radius-md);background:var(--fe-surface-card);font-size:11px;color:var(--fe-fg-muted)}.session-visual-legend__title{color:var(--fe-fg-strong);font-weight:800}.session-visual-legend__item{display:inline-flex;align-items:center;gap:4px}.session-visual-legend__text-sample{font-weight:900}.session-visual-legend__swatch{width:10px;height:10px;border:1px solid rgba(0,0,0,.18);border-radius:2px;-webkit-print-color-adjust:exact;print-color-adjust:exact}.session-visual-legend__marker,.export-print__marker{display:inline-block;padding:1px 3px;border-radius:2px;background:#222;color:#fff;font-size:8px;font-weight:800;line-height:1.2;-webkit-print-color-adjust:exact;print-color-adjust:exact}.tab-row{transition:transform var(--fe-transition),background-color var(--fe-transition)}.tab-row:hover{transform:translate(3px)}.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:var(--fe-space-2);background:transparent;border:var(--fe-border-width) solid var(--fe-border);border-radius:var(--fe-radius-md);padding:var(--fe-space-2) var(--fe-space-3);cursor:pointer;color:var(--fe-fg-strong);font-family:var(--fe-font-base);font-size:var(--fe-size-sm);transition:background-color var(--fe-transition),border-color var(--fe-transition)}.btn-ghost:hover{background:var(--fe-bg-raised)}.btn-solid{display:inline-flex;align-items:center;justify-content:center;gap:var(--fe-space-2);background:var(--fe-accent);color:var(--fe-accent-fg);border:none;border-radius:var(--fe-radius-md);padding:var(--fe-space-2) var(--fe-space-4);font-size:var(--fe-size-sm);font-weight:var(--fe-weight-bold);cursor:pointer;font-family:var(--fe-font-base);transition:background-color var(--fe-transition)}.btn-solid:hover{background:#a30504}.btn-solid--dark{background:var(--fe-color-black);color:#fff}.btn-solid--dark:hover{background:var(--fe-color-dark)}.field{width:100%;padding:var(--fe-space-2) var(--fe-space-3);border:var(--fe-border-width) solid var(--fe-border);border-radius:var(--fe-radius-sm);font-size:var(--fe-size-sm);margin-bottom:var(--fe-space-3);font-family:var(--fe-font-base);color:var(--fe-fg);background:var(--fe-surface-card);transition:border-color var(--fe-transition),box-shadow var(--fe-transition)}.field:focus{outline:none;border-color:var(--fe-accent);box-shadow:0 0 0 3px rgba(var(--fe-color-red-rgb),.15)}.label{font-size:var(--fe-size-xs);color:var(--fe-fg-muted);display:block;margin-bottom:var(--fe-space-1);font-weight:var(--fe-weight-bold)}.app-shell{display:flex;min-height:100vh;background:var(--fe-bg);color:var(--fe-fg)}.app-sidebar{--sb-w: 292px;width:var(--sb-w);min-height:100vh;max-height:100vh;display:flex;flex-direction:column;flex-shrink:0;background:var(--fe-surface-card);border-right:var(--fe-border-width) solid var(--fe-border);color:var(--fe-fg);transition:width var(--fe-transition)}.app-sidebar__header{padding:var(--fe-space-4) var(--fe-space-4) var(--fe-space-3);border-bottom:var(--fe-border-width) solid var(--fe-border);flex-shrink:0}.app-sidebar__header-row{display:flex;align-items:flex-start;gap:8px}.app-sidebar__brand{flex:1;min-width:0}.app-sidebar__collapse-btn{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:var(--fe-border-width) solid var(--fe-border);border-radius:var(--fe-radius-md);background:transparent;color:var(--fe-fg-muted);cursor:pointer;transition:background-color var(--fe-transition),color var(--fe-transition)}.app-sidebar__collapse-btn:hover{background:var(--fe-bg-raised);color:var(--fe-fg-strong)}.app-sidebar__title{color:var(--fe-fg-strong);font-size:var(--fe-size-lg);font-weight:var(--fe-weight-bold);font-family:var(--fe-font-base);line-height:var(--fe-leading-tight)}.app-sidebar__meta{color:var(--fe-fg-muted);font-size:var(--fe-size-xs);margin-top:var(--fe-space-1)}.app-sidebar__nav{display:flex;flex-direction:column;gap:2px;padding:var(--fe-space-3);border-bottom:var(--fe-border-width) solid var(--fe-border);flex-shrink:0}.app-sidebar__nav-btn{display:flex;align-items:center;gap:var(--fe-space-2);width:100%;padding:9px 10px;border:none;border-radius:var(--fe-radius-md);background:transparent;color:var(--fe-fg-muted);font-family:var(--fe-font-base);font-size:var(--fe-size-sm);font-weight:var(--fe-weight-bold);text-align:left;cursor:pointer;transition:background-color var(--fe-transition),color var(--fe-transition)}.app-sidebar__nav-btn:hover{background:var(--fe-bg-raised);color:var(--fe-fg-strong)}.app-sidebar__nav-btn.is-active{background:var(--fe-accent);color:var(--fe-accent-fg)}.app-sidebar__nav-btn .nav-badge{margin-left:auto;min-width:1.4em;padding:1px 6px;border-radius:var(--fe-radius-pill);background:#ffffff38;font-size:11px;text-align:center}.app-sidebar__nav-btn:not(.is-active) .nav-badge{background:var(--fe-bg-raised);color:var(--fe-fg-strong)}.app-sidebar__body{flex:1;min-height:0;overflow-y:auto;padding:var(--fe-space-2) var(--fe-space-2) var(--fe-space-3)}.app-sidebar__section-label{font-size:10px;font-weight:var(--fe-weight-bold);text-transform:uppercase;letter-spacing:var(--fe-tracking-wide);color:var(--fe-fg-muted);padding:var(--fe-space-2) var(--fe-space-2) var(--fe-space-1)}.app-sidebar__footer{flex-shrink:0;padding:var(--fe-space-3);border-top:var(--fe-border-width) solid var(--fe-border);display:flex;flex-direction:column;gap:var(--fe-space-2)}.app-sidebar__save{display:flex;align-items:center;justify-content:space-between;gap:8px}.app-sidebar__save-status{font-size:12px;min-width:0}.app-theme-toggle{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:3px;background:var(--fe-bg-raised);border-radius:var(--fe-radius-md)}.app-theme-toggle button{border:none;background:transparent;color:var(--fe-fg-muted);font-family:var(--fe-font-base);font-size:12px;font-weight:var(--fe-weight-bold);padding:7px 8px;border-radius:calc(var(--fe-radius-md) - 2px);cursor:pointer}.app-theme-toggle button.is-active{background:var(--fe-surface-card);color:var(--fe-fg-strong);box-shadow:var(--fe-shadow-sm)}.app-sidebar__user{font-size:var(--fe-size-xs);color:var(--fe-fg-muted);padding:0 2px}.app-sidebar.is-collapsed{--sb-w: 64px}.app-sidebar.is-collapsed .app-sidebar__header{padding:var(--fe-space-3) var(--fe-space-2)}.app-sidebar.is-collapsed .app-sidebar__brand,.app-sidebar.is-collapsed .app-sidebar__body,.app-sidebar.is-collapsed .app-sidebar__user,.app-sidebar.is-collapsed .app-sidebar__nav-label,.app-sidebar.is-collapsed .app-sidebar__theme-label,.app-sidebar.is-collapsed .app-sidebar__save-status,.app-sidebar.is-collapsed .app-sidebar__save-label,.app-sidebar.is-collapsed .nav-badge{display:none}.app-sidebar.is-collapsed .app-sidebar__header-row{justify-content:center}.app-sidebar.is-collapsed .app-sidebar__nav{padding:var(--fe-space-2);align-items:stretch}.app-sidebar.is-collapsed .app-sidebar__nav-btn{justify-content:center;padding:10px 0}.app-sidebar.is-collapsed .app-sidebar__footer{padding:var(--fe-space-2)}.app-sidebar.is-collapsed .app-sidebar__save{justify-content:center}.app-sidebar.is-collapsed .app-sidebar__save .fe-btn{padding-left:8px;padding-right:8px}.app-sidebar.is-collapsed .app-theme-toggle{grid-template-columns:1fr}.app-sidebar.is-collapsed .app-theme-toggle button{padding:8px 0}.app-sidebar.is-collapsed .app-theme-toggle button svg{margin-right:0!important}.app-main{flex:1;min-width:0;padding:var(--fe-space-7) var(--fe-space-6);background:var(--fe-bg);color:var(--fe-fg)}.group-item{display:flex;align-items:center;gap:var(--fe-space-2);border-radius:0 var(--fe-radius-sm) var(--fe-radius-sm) 0;padding:8px 10px;margin-bottom:3px;cursor:pointer;background:transparent}.group-item:hover,.group-item.is-active{background:var(--fe-bg-raised)}.group-item__name{flex:1;color:var(--fe-fg-strong);font-size:var(--fe-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-item__meta{color:var(--fe-fg-muted);font-size:11px;margin-left:6px}.group-item__rename{flex:1;background:var(--fe-bg);color:var(--fe-fg-strong);border:var(--fe-border-width) solid var(--fe-border);border-radius:var(--fe-radius-sm);padding:3px 6px;font-size:12px;font:inherit}.tree-school{font-weight:var(--fe-weight-bold);font-size:12px}.tree-course{font-size:12.5px;padding:6px 8px;display:flex;align-items:center;gap:6px}.tree-course__count{color:var(--fe-fg-muted);margin-left:6px;font-size:11px}.admin-nav-item{display:flex;align-items:center;gap:var(--fe-space-2);width:100%;padding:9px 10px;border:0;border-radius:var(--fe-radius-sm);background:transparent;cursor:pointer;font-family:inherit;font-size:var(--fe-size-sm);text-align:left;color:var(--fe-fg-muted)}.admin-nav-item:hover{background:var(--fe-bg-raised);color:var(--fe-fg-strong)}.admin-nav-item.is-active{background:var(--fe-accent);color:var(--fe-accent-fg)}.admin-nav-item:focus-visible{outline:2px solid var(--fe-accent);outline-offset:2px}.month-card{background:var(--fe-surface-card);border:var(--fe-border-width) solid var(--fe-border);border-radius:var(--fe-radius-lg);padding:var(--fe-space-3);break-inside:avoid}.modal-backdrop{position:fixed;inset:0;background:#1a1a1a73;display:flex;align-items:center;justify-content:center;z-index:50}.modal-panel{background:var(--fe-surface-card);border-radius:var(--fe-radius-lg);padding:var(--fe-space-5);box-shadow:var(--fe-shadow-lg);border:var(--fe-border-width) solid var(--fe-border)}.login-split{min-height:100vh;display:flex}.login-split__brand{width:420px;flex-shrink:0;background:var(--fe-color-black);color:#fff;padding:var(--fe-space-7) var(--fe-space-6);display:flex;flex-direction:column;justify-content:center}.login-split__form{flex:1;background:var(--fe-bg);display:flex;align-items:center;justify-content:center;padding:var(--fe-space-6)}.login-split__card{width:100%;max-width:360px}.fe-eyebrow{font-size:var(--fe-size-xs);font-weight:var(--fe-weight-bold);text-transform:uppercase;letter-spacing:var(--fe-tracking-wide);color:var(--fe-accent-text);margin-bottom:var(--fe-space-2)}@media(max-width:768px){.app-shell{flex-direction:column}.app-sidebar{width:100%;min-height:auto;max-height:none}.app-sidebar.is-collapsed{--sb-w: 100%;width:100%}.app-sidebar.is-collapsed .app-sidebar__brand{display:block}.app-sidebar.is-collapsed .app-sidebar__body{display:none}.app-sidebar.is-collapsed .app-sidebar__nav{display:flex;flex-direction:row;flex-wrap:wrap;gap:4px}.app-sidebar.is-collapsed .app-sidebar__nav-btn{width:auto;flex:1 1 auto;min-width:44px;padding:10px}.app-sidebar.is-collapsed .app-theme-toggle{grid-template-columns:1fr 1fr}.app-sidebar.is-collapsed .app-sidebar__theme-label{display:inline}.app-sidebar__body{max-height:42vh}.login-split{flex-direction:column}.login-split__brand{width:100%;padding:var(--fe-space-5)}}@media print{.no-print{display:none!important}html,body{background:#fff!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;margin:0!important;padding:0!important}body.exporting>*:not(.export-print){display:none!important}body.exporting .export-print{display:block!important;position:static!important;left:auto!important;top:auto!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;background:#fff!important;color:#1a1a1a!important;min-height:0!important;height:auto!important;overflow:visible!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}body.exporting .export-print *{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.export-print{display:none}.export-print__header{margin-bottom:10px;padding-bottom:8px;border-bottom:1.5pt solid #1a1a1a}.export-print__brand{font-size:9pt;text-transform:uppercase;letter-spacing:.06em;color:#666;margin-bottom:2px}.export-print__title{font-size:14pt;font-weight:700;margin:0 0 6px;line-height:1.2;color:#1a1a1a}.export-print__title-sep{margin:0 6px;font-weight:400;color:#888}.export-print__codes{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:9.5pt;color:#222;margin-bottom:6px}.export-print__codes strong{font-weight:700}.export-print__meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:8.5pt;color:#333}.export-print__meta strong{font-weight:700}.export-print__empty{font-size:11pt;color:#666;margin-top:24px}.annual-program{font-family:Arial,Helvetica,sans-serif}.annual-program__cover{display:grid;grid-template-columns:1fr;gap:2px 16px;align-items:end;margin-bottom:9mm;padding-bottom:5mm;border-bottom:2pt solid #cc0605}.annual-program__cover .export-print__brand{grid-column:1 / -1}.annual-program__cover h1{margin:0;font-size:20pt;line-height:1.1;color:#1a1a1a}.annual-program__cover p{grid-column:1 / -1;margin:4px 0 0;font-size:9pt;color:#555}.annual-program__school{margin-bottom:8mm}.annual-program__school-head{display:grid;grid-template-columns:1fr auto;gap:0 12px;align-items:end;margin-bottom:5mm;padding:3.5mm 4mm;background:#1f1f1f;color:#fff;break-after:avoid;page-break-after:avoid}.annual-program__school-head>span{grid-column:1 / -1;margin-bottom:1px;font-size:7.5pt;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#d0d0d0}body.exporting .annual-program__school-head h2{margin:0;font-size:16pt;line-height:1.15;color:#fff!important}.annual-program__school-head strong{font-size:8.5pt;font-weight:600;color:#e2e2e2}.annual-program__courses{display:flex;flex-direction:column;gap:5mm}.annual-program__course{break-inside:avoid}.annual-program__course-head{display:flex;justify-content:space-between;gap:12px;align-items:end;margin-bottom:2mm;padding-bottom:1.5mm;border-bottom:1pt solid #cc0605}.annual-program__course-head>div:first-child{min-width:0}.annual-program__course-head span{display:block;margin-bottom:1px;font-size:7pt;font-weight:800;letter-spacing:.08em;color:#cc0605}.annual-program__course-head h3{margin:0;font-size:11.5pt;line-height:1.2;color:#1a1a1a}.annual-program__course-meta{flex:0 0 auto;font-size:7.5pt;color:#555;text-transform:capitalize}.annual-program__editions{display:flex;flex-direction:column}.annual-program__edition{display:grid;grid-template-columns:5px minmax(120px,1.15fr) minmax(90px,.8fr) auto;gap:7px;align-items:center;min-height:9mm;padding:1.5mm 1mm;border-bottom:.4pt solid #d8d8d8;break-inside:avoid}.annual-program__dot{width:4px;height:22px;border-radius:2px}.annual-program__edition-main{min-width:0;display:flex;flex-direction:column;gap:1px}.annual-program__edition-main strong{font-size:9pt;color:#1a1a1a}.annual-program__edition-main span,.annual-program__edition-trainer{font-size:7.5pt;color:#555}.annual-program__edition-tags{display:flex;justify-content:flex-end;gap:3px}.annual-program__edition-tags span{padding:1.2mm 1.8mm;border:.5pt solid #aaa;border-radius:10px;font-size:6.5pt;color:#333;text-transform:capitalize;white-space:nowrap}.annual-program__footer{margin-top:7mm;padding-top:3mm;border-top:.5pt solid #bbb;font-size:7pt;color:#666}.export-print__months{display:grid;gap:8px;margin-bottom:10px}.export-month{break-inside:avoid;border:.5pt solid #ccc;border-radius:3px;padding:4px;background:#fff}.export-month__name{font-size:9pt;font-weight:700;margin-bottom:3px;color:#1a1a1a}.export-month__dow,.export-month__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.export-month__dow{margin-bottom:1px}.export-month__dow>div{font-size:6.5pt;text-align:center;color:#888;font-weight:600}.export-day{min-height:30px;border:.4pt solid rgba(0,0,0,.18);border-radius:2px;padding:1px 2px;background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}.export-day--empty{border:none;background:transparent;min-height:0}.export-day--holiday{background-image:repeating-linear-gradient(135deg,transparent 0px,transparent 2px,rgba(0,0,0,.08) 2px,rgba(0,0,0,.08) 4px)}.export-day--weekend{background-image:repeating-linear-gradient(90deg,transparent 0px,transparent 3px,rgba(0,0,0,.04) 3px,rgba(0,0,0,.04) 4px)}.export-day__num{font-size:7pt;font-weight:700;line-height:1.1}.export-day__markers{float:right;padding:0 2px;border-radius:1px;background:#ffffffd1;color:#222;font-size:4.8pt;font-weight:800;line-height:1.25;-webkit-print-color-adjust:exact;print-color-adjust:exact}.export-day__label{font-size:5.5pt;line-height:1.15;font-weight:600;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.export-day__label--location,.export-print__text-sample{font-weight:800;-webkit-print-color-adjust:exact;print-color-adjust:exact}.export-day__more{font-size:5pt;opacity:.85}.export-chip{font-size:5.5pt;line-height:1.15;padding:0 2px;border-radius:1px;color:#fff;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.export-print__legend{margin-top:8px;padding-top:6px;border-top:.5pt solid #ccc;break-inside:avoid}.export-print__legend-title{font-size:8pt;font-weight:700;margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em;color:#444}.export-print__legend-items{display:flex;flex-wrap:wrap;gap:4px 14px}.export-print__legend-item{display:inline-flex;align-items:center;gap:5px;font-size:8pt;color:#333}.export-print__legend-item--muted{color:#888;font-style:italic}.export-print__text-sample{min-width:12px;font-size:8pt;font-weight:900;text-align:center}.export-print__swatch{width:12px;height:12px;border-radius:2px;flex-shrink:0;border:.4pt solid rgba(0,0,0,.2);-webkit-print-color-adjust:exact;print-color-adjust:exact}.export-table{width:100%;border-collapse:collapse;font-size:8.5pt;margin-top:8px}.export-table th,.export-table td{border:.4pt solid #ccc;padding:3px 5px;text-align:left;vertical-align:top}.export-table th{background:#f3f3f3;font-weight:700;font-size:7.5pt;text-transform:uppercase;letter-spacing:.03em}.export-table__num{text-align:right;font-variant-numeric:tabular-nums}.export-table tbody tr:nth-child(2n){background:#fafafa}.export-swatch{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;vertical-align:middle}.scope-presentation-toggle{display:inline-flex;gap:4px}.editions-board__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.editions-board__actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.editions-board__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.editions-board__card{text-align:left;cursor:pointer;padding:12px 14px;background:var(--fe-surface-card, var(--fe-bg-raised));border:1px solid var(--fe-border);border-left-width:4px;border-radius:8px;font:inherit;color:inherit;display:flex;flex-direction:column;gap:6px}.editions-board__card.is-conflict{border-color:var(--fe-accent)}.editions-board__card:hover{background:var(--fe-bg-raised)}.editions-board__card-top{display:flex;align-items:baseline;gap:8px}.editions-board__code{font-weight:700;font-size:14px}.export-menu{position:relative;display:inline-block}.export-menu__panel{position:absolute;right:0;top:calc(100% + 4px);min-width:200px;background:var(--fe-surface-card);border:1px solid var(--fe-border);border-radius:var(--fe-radius-md);box-shadow:var(--fe-shadow-md, 0 8px 24px rgba(0, 0, 0, .12));padding:4px;z-index:40}.export-menu__item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:none;background:transparent;padding:8px 10px;border-radius:6px;font:inherit;font-size:13px;color:var(--fe-fg);cursor:pointer}.export-menu__item:hover{background:var(--fe-bg-raised)}.export-menu__item:disabled{opacity:.45;cursor:not-allowed}.export-menu__hint{font-size:11px;color:var(--fe-fg-muted);padding:6px 10px 8px;line-height:1.35}.context-nav__search{position:relative;margin:0 4px 10px}.context-nav__search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--fe-fg-muted);pointer-events:none}.context-nav__search-input{margin-bottom:0!important;padding-left:32px!important}.context-nav__hits,.context-nav__list{display:flex;flex-direction:column;gap:2px}.context-nav__crumb{display:flex;align-items:center;gap:8px;margin:0 4px 8px}.context-nav__back{display:inline-flex;align-items:center;gap:2px;border:none;background:transparent;color:var(--fe-accent-text);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;padding:0}.context-nav__crumb-path{font-size:12.5px;font-weight:700;color:var(--fe-fg-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.context-nav__item,.context-nav__hit{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;border:none;background:transparent;border-radius:var(--fe-radius-md);padding:9px 10px;cursor:pointer;color:var(--fe-fg);font-family:var(--fe-font-base)}.context-nav__item:hover,.context-nav__hit:hover{background:var(--fe-bg-raised)}.context-nav__item.is-active,.context-nav__hit.is-active{background:var(--fe-bg-raised);box-shadow:inset 3px 0 0 var(--fe-accent)}.context-nav__item--group,.context-nav__hit{border-left:3px solid transparent;border-radius:0 var(--fe-radius-md) var(--fe-radius-md) 0}.context-nav__item-title,.context-nav__hit-code{font-size:13px;font-weight:700;color:var(--fe-fg-strong)}.context-nav__item-meta,.context-nav__hit-meta{font-size:11px;color:var(--fe-fg-muted)}.context-nav__shift{margin-left:6px;font-weight:400;color:var(--fe-fg-muted);font-size:11px}.context-nav__badge{display:inline-block;margin-left:6px;padding:1px 5px;border-radius:3px;font-size:9px;font-weight:700;letter-spacing:.05em;background:var(--fe-color-black, #1a1a1a);color:#fff;vertical-align:1px}.context-nav__family{display:flex;flex-direction:column;gap:2px}.context-nav__twist{display:inline-flex;vertical-align:-2px;margin-right:2px;color:var(--fe-fg-muted)}.context-nav__mods{display:flex;flex-direction:column;gap:2px;padding-left:12px;margin-bottom:4px;border-left:2px solid var(--fe-border);margin-left:8px}.context-nav__item--mod{padding-left:10px}.context-nav__item.is-expanded{background:var(--fe-bg-raised)}.program-editor{width:100%;max-width:none;min-height:calc(100vh - 48px)}.program-editor__header{display:flex;align-items:flex-start;gap:14px;margin-bottom:28px;padding-bottom:18px;border-bottom:1px solid var(--fe-border)}.program-editor__header-text{flex:1;min-width:0}.program-editor__header .disp{font-size:28px;line-height:1.15}.program-editor__lead{font-size:14px;color:var(--fe-fg-muted);margin-top:6px;max-width:72ch;line-height:1.45}.program-editor__panel{background:transparent;border:none;border-radius:0;padding:0;margin-bottom:24px;width:100%}.program-editor__toolbar{display:flex;gap:10px;margin-bottom:16px;max-width:640px}.program-editor__split{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.85fr);gap:36px;align-items:start}.program-editor__col{min-width:0}.program-editor__col-title{font-size:16px;font-weight:700;margin-bottom:14px;color:var(--fe-fg-strong)}.program-editor__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.program-editor__list--stack{display:flex;flex-direction:column;gap:8px}.program-editor__row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid var(--fe-border);background:var(--fe-surface-card);border-radius:var(--fe-radius-md);padding:14px 16px;cursor:pointer;font-family:var(--fe-font-base);color:var(--fe-fg)}.program-editor__row:hover{background:var(--fe-bg-raised)}.program-editor__inline{flex:1;border:none;background:transparent;font:inherit;font-weight:700;color:var(--fe-fg-strong);min-width:0}.program-form{width:100%;max-width:none}.program-form--page,.program-form--panel{display:flex;flex-direction:column;gap:0;width:100%}.program-form__lead{font-size:14px;color:var(--fe-fg-muted);margin:0 0 8px;max-width:80ch;line-height:1.5}.program-form__section{padding:28px 0;border-top:1px solid var(--fe-border)}.program-form__section:first-of-type,.program-form__section--flush{border-top:none;padding-top:8px}.program-form__section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:16px}.program-form__section-title{font-size:18px;font-weight:700;color:var(--fe-fg-strong);line-height:1.2}.program-form__section-hint{font-size:13px;color:var(--fe-fg-muted);margin:-8px 0 16px;max-width:72ch;line-height:1.45}.program-form__cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 40px;align-items:start}.program-form__cols--3{grid-template-columns:repeat(3,minmax(0,1fr))}.program-form__fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px}.program-form__fields--3{grid-template-columns:repeat(3,minmax(0,1fr))}.program-form__fields--4{grid-template-columns:repeat(4,minmax(0,1fr))}.program-form__fields--1{grid-template-columns:1fr}.program-form__field{min-width:0}.program-form__field .field{margin-bottom:12px}.program-form__field--wide{grid-column:1 / -1}.program-form__check{display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer;margin-right:14px;margin-bottom:8px}.program-form__dow{width:40px;height:40px;border:none;border-radius:6px;font-size:13px;font-family:var(--fe-font-base);cursor:pointer;background:var(--fe-bg-raised);color:var(--fe-fg-muted)}.program-form__dow.is-on{background:var(--fe-color-black);color:#fff}.program-form__status{display:flex;gap:10px;align-items:flex-start;background:var(--fe-bg-raised);border-radius:8px;padding:14px 16px;margin:12px 0 16px;border-left:4px solid var(--fe-color-dark)}.program-form__color-hint{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;color:var(--fe-fg-muted)}.program-form__actions{display:flex;flex-wrap:wrap;gap:12px;margin:4px 0 0}.program-form__actions .fe-btn{min-width:180px}@media(max-width:960px){.program-editor__split,.program-form__cols,.program-form__cols--3,.program-form__fields,.program-form__fields--3,.program-form__fields--4{grid-template-columns:1fr}}.print-module-row{margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--fe-border)}.period-template-row,.period-edition-row{display:grid;gap:10px;align-items:end;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--fe-border)}.period-template-row{grid-template-columns:minmax(100px,.8fr) minmax(150px,1.4fr) minmax(90px,.6fr)}.period-template-row>.program-form__field:nth-child(4){grid-column:1 / 3}.period-hour-adjustments{grid-column:1 / -1;padding:8px 10px;border-radius:var(--fe-radius-md);background:var(--fe-bg-raised)}.period-hour-adjustments__summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:32px;cursor:pointer;font-size:12.5px;font-weight:700;color:var(--fe-fg-strong)}.period-hour-adjustments__summary span{font-size:11.5px;font-weight:400;color:var(--fe-fg-muted)}.period-hour-adjustments[open] .period-hour-adjustments__summary{margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--fe-border)}.period-hour-adjustments__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:12px;font-weight:700}.course-template-summary{display:flex;flex-direction:column;gap:14px;padding:16px;border:1px solid var(--fe-border);border-radius:var(--fe-radius-md);background:var(--fe-bg-raised)}.course-template-summary__metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.course-template-summary__metrics>span{display:flex;flex-direction:column;gap:2px;min-width:0;padding:10px 12px;border-radius:var(--fe-radius-sm);background:var(--fe-bg);color:var(--fe-fg-muted);font-size:12px}.course-template-summary__metrics strong{color:var(--fe-fg-strong);font-size:20px;line-height:1.1}.course-template-summary__pending{display:flex;flex-direction:column;gap:7px}.course-template-summary__chips{display:flex;flex-wrap:wrap;gap:6px}.course-template-chip{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border:1px solid var(--fe-border);border-radius:999px;background:var(--fe-bg);color:var(--fe-fg);font-size:12px;white-space:nowrap}.edition-template-preview{display:flex;flex-direction:column;gap:12px;max-width:820px;margin:4px 0 14px;padding:14px 16px;border:1px solid var(--fe-border);border-radius:var(--fe-radius-md);background:var(--fe-bg-raised)}.edition-template-preview__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.edition-template-preview__head>div{display:flex;flex-direction:column;gap:2px}.edition-template-preview__head strong{color:var(--fe-fg-strong);font-size:14px}.edition-template-preview__head span{color:var(--fe-fg-muted);font-size:12px}.edition-template-preview__state{flex:0 0 auto;padding:4px 8px;border-radius:999px;font-size:11.5px;font-weight:700}.edition-template-preview__state.is-ready{background:var(--fe-bg);color:var(--fe-fg-strong)}.edition-template-preview__state.is-warning{background:color-mix(in srgb,var(--fe-accent) 10%,var(--fe-bg));color:var(--fe-accent)}.edition-template-preview__modules{display:flex;flex-direction:column;gap:6px}.edition-template-preview__module{display:grid;grid-template-columns:12px minmax(70px,auto) minmax(90px,auto) 1fr;align-items:center;gap:8px;min-height:32px;font-size:12px;color:var(--fe-fg-muted)}.edition-template-preview__module strong{color:var(--fe-fg-strong)}.edition-template-preview__swatch{width:10px;height:10px;border-radius:3px}.edition-template-preview__pending{display:flex;align-items:flex-start;gap:8px;padding-top:10px;border-top:1px solid var(--fe-border);color:var(--fe-fg);font-size:12.5px;line-height:1.45}.edition-template-preview__pending svg{flex:0 0 auto;margin-top:1px;color:var(--fe-accent)}.period-hour-adjustment{display:grid;grid-template-columns:auto 72px auto 82px minmax(140px,1fr) auto;align-items:center;gap:6px;margin-top:5px}.period-hour-adjustment .label,.period-hour-adjustment .field{margin-bottom:0}.period-hour-adjustment__result{font-size:11.5px}.period-edition-row{grid-template-columns:minmax(90px,.6fr) minmax(140px,1.1fr) minmax(85px,.5fr) minmax(125px,.75fr) minmax(125px,.75fr) minmax(190px,1.2fr)}.period-template-row__actions{display:flex;align-items:center;gap:3px;min-height:50px}.period-template-row .program-form__field .field,.period-edition-row .program-form__field .field{margin-bottom:0}@media(max-width:1100px){.period-template-row,.period-edition-row{grid-template-columns:1fr;align-items:stretch}.period-template-row__actions{min-height:0}.period-hour-adjustment{grid-template-columns:auto 72px auto 82px}.period-hour-adjustment__result{grid-column:1 / 4}.course-template-summary__metrics{grid-template-columns:1fr}.edition-template-preview__head{flex-direction:column}.edition-template-preview__module{grid-template-columns:12px minmax(70px,auto) 1fr}.edition-template-preview__module span:last-child{grid-column:2 / -1}}.print-module-colors{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:38px}.print-module-swatch{width:26px;height:26px;border-radius:6px;border:2px solid rgba(0,0,0,.12);cursor:pointer;padding:0}.print-module-swatch.is-active{border-color:var(--fe-fg-strong);box-shadow:0 0 0 2px var(--fe-bg),0 0 0 3px var(--fe-fg-strong)}.program-editor__flag{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--fe-fg-muted);white-space:nowrap}.program-editor__flag input{margin:0}.program-form__chips{display:flex;flex-wrap:wrap;gap:8px}.program-chip{border:1px solid var(--fe-border);background:var(--fe-surface-card);color:var(--fe-fg);border-radius:var(--fe-radius-md);padding:6px 8px;font-size:12px;cursor:pointer}.shooting-planner{display:flex;flex-direction:column;gap:18px}.shooting-planner__header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.shooting-planner__actions{display:flex;flex-wrap:wrap;gap:8px}.shooting-planner__panel{border:1px solid var(--fe-border);border-radius:10px;background:var(--fe-surface-card);padding:12px}.shooting-planner__panel-head{margin-bottom:8px}.shooting-planner__controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.shooting-planner__controls .field{margin-bottom:0;max-width:260px}.shooting-planner__chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.shooting-chip{border:1px solid var(--fe-border);background:var(--fe-bg);color:var(--fe-fg);border-radius:var(--fe-radius-md);padding:6px 8px;font-size:12px;cursor:pointer}.shooting-table{width:100%;border-collapse:collapse;font-size:12.5px}.shooting-table th,.shooting-table td{border-bottom:1px solid var(--fe-border);padding:8px 6px;text-align:left}.shooting-calendar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.shooting-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.shooting-month-grid__dow{font-size:9px;color:var(--fe-fg-muted);text-align:center}.shooting-day{min-height:40px;border:1px solid var(--fe-border);border-radius:4px;padding:2px}.shooting-day.is-on{background:#fdf1c7;border-color:#e9c46a}.shooting-day__num{font-size:9px;color:var(--fe-fg-muted);margin-bottom:1px}.shooting-day__chip{font-size:9px;line-height:1.2;border-radius:3px;background:#e9c46a;color:#2b2b2b;padding:1px 3px;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shooting-day__more{font-size:8px;color:var(--fe-fg-muted)}@media(max-width:1100px){.shooting-calendar-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.shooting-calendar-grid{grid-template-columns:1fr}}.overlay-picker{margin-bottom:12px;padding:10px 12px;border:1px solid var(--fe-border);border-radius:10px;background:var(--fe-surface-card, var(--fe-bg-raised))}.overlay-picker__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;flex-wrap:wrap}.overlay-picker__label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--fe-fg-muted)}.overlay-picker__actions{display:flex;gap:4px}.overlay-picker__chips{display:flex;flex-wrap:wrap;gap:6px}.overlay-picker__chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid var(--fe-border);background:transparent;color:inherit;font:inherit;font-size:12.5px;cursor:pointer;opacity:.45}.overlay-picker__chip.is-on{opacity:1}.overlay-picker__swatch{width:10px;height:10px;border-radius:2px;flex-shrink:0}.overlay-picker__mod{margin-left:4px;font-size:10px;color:var(--fe-fg-muted);font-weight:600}.calendar-legend{margin-bottom:8px}.calendar-legend__title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--fe-fg-muted);margin-bottom:6px}.calendar-legend__items{display:flex;flex-wrap:wrap;gap:10px 16px}.calendar-legend__item{display:inline-flex;align-items:center;gap:6px;font-size:12.5px}.calendar-legend__swatch{width:14px;height:6px;border-radius:2px;flex-shrink:0}.calendar-legend__meta{color:var(--fe-fg-muted);font-size:11.5px}.day-bars{display:flex;flex-direction:column;gap:2px}.day-bar{height:4px;border-radius:1px;cursor:pointer}.day-bars__more{font-size:8px;color:var(--fe-fg-muted);line-height:1}.month-card--overlay .day-cell{overflow:hidden}.conflict-workspace{display:flex;flex-direction:column;gap:14px;min-height:0;height:100%}.conflict-workspace__intro{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.conflict-workspace__filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.conflict-empty{display:flex;gap:8px;align-items:center;padding:16px 14px;background:var(--fe-bg-raised);border-radius:8px;font-size:13px}.conflict-workspace__body{display:grid;grid-template-columns:minmax(240px,320px) 1fr;gap:14px;min-height:420px;align-items:stretch}.conflict-list{display:flex;flex-direction:column;gap:6px;overflow:auto;max-height:calc(100vh - 220px);padding-right:4px}.conflict-list__item{display:flex;gap:8px;align-items:flex-start;text-align:left;padding:10px;border:1px solid var(--fe-border);border-radius:8px;background:var(--fe-surface-card, var(--fe-bg-raised));color:inherit;font:inherit;cursor:pointer}.conflict-list__item:hover{border-color:var(--fe-fg-muted)}.conflict-list__item.is-active{border-color:var(--fe-accent);box-shadow:inset 3px 0 0 var(--fe-accent)}.conflict-list__icon{flex-shrink:0;margin-top:2px;color:var(--fe-accent)}.conflict-list__main{display:flex;flex-direction:column;gap:2px;min-width:0}.conflict-list__pair{font-size:13px;font-weight:700}.conflict-list__meta{font-size:11.5px;color:var(--fe-fg-muted)}.conflict-detail{border:1px solid var(--fe-border);border-radius:10px;padding:12px 14px;background:var(--fe-surface-card, var(--fe-bg-raised));min-width:0}.conflict-detail__banner{margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--fe-border);font-size:13.5px}.conflict-detail__dual{display:grid;grid-template-columns:1fr 1fr;gap:14px}.conflict-side{min-width:0;display:flex;flex-direction:column;gap:8px}.conflict-side__head{padding:8px 10px 8px 12px;border-left:4px solid var(--fe-border);background:var(--fe-bg);border-radius:0 8px 8px 0}.conflict-side__code{font-weight:700;font-size:14px}.conflict-side__meta{font-size:11.5px;color:var(--fe-fg-muted);margin-top:2px}.conflict-side__sessions{display:flex;flex-direction:column;gap:8px}.conflict-session{border:1px solid var(--fe-border);border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:6px;background:var(--fe-bg)}.conflict-session.is-clash{border-color:var(--fe-accent);background:color-mix(in srgb,var(--fe-accent) 8%,var(--fe-bg))}.conflict-session__row{display:flex;gap:6px;align-items:center}.conflict-session__row .field{margin-bottom:0;flex:1}.conflict-session__row--2 .field{flex:1}.conflict-session__row--2 .field[type=number]{flex:0 0 72px}@media(max-width:960px){.conflict-workspace__body,.conflict-detail__dual{grid-template-columns:1fr}.conflict-list{max-height:220px}}.reception-view__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}.reception-view__nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;position:relative;z-index:2}.reception-view__date-block{display:flex;flex-direction:column;align-items:stretch;gap:4px;min-width:200px}.reception-view__date-label{font-size:14px;font-weight:var(--fe-weight-bold);text-align:center;color:var(--fe-fg-strong);line-height:1.2}.reception-view__date-input{margin-bottom:0!important;text-align:center;cursor:pointer}.reception-view__mobile-link{color:var(--fe-accent-text);text-decoration:underline;text-underline-offset:2px}.reception-holiday{margin-bottom:14px;padding:10px 12px;border-radius:var(--fe-radius-md);border:var(--fe-border-width) solid var(--fe-accent);background:color-mix(in srgb,var(--fe-accent) 10%,var(--fe-bg));font-size:13px;font-weight:var(--fe-weight-bold)}.reception-table{width:100%;border-collapse:collapse;font-size:13px}.reception-table th{text-align:left;padding:8px 10px;font-size:11px;font-weight:var(--fe-weight-bold);text-transform:uppercase;letter-spacing:.03em;color:var(--fe-fg-muted);border-bottom:var(--fe-border-width) solid var(--fe-border)}.reception-table td{vertical-align:top;padding:8px 10px;border-bottom:var(--fe-border-width) solid var(--fe-border);width:40%}.reception-table__room{width:20%!important;font-weight:var(--fe-weight-bold);color:var(--fe-fg-strong);white-space:nowrap}.reception-slot{display:flex;flex-direction:column;gap:6px;min-height:2.5rem}.reception-slot--free{display:flex;align-items:center;min-height:2.5rem;color:var(--fe-fg-muted);font-size:12.5px;font-style:italic}.reception-card{padding:8px 10px;border-radius:var(--fe-radius-sm);border:var(--fe-border-width) solid var(--fe-border);border-left-width:4px;background:var(--fe-bg)}.reception-card__code{font-weight:var(--fe-weight-bold);color:var(--fe-fg-strong);font-size:13px}.reception-card__course{font-size:12.5px;color:var(--fe-fg);margin-top:1px}.reception-card__meta{font-size:11.5px;color:var(--fe-fg-muted);margin-top:2px}.reception-card__also{margin-top:4px;font-size:11.5px;color:var(--fe-fg-muted)}@media(max-width:720px){.reception-table,.reception-table thead,.reception-table tbody,.reception-table tr,.reception-table th,.reception-table td{display:block;width:100%!important}.reception-table thead{display:none}.reception-table tr{margin-bottom:12px;border:var(--fe-border-width) solid var(--fe-border);border-radius:var(--fe-radius-md);overflow:hidden}.reception-table__room{background:var(--fe-bg-raised);padding:10px 12px!important}.reception-table td:nth-child(2):before,.reception-table td:nth-child(3):before{content:"Mañana";display:block;font-size:10px;font-weight:var(--fe-weight-bold);text-transform:uppercase;color:var(--fe-fg-muted);margin-bottom:6px}.reception-table td:nth-child(3):before{content:"Tarde"}}
