.icon{color:var(--color-text);display:inline-block}.icon--muted{color:var(--color-text-light)}.icon--primary{color:var(--color-primary)}.icon svg,.notification-icon svg{width:100%;height:100%;display:block}.icon--large{width:48px;height:48px}.theme-toggle{border-radius:var(--radius-full);width:40px;height:40px;color:var(--color-text);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.theme-toggle:hover{background:var(--color-background-alt);transform:scale(1.05)}.theme-toggle:active{transform:scale(.95)}.theme-toggle svg{stroke:currentColor;width:20px;height:20px;transition:all var(--transition-normal)}.theme-toggle:active svg{transform:rotate(360deg)}.layout-footer{padding-block:var(--spacing-lg) var(--spacing-md);padding-inline:var(--spacing-md);opacity:.7;border-top:1px solid #0000000f;margin-top:auto}.layout-footer__content{align-items:center;gap:var(--spacing-xs);text-align:center;flex-direction:column;max-width:1200px;margin-inline:auto;display:flex}.layout-footer__text{font-size:var(--font-size-md);color:var(--color-text-light);font-weight:400;line-height:1.5}.layout-footer__content .layout-footer__text+.layout-footer__text{font-size:var(--font-size-sm);opacity:.9}.layout-footer__link{font-weight:500;font-size:inherit;border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--color-primary), var(--color-accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;padding-inline:.25em;line-height:1.5;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-block;position:relative}.layout-footer__link-initial{font-size:1.05em;font-weight:700}.layout-footer__link:before{content:"";background:linear-gradient(90deg, var(--color-primary), var(--color-primary-dark));width:0;height:2px;transition:width .3s cubic-bezier(.4,0,.2,1);position:absolute;bottom:0;left:50%;transform:translate(-50%)}.layout-footer__link:hover{color:var(--color-primary-dark);transform:translateY(-1px)}.layout-footer__link:hover:before{width:100%}.layout-footer__link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.layout-footer__badge{padding:var(--spacing-2xs) var(--spacing-xs);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-primary);vertical-align:baseline;background:0 0;font-weight:500;line-height:1.5;transition:background .2s;display:inline-block}.layout-footer__badge:hover{background:#00000008;text-decoration:underline}.layout-footer__link:after,.layout-footer__link:hover:after{display:none}@media (width>=768px){.layout-footer{padding-block:var(--spacing-xl) var(--spacing-lg)}.layout-footer__content{justify-content:center;gap:var(--spacing-sm);flex-flow:wrap}.layout-footer__text{font-size:var(--font-size-md)}}@media (width>=1024px){.layout-footer__link:before{display:none}}@media (prefers-color-scheme:dark){.layout-footer{border-top-color:#ffffff0f}.layout-footer__badge:hover{background:#ffffff0d}}@media print{.layout-footer{background:0 0;border-top:1px solid #000;padding-block:1rem}.layout-footer__link:after,.layout-footer__link:before{display:none}}.under-construction{background:radial-gradient(70% 60% at 10% 10%, color-mix(in srgb, var(--color-primary) 12%, transparent) 0%, transparent 100%), radial-gradient(60% 50% at 90% 90%, color-mix(in srgb, var(--color-accent) 10%, transparent) 0%, transparent 100%), linear-gradient(180deg, var(--color-background) 0%, var(--color-background-warm) 100%);opacity:0;will-change:opacity, transform;justify-content:center;align-items:center;min-height:100dvh;padding:clamp(6px,1.2vh,12px);transition:opacity .46s ease-out,transform .46s ease-out;display:flex;position:relative;overflow:hidden;transform:translateY(18px)}.under-construction--visible{opacity:1;transform:translate(0,0)}.under-construction:before{content:"";background:linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 5%, transparent) 0%, transparent 45%), linear-gradient(315deg, color-mix(in srgb, var(--color-secondary) 8%, transparent) 0%, transparent 40%);pointer-events:none;position:absolute;inset:0}.under-construction__content{text-align:center;background:color-mix(in srgb, var(--color-background-alt) 92%, var(--color-background) 8%);border:1px solid color-mix(in srgb, var(--color-border) 65%, var(--color-primary) 35%);width:100%;max-width:780px;max-height:calc(100dvh - 24px);box-shadow:0 14px 32px color-mix(in srgb, var(--color-primary) 12%, transparent);z-index:1;opacity:0;border-radius:20px;flex-direction:column;justify-content:center;padding:clamp(10px,1.8vh,18px) clamp(10px,1.6vw,20px);animation:.36s ease-out forwards under-construction-content-in;display:flex;position:relative;transform:translateY(10px)}.under-construction__image-container{justify-content:center;align-items:center;min-height:min(58dvh,520px);margin-bottom:clamp(6px,1.2vh,12px);display:flex}.under-construction__image{border:1px solid color-mix(in srgb, var(--color-border) 80%, var(--color-secondary) 20%);width:auto;max-width:min(100%,600px);height:auto;max-height:min(58dvh,520px);box-shadow:0 12px 30px color-mix(in srgb, var(--color-secondary) 18%, transparent);opacity:0;border-radius:16px;transition:opacity .32s ease-out,transform .32s ease-out;transform:translateY(4px)scale(1.01)}.under-construction__image--loaded{opacity:1;transform:translate(0,0)scale(1)}@keyframes under-construction-content-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translate(0,0)}}.under-construction__text{margin-bottom:clamp(4px,1vh,10px)}.under-construction__title{color:var(--color-primary);margin-bottom:clamp(4px,.8vh,8px);font-size:clamp(1.45rem,3.2vh,2rem);font-weight:700;line-height:1.2}.under-construction__subtitle{color:var(--color-text-light);max-width:560px;margin:0 auto;font-size:clamp(.86rem,1.55vh,.98rem);line-height:1.35}.under-construction__actions{margin-bottom:clamp(4px,.9vh,8px)}.under-construction__button{background:linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-dark) 100%);color:var(--color-background-alt);border:1px solid color-mix(in srgb, var(--color-accent-dark) 70%, var(--color-secondary) 30%);box-shadow:0 10px 24px color-mix(in srgb, var(--color-accent) 35%, transparent);border-radius:999px;padding:8px 18px;font-size:.9rem;font-weight:700;text-decoration:none;transition:transform .2s,box-shadow .2s,filter .2s;display:inline-block}.under-construction__button:hover{filter:brightness(1.02);color:var(--color-background-alt);box-shadow:0 14px 30px color-mix(in srgb, var(--color-accent) 45%, transparent);transform:translateY(-1px)}.under-construction__button:active{transform:translateY(0)}.under-construction__button:focus,.under-construction__button:focus-visible{color:var(--color-background-alt)}.under-construction__footer{border-top:1px solid var(--color-border);padding-top:clamp(4px,.9vh,8px)}.under-construction__info{color:var(--color-text-light);margin:0;font-size:.78rem}@media (width<=768px){.under-construction{padding:10px}.under-construction__content{max-height:calc(100dvh - 20px);padding:10px}.under-construction__title{font-size:1.45rem}.under-construction__subtitle{font-size:.84rem}.under-construction__image-container{min-height:min(40dvh,320px)}.under-construction__image{max-width:min(100%,390px);max-height:min(40dvh,320px)}}@media (width<=480px){.under-construction__content{max-height:calc(100dvh - 16px);padding:8px}.under-construction__title{font-size:1.25rem}.under-construction__image-container{min-height:min(36dvh,255px)}.under-construction__image{max-width:min(100%,320px);max-height:min(36dvh,255px)}}@media (prefers-reduced-motion:reduce){.under-construction{opacity:1;transition:none;transform:none}.under-construction__content{opacity:1;animation:none;transform:none}.under-construction__image{opacity:1;transition:none;transform:none}}.avatar{width:var(--avatar-size,40px);height:var(--avatar-size,40px);background:var(--avatar-bg,var(--color-primary));color:#fff;-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex;overflow:hidden}.avatar__img{object-fit:cover;width:100%;height:100%;display:block}.avatar__initials{font-size:calc(var(--avatar-size,40px) * .4);letter-spacing:.02em}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-primary:#2c6b6f;--color-primary-dark:#1e4d50;--color-primary-light:#5ba5a8;--color-primary-soft:#e5f2f3;--color-secondary:#a89074;--color-secondary-dark:#8a7559;--color-secondary-light:#c4b5a0;--color-accent:#e67e5e;--color-accent-dark:#d45a3b;--color-accent-light:#f5a088;--color-success:#27ae60;--color-warning:#f39c12;--color-error:#e74c3c;--color-info:#5ba5a8;--color-text:#1e4d50;--color-text-light:#6b7c7d;--color-background:#f5f2ed;--color-background-alt:#fff;--color-background-warm:#fff9f0;--color-border:#d4c4b5;--font-family-base:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-headings:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.5rem;--font-size-2xl:2rem;--font-size-3xl:2.5rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-3xl:4rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--border-width:1px;--border-width-thick:2px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 10px 15px #0000001a;--shadow-xl:0 20px 25px #00000026;--transition-fast:.15s ease-in-out;--transition-normal:.25s ease-in-out;--transition-slow:.35s ease-in-out;--breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px;--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:1040;--z-modal:1050;--z-popover:1060;--z-tooltip:1070}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-background:#1a2627;--color-background-alt:#2c3e3f;--color-background-warm:#2a2621;--color-text:#f5f2ed;--color-text-light:#a89074;--color-border:#3c4f50;--color-primary:#e67e5e;--color-primary-dark:#d45a3b;--color-primary-light:#f5a088;--color-primary-soft:#3a2520;--color-secondary:#c4b5a0;--color-secondary-dark:#a89074;--color-secondary-light:#d9cfc0;--color-accent:#5ba5a8;--color-accent-dark:#3d7e81;--color-accent-light:#7dbec1;--color-success:#34c759;--color-warning:#ff9f0a;--color-error:#ff453a;--color-info:#5ba5a8;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px #0006;--shadow-lg:0 10px 15px #00000080;--shadow-xl:0 20px 25px #0009}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scrollbar-gutter:stable both-edges;transition:background-color var(--transition-normal), color var(--transition-normal);font-size:16px}body{font-family:var(--font-family-base);font-size:var(--font-size-md);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-background-alt);min-height:100vh;transition:background-color var(--transition-normal), color var(--transition-normal);overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-headings);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin-bottom:var(--spacing-md);color:var(--color-text)}h1{font-weight:var(--font-weight-normal);color:var(--color-primary)}h2{color:var(--color-primary)}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}h4{font-size:var(--font-size-md)}h5{font-size:var(--font-size-sm)}h6{font-size:var(--font-size-xs)}p{margin-bottom:var(--spacing-md)}a{color:var(--color-primary);transition:color var(--transition-fast);text-decoration:none}a:hover,a:focus{color:var(--color-primary-dark)}:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--color-accent)!important;outline-offset:2px!important;outline-style:solid!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{width:100%;max-width:1280px;padding:0 var(--spacing-md);margin:0 auto}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--color-text-light)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.page-container{padding-top:var(--spacing-xl)}.flex{display:flex}.flex-row{gap:var(--spacing-sm);align-items:center;display:flex}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-wrap{flex-wrap:wrap}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.grid{display:grid}.grid-cards{gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.grid-cards-sm{gap:var(--spacing-sm);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.link-unstyled{color:inherit;text-decoration:none}.link-unstyled:hover{text-decoration:none}.section-warm{background-color:var(--color-background-warm);padding:var(--spacing-lg);border-radius:var(--radius-lg);border:1px solid var(--color-secondary-light)}.section-highlight{background-color:var(--color-background-warm);padding:var(--spacing-md);border-left:4px solid var(--color-accent);border-radius:var(--radius-md)}@media (width>=768px){.container{padding:0 var(--spacing-lg)}h1{font-size:2.5rem}h2{font-size:2rem}.grid-cards{gap:var(--spacing-lg)}}@media (width>=1024px){.container{padding:0 var(--spacing-xl)}}@media (width<=768px){.container{padding:0 var(--spacing-sm)}.grid-cards,.grid-cards-sm{grid-template-columns:1fr}}.btn{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-family:var(--font-family-base);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);text-align:center;border:var(--border-width) solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background-color:#0000;min-width:44px;min-height:44px;line-height:1;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background-color:var(--color-accent);color:#fff;box-shadow:0 2px 4px #e67e2233}.btn--primary:hover:not(:disabled){background-color:var(--color-accent-dark);box-shadow:0 4px 8px #e67e5e4d}.btn--success{background-color:var(--color-success);color:#fff;box-shadow:0 2px 4px #27ae6033}.btn--success:hover:not(:disabled){background-color:#219a52;box-shadow:0 4px 8px #27ae604d}.btn--secondary{background-color:var(--color-primary);color:#fff}.btn--secondary:hover:not(:disabled){background-color:var(--color-primary-dark)}.btn--accent{background-color:var(--color-accent);color:#fff}.btn--accent:hover:not(:disabled){opacity:.9}.btn--outline{border-color:var(--color-primary);color:var(--color-primary);background-color:#0000}.btn--outline:hover:not(:disabled){background-color:var(--color-primary);color:#fff}.btn--back{border-radius:var(--radius-full);color:var(--color-primary);background:#2c6b6f14;border-color:#2c6b6f47;align-items:center;gap:6px;padding:7px 12px;display:inline-flex;box-shadow:inset 0 1px #ffffffa6}.btn--back:hover:not(:disabled){color:var(--color-primary-dark);background:#2c6b6f24;border-color:#2c6b6f6b;transform:translate(-1px)}.btn--danger{background-color:var(--color-error);color:#fff}.btn--danger:hover:not(:disabled){opacity:.9}.btn--outline-danger{border:1px solid var(--color-error);color:var(--color-error);background-color:#0000}.btn--outline-danger:hover:not(:disabled){background-color:var(--color-error);color:#fff}.btn--sm{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm);min-height:36px}.btn--lg{border-radius:8px;min-height:40px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .2s;box-shadow:0 1px 3px #00000014}.btn--lg:hover{transform:translateY(-1px);box-shadow:0 3px 8px #0000001f}.btn--full{width:100%}.talleres-form__actions{gap:var(--spacing-sm);margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.talleres-form__actions .btn{min-width:120px;box-shadow:none;border-radius:6px;flex:140px}.talleres-form__actions .btn.btn--sm{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm);min-height:36px}.talleres-form__actions .btn--success{color:var(--color-success);background-color:#27ae601f;border:1px solid #27ae602e}.talleres-form__actions .btn--success:hover:not(:disabled){background-color:#27ae602e}.talleres-form__actions .btn--warning{color:var(--color-warning);background-color:#f39c121a;border:1px solid #f39c122e}.talleres-form__actions .btn--warning:hover:not(:disabled){background-color:#f39c1229}.talleres-form__actions .btn--info{color:var(--color-info);background-color:#5ba5a81a;border:1px solid #5ba5a829}.talleres-form__actions .btn--info:hover:not(:disabled){background-color:#5ba5a829}.talleres-form__actions .btn--danger{color:var(--color-error);background-color:#e74c3c1f;border:1px solid #e74c3c2e}.talleres-form__actions .btn--danger:hover:not(:disabled){background-color:#e74c3c2e}.card{background-color:var(--color-background);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm)}.card--compact{padding:var(--spacing-md)}.divider{background-color:var(--color-border);height:1px;margin:var(--spacing-md) 0}.card--compact .card__body{margin-bottom:var(--spacing-sm)}.card--interactive{transition:all var(--transition-normal);cursor:pointer}.card--interactive:hover{box-shadow:var(--shadow-lg)}.card--clickable{cursor:pointer}.card--clickable:active{transform:translateY(0)}.card__header{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:var(--border-width) solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.card__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-xs);color:var(--color-text)}.card__subtitle{font-size:var(--font-size-sm);color:var(--color-text-light);font-weight:var(--font-weight-normal);margin-bottom:0}.card__header--compact{margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.card__header--compact .card__title{font-size:var(--font-size-md);line-height:var(--line-height-tight);margin-bottom:2px}.card__header--compact .card__subtitle{font-size:var(--font-size-xs);line-height:1.3}.talleres-form__intro{margin-bottom:var(--spacing-sm)}.talleres-form__intro h2{font-size:var(--font-size-lg);line-height:var(--line-height-tight);margin:0}.talleres-form__intro .card__subtitle{font-size:var(--font-size-xs);line-height:1.3}.talleres-form-row{gap:var(--spacing-sm);grid-template-columns:1fr;display:grid}.talleres-form-row--2col{grid-template-columns:1fr 1fr}.talleres-form-row--desc{grid-template-columns:2fr 1fr}@media (width<=600px){.talleres-form-row--2col,.talleres-form-row--desc{grid-template-columns:1fr}}.talleres-form--compact{margin-top:var(--spacing-sm)}.talleres-form--compact .form-group{margin-bottom:var(--spacing-sm)}.talleres-form--compact .form-group label{margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm)}.talleres-form--compact .form-input,.talleres-form--compact .form-select,.talleres-form--compact .form-textarea{padding:var(--spacing-xs) var(--spacing-sm)}.talleres-form--compact .form-textarea{min-height:72px}.talleres-form--compact .form-help{font-size:var(--font-size-xs);margin-top:2px;line-height:1.3}.talleres-form--compact .alert{padding:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.card__body{margin-bottom:var(--spacing-md)}.card__body p:last-child{margin-bottom:0}.card__footer{gap:var(--spacing-sm);padding-top:var(--spacing-md);border-top:var(--border-width) solid var(--color-border);display:flex}.card--warm{border-color:var(--color-secondary-light);background:linear-gradient(135deg,#fff 0%,#faf8f5 100%)}.tabs{width:100%}.tabs__header{gap:var(--spacing-xs);border-bottom:2px solid var(--color-border);margin-bottom:var(--spacing-lg);display:flex}.tabs__tab{padding:var(--spacing-sm) var(--spacing-lg);color:var(--color-text-light);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-bottom:3px solid #0000;position:relative;bottom:-2px}.tabs__tab:hover{color:var(--color-primary);background:var(--color-background)}.tabs__tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.tabs__content{width:100%;padding:var(--spacing-md) 0;background:0 0}.card--highlight{border-left:4px solid var(--color-accent);background-color:#fff9f0}.card--list{border-top:0;border-left:0;border-right:0;border-bottom:1px solid var(--color-border)}.communications-header{padding:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--spacing-sm);background:#e4d6c6;border:none;border-radius:0;align-items:center}.communications-header .dashboard-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-normal);margin:0}.communications-header .dashboard-subtitle{font-size:var(--font-size-sm);margin:var(--spacing-xs) 0 0}.communications-summary{align-items:center;gap:var(--spacing-sm);display:flex}.communications-filters{margin-bottom:var(--spacing-sm);background:var(--color-background)}.communications-filters__row{gap:var(--spacing-xs);grid-template-columns:minmax(200px,1.2fr) minmax(150px,.9fr) minmax(130px,.7fr) auto;align-items:end;display:grid}.communications-search__field{align-items:center;gap:var(--spacing-xs);border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff;padding:1px 6px;display:flex}.communications-search__field .form-input{background:0 0;border:none;min-height:30px;padding:2px}.communications-search__field .form-input:focus{border:none;outline:none}.communications-filters__actions{justify-content:flex-end;display:flex}.communications-filters .form-label{color:var(--color-text-light);margin-bottom:4px;font-size:11px}.communications-filters .form-input{background:#fff;min-height:30px;padding:4px 8px}.communications-filters .btn{min-height:30px;padding:4px 10px}.communications-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.communications-empty{padding:var(--spacing-lg);text-align:center}.communication-card{justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-md);border:1px solid var(--color-border);transition:box-shadow var(--transition-fast), transform var(--transition-fast);cursor:pointer;background:#fff;display:flex}.communication-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.communication-card--unread{border-left:4px solid var(--color-accent);background:linear-gradient(90deg,#e67e5e14 0%,#fff0 30%)}.communication-card__main{flex:1;min-width:0}.communication-card__badges{justify-content:space-between;align-items:flex-start;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs);display:flex}.communication-card__status{align-items:flex-start;min-width:0;display:flex}.communication-card__header{justify-content:space-between;gap:var(--spacing-md);flex-wrap:nowrap;display:flex}.communication-card__title-row{align-items:center;min-width:0;display:flex}.communication-card__title-row h3{font-size:var(--font-size-md);white-space:nowrap;text-overflow:ellipsis;max-width:36vw;margin:0;overflow:hidden}.communication-card__meta{gap:var(--spacing-sm);font-size:var(--font-size-xs);color:var(--color-text-light);white-space:nowrap;display:flex}.communication-card__meta span{align-items:center;gap:6px;display:inline-flex}.communication-card__meta span:nth-child(2){text-overflow:ellipsis;max-width:220px;overflow:hidden}.communication-card__info{margin-top:6px}.communication-card__preview{margin:var(--spacing-sm) 0 0;color:var(--color-text-light);font-size:var(--font-size-sm);line-height:1.5;display:none}.communication-card__actions{align-items:center;gap:var(--spacing-sm);display:flex}.communication-card__type{color:var(--color-primary);font-size:var(--font-size-xs);white-space:nowrap;background:#2c6b6f14;border:1px solid #2c6b6f29;padding:4px 8px}@media (width<=1200px){.communication-card__title-row h3{max-width:30vw}}@media (width<=1024px){.communications-filters__row{grid-template-columns:1fr}.communications-filters__actions{justify-content:flex-start}.talleres-layout{grid-template-columns:1fr}}@media (width<=768px){.communication-card{flex-direction:column;align-items:stretch}.communication-card__badges{align-items:center}.communication-card__status{min-width:0}.communication-card__actions{justify-content:flex-start}.communication-card__preview{display:block}.communication-card__header{flex-wrap:wrap}.communication-card__meta{white-space:normal;flex-wrap:wrap}.communication-card__meta span{max-width:100%}.communication-card__meta span:nth-child(2){max-width:100%;text-overflow:initial;white-space:normal;overflow-wrap:anywhere;overflow:visible}.communication-card__title-row h3{max-width:100%}}.communications-page .card{background:#fff}.communications-page .communications-filters{background:var(--color-background)}.chip{background:var(--color-primary-soft);color:var(--color-text);border:1px solid #0000000a;border-radius:999px;margin:0 8px 8px 0;padding:6px 12px;font-size:.875rem;display:inline-block}.chip--muted{color:var(--color-text);border:1px solid var(--color-border);background:0 0}.snack-filter-chip{cursor:pointer;transition:transform var(--transition-fast), box-shadow var(--transition-fast);background:0 0;border:1px solid #0000}.snack-filter-chip--active{box-shadow:0 0 0 2px #2c6b6f33}.snack-filter-chip:hover{transform:translateY(-1px)}.chip+.chip{margin-left:6px}.taller-summary{border-left:1px solid var(--border-color);padding-left:var(--spacing-md)}.taller-header-row{justify-content:space-between;align-items:center;gap:var(--spacing-sm);display:flex}.taller-title{color:var(--color-primary);margin:0;font-size:1.6rem}.card--list:hover{background:var(--color-background)}.badge{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);border-radius:var(--radius-md);text-transform:none;letter-spacing:0;color:var(--color-text);transition:background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);background-color:#0000;border:1px solid #0000000f;align-items:center;padding:6px 10px;display:inline-flex}.badge--success{background-color:color-mix(in srgb, var(--color-success) 8%, var(--color-background));color:var(--color-success);border-color:color-mix(in srgb, var(--color-success) 16%, var(--color-border))}.badge--warning{background-color:color-mix(in srgb, var(--color-warning) 8%, var(--color-background));color:var(--color-warning);border-color:color-mix(in srgb, var(--color-warning) 16%, var(--color-border))}.badge--error{background-color:color-mix(in srgb, var(--color-error) 8%, var(--color-background));color:var(--color-error);border-color:color-mix(in srgb, var(--color-error) 16%, var(--color-border))}.badge--info{background-color:color-mix(in srgb, var(--color-info) 8%, var(--color-background));color:var(--color-info);border-color:color-mix(in srgb, var(--color-info) 16%, var(--color-border))}.badge--primary{background-color:color-mix(in srgb, var(--color-primary) 8%, var(--color-background));color:var(--color-primary);border-color:color-mix(in srgb, var(--color-primary) 16%, var(--color-border))}.badge:hover{background-color:#00000008}.modal-overlay{z-index:var(--z-modal-backdrop);padding:var(--spacing-md);background-color:#00000080;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.table--compact th,.table--compact td{padding:8px 10px;font-size:13px}.user-stats--compact{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.form-input--sm{padding:6px 8px;font-size:13px}.events-modal-compact .modal-body,.events-modal-compact .modal-footer{padding:var(--spacing-md) var(--spacing-lg)}.events-modal-compact .form-group{margin-bottom:var(--spacing-md)}.events-modal-compact .events-form-textarea{min-height:72px}.events-form-row{gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.events-form-row .form-group{margin-bottom:0}.events-modal-summary{font-size:var(--font-size-sm);color:var(--color-text-light);margin-bottom:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-background-alt);border:1px solid var(--color-border);border-radius:var(--radius-md)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.modal-content{background-color:var(--color-background);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:100%;max-width:600px;max-height:90vh;z-index:var(--z-modal);animation:.3s ease-out slideUp;position:relative;overflow-y:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.spinner{border:4px solid #0000000d;border-top-color:var(--color-primary);border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.modal-header h2{font-size:var(--font-size-lg);margin-bottom:0}.modal-close{font-size:var(--font-size-2xl);cursor:pointer;color:var(--color-text-light);width:40px;height:40px;transition:color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.modal-close:hover{color:var(--color-text)}.modal-loading-overlay{justify-content:center;align-items:center;gap:var(--spacing-md);z-index:10;border-radius:var(--radius-lg);background:#fffffff2;flex-direction:column;display:flex;position:absolute;inset:0}.modal-loading-overlay p{font-size:var(--font-size-md);color:var(--color-text);font-weight:var(--font-weight-medium);margin:0}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-sm);color:var(--color-text);display:block}.form-group label.required:after{content:" *";color:var(--color-error)}.form-input,.form-textarea,.form-select,.form-control{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-md);font-family:var(--font-family-base);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-background);color:var(--color-text);transition:border-color var(--transition-fast)}.form-input:focus,.form-textarea:focus,.form-select:focus,.form-control:focus{border-color:var(--color-primary);outline:none}.form-input:disabled,.form-textarea:disabled,.form-select:disabled,.form-control:disabled{background-color:var(--color-background-alt);cursor:not-allowed}.form-textarea{resize:vertical;min-height:100px}.form-error{color:var(--color-error);font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.form-help{color:var(--color-text-light);font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.documents-page__content{padding-top:var(--spacing-md)}.documents-viewer,.documents-layout{min-width:0}.documents-layout--admin{gap:var(--spacing-lg);grid-template-columns:minmax(0,1fr) minmax(300px,360px);align-items:start;display:grid}.documents-loading-state{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);border:1px solid color-mix(in srgb, var(--color-primary) 18%, var(--color-border));border-left:3px solid var(--color-primary);background:linear-gradient(145deg, color-mix(in srgb, var(--color-primary-soft) 62%, var(--color-background-alt)) 0%, var(--color-background-warm) 100%);color:var(--color-primary-dark);box-shadow:0 6px 14px color-mix(in srgb, var(--color-primary) 8%, transparent);display:flex}.documents-loading-state--centered{max-width:520px}.documents-loading-state--library{min-height:136px;padding:var(--spacing-xl) var(--spacing-md);box-shadow:none;text-align:center;background:0 0;border:0;flex-direction:column;justify-content:center;gap:10px}.documents-loading-state--inline{margin:var(--spacing-sm)}.documents-loading-state__spinner{box-sizing:border-box;border:2px solid color-mix(in srgb, var(--color-primary) 18%, transparent);border-top-color:var(--color-primary);border-radius:var(--radius-full);width:26px;height:26px;animation:.8s linear infinite documents-loading-spin}.documents-loading-state__icon{border-radius:var(--radius-full);width:34px;height:34px;color:var(--color-primary);background:color-mix(in srgb, var(--color-primary-soft) 74%, var(--color-background-alt));border:1px solid color-mix(in srgb, var(--color-primary) 24%, var(--color-border));flex-shrink:0;justify-content:center;align-items:center;animation:1.8s ease-in-out infinite documents-loading-pulse;display:inline-flex}.documents-loading-state__body{gap:2px;min-width:0;display:grid}.documents-loading-state--library .documents-loading-state__body{display:block}.documents-loading-state__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary-dark);margin:0}.documents-loading-state__hint{font-size:var(--font-size-xs);color:var(--color-text-light);margin:0}.documents-loading-state__bar{border-radius:var(--radius-full);background:linear-gradient(90deg, color-mix(in srgb, var(--color-primary) 28%, transparent) 0%, var(--color-accent-light) 50%, color-mix(in srgb, var(--color-primary) 28%, transparent) 100%);background-size:160% 100%;flex-shrink:0;width:56px;height:4px;margin-left:auto;animation:1.15s ease-in-out infinite documents-loading-sweep}@keyframes documents-loading-pulse{0%{opacity:.86;transform:scale(.96)}50%{opacity:1;transform:scale(1)}to{opacity:.86;transform:scale(.96)}}@keyframes documents-loading-spin{to{transform:rotate(360deg)}}@keyframes documents-loading-sweep{0%{opacity:.82;background-position:0 0}50%{opacity:1;background-position:100% 0}to{opacity:.82;background-position:0 0}}.documents-main-panel{min-width:0}.documents-admin-tabs{gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border);min-width:0;padding-bottom:2px;display:flex}.documents-admin-tab{border-radius:6px 6px 0 0}.documents-toolbar{margin-bottom:var(--spacing-md);justify-content:flex-start;display:flex}.documents-toolbar--rich{padding-bottom:var(--spacing-lg);border-bottom:1px solid #2c6b6f2e;grid-template-columns:minmax(280px,1.8fr) repeat(3,minmax(130px,.7fr));align-items:end;gap:10px;display:grid}.documents-search-group{grid-column:auto}.documents-summary-banner{margin-bottom:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-background-warm);color:var(--color-text);font-size:var(--font-size-sm)}.documents-summary-banner__content{justify-content:space-between;align-items:center;gap:var(--spacing-sm);display:flex}.documents-summary-banner__actions{align-items:center;gap:var(--spacing-xs);flex-shrink:0;display:inline-flex}.documents-summary-banner__action.btn{min-height:30px}.documents-summary-banner__close{border-radius:var(--radius-full);width:28px;height:28px;color:var(--color-primary-dark);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);background:#ffffffa6;border:1px solid #2c6b6f38;justify-content:center;align-items:center;display:inline-flex}.documents-summary-banner__close:hover:not(:disabled){background:#2c6b6f1f;border-color:#2c6b6f61}.documents-summary-banner__close:focus-visible{outline-offset:2px;outline:2px solid #2c6b6f73}.documents-summary-banner--new{border-left:3px solid var(--color-success)}.documents-summary-banner--progress{border-left:3px solid var(--color-primary)}.documents-required-progress__text{margin-bottom:var(--spacing-xs);font-weight:var(--font-weight-medium)}.documents-required-progress__bar{border-radius:var(--radius-full);background:var(--color-primary-soft);width:100%;height:8px;overflow:hidden}.documents-required-progress__fill{background:linear-gradient(90deg, var(--color-primary), var(--color-accent));height:100%;transition:width var(--transition-normal)}.documents-day-filter-banner{justify-content:space-between;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);border-left:3px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-background-warm);font-size:var(--font-size-sm);color:var(--color-text);display:flex}.documents-filter-group{flex:0 260px;max-width:100%;margin-bottom:0}.documents-filter-group label{color:var(--color-text-light);font-size:.72rem;font-weight:var(--font-weight-semibold);margin-bottom:5px}.documents-list{grid-template-columns:minmax(0,1fr);gap:0;min-width:0;display:grid}.documents-layout--admin .documents-list{grid-template-columns:minmax(0,1fr)}.documents-sections{gap:34px;min-width:0;display:grid}.documents-section{background:0 0}.documents-section__header{color:var(--color-primary-dark);border-bottom:1px solid #2c6b6f38;padding:0 0 9px}.documents-section__title{font-size:1rem;font-weight:var(--font-weight-semibold);letter-spacing:-.01em;align-items:baseline;gap:8px;margin:0;display:inline-flex}.documents-section__count{color:var(--color-text-light);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.documents-library{margin-top:var(--spacing-xl);grid-template-columns:196px minmax(0,1fr);align-items:start;gap:38px;display:grid}.documents-category-nav{top:var(--spacing-lg);border-right:1px solid #2c6b6f29;gap:2px;padding-right:20px;display:grid;position:sticky}.documents-category-nav__item{width:100%;min-height:34px;color:var(--color-text-light);font:inherit;font-size:var(--font-size-sm);text-align:left;cursor:pointer;transition:color var(--transition-fast), background-color var(--transition-fast);background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:7px 8px;display:flex}.documents-category-nav__item:hover{color:var(--color-primary-dark);background:#2c6b6f0f}.documents-loading-state--library .documents-loading-state__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.documents-category-nav__item.is-active{background:var(--color-primary-soft);color:var(--color-primary-dark);font-weight:var(--font-weight-semibold)}.documents-category-nav__item:focus-visible{outline-offset:2px;outline:2px solid #2c6b6f8f}.documents-category-nav__count{color:inherit;font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;opacity:.7}.documents-item{box-shadow:none;transition:background-color var(--transition-fast);background:0 0;border:0;border-bottom:1px solid #415b5b29;border-radius:0;min-width:0}.documents-item--clickable{cursor:pointer}.documents-item__primary:focus-visible{outline-offset:-2px;outline:2px solid #2c6b6f8c}.documents-item--pending,.documents-item--featured{background:#2c6b6f09}.documents-item:hover{background:#2c6b6f0e}.documents-item__layout{align-items:stretch;min-width:0;display:flex}.documents-item__primary{width:100%;min-width:0;min-height:68px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) minmax(84px,auto) 24px;align-items:center;gap:16px;padding:13px 4px;display:grid}.documents-item__top{align-items:flex-start;gap:10px;min-width:0;display:flex}.documents-item__content{flex:1;min-width:0;display:block}.documents-item__file-icon{border:0;border-radius:0;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:2px;width:26px;height:26px;display:inline-flex}.documents-item__file-ext{letter-spacing:.3px;font-size:.48rem;font-weight:var(--font-weight-semibold);text-transform:uppercase;line-height:1}.documents-item__file-icon--pdf{color:#bd5960;background:0 0}.documents-item__file-icon--doc{color:#3e6fae;background:0 0}.documents-item__file-icon--sheet{color:#3b8460;background:0 0}.documents-item__file-icon--image{color:#b8794f;background:0 0}.documents-item__file-icon--generic{color:#5f6e78;background:0 0}.documents-item__footer{min-width:84px;margin:0}.documents-item__title{font-size:.94rem;font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);overflow-wrap:break-word;word-break:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.documents-item__category,.documents-item__role,.documents-item__status-badge{font-size:.68rem}.documents-item__status-badge{font-weight:var(--font-weight-medium);border:0;border-radius:999px;align-items:center;padding:3px 7px;display:inline-flex}.documents-item__status-badge--new{color:#2f8f5d;background:#e8f6ed}.documents-item__status-badge--pending{color:#b5751f;background:#fff5e8;border-color:#f4d9ab}.documents-item__status-badge--required{color:#b64c41;background:#fceceb}.documents-item__status-badge--read{color:#60707b;background:#edf1f2}.documents-item__description{color:var(--color-text-light);font-size:var(--font-size-xs);-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin:4px 0 0;line-height:1.35;display:-webkit-box;overflow:hidden}.documents-item__roles{gap:var(--spacing-xs);flex-wrap:wrap;justify-content:flex-end;margin-bottom:0;display:flex}.documents-item__open{width:28px;height:32px;color:var(--color-text-light);transition:color var(--transition-fast), background-color var(--transition-fast);background:0 0;border:0;justify-content:center;align-self:center;align-items:center;padding:0;font-family:inherit;display:inline-flex}.documents-item__primary:hover .documents-item__open{color:var(--color-primary-dark);background:#2c6b6f17}.documents-item__actions{align-self:center;margin:0 8px 0 0}.document-detail-page .document-detail-card{gap:var(--spacing-md);display:grid}.document-detail-page .document-detail-header{flex-wrap:nowrap;align-items:flex-start}.document-detail-page .document-detail-header>div{flex:auto;min-width:0}.document-detail-page .document-detail-header .btn--back{flex-shrink:0;align-self:flex-start;margin-left:auto}.document-detail-meta{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.document-detail-description{color:var(--color-text-light);margin:0}.document-detail-info{color:var(--color-text-light);font-size:var(--font-size-sm);margin:0}.document-detail-actions{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.document-detail-viewer{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background-alt);position:relative;overflow:hidden}.document-detail-viewer:fullscreen{background:#1a1a1a;justify-content:center;align-items:center;display:flex}.document-detail-viewer__fullscreen-btn{top:var(--spacing-sm);right:var(--spacing-sm);z-index:2;border-radius:var(--radius-sm);color:#fff;cursor:pointer;background:#0000008c;border:none;justify-content:center;align-items:center;width:36px;height:36px;display:flex;position:absolute}.document-detail-viewer__fullscreen-btn:hover{background:#000000bf}.document-detail-viewer__frame{border:0;width:100%;min-height:72vh}.document-detail-viewer__image{object-fit:contain;background:var(--color-background-alt);width:100%;max-height:72vh;display:block}.document-detail-viewer__protected{box-sizing:border-box;-webkit-user-select:none;user-select:none;touch-action:pan-x pan-y;background:#4a4a4a;flex:auto;min-height:0;padding:12px;position:relative;overflow:auto}.document-detail-viewer__protected-shell{flex-direction:column;width:100%;min-width:0;height:min(72vh,760px);min-height:420px;display:flex;position:relative}.document-detail-viewer__pages{flex-direction:column;align-items:center;gap:12px;min-width:min-content;display:flex}.document-detail-viewer__protected--zoomed .document-detail-viewer__pages{align-items:flex-start}.document-detail-viewer__page{background:#fff;flex:none;position:relative;overflow:hidden;box-shadow:0 1px 3px #00000052}.document-detail-viewer__canvas{max-width:none;display:block}.document-detail-viewer__protected-controls{box-sizing:border-box;min-height:48px;padding:var(--spacing-sm);border-top:1px solid var(--color-border);background:var(--color-background-warm);flex:none;justify-content:center;align-items:center;gap:8px;display:flex}.document-detail-viewer__protected-controls button{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-background);min-width:34px;height:34px;color:var(--color-primary-dark);font:inherit;font-size:var(--font-size-sm);cursor:pointer;padding:0 10px;line-height:1}.document-detail-viewer__protected-controls button:disabled{cursor:default;opacity:.45}.document-detail-viewer__protected-controls .document-detail-viewer__zoom-value{cursor:pointer;min-width:42px}.document-detail-viewer__controls-divider{background:var(--color-border);width:1px;height:24px;margin:0 2px;min-width:1px!important}.document-detail-viewer:fullscreen .document-detail-viewer__protected-shell{height:100vh;min-height:0}.document-detail-viewer__page-loading,.document-detail-viewer__protected-loading{border-radius:var(--radius-sm);color:var(--color-text-light);font-size:var(--font-size-sm);background:#ffffffe0;padding:8px 12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.documents-item__meta{font-size:.78rem;font-weight:var(--font-weight-medium);color:var(--color-text);overflow-wrap:anywhere;margin:0}.documents-item__meta--subtle{color:var(--color-text-light);margin-top:3px;font-size:.72rem}.documents-item__actions{gap:var(--spacing-xs);margin-top:var(--spacing-sm);flex-wrap:wrap;display:flex}.documents-item__layout>.documents-item__actions{align-self:center;margin:0 8px 0 0}.documents-item__action-btn{min-height:30px;color:var(--color-primary-dark);white-space:nowrap;background:#ffffffe0;border-color:#2c6b6f4d;padding:0 10px;font-size:.72rem}.documents-item__action-btn:hover:not(:disabled){background:#2c6b6f17}.documents-item__action-btn--danger{color:#a53d35;background:#e74c3c17;border-color:#e74c3c52}.documents-item__action-btn--danger:hover:not(:disabled){background:#e74c3c29}.documents-empty-state{border-radius:var(--radius-md);padding:var(--spacing-lg);text-align:center;background:linear-gradient(145deg,#2c6b6f12,#fffffff2);border:1px dashed #2c6b6f59}.documents-empty-state__icon{width:56px;height:56px;margin:0 auto var(--spacing-sm);color:var(--color-primary-dark);background:#2c6b6f1c;border:1px solid #2c6b6f33;border-radius:16px;justify-content:center;align-items:center;display:inline-flex}.documents-empty-state__title{margin:0 0 var(--spacing-xs) 0;color:var(--color-primary-dark);font-size:var(--font-size-lg)}.documents-empty-state__message{color:var(--color-text-light);margin:0}.documents-calendar-panel{min-width:0}.documents-calendar-panel .documents-calendar-day--has-document:not(.event-calendar__day--selected){color:var(--color-accent-dark);box-shadow:inset 0 -2px 0 var(--color-accent);font-weight:var(--font-weight-semibold);background:#e67e5e33}.documents-calendar-panel .documents-calendar-day--has-document:not(.event-calendar__day--selected):hover{background:#e67e5e47}.documents-calendar-day-list{margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--color-border)}.documents-calendar-day-list__title{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-sm);color:var(--color-primary-dark)}.documents-calendar-day-list__hint,.documents-calendar-day-list__empty{font-size:var(--font-size-xs);color:var(--color-text-light);margin:0}.documents-calendar-day-list__items{gap:var(--spacing-xs);display:grid}.documents-calendar-day-list__item{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-background-alt)}.documents-calendar-day-list__row{justify-content:space-between;align-items:center;gap:var(--spacing-sm);display:flex}.documents-calendar-day-list__open{white-space:nowrap;padding:5px 10px}.documents-calendar-day-list__name{font-size:var(--font-size-sm);color:var(--color-text);margin:0;line-height:1.3}.documents-calendar-day-list__meta{font-size:var(--font-size-xs);color:var(--color-text-light);margin:0}@media (width<=1200px){.documents-toolbar--rich{grid-template-columns:minmax(240px,1.5fr) repeat(3,minmax(130px,.8fr))}}@media (width<=900px){.documents-layout--admin{grid-template-columns:1fr}.documents-loading-state{padding:var(--spacing-sm)}.documents-loading-state__bar{width:44px}.documents-admin-tabs{gap:var(--spacing-xs);flex-wrap:wrap}.documents-admin-tab{flex:180px;min-width:0}.documents-toolbar{margin-bottom:var(--spacing-sm)}.documents-toolbar--rich{display:none}.documents-library{gap:var(--spacing-lg);margin-top:var(--spacing-lg);grid-template-columns:1fr}.documents-category-nav{scrollbar-width:thin;border-bottom:1px solid #2c6b6f29;border-right:0;grid-template-columns:none;grid-auto-columns:max-content;grid-auto-flow:column;gap:6px;padding:0 0 8px;position:static;overflow-x:auto}.documents-category-nav__item{white-space:nowrap;width:auto}.documents-search-group{grid-column:span 1}.documents-day-filter-banner{flex-direction:column;align-items:stretch}.documents-summary-banner__content{flex-direction:column;align-items:flex-start}.documents-summary-banner__actions{justify-content:space-between;width:100%}.documents-summary-banner--new{margin-bottom:8px;padding:8px 10px;font-size:.8125rem}.documents-summary-banner--new .documents-summary-banner__content{gap:2px}.documents-summary-banner--new .documents-summary-banner__action.btn{min-height:24px;font-size:inherit;padding:0;line-height:1.25}.documents-summary-banner--new .documents-summary-banner__close{width:26px;height:26px}.documents-day-filter-banner .btn{width:100%}.documents-filter-group{flex:100%}.documents-item__actions{width:100%}.documents-item__action-btn{flex:1 1 calc(50% - var(--spacing-xs))}.documents-item__action-btn--danger{flex-basis:100%}.document-detail-actions .btn{width:100%}}@media (width<=640px){.documents-loading-state{align-items:flex-start}.documents-loading-state__bar{display:none}.documents-admin-tabs{margin-bottom:var(--spacing-md)}.documents-admin-tab{flex:100%}.documents-list{grid-template-columns:1fr}.documents-item__primary{grid-template-columns:minmax(0,1fr) 20px;gap:10px;padding:13px 2px}.documents-item__footer{grid-column:1;min-width:0;margin-left:36px}.documents-item__open{grid-area:1/2/span 2}.documents-item--featured{grid-column:span 1}.documents-item__actions{flex-direction:column}.documents-item__action-btn{flex-basis:100%;width:100%}.documents-calendar-day-list__row{flex-direction:column;align-items:stretch}.documents-calendar-day-list__open{width:100%}}.horario-semanal{gap:var(--spacing-lg);display:grid}.horario-semanal__section{gap:var(--spacing-sm);display:grid}.horario-semanal__section-header{justify-content:space-between;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.horario-semanal__section-title{color:var(--color-primary);font-size:var(--font-size-lg);margin:0}.horario-semanal__export{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.horario-semanal__table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background-alt);overflow-x:auto}.horario-grid{border-collapse:collapse;table-layout:fixed;width:100%;min-width:840px}.horario-grid__head-cell{padding:var(--spacing-sm);border:1px solid var(--color-border);background:var(--color-primary-soft);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);text-align:center;border-bottom:2px solid var(--color-primary)}.horario-grid__head-cell--time{text-align:left;width:132px}.horario-grid__time-cell{height:84px;padding:var(--spacing-sm);border:1px solid var(--color-border);border-right:2px solid var(--color-border);background:var(--color-background-alt);color:var(--color-text);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);white-space:nowrap;vertical-align:middle}.horario-grid__cell{border:1px solid var(--color-border);background:var(--color-background-alt);text-align:center;vertical-align:middle;height:84px;padding:8px}.horario-grid__cell--occupied{background:var(--slot-bg,var(--color-primary-soft));border-left:4px solid var(--slot-color,var(--color-primary))}.horario-grid__cell--empty{color:var(--color-text-light)}.horario-slot{flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:62px;display:flex}.horario-slot__title{font-size:var(--font-size-sm);line-height:1.2;font-weight:var(--font-weight-semibold);color:var(--slot-color,var(--color-primary));text-wrap:balance;margin:0}.horario-slot__teacher{font-size:var(--font-size-xs);color:var(--color-text-light);font-weight:var(--font-weight-medium);margin:0;line-height:1.2}.horario-slot__empty{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);opacity:.85}.horario-semanal__legend{margin-top:var(--spacing-xs);padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background-warm)}.horario-semanal__legend-title{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-md);color:var(--color-primary-dark)}.horario-semanal__legend-items{gap:var(--spacing-md);flex-wrap:wrap;display:flex}.horario-semanal__legend-item{align-items:center;gap:var(--spacing-xs);color:var(--color-text);font-size:var(--font-size-sm);display:inline-flex}.horario-semanal__legend-box{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-background-alt);width:20px;height:20px}.horario-semanal__legend-box--regular{background:var(--color-background-alt)}.horario-semanal__legend-box--special{border-left:4px solid var(--color-primary);background:#2c6b6f24}@media (width<=900px){.horario-semanal__section-header{align-items:stretch}.horario-semanal__export{justify-content:center;width:100%}}@media (width<=640px){.horario-grid{min-width:760px}.horario-grid__time-cell,.horario-grid__cell{height:80px}.horario-slot{min-height:58px}.horario-semanal__legend-items{gap:var(--spacing-sm);flex-direction:column}}.form-checkbox,.form-radio{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);display:flex}.form-checkbox input[type=checkbox],.form-radio input[type=radio]{cursor:pointer;width:20px;height:20px}.spinner{border:4px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin;display:inline-block}.spinner--sm{border-width:2px;width:20px;height:20px}.spinner--lg{border-width:6px;width:60px;height:60px}.alert{padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);border:var(--border-width) solid transparent}.alert--success{border-color:var(--color-success);color:#155724;background-color:#d4edda}.alert--warning{border-color:var(--color-warning);color:#856404;background-color:#fff3cd}.alert--error{border-color:var(--color-error);color:#721c24;background-color:#f8d7da}.alert--info{border-color:var(--color-info);color:#0c5460;background-color:#d1ecf1}.table{border-collapse:collapse;width:100%;margin-bottom:var(--spacing-lg)}.table th,.table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:var(--border-width) solid var(--color-border)}.table th{background-color:var(--color-background-alt);font-weight:var(--font-weight-medium);color:var(--color-text)}.table tr:hover{background-color:var(--color-background-alt)}.table-row-hoverable:hover{box-shadow:inset 0 0 0 1px var(--color-primary-light);transition:all var(--transition-fast);background-color:var(--color-background-warm)!important}.login-page{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-primary:#2f6f6a;--color-primary-dark:#245b57;--color-primary-light:#4a8a84;--color-primary-soft:#eef6f5;--color-accent:#5ba5a8;--color-accent-dark:#3d7e81;--color-accent-light:#7dbec1;align-items:stretch;min-height:100vh;display:flex}.login-page--transition{opacity:0;will-change:opacity, transform;transition:opacity .32s ease-out,transform .32s ease-out;transform:translateY(16px)scale(.992)}.login-page--ready{opacity:1;transform:translate(0,0)scale(1)}.login-split{width:100%;min-height:100vh;display:flex}.login-split__left{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);padding:var(--spacing-2xl);flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.login-split__left:before{content:"";background:var(--color-accent);opacity:.1;border-radius:50%;width:400px;height:400px;position:absolute;top:-100px;right:-100px}.login-split__left:after{content:"";background:var(--color-secondary);opacity:.1;border-radius:50%;width:300px;height:300px;position:absolute;bottom:-80px;left:-80px}.login-split__brand{text-align:center;color:#fff;z-index:1;max-width:500px}.login-brand-logo{max-width:250px;height:auto;margin:0 auto var(--spacing-xl);padding:var(--spacing-md) var(--spacing-lg);background:#ffffffeb;border:1px solid #ffffff80;border-radius:18px;display:block;box-shadow:0 10px 24px #0000002e}.login-brand-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-md);line-height:var(--line-height-tight)}.login-brand-subtitle{font-size:var(--font-size-xl);font-weight:var(--font-weight-normal);opacity:.9;margin:0}.login-split__right{background:var(--color-background);padding:var(--spacing-2xl);flex:1;justify-content:center;align-items:center;display:flex}.login-card{background:var(--color-background-alt);border-radius:var(--radius-lg);width:100%;max-width:440px;padding:var(--spacing-2xl);box-shadow:var(--shadow-lg)}.login-card__title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-xs);text-align:center}.login-page .login-card__logo-mobile{display:none}.login-card__subtitle{font-size:var(--font-size-md);color:var(--color-text-light);text-align:center;margin-bottom:var(--spacing-xl)}.login-form{gap:var(--spacing-md);flex-direction:column;display:flex}.login-page .form-input,.login-page .form-textarea,.login-page .form-select,.login-page .form-control{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background-color:var(--color-primary-soft);color:var(--color-primary-dark);border-color:#2f6f6a47;caret-color:var(--color-primary-dark)!important}.login-page .form-input::placeholder,.login-page .form-textarea::placeholder{color:#245b57a8}.login-page input[type=email],.login-page input[type=password],.login-page input[type=text]{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ctext x='10' y='16' font-family='serif' font-size='18' text-anchor='middle' fill='%23111827'%3EI%3C/text%3E%3C/svg%3E") 10 10,text;color:var(--color-primary-dark)!important;caret-color:var(--color-primary-dark)!important;-webkit-text-fill-color:var(--color-primary-dark)!important}.login-page .form-input:focus,.login-page .form-textarea:focus,.login-page .form-select:focus,.login-page .form-control:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #5ba5a833;color:var(--color-primary-dark)!important;caret-color:var(--color-primary-dark)!important;-webkit-text-fill-color:var(--color-primary-dark)!important}.login-page .form-input:-webkit-autofill{-webkit-text-fill-color:var(--color-primary-dark);box-shadow:0 0 0px 1000px var(--color-primary-soft) inset;transition:background-color 9999s ease-out}.login-page .form-input:-webkit-autofill:hover{-webkit-text-fill-color:var(--color-primary-dark);box-shadow:0 0 0px 1000px var(--color-primary-soft) inset;transition:background-color 9999s ease-out}.login-page .form-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--color-primary-dark);box-shadow:0 0 0px 1000px var(--color-primary-soft) inset;transition:background-color 9999s ease-out}.login-password-field{position:relative}.login-password-field .form-input{padding-right:calc(var(--spacing-xl) + var(--spacing-sm))}.login-password-toggle{right:var(--spacing-sm);border-radius:var(--radius-sm);width:28px;height:28px;color:var(--color-primary-dark);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.login-password-toggle:hover{color:var(--color-primary);background:#2f6f6a1f}.login-password-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.login-form .btn{margin-top:var(--spacing-sm)}.btn--link{color:var(--color-primary);padding:var(--spacing-xs) 0;background:0 0;border:none;min-width:0;min-height:32px}.btn--link:hover:not(:disabled){color:var(--color-primary-dark)}.login-forgot-btn{font-size:var(--font-size-sm);margin-top:0}.login-reset-text{margin-top:0;margin-bottom:var(--spacing-md);color:var(--color-text);font-size:var(--font-size-sm)}.login-reset-hint{margin:var(--spacing-sm) 0 0;color:var(--color-text-light);font-size:var(--font-size-xs)}.login-reset-link{color:var(--color-primary)}.login-reset-link:hover{color:var(--color-primary-dark)}@media (width<=768px){.login-split{flex-direction:column}.login-split__left{display:none}.login-split__right{min-height:100vh;padding:var(--spacing-lg)}.login-page .login-card__logo-mobile{width:100%;max-width:210px;height:auto;margin:0 auto var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:#ffffffeb;border:1px solid #2f6f6a38;border-radius:14px;display:block;box-shadow:0 8px 20px #0000001f}.login-page .login-card__title{display:none}}.loading-container{background-color:var(--color-background-alt);justify-content:center;align-items:center;min-height:100vh;display:flex}.loading-screen{background:radial-gradient(circle at 22% 20%, #5ba5a833 0%, transparent 44%), radial-gradient(circle at 78% 84%, #e67e5e29 0%, transparent 42%), linear-gradient(150deg, var(--color-background-alt) 0%, var(--color-primary-soft) 58%, var(--color-background-warm) 100%);z-index:9999;opacity:0;justify-content:center;align-items:center;transition:opacity .26s,transform .26s;animation:.22s ease-out forwards loading-screen-overlay-in;display:flex;position:fixed;inset:0;transform:scale(1.01)}@keyframes loading-screen-overlay-in{0%{opacity:0;transform:scale(1.01)}to{opacity:1;transform:scale(1)}}.loading-screen--exit{opacity:0;transform:scale(1.01)}.loading-screen__content{align-items:center;gap:var(--spacing-lg);will-change:transform, opacity;flex-direction:column;animation:.32s ease-out loading-screen-content-in;display:flex}@keyframes loading-screen-content-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translate(0,0)}}.loading-screen__logo-container{background:#ffffffe6;border:1px solid #1e4d5026;border-radius:50%;justify-content:center;align-items:center;width:124px;height:124px;display:flex;position:relative;box-shadow:0 10px 22px #1e4d5029,inset 0 1px #fffc}.loading-screen__logo-container:after{content:"";will-change:transform;border:2px solid #2c6b6f2e;border-top-color:#2c6b6fad;border-radius:50%;animation:1.2s linear infinite loading-screen-ring-spin;position:absolute;inset:-8px}.loading-screen__logo{object-fit:contain;width:76px;height:76px;transform:translateZ(0)}@keyframes loading-screen-ring-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-screen__message{color:var(--color-primary-dark);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);text-align:center;letter-spacing:.01em;animation:1.8s ease-in-out infinite loading-screen-message-soft-pulse}@keyframes loading-screen-message-soft-pulse{0%,to{opacity:.84}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.login-page--transition{opacity:1;transition:none;transform:none}.loading-screen,.loading-screen__content,.loading-screen__logo-container:after,.loading-screen__message{transition:none!important;animation:none!important}}.modal-content--sm{max-width:400px}.modal-content--md{max-width:600px}.modal-content--lg{max-width:800px}.modal-content--full{width:96vw;max-width:1200px;height:92vh;max-height:92vh}.modal-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-secondary-light);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.modal-close{color:var(--color-text-light);cursor:pointer;padding:var(--spacing-xs);transition:all var(--transition-fast);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.5rem;line-height:1;display:flex}.modal-close:hover{background-color:var(--color-secondary);color:var(--color-text)}.modal-body{padding:var(--spacing-lg)}.modal-footer{gap:var(--spacing-md);padding:var(--spacing-lg);border-top:1px solid var(--color-secondary-light);justify-content:flex-end;display:flex}.confirm-message{font-size:var(--font-size-md);color:var(--color-text);margin:0;line-height:1.6}.alert-dialog{align-items:center;gap:var(--spacing-md);text-align:center;flex-direction:column;display:flex}.alert-dialog__icon{font-size:1.75rem;animation:.3s ease-out scaleIn}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.alert-dialog__message{font-size:var(--font-size-md);color:var(--color-text);margin:0;line-height:1.6}.alert-dialog--success .alert-dialog__icon{color:var(--color-success)}.alert-dialog--warning .alert-dialog__icon{color:var(--color-warning)}.alert-dialog--error .alert-dialog__icon{color:var(--color-error)}.alert-dialog--info .alert-dialog__icon{color:var(--color-info)}.btn--warning{background-color:var(--color-warning);color:#fff}.btn--warning:hover:not(:disabled){opacity:.9}.empty-state{text-align:center;padding:48px 32px}.empty-state__icon{opacity:.5;margin-bottom:16px;font-size:48px}.empty-state__text{color:#6b7280;margin-top:8px;font-size:15px}.empty-state--card{box-shadow:none;background:linear-gradient(#fafbfc 0%,#fff 100%);border:1.5px dashed #d1d5db;border-radius:12px;margin-top:0;padding:64px 32px}.empty-state--card p{color:#6b7280;margin-bottom:24px;font-size:16px;font-weight:500}.page-header--spaced{border-bottom:1px solid #e9ecef;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding:16px 0 12px;display:flex}.page-header--spaced h1{color:#1a3a1f;letter-spacing:-.3px;margin:0;font-size:24px;font-weight:600}.muted-text{color:#6c757d;margin:0;font-size:13px;font-weight:400;line-height:1.4}.filters-card{background:var(--color-background);border:1px solid #e5e7eb;border-radius:8px;margin-bottom:20px;padding:16px 20px;box-shadow:0 1px 2px #00000008}.filters-card .filter-group{flex-direction:column;gap:6px;display:flex}.filters-card .form-label{color:#6b7280;text-transform:uppercase;letter-spacing:.5px;margin-bottom:0;font-size:11px;font-weight:600}.filters-card .form-input,.filters-card .form-select{border:1px solid #d1d5db;border-radius:6px;padding:8px 12px;font-size:14px;transition:all .2s}.filters-card .form-input:focus,.filters-card .form-select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 2px #2e7d3214}.filters-grid{grid-template-columns:1fr 1fr auto;align-items:flex-end;gap:16px;display:grid}.filter-stats{gap:16px;display:flex}.stat-card{min-width:90px;box-shadow:none;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:10px 14px;transition:border-color .2s}.stat-card:hover{border-color:#2e7d324d}.stat-label{color:#9ca3af;text-transform:uppercase;letter-spacing:.5px;margin:0 0 4px;font-size:10px;font-weight:600}.stat-value{color:#374151;margin:0;font-size:20px;font-weight:600;line-height:1}.filters-grid .form-group{margin-bottom:0}.children-page{--children-surface:#fff;--children-surface-alt:#fbfaf7;--children-border:#1e4d501f;--children-divider:#1e4d5014;--children-shadow:0 12px 26px #1e4d5014;--children-section:#f7f5f0;--children-section-medical:#fff6ec;--children-section-alert:#fff3f2;--children-medical-border:#e67e5e2e;--children-alert-border:#e74c3c40}[data-theme=dark] .children-page{--children-surface:#2c3e3f;--children-surface-alt:#243234;--children-border:#f5f2ed1f;--children-divider:#f5f2ed14;--children-shadow:0 16px 30px #00000073;--children-section:#233032;--children-section-medical:#2f261f;--children-section-alert:#2f1f1f;--children-medical-border:#e67e5e59;--children-alert-border:#e74c3c66}.children-page .dashboard-header--compact{padding:0 0 var(--spacing-lg);background:0 0;border-bottom:none}.family-conversations-page{padding:0 var(--spacing-md)!important;max-width:1280px!important;margin:0 auto!important}.family-conversations-page .conversations-list{background:0 0;border:none;border-radius:0;margin:0}.family-conversations-page .conversation-row{padding-left:var(--spacing-lg);border-left-width:0;border-top:1px solid var(--color-border)}.family-conversations-page .conversation-row:first-child{border-top:none}.family-conversations-page .conversation-row:hover{padding-left:calc(var(--spacing-lg) - 4px)}.family-conversations-page .conversations-toolbar{padding:0 var(--spacing-lg)}.family-conversations-page .conversations-empty{padding:var(--spacing-xl) var(--spacing-lg)}.children-page .dashboard-title{color:var(--color-text);letter-spacing:-.3px}.children-page .dashboard-subtitle{color:var(--color-text-light)}.children-page .card{background:var(--children-surface);border-color:var(--children-border);box-shadow:0 1px 2px #1e4d500f}.children-page .card:hover{box-shadow:0 10px 20px #1e4d5014}.children-page .filters-card{background:var(--children-surface);border:1px solid var(--children-border);box-shadow:none;padding:14px 18px}.children-page .filters-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,.9fr) auto;gap:14px}@media (width<=600px){.children-page .filters-grid{grid-template-columns:1fr}.children-page .filter-stats{flex-direction:row;justify-content:flex-start}}.children-page .filters-card .form-label{letter-spacing:.7px;color:var(--color-text-light);font-size:10px}.children-page .filters-card .form-input,.children-page .filters-card .form-select{background:var(--children-surface);border-color:#1e4d502e}.children-page .filters-card .form-input:focus,.children-page .filters-card .form-select:focus{box-shadow:0 0 0 3px #2c6b6f24}.children-page .filter-stats{align-items:center;gap:12px}.children-page .stat-card{background:var(--children-surface-alt);border-color:var(--children-border);border-radius:10px;min-width:86px;padding:8px 12px}.children-page .stat-label{letter-spacing:.6px;font-size:9px}.children-page .stat-value{color:var(--color-primary);font-size:17px;font-weight:700}.children-page .children-table{border-radius:var(--radius-lg);border:1px solid var(--children-border);background:var(--children-surface);overflow:hidden}.children-page .children-table__header{background:var(--children-surface-alt);border-bottom:1px solid var(--children-divider);padding:14px 18px 10px}.children-page .children-table__table.table--compact th,.children-page .children-table__table.table--compact td{padding:8px 10px;font-size:13.5px}.children-page .children-table__table thead th{text-transform:uppercase;letter-spacing:.6px;color:var(--color-text-light);background:var(--children-surface-alt);border-bottom:1px solid var(--children-divider);font-size:11px}.children-page .children-table__table td{border-bottom:1px solid var(--children-divider)}.children-page .children-table__row:hover{background-color:#2c6b6f0d}.children-page .children-table__row--selected{box-shadow:inset 3px 0 0 var(--color-primary);background-color:#2c6b6f14}.children-page .children-table__actions .btn{min-height:30px;padding:6px 10px;font-size:12px}.children-page .children-table__actions .btn--outline{color:var(--color-primary);background:0 0;border-color:#1e4d5033}.children-page .children-table__actions .btn--outline:hover:not(:disabled){background:#2c6b6f14}.children-page .children-table__footer{background:var(--children-surface-alt);border-top:1px solid var(--children-divider);padding:14px 18px}.children-page .children-detail{top:96px}.children-page .badge{border-color:var(--children-border);padding:5px 9px;font-size:12px}.children-page .badge--warning{color:#b45309;background-color:#f39c120f;border-color:#f39c1224}.children-page .badge--success{color:#1f7a4a;background-color:#27ae600f;border-color:#27ae6024}.children-grid{grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:24px;margin-top:0;display:grid}.children-grid__footer{border-top:1px solid #e5e7eb;justify-content:space-between;align-items:center;gap:16px;margin-top:32px;padding-top:24px;display:flex}.children-grid__footer .muted-text{margin:0}.children-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:20px;display:grid}.children-table{padding:0}.children-table__header{padding:16px 20px 0}.children-table__table{margin-bottom:0}.children-table__row{cursor:pointer;transition:background-color .2s}.children-table__row:hover{background-color:var(--color-background-alt)}.children-table__row--selected{background-color:var(--color-primary-soft)}.children-table__name{color:var(--color-text);font-weight:600}.children-table__meta{color:var(--color-text-light);font-size:12px}.children-table__families{flex-direction:column;gap:2px;display:flex}.children-table__families-count{color:var(--color-text);font-size:12px;font-weight:600}.children-table__families-preview{color:var(--color-text-light);font-size:12px}.children-table__actions{flex-wrap:wrap;gap:6px;display:flex}.children-table__footer{border-top:1px solid #e5e7eb;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.children-detail{align-self:start;position:sticky;top:110px}@media (width<=1100px){.children-layout{grid-template-columns:1fr}.children-detail{position:static}}.child-card{border:1px solid var(--color-border);background-color:#fff;border-radius:12px;flex-direction:column;transition:transform .2s,box-shadow .2s;display:flex;overflow:hidden;box-shadow:0 1px 3px #00000014}.child-card:hover{transform:translateY(-4px);box-shadow:0 8px 16px #0000001f}.child-card__header{border-bottom:1px solid var(--color-border-light,#e9ecef);background:linear-gradient(135deg,#f8f9fa 0%,#fff 100%);align-items:center;gap:14px;padding:20px;display:flex}.child-card__avatar{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark,#1a5f3f) 100%);color:#fff;letter-spacing:.5px;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:18px;font-weight:700;display:flex;box-shadow:0 2px 8px #2e7d324d}.child-card__title{flex:1;min-width:0}.child-card__name{color:var(--color-text-dark,#2c3e50);white-space:nowrap;text-overflow:ellipsis;margin:0 0 6px;font-size:17px;font-weight:600;overflow:hidden}.child-card__badges{flex-wrap:wrap;gap:6px;display:flex}.child-card__body{flex-direction:column;flex:1;gap:16px;padding:18px 20px;display:flex}.child-card__info-row{flex-direction:column;gap:4px;display:flex}.child-card__info-item{flex-direction:column;gap:2px;display:flex}.child-card__label{color:var(--color-text-light,#6c757d);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:500}.child-card__value{color:var(--color-text,#495057);font-size:14px;font-weight:500}.child-card__section{border-left:3px solid var(--color-primary);background:#f8f9fa;border-radius:8px;padding:12px}.child-card__section--medical{border-left-color:var(--color-warning,#ff9800);background:#fff9f0}.child-card__section-title{color:var(--color-text-dark,#2c3e50);margin-bottom:8px;font-size:13px;font-weight:600;display:block}.child-card__families{flex-direction:column;gap:6px;display:flex}.child-card__family-item{color:var(--color-text,#495057);background:var(--color-background);border:1px solid #2e7d3226;border-radius:4px;padding:6px 10px;font-size:13px}.child-card__medical-grid{flex-direction:column;gap:8px;display:flex}.child-card__medical-item{background:var(--color-background);border:1px solid #ff980033;border-radius:4px;flex-direction:column;gap:4px;padding:8px 10px;font-size:13px;display:flex}.child-card__medical-item--alert{background:#fff5f5;border-color:#f443364d}.child-card__medical-item strong{color:var(--color-text-dark,#2c3e50);font-size:12px;font-weight:600}.child-card__medical-item span{color:var(--color-text,#495057)}.child-card__meeting-list{gap:var(--spacing-sm);margin-top:var(--spacing-xs);display:grid}.child-card__meeting-entry{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--spacing-sm);background-color:var(--color-background-alt)}.child-card__meeting-meta{gap:var(--spacing-xs);margin-bottom:var(--spacing-xs);flex-wrap:wrap;align-items:center;display:flex}.child-card__meeting-content{font-size:var(--font-size-sm);gap:2px;display:grid}.child-card__meeting-attachments{margin-top:var(--spacing-xs)}.child-card__meeting-attachments ul{margin:var(--spacing-xs) 0 0;padding-left:1.1rem}.child-card__doc-list{gap:var(--spacing-xs);margin-top:var(--spacing-xs);display:grid}.child-card__doc-item{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs);background-color:var(--color-background-alt);border-radius:var(--radius-sm);border:1px solid var(--color-border);color:inherit;transition:background-color var(--transition-fast);text-decoration:none;display:flex}.child-card__doc-item:hover{background-color:var(--color-primary-soft)}.child-card__doc-icon{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-light)}.child-card__doc-info{flex:1;min-width:0}.child-card__doc-name{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.child-card__doc-desc{color:var(--color-text-light);font-size:10px}.child-card__doc-action{font-size:var(--font-size-xs);color:var(--color-primary)}.student-reports{gap:var(--spacing-sm);display:grid}.student-reports__header{justify-content:space-between;align-items:center;gap:var(--spacing-sm);display:flex}.student-reports__empty{margin-top:0}.student-reports__list{gap:var(--spacing-xs);display:grid}.student-reports__item{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--color-background-alt);border:1px solid var(--color-border);border-radius:var(--radius-sm);display:flex}.student-reports__file-icon{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--color-primary);background:#2c6b6f17;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.student-reports__content{flex:1;min-width:0}.student-reports__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.student-reports__meta{font-size:var(--font-size-xs);color:var(--color-text-light);overflow-wrap:anywhere;margin-top:2px}.student-reports__actions{align-items:center;gap:var(--spacing-xs);flex-wrap:wrap;justify-content:flex-end;display:flex}.student-reports__form{gap:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--color-border);display:grid}.student-reports__form-grid{gap:var(--spacing-sm);grid-template-columns:minmax(0,1.4fr) minmax(96px,.6fr);display:grid}.student-reports__form .form-group{margin-bottom:0}.student-reports__period-options{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.student-reports__period-option{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-background);min-height:28px;color:var(--color-text);font-size:var(--font-size-xs);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);padding:4px 8px}.student-reports__period-option:hover:not(:disabled){color:var(--color-primary);background:#2c6b6f14;border-color:#2c6b6f57}.student-reports__period-option--active{color:var(--color-primary);background:#2c6b6f1f;border-color:#2c6b6f73}.student-reports__form .pn-upload-selector{min-height:116px}@media (width<=520px){.student-reports__item{flex-wrap:wrap;align-items:flex-start}.student-reports__actions{justify-content:flex-start;width:100%}.student-reports__form-grid{grid-template-columns:1fr}}.child-card__footer{border-top:1px solid var(--color-border-light,#e9ecef);background:#fafbfc;gap:8px;padding:14px 20px;display:flex}.child-card__footer .btn{flex:1}.children-page .child-card{border-color:var(--children-border);background:var(--children-surface);box-shadow:0 8px 18px #1e4d5014}.children-page .child-card:hover{box-shadow:var(--children-shadow);transform:translateY(-2px)}.children-page .child-card__header{background:linear-gradient(180deg, var(--children-surface-alt) 0%, var(--children-surface) 100%);border-bottom:1px solid var(--children-divider)}.children-page .child-card__avatar{box-shadow:0 6px 14px #1e4d5033}.children-page .child-card__section{background:var(--children-section);border-left-width:2px;border-left-color:#1e4d504d}.children-page .child-card__section--medical{background:var(--children-section-medical);border-left-color:#e67e5e73}.children-page .child-card__family-item{border-color:var(--children-border);background:var(--children-surface)}.children-page .child-card__medical-item{border-color:var(--children-medical-border);background:var(--children-surface)}.children-page .child-card__medical-item--alert{border-color:var(--children-alert-border);background:var(--children-section-alert)}.children-page .child-card__footer{background:var(--children-surface-alt);border-top:1px solid var(--children-divider)}.children-page .child-card--admin .child-card__header{gap:10px;padding:16px 18px}.children-page .child-card--admin .child-card__name{margin-bottom:4px;font-size:1.35rem}.children-page .child-card--admin .child-card__body{gap:12px;padding:14px 18px}.children-page .child-card--admin .child-card__section{padding:10px}.children-page .child-card--admin .child-card__medical-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.children-page .child-card--admin .child-card__medical-item{padding:7px 9px}.children-page .child-card--admin .child-card__footer{padding:12px 18px}.badge--outline{color:var(--color-text-light,#6c757d);background:0 0;border:1px solid}.badge--warning{color:#e65100;background:#ff980026;border:1px solid #ff98004d}.btn--text{color:var(--color-text,#495057);background:0 0;border:none}.btn--text:hover{background:#0000000a}.btn--text.btn--danger{color:var(--color-danger,#dc3545)}.btn--text.btn--danger:hover{background:#dc354514}.child-card .child-card-header{justify-content:space-between;gap:var(--spacing-sm)}.child-card .card-actions{gap:var(--spacing-xs);display:flex}.new-form-card{margin-top:var(--spacing-lg);padding:var(--spacing-lg)}.family-snacks-page{overflow-x:clip}.family-snacks-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:linear-gradient(#fffffffa 0%,#faf8f5f5 100%)}.family-snacks-next{margin-bottom:var(--spacing-md);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);background:#2c6b6f14;border:1px solid #2c6b6f3d;gap:2px;display:grid}.family-snacks-next__label{font-size:var(--font-size-xs);color:var(--color-text-light);margin:0}.family-snacks-next__week{color:var(--color-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);margin:0}.family-snacks-pending-note{margin:0 0 var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-text-light)}.family-snacks-section{margin-bottom:var(--spacing-lg)}.family-snacks-section__title{margin:0 0 var(--spacing-sm);font-size:var(--font-size-lg);color:var(--color-text)}.snack-list-subtitle{font-size:var(--font-size-sm);color:var(--color-text-light);margin:4px 0 0}.snack-accordion-list{gap:var(--spacing-sm);display:grid}.snack-accordion{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background-alt)}.snack-accordion__trigger{justify-content:space-between;align-items:center;gap:var(--spacing-sm);cursor:pointer;text-align:left;background:0 0;border:none;width:100%;padding:10px 12px;display:flex}.snack-accordion__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.snack-accordion__state{font-size:var(--font-size-xs);color:var(--color-primary);font-weight:var(--font-weight-medium);white-space:nowrap}.snack-accordion__content{border-top:1px solid var(--color-border);padding:10px 12px}.family-snacks-history{margin-top:var(--spacing-lg);border-top:1px solid var(--color-border);padding-top:var(--spacing-md)}.family-snacks-history__trigger{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background-alt);justify-content:space-between;align-items:center;gap:var(--spacing-sm);width:100%;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);cursor:pointer;text-align:left;padding:10px 12px;display:flex}.family-snacks-history__meta{font-size:var(--font-size-xs);color:var(--color-text-light);font-weight:var(--font-weight-medium);white-space:nowrap}.family-snacks-history__content{margin-top:var(--spacing-sm)}.snack-list-card{margin-bottom:var(--spacing-lg);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.snack-list-editor{margin-bottom:var(--spacing-md)}.snack-list-tabs{gap:var(--spacing-md);display:grid}.snack-list-tabs__header{gap:var(--spacing-xs);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:linear-gradient(180deg, var(--color-background-alt) 0%, #f7f5f2 100%);grid-template-columns:repeat(2,minmax(0,1fr));padding:4px;display:grid}.snack-list-tab{border-radius:calc(var(--radius-md) - 2px);color:var(--color-text);justify-content:space-between;align-items:center;gap:var(--spacing-sm);text-align:left;cursor:pointer;transition:transform var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast), color var(--transition-fast);background:0 0;border:none;padding:10px 12px;display:flex}.snack-list-tab:hover{background:#ffffffd9;transform:translateY(-1px)}.snack-list-tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.snack-list-tab--active{background:var(--color-background);color:var(--color-primary);box-shadow:0 6px 16px #2d201714}.snack-list-tab__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.snack-list-tabs__content{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-background);padding:var(--spacing-md);animation:.18s ease-out snack-list-fade-in}.snack-list-editor__meta{margin-bottom:var(--spacing-md)}.snack-list-editor__title{font-size:var(--font-size-lg);color:var(--color-primary);margin:0}.snack-list-editor__subtitle{font-size:var(--font-size-sm);color:var(--color-text-light);margin:4px 0 0}.snack-list-editor__actions{margin-top:var(--spacing-sm);justify-content:flex-end;display:flex}@keyframes snack-list-fade-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.snack-list-header{justify-content:space-between;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.snack-list-heading{font-size:var(--font-size-lg);color:var(--color-primary);margin:0}.snack-list-toggle{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.snack-list-block+.snack-list-block{margin-top:var(--spacing-md);padding-top:var(--spacing-sm);border-top:1px solid var(--color-border)}.snack-list-title{margin:0 0 var(--spacing-sm);font-size:var(--font-size-md);color:var(--color-primary)}.snack-list{margin:0 0 var(--spacing-md);padding-left:var(--spacing-md)}.snack-list li{margin-bottom:var(--spacing-xs);overflow-wrap:anywhere}.snack-note{padding:var(--spacing-sm);border-left:3px solid var(--color-accent);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-text);background:#e67e5e1a}.assignments-list{gap:var(--spacing-md);background:0 0;flex-direction:column;display:flex}.assignment-card{border:1px solid var(--color-border);background:#fff;transition:box-shadow .2s}.assignment-card:hover{box-shadow:0 2px 8px #0000000f}.assignment-card--upcoming{border-left:3px solid var(--color-accent);background:#fff}.assignment-card--past{opacity:.6;background:#fff}.assignment-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);margin-bottom:var(--spacing-md);flex-wrap:wrap;display:flex}.assignment-title{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text);overflow-wrap:anywhere;margin:0}.assignment-ambiente{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-primary);background:var(--color-primary-soft);border-radius:var(--radius-sm);margin:4px 0 0;padding:3px 8px;display:inline-block}.assignment-warning{padding:var(--spacing-sm) var(--spacing-md);border-left:3px solid var(--color-accent);border-radius:var(--radius-sm);margin-bottom:var(--spacing-md);color:var(--color-text);font-size:var(--font-size-sm);background:#e67e5e1a}.assignment-warning strong{color:var(--color-accent)}.assignment-actions{gap:var(--spacing-sm);flex-direction:column;display:flex}.assignment-confirmed{align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-success);font-weight:var(--font-weight-medium);display:inline-flex}.assignment-change-request{padding:var(--spacing-sm);border-left:2px solid var(--color-warning);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:#f59e0b0d}.assignment-change-request p:first-child{margin:0 0 var(--spacing-xs) 0;font-weight:var(--font-weight-medium)}.assignment-change-request__message{font-size:var(--font-size-sm);white-space:pre-wrap;color:var(--color-text-light);margin:var(--spacing-xs) 0}.assignment-change-request__note{font-size:var(--font-size-xs);margin-top:var(--spacing-xs);color:var(--color-text-light);font-style:italic}.assignment-suspended{padding:var(--spacing-sm);border-left:2px solid var(--color-warning);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:#f39c120f}.assignment-suspended span{font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-xs);display:block}.assignment-suspended__message{font-size:var(--font-size-sm);color:var(--color-text-light);margin-top:var(--spacing-xs);font-style:italic}.assignment-buttons{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.assignment-buttons .btn{font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);flex:1;min-width:140px}.btn--danger-outline{color:var(--color-error);background:0 0;border-color:#ef44444d}.btn--danger-outline:hover:not(:disabled){border-color:var(--color-error);color:var(--color-error);background:#ef44441a}.assignment-cancelled{padding:var(--spacing-sm);border-left:2px solid var(--color-error);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:#ef44440d}.assignment-cancelled span{font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-xs);display:block}.assignment-cancelled__message{font-size:var(--font-size-sm);color:var(--color-text);margin-top:var(--spacing-xs);font-style:italic}.assignment-past-note{color:var(--color-text-light);font-size:var(--font-size-sm);margin-top:var(--spacing-sm)}.assignment-header .badge{flex-shrink:0}@media (width<=768px){.assignment-card .card__body{padding:var(--spacing-sm)}.assignment-buttons{flex-direction:column}.assignment-buttons .btn{flex:auto;width:100%;min-width:0}.snack-list-header{align-items:stretch}.snack-list-tabs__header{grid-template-columns:1fr}.snack-list-tab{padding:9px 10px}.snack-list-tabs__content{padding:var(--spacing-sm)}.snack-list-editor__actions .btn{width:100%}.snack-accordion__trigger,.family-snacks-history__trigger{padding:9px 10px}.family-snacks-history__trigger{flex-wrap:wrap}.family-snacks-history__meta{text-align:left;width:100%}}.form-help{font-size:var(--font-size-sm);color:var(--color-text-light);font-style:italic}.user-stats{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:center;display:flex}.user-toolbar{margin-bottom:var(--spacing-md);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.user-toolbar__left{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.user-toolbar__actions{align-items:center;display:flex}.user-toolbar__summary{flex-direction:column;gap:6px;display:flex}.user-filter{flex-direction:column;gap:4px;min-width:140px;display:flex}.user-filter label{color:var(--color-text-light);font-size:12px}.create-form-card{margin-bottom:var(--spacing-lg);background:var(--color-background)}.form-grid{margin-top:var(--spacing-md)}.table-container{overflow-x:auto}.role-select{min-width:150px}.user-note{color:var(--color-text-light);font-size:var(--font-size-sm);margin-top:var(--spacing-xs);display:block}.family-selector-actions{gap:var(--spacing-sm);flex-wrap:wrap;align-items:center;display:flex}.selected-count{font-size:var(--font-size-sm);color:var(--color-text-light);font-weight:var(--font-weight-medium);margin-left:auto}.family-selector{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-background);scroll-behavior:smooth;max-height:300px;overflow-y:auto}.family-selector-item{border-bottom:var(--border-width) solid var(--color-border)}.family-selector-item:last-child{border-bottom:none}.family-checkbox{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);cursor:pointer;transition:background-color var(--transition-fast);width:100%;margin:0;display:flex}.family-checkbox:hover{background-color:var(--color-background-warm)}.family-checkbox input[type=checkbox]{cursor:pointer;flex-shrink:0;width:20px;height:20px}.family-info{gap:var(--spacing-xs);flex-direction:column;flex:1;display:flex}.family-name{font-weight:var(--font-weight-medium);color:var(--color-text)}.family-email{font-size:var(--font-size-sm);color:var(--color-text-light)}.selected-families-chips{background-color:var(--color-background-warm);padding:var(--spacing-md);border-radius:var(--radius-md);border:1px solid var(--color-secondary-light)}.chips-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-sm)}.chips-container{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.family-chip{align-items:center;gap:var(--spacing-xs);background-color:var(--color-accent);color:#fff;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);display:inline-flex}.family-chip:hover{box-shadow:var(--shadow-sm);background-color:#d35400}.chip-text{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.chip-remove{color:#fff;cursor:pointer;width:20px;height:20px;transition:background-color var(--transition-fast);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:1.25rem;line-height:1;display:flex}.chip-remove:hover:not(:disabled){background-color:#fff3}.chip-remove:disabled{opacity:.5;cursor:not-allowed}.family-search-box input{width:100%}.family-autocomplete{width:100%;position:relative}.family-dropdown{background:var(--color-background);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);max-height:320px;box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);margin-top:var(--spacing-xs);position:absolute;top:100%;left:0;right:0;overflow-y:auto}.family-dropdown-item{padding:var(--spacing-md);cursor:pointer;border-bottom:var(--border-width) solid var(--color-border);transition:background-color var(--transition-fast)}.family-dropdown-item:last-child{border-bottom:none}.family-dropdown-item:hover{background-color:var(--color-background-warm)}.family-dropdown-item:active{background-color:var(--color-secondary-light)}.family-dropdown-footer{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-text-light);text-align:center;background-color:var(--color-background-alt);border-top:var(--border-width) solid var(--color-border);font-style:italic}.family-dropdown-empty{padding:var(--spacing-lg);text-align:center;color:var(--color-text-light);font-size:var(--font-size-sm)}.family-quick-actions{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.recipient-card{margin-top:var(--spacing-md);background:var(--color-background-alt);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md);box-shadow:var(--shadow-sm)}.recipient-mode{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.recipient-mode label{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-md);border:var(--border-width) solid transparent;font-weight:var(--font-weight-semibold);cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast);display:flex}.recipient-mode input{accent-color:var(--color-primary)}.recipient-mode label:hover{border-color:var(--color-primary-light)}.recipient-mode-option.is-active{background:var(--color-background);border-color:var(--color-primary)}.recipient-mode-title{font-size:var(--font-size-md)}.recipient-mode-subtitle{font-size:var(--font-size-xs);color:var(--color-text-light);display:block}.recipient-content{margin-top:var(--spacing-md);gap:var(--spacing-md);flex-direction:column;display:flex}.recipient-chips{gap:var(--spacing-xs);flex-direction:column;display:flex}.recipient-chip{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);background:var(--color-background);border:var(--border-width) solid var(--color-border);display:inline-flex;box-shadow:inset 0 0 0 1px #0000000a}.recipient-chip .chip-remove{color:var(--color-error);cursor:pointer;background:0 0;border:none;font-size:1rem}.family-autocomplete{position:relative}.recipient-search-input{align-items:center;gap:var(--spacing-xs);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);padding:0 var(--spacing-sm);display:flex}.recipient-search-input input{padding:var(--spacing-xs);background:0 0;border:none;flex:1}.recipient-search-input input:focus{outline:none}.recipient-search-icon{color:var(--color-text-light);font-size:1rem}.recipient-quick-actions{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.upcoming-appointments-card{border-left:4px solid var(--color-accent);margin-bottom:var(--spacing-lg);background:linear-gradient(135deg,#fef5e7 0%,#fae5d3 100%)}.upcoming-appointments-list{gap:var(--spacing-md);flex-direction:column;display:flex}.upcoming-appointment-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:all var(--transition-fast);background-color:#fff;display:flex}.upcoming-appointment-item:hover{box-shadow:var(--shadow-md)}.appointment-icon{flex-shrink:0;font-size:2rem}.appointment-details{flex:1}.appointment-datetime{font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-xs);text-transform:capitalize}.appointment-note{font-size:var(--font-size-sm);color:var(--color-text-light);margin-top:var(--spacing-xs)}.appointments-main-grid{gap:var(--spacing-lg);margin-bottom:var(--spacing-lg);grid-template-columns:2fr 1fr;display:grid}.calendar-month-nav{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-secondary-light);justify-content:space-between;align-items:center;display:flex}.calendar-month-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);text-transform:capitalize;margin:0}.btn--ghost{color:var(--color-text);background-color:#0000;border:none}.btn--ghost:hover:not(:disabled){background-color:var(--color-secondary)}.calendar-grid{margin-bottom:var(--spacing-md);grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar-day-header{text-align:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-light);padding:var(--spacing-xs);text-transform:uppercase}.calendar-day{padding:var(--spacing-xs);border-radius:var(--radius-sm);border:1px solid var(--color-secondary-light);cursor:pointer;transition:all var(--transition-fast);aspect-ratio:1.1;background-color:#fff;flex-direction:column;justify-content:center;align-items:center;min-height:45px;display:flex;position:relative}.calendar-day:hover:not(.calendar-day--past):not(.calendar-day--empty){border-color:var(--color-accent);box-shadow:var(--shadow-sm)}.calendar-day--empty{cursor:default;background-color:#0000;border:none}.calendar-day--past{background-color:var(--color-secondary);color:var(--color-text-light);cursor:not-allowed;opacity:.5}.calendar-day--today{border:2px solid var(--color-primary);font-weight:var(--font-weight-bold)}.calendar-day--selected{background-color:var(--color-accent);color:#fff;border-color:var(--color-accent)}.calendar-day--available{background-color:#e8f8f5;border-color:#1abc9c}.calendar-day--booked{border-color:var(--color-accent);font-weight:var(--font-weight-semibold);background-color:#fef5e7}.calendar-day-number{font-size:var(--font-size-sm);margin-bottom:2px}.calendar-day-indicator{border-radius:50%;width:6px;height:6px;position:absolute;bottom:4px}.calendar-day-indicator--available{background-color:#1abc9c}.calendar-day-indicator--booked{background-color:var(--color-accent)}.calendar-legend{gap:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--color-secondary-light);justify-content:center;display:flex}.legend-item{align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-light);display:flex}.legend-color{border-radius:var(--radius-sm);width:16px;height:16px}.legend-color--available{background-color:#e8f8f5;border:1px solid #1abc9c}.legend-color--booked{border:1px solid var(--color-accent);background-color:#fef5e7}.available-slots-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.available-slot-item{padding:var(--spacing-md);background-color:var(--color-background-warm);border-radius:var(--radius-md);border:1px solid var(--color-secondary-light);transition:all var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.available-slot-item:hover{border-color:var(--color-accent);box-shadow:var(--shadow-sm)}.slot-time-info{gap:var(--spacing-xs);flex-direction:column;display:flex}.slot-time{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text)}.slot-duration{font-size:var(--font-size-sm);color:var(--color-text-light);align-items:center;gap:6px;display:flex}.admin-ambiente-badge{letter-spacing:.03em;vertical-align:middle;color:#666;background:#f0f0f0;border-radius:4px;align-items:center;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}.slot-ambiente-badge{letter-spacing:.03em;opacity:.75;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:600}.slot-ambiente-badge--t1{color:#3b6dbf;background:#e8f0fb}.slot-ambiente-badge--t2{color:#b03a7a;background:#fce8f3}.my-appointments-list{gap:var(--spacing-md);flex-direction:column;display:flex}.my-appointment-item{padding:var(--spacing-md);border-radius:var(--radius-md);border-left:4px solid var(--color-secondary);box-shadow:var(--shadow-sm);transition:all var(--transition-fast);background-color:#fff;justify-content:space-between;align-items:center;display:flex}.my-appointment-item:hover{box-shadow:var(--shadow-md)}.my-appointment-item--reservado{border-left-color:var(--color-warning);background-color:#fffbf0}.my-appointment-item--asistio{border-left-color:var(--color-success);background-color:#f0fff4}.my-appointment-item--cancelado{border-left-color:var(--color-secondary);opacity:.7}.appointment-meta{align-items:center;gap:var(--spacing-md);margin-left:var(--spacing-md);flex:1;display:flex}.appointment-note-preview{font-size:var(--font-size-sm);color:var(--color-text-light);font-style:italic}.appointment-form-container{width:100%;max-width:none;margin:0 auto}.appointment-form-card{border:1px solid var(--color-border);box-shadow:0 10px 28px #0f172a1a}.appointment-form-card .card__body{padding:var(--spacing-md)}.appointment-form-header{color:var(--color-text);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md) var(--radius-md) 0 0;background:linear-gradient(#2c6b6f1f 0%,#2c6b6f0f 100%);border-bottom:none;display:block}.appointment-form-header .card__title{color:var(--color-text);font-size:var(--font-size-xl);margin:0}.appointment-form-subtitle{color:var(--color-text-light);font-size:var(--font-size-sm);margin:4px 0 0}.appointment-booking-summary{background:var(--color-background-alt);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-sm);border:1px solid var(--color-border)}.booking-summary-inline{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.booking-summary-chip{align-items:baseline;gap:6px;display:inline-flex}.booking-summary-separator{color:var(--color-text-light);font-size:var(--font-size-sm);line-height:1}.booking-summary-item{align-items:flex-start;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);display:flex}.booking-summary-item:last-child{margin-bottom:0}.booking-summary-icon{flex-shrink:0;margin-top:2px;font-size:2rem}.booking-summary-content{flex:1}.booking-summary-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-light);text-transform:none;letter-spacing:0;margin-bottom:0}.booking-summary-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);text-transform:capitalize}.appointment-form{gap:var(--spacing-sm);flex-direction:column;display:flex}.appointment-form .form-group{margin-bottom:var(--spacing-xs)}.appointment-form-card .form-label{font-size:var(--font-size-sm);margin-bottom:6px}.appointment-form-card .form-select{border-width:1px;padding:10px 12px}.appointment-form-card .form-textarea{border-width:1px;min-height:72px;padding:10px 12px}.form-label{align-items:center;gap:var(--spacing-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-sm);font-size:var(--font-size-md);display:flex}.form-label-icon{font-size:1.25rem}.form-select{width:100%;padding:var(--spacing-md);border:2px solid var(--color-secondary-light);border-radius:var(--radius-md);font-size:var(--font-size-md);font-family:var(--font-family-base);color:var(--color-text);transition:all var(--transition-fast);cursor:pointer;background-color:#fff}.form-select:hover{border-color:var(--color-primary)}.form-select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #3498db1a}.form-textarea{width:100%;padding:var(--spacing-md);border:2px solid var(--color-secondary-light);border-radius:var(--radius-md);font-size:var(--font-size-md);font-family:var(--font-family-base);color:var(--color-text);transition:all var(--transition-fast);resize:vertical;background-color:#fff;min-height:84px}.form-textarea:hover{border-color:var(--color-primary)}.form-textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #3498db1a}.form-textarea::placeholder{color:var(--color-text-light);font-style:italic}.form-helper-text{font-size:var(--font-size-xs);color:var(--color-text-light);margin-top:6px}.appointment-form-actions{gap:var(--spacing-md);padding-top:var(--spacing-sm);border-top:1px solid var(--color-secondary-light);justify-content:flex-end;margin-top:2px;display:flex}.spinner-small{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin;display:inline-block}.admin-appointments-stats{gap:var(--spacing-md);margin-bottom:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.stat-card{border-radius:var(--radius-md);padding:var(--spacing-lg);text-align:center;box-shadow:var(--shadow-sm);border-left:4px solid var(--color-secondary);transition:all var(--transition-fast);background-color:#fff}.stat-card:hover{box-shadow:var(--shadow-md)}.stat-card--success{border-left-color:var(--color-success)}.stat-card--warning{border-left-color:var(--color-warning)}.stat-card--danger{border-left-color:var(--color-error)}.stat-card--info{border-left-color:var(--color-info)}.stat-card--secondary{border-left-color:var(--color-secondary)}.stat-card__value{font-size:2rem;font-weight:var(--font-weight-bold);color:var(--color-text);margin-bottom:var(--spacing-xs)}.stat-card__label{font-size:var(--font-size-sm);color:var(--color-text-light);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.5px}.view-mode-toggle{gap:var(--spacing-xs);display:flex}.calendar-nav-center{align-items:center;gap:var(--spacing-xs);flex-direction:column;display:flex}.week-grid{gap:var(--spacing-sm);margin-top:var(--spacing-md);grid-template-columns:repeat(7,1fr);display:grid}.week-day-column{background-color:var(--color-background-warm);border-radius:var(--radius-md);border:1px solid var(--color-secondary-light);min-height:400px;overflow:hidden}.week-day-column--today{border:2px solid var(--color-primary);background-color:#fff9e6}.week-day-header{padding:var(--spacing-sm);text-align:center;border-bottom:1px solid var(--color-secondary-light);background-color:#fff}.week-day-column--today .week-day-header{background-color:var(--color-primary);color:#fff}.week-day-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;margin-bottom:var(--spacing-xs)}.week-day-date{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);text-transform:capitalize}.week-day-slots{padding:var(--spacing-sm);gap:var(--spacing-xs);flex-direction:column;display:flex}.empty-day-message{text-align:center;color:var(--color-text-light);font-size:var(--font-size-sm);padding:var(--spacing-md)}.admin-appointment-slot{border-radius:var(--radius-sm);padding:var(--spacing-xs);border-left:3px solid var(--color-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-size-sm);background-color:#fff}.admin-appointment-slot:hover{box-shadow:var(--shadow-sm)}.admin-appointment-slot--disponible{border-left-color:var(--color-success);background-color:#f0fff4}.admin-appointment-slot--bloqueado{border-left-color:var(--color-secondary);background-color:var(--color-secondary);opacity:.7}.admin-appointment-slot--reservado{border-left-color:var(--color-warning);background-color:#fffbf0}.admin-appointment-slot--asistio{border-left-color:var(--color-info);background-color:#e8f4fd}.admin-appointment-slot--cancelado{border-left-color:var(--color-error);opacity:.6;background-color:#fff0f0}.slot-time-badge{font-weight:var(--font-weight-semibold);margin-bottom:2px}.slot-estado-badge{margin-bottom:2px;font-size:1rem}.slot-family-name{font-size:var(--font-size-xs);color:var(--color-text-light);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.day-appointments-list{gap:var(--spacing-sm);margin-top:var(--spacing-md);flex-direction:column;display:flex}.admin-day-appointment-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);border-left:4px solid var(--color-secondary);box-shadow:var(--shadow-sm);cursor:pointer;transition:all var(--transition-fast);background-color:#fff;grid-template-columns:160px 110px 1fr;display:grid}.appointment-time-section{min-width:0}.appointment-info-section{align-items:center;gap:var(--spacing-md);grid-column:2/-1;min-width:0;display:flex}.admin-day-appointment-item:hover{box-shadow:var(--shadow-md)}.admin-day-appointment-item--disponible{border-left-color:var(--color-success);background-color:#f0fff4}.admin-day-appointment-item--disponible-taller1{background-color:#edfaf2;border-left-color:#4caf7d}.admin-day-appointment-item--disponible-taller2{background-color:#e3f5ec;border-left-color:#2e8b5a}.admin-day-appointment-item--bloqueado{border-left-color:var(--color-secondary);opacity:.7}.admin-day-appointment-item--reservado{border-left-color:var(--color-warning);background-color:#fffbf0}.admin-day-appointment-item--reservado-taller1{background-color:#fff8ee;border-left-color:#e8a44a}.admin-day-appointment-item--reservado-taller2{background-color:#fff3e2;border-left-color:#c97d2a}.admin-day-appointment-item--asistio{border-left-color:var(--color-info);background-color:#e8f4fd}.admin-day-appointment-item--asistio-taller1{background-color:#eaf5fd;border-left-color:#5aabdc}.admin-day-appointment-item--asistio-taller2{background-color:#ddeef9;border-left-color:#2d84b8}.admin-day-appointment-item--cancelado{border-left-color:var(--color-error);opacity:.6;background-color:#fff0f0}.appointment-time-section{flex-direction:column;gap:4px;min-width:88px;display:flex}.appointment-time{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text)}.appointment-duration{font-size:var(--font-size-xs);color:var(--color-text-light)}.appointment-info-section{align-items:center;gap:var(--spacing-sm);margin-left:var(--spacing-sm);flex:1;display:flex}.appointment-identity{flex-direction:column;gap:2px;display:flex}.appointment-family{font-size:var(--font-size-xs);color:var(--color-text);font-weight:var(--font-weight-medium)}.appointment-family--secondary{color:var(--color-text-light);font-weight:var(--font-weight-regular)}.appointment-child{font-size:var(--font-size-xs);color:var(--color-text-light)}.modal-content--actions{max-width:500px}.appointment-details-summary{background-color:var(--color-background-warm);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.appointment-details-summary p{margin:var(--spacing-sm) 0;font-size:var(--font-size-sm)}.assign-family-list{gap:var(--spacing-sm);padding:var(--spacing-sm);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-background);flex-direction:column;max-height:220px;display:flex;overflow-y:auto}.assign-child-list{gap:var(--spacing-xs);padding:var(--spacing-sm);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-background);flex-direction:column;max-height:220px;display:flex;overflow-y:auto}.assign-child-item{border-radius:var(--radius-sm);width:100%;color:var(--color-text);text-align:left;font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:1px solid #0000;padding:10px 12px;transition:background-color .2s,border-color .2s,color .2s}.assign-child-item:hover{background-color:var(--color-background-warm);border-color:#4882842e}.assign-child-item--selected{color:var(--color-primary);font-weight:var(--font-weight-semibold);background-color:#4882841f;border-color:#48828459}.assign-family-item{gap:var(--spacing-sm);font-size:var(--font-size-sm);cursor:pointer;align-items:flex-start;display:flex}.assign-family-item input{margin-top:2px}.assign-family-item--disabled{opacity:.6;cursor:not-allowed}.assign-family-label{flex-direction:column;gap:2px;display:flex}.assign-family-label small{font-size:var(--font-size-xs);color:var(--color-text-light)}.assign-family-hint{margin-top:var(--spacing-sm);font-size:var(--font-size-xs);color:var(--color-text-light)}.modal-actions-grid{gap:var(--spacing-sm);flex-direction:column;display:flex}.modal-action-btn{box-shadow:none;font-weight:var(--font-weight-semibold)}.modal-action-btn--assign{background:color-mix(in srgb, var(--color-success) 16%, var(--color-background));border-color:color-mix(in srgb, var(--color-success) 34%, var(--color-border));color:color-mix(in srgb, var(--color-success) 78%, var(--color-text))}.modal-action-btn--assign:hover:not(:disabled){background:color-mix(in srgb, var(--color-success) 22%, var(--color-background));border-color:color-mix(in srgb, var(--color-success) 46%, var(--color-border))}.modal-action-btn--block{background:color-mix(in srgb, var(--color-text-muted) 18%, var(--color-background));border-color:color-mix(in srgb, var(--color-text-muted) 36%, var(--color-border));color:color-mix(in srgb, var(--color-text-muted) 82%, var(--color-text))}.modal-action-btn--block:hover:not(:disabled){background:color-mix(in srgb, var(--color-text-muted) 24%, var(--color-background));border-color:color-mix(in srgb, var(--color-text-muted) 48%, var(--color-border))}.modal-action-btn--attend{background:color-mix(in srgb, var(--color-success) 14%, var(--color-background));border-color:color-mix(in srgb, var(--color-success) 30%, var(--color-border));color:color-mix(in srgb, var(--color-success) 68%, var(--color-text))}.modal-action-btn--attend:hover:not(:disabled){background:color-mix(in srgb, var(--color-success) 20%, var(--color-background));border-color:color-mix(in srgb, var(--color-success) 40%, var(--color-border))}.modal-action-btn--cancel{background:color-mix(in srgb, var(--color-warning) 16%, var(--color-background));border-color:color-mix(in srgb, var(--color-warning) 34%, var(--color-border));color:color-mix(in srgb, var(--color-warning) 72%, var(--color-text))}.modal-action-btn--cancel:hover:not(:disabled){background:color-mix(in srgb, var(--color-warning) 22%, var(--color-background));border-color:color-mix(in srgb, var(--color-warning) 44%, var(--color-border))}.modal-action-btn--delete{background:color-mix(in srgb, var(--color-error) 10%, var(--color-background));border-color:color-mix(in srgb, var(--color-error) 36%, var(--color-border));color:color-mix(in srgb, var(--color-error) 82%, var(--color-text))}.modal-action-btn--delete:hover:not(:disabled){background:color-mix(in srgb, var(--color-error) 16%, var(--color-background));border-color:color-mix(in srgb, var(--color-error) 48%, var(--color-border))}.admin-month-view{margin-top:var(--spacing-md)}.admin-calendar-grid{gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);grid-template-columns:repeat(7,1fr);display:grid}.admin-calendar-day{min-height:100px;padding:var(--spacing-xs);border-radius:var(--radius-sm);border:1px solid var(--color-secondary-light);cursor:pointer;transition:all var(--transition-fast);background-color:#fff;flex-direction:column;display:flex;position:relative}.admin-calendar-day:hover:not(.admin-calendar-day--empty){border-color:var(--color-accent);box-shadow:var(--shadow-sm)}.admin-calendar-day--empty{cursor:default;background-color:#0000;border:none}.admin-calendar-day--today{border:2px solid var(--color-primary);background-color:#fff9e6}.admin-calendar-day-number{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-xs)}.admin-calendar-day--today .admin-calendar-day-number{color:var(--color-primary);font-weight:var(--font-weight-bold)}.admin-calendar-day-stats{flex-wrap:wrap;gap:2px;margin-top:auto;display:flex}.admin-stat-badge{border-radius:var(--radius-sm);min-width:20px;height:20px;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:#fff;justify-content:center;align-items:center;padding:0 4px;display:inline-flex}.admin-stat-badge--success{background-color:var(--color-success)}.admin-stat-badge--warning{background-color:var(--color-warning)}.admin-stat-badge--secondary{background-color:var(--color-secondary)}.admin-stat-badge--info{background-color:var(--color-info)}.admin-stat-badge--danger{background-color:var(--color-error)}.admin-month-legend{background-color:var(--color-background-warm);padding:var(--spacing-md);border-radius:var(--radius-md);border:1px solid var(--color-secondary-light)}.legend-title{font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm)}.legend-items{gap:var(--spacing-md);flex-wrap:wrap;display:flex}.navbar{z-index:var(--z-sticky);background:var(--color-background);border-bottom:1px solid var(--color-border);padding:var(--spacing-md) var(--spacing-lg);padding-top:calc(var(--spacing-md) + env(safe-area-inset-top,0px));box-shadow:var(--shadow-sm);--navbar-content-height:70px;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.navbar__left{align-items:center;gap:var(--spacing-sm);display:flex}.navbar__menu-toggle{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-background);width:36px;height:36px;color:var(--color-text);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);justify-content:center;align-items:center;display:none}.navbar__menu-toggle:hover{background:var(--color-background-warm);border-color:var(--color-primary-light)}.navbar__logo img{object-fit:contain;height:50px}.navbar__actions{align-items:center;gap:var(--spacing-md);display:flex}.navbar__summary{align-items:center;gap:var(--spacing-sm);flex:1;justify-content:center;min-width:0;display:flex}.navbar__summary-item{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background-alt);color:inherit;flex-direction:column;gap:2px;min-width:140px;padding:6px 10px;text-decoration:none;display:flex}.navbar__summary-item:hover{border-color:var(--color-primary-light);background:var(--color-background-warm)}.navbar__summary-item--action{background:var(--color-background-warm);border-color:#e67e5e59}.navbar__summary-label{font-size:var(--font-size-xs);color:var(--color-text-light)}.navbar__summary-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.talleres-layout{gap:var(--spacing-md);grid-template-columns:1.15fr 1fr;align-items:start;display:grid}.talleres-list{gap:var(--spacing-xs);display:grid}.talleres-list-item{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-background);cursor:pointer;transition:box-shadow var(--transition-fast), border-color var(--transition-fast);border-left-width:3px}.talleres-list-item--active-state{border-left-color:var(--color-success)}.talleres-list-item--inactive-state{border-left-color:var(--color-error)}.talleres-list-item--selected{border-color:var(--color-primary);box-shadow:0 0 0 1px #2c6b6f33}.talleres-list-item:focus{outline-offset:2px;outline:2px solid #2c6b6f4d}.talleres-content__header{justify-content:space-between;align-items:center;gap:var(--spacing-sm);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.family-talleres-page .dashboard-header.family-talleres-header{padding:var(--spacing-md) var(--spacing-lg) var(--spacing-sm);gap:var(--spacing-sm)}.family-talleres-header .dashboard-title{font-size:var(--font-size-2xl)}.family-talleres-header .dashboard-subtitle{font-size:var(--font-size-sm);margin-top:2px}.family-talleres-header__actions{gap:var(--spacing-sm);display:flex}.family-talleres-selector{margin-bottom:var(--spacing-sm);border-radius:var(--radius-lg);box-shadow:none;background:#faf8f4;border:1px solid #2c6b6f2e}.family-talleres-selector .card__body{padding:10px var(--spacing-md)}.family-talleres-selector__row{gap:var(--spacing-md);grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;display:grid}.family-talleres-selector__control-wrap{gap:4px;width:100%;min-width:0;display:grid}.family-talleres-selector__label{font-size:var(--font-size-xs);color:var(--color-text-light);font-weight:var(--font-weight-semibold);letter-spacing:.02em;margin:0}.family-talleres-selector__control{border-radius:var(--radius-md);width:100%;min-width:0;max-width:100%;min-height:38px;font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);background-color:#fff;border-color:#2c6b6f33;padding-top:6px;padding-bottom:6px}.family-talleres-selector__control:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #2c6b6f1f}.family-talleres-selector__details{padding-left:var(--spacing-md);border-left:1px solid #2c6b6f1f;gap:6px;margin-top:0;display:grid}.family-talleres-selector__meta-row{gap:6px;display:grid}.family-talleres-selector__meta-label{font-size:var(--font-size-xs);color:var(--color-text-light);font-weight:var(--font-weight-semibold)}.family-talleres-selector__pills{flex-wrap:wrap;gap:6px;display:flex}.family-talleres-selector__pill{color:var(--color-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:#2c6b6f14;border:1px solid #2c6b6f2e;border-radius:999px;padding:4px 10px}.family-talleres-selector__description{font-size:var(--font-size-xs);color:var(--color-text-light);margin:0;line-height:1.4}.family-talleres-selector__calendar-link{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-primary);justify-self:start;text-decoration:none}.family-talleres-selector__calendar-link:hover{text-decoration:underline}.family-talleres-content-card{background:#fff;border:1px solid #d4c4b5;border-radius:12px;overflow:hidden}.family-talleres-content-tabs{background:#f5f2ed;gap:2px;padding:8px 10px 0;display:flex}.family-talleres-content-tab{cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:#6b7c7d;background:0 0;border:none;border-radius:8px 8px 0 0;padding:8px 14px;transition:all .2s}.family-talleres-content-tab.is-active{color:#2c6b6f;font-weight:var(--font-weight-semibold);background:#fff}.family-talleres-content-panel{padding:var(--spacing-md);background:#fff}.talleres-content__tabs .tabs__header{margin-bottom:var(--spacing-md)}.talleres-gallery{gap:var(--spacing-md);display:grid}.talleres-gallery__upload .card__body,.talleres-gallery__grid{gap:var(--spacing-sm);display:grid}.talleres-albums-grid{gap:var(--spacing-sm);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.talleres-album-card{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-md);background:var(--color-background-alt);text-align:left;cursor:pointer;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);gap:4px;display:grid}.talleres-album-card__thumb{border-radius:var(--radius-sm);background-color:var(--color-border);border:1px solid var(--color-border);background-image:linear-gradient(135deg,#0000000f,#0000);background-position:50%;background-size:cover;width:100%;height:120px}.talleres-album-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.talleres-album-card__title{font-weight:var(--font-weight-semibold);color:var(--color-text)}.talleres-album-card__meta{font-size:var(--font-size-xs);color:var(--color-text-light)}.talleres-detail-tabs{margin-bottom:var(--spacing-md)}.talleres-detail-tabs .tabs__header{margin-bottom:var(--spacing-sm)}.talleres-gallery-grid{gap:var(--spacing-sm);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.talleres-gallery-item{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-background-alt);flex-direction:column;display:flex;position:relative;overflow:hidden}.talleres-gallery-item img,.talleres-gallery-item video{object-fit:cover;width:100%;height:160px;display:block}.talleres-gallery-item__meta{padding:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-text-light);gap:2px;display:grid}.talleres-gallery-item__name{color:var(--color-text);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.talleres-gallery-item__date{font-size:var(--font-size-xs);color:var(--color-text-light)}.talleres-gallery-item__delete{position:absolute;top:8px;right:8px}.talleres-events{gap:var(--spacing-md);display:grid}.talleres-events__form .card__body{gap:var(--spacing-sm);display:grid}.talleres-events__list{gap:var(--spacing-xs);display:grid}.talleres-admin-compact .form-group{margin-bottom:var(--spacing-sm)}.talleres-admin-compact .form-help{display:none}.talleres-admin-compact .form-textarea{min-height:72px}.talleres-admin-compact label{font-size:var(--font-size-xs)}.talleres-admin-compact .form-input,.talleres-admin-compact .form-select,.talleres-admin-compact .form-textarea{font-size:var(--font-size-sm);border-radius:var(--radius-md);border-color:var(--color-border);background-color:var(--color-background-alt);color:var(--color-text);box-shadow:none;padding:8px 12px}.talleres-admin-compact .form-input,.talleres-admin-compact .form-select{min-height:40px}.talleres-admin-compact .form-textarea{height:40px;min-height:40px;line-height:1.2}.talleres-admin-compact .form-input:focus,.talleres-admin-compact .form-select:focus,.talleres-admin-compact .form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-soft);outline:none}.navbar__user{font-size:var(--font-size-sm);color:var(--color-text-light);white-space:nowrap;text-overflow:ellipsis;max-width:220px;overflow:hidden}.notification-bell{cursor:pointer;padding:var(--spacing-sm);transition:transform var(--transition-fast);background:0 0;border:none;font-size:1.5rem;position:relative}.user-menu{position:relative}.user-menu__button{justify-content:center;align-items:center;gap:var(--spacing-xs);padding:0 var(--spacing-sm);border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-background);width:auto;height:40px;color:var(--color-text);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);display:inline-flex}.user-menu__button:hover{background:var(--color-background-warm);border-color:var(--color-primary-light)}.user-menu__name{font-size:var(--font-size-sm);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;max-width:160px;overflow:hidden}.user-menu__dropdown{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);width:240px;box-shadow:var(--shadow-lg);padding:var(--spacing-md);gap:var(--spacing-md);z-index:var(--z-dropdown);flex-direction:column;display:flex;position:absolute;top:calc(100% + 8px);right:0}.user-menu__header{flex-direction:column;gap:4px;display:flex}.user-menu__label{font-size:var(--font-size-xs);color:var(--color-text-light);text-transform:uppercase;letter-spacing:.5px}.user-menu__user{font-size:var(--font-size-sm);color:var(--color-text);word-break:break-word}.user-menu__item{justify-content:space-between;align-items:center;gap:var(--spacing-sm);display:flex}.user-menu__install{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-background-alt);width:100%;color:var(--color-text);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);cursor:pointer;text-align:left}.user-menu__install:hover{background:var(--color-background-warm);border-color:var(--color-primary-light)}.user-menu__status{border-radius:var(--radius-sm);width:100%;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);text-align:left}.user-menu__status--success{border:1px solid color-mix(in srgb, var(--color-success) 45%, white);background:color-mix(in srgb, var(--color-success) 12%, white);color:color-mix(in srgb, var(--color-success) 60%, var(--color-text))}.user-menu__logout{width:100%}.install-help-list{margin:var(--spacing-sm) 0 0;color:var(--color-text);padding-left:1.2rem}.install-help-list li{margin-bottom:var(--spacing-xs)}.pwa-install-header{margin-bottom:var(--spacing-sm);justify-content:center;display:flex}.pwa-install-logo{background:#fff;border:1px solid #0000000d;border-radius:16px;width:154px;height:auto;padding:10px 17px;display:block;box-shadow:0 6px 16px #00000014}.pwa-install-hint{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-light)}.pwa-install-modal{border:1px solid #2c6b6f26;border-radius:22px;animation:.28s cubic-bezier(.2,.8,.2,1) pwaModalIn;overflow:hidden;box-shadow:0 22px 50px #1e4d5040}.pwa-install-modal .modal-header{background:linear-gradient(135deg,#2c6b6f1f 0%,#5ba5a814 100%);border-bottom:1px solid #2c6b6f24}.pwa-install-modal .modal-body{padding-top:var(--spacing-md)}.pwa-install-modal .modal-footer{background:#ffffff8c;border-top:1px solid #2c6b6f1f}@keyframes pwaModalIn{0%{opacity:0;transform:translateY(18px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.pwa-install-banner{bottom:var(--spacing-md);left:var(--spacing-md);right:var(--spacing-md);background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);color:#fff;padding:var(--spacing-md);justify-content:space-between;align-items:center;gap:var(--spacing-md);z-index:var(--z-modal);border:1px solid #fff3;border-radius:18px;animation:.32s ease-out pwaBannerIn;display:flex;position:fixed;box-shadow:0 20px 36px #1e4d5059}.pwa-install-banner__content{align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);display:flex}.pwa-install-banner__content>div{flex-direction:column;gap:2px;display:flex}.pwa-install-banner__logo{object-fit:contain;background:#fffffff2;border-radius:14px;width:58px;height:58px;padding:7px 10px}.pwa-install-banner__button{height:40px;min-height:40px;padding:0 var(--spacing-md);color:var(--color-primary-dark);line-height:1;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);cursor:pointer;transition:transform var(--transition-fast), box-shadow var(--transition-fast);background:#fff;border:none;border-radius:999px;justify-content:center;align-items:center;gap:8px;display:inline-flex;box-shadow:0 6px 14px #00000026}.pwa-install-banner__button:hover{transform:translateY(-1px);box-shadow:0 8px 16px #0000002e}.pwa-push-banner{background:linear-gradient(145deg, #ffffff29 0%, #fff0 45%), linear-gradient(132deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);border:1px solid #ffffff3d;align-items:center;overflow:hidden;box-shadow:0 18px 34px #143e4161,inset 0 1px #ffffff38}.pwa-push-banner:after{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff42 0%,#fff0 72%);border-radius:50%;width:164px;height:164px;position:absolute;top:-52px;right:-44px}.pwa-push-banner .pwa-install-banner__content{z-index:1;flex:1;min-width:0;position:relative}.pwa-push-banner .pwa-install-banner__content>div{min-width:0}.pwa-push-banner .pwa-install-banner__content strong{font-size:.98rem;line-height:1.2;font-weight:var(--font-weight-bold);letter-spacing:.01em;color:#fff}.pwa-push-banner .pwa-install-banner__content span{color:#ffffffeb;line-height:1.35;font-weight:var(--font-weight-medium);max-width:34ch}.pwa-push-banner .pwa-install-banner__logo{z-index:1;background:#fffffff5;border:1px solid #ffffff8f;border-radius:12px;width:52px;height:52px;position:relative;box-shadow:inset 0 1px #ffffffdb,0 8px 16px #0003}.pwa-push-banner__actions{gap:var(--spacing-xs);z-index:1;align-items:center;margin-left:auto;display:flex;position:relative}.pwa-push-banner__actions .pwa-install-banner__button{min-width:102px;font-weight:var(--font-weight-bold);letter-spacing:.01em;border:1px solid #ffffff57;padding:0 14px;box-shadow:0 8px 16px #0003,inset 0 1px #ffffff94}.pwa-push-banner__actions .pwa-install-banner__button:hover{transform:translateY(-1px);box-shadow:0 10px 18px #0000003d,inset 0 1px #ffffffa6}.pwa-push-banner__actions .pwa-install-banner__button:focus-visible{outline-offset:2px;outline:2px solid #ffffffe6}.pwa-install-banner__button--ghost{height:40px;min-height:40px;padding:0 var(--spacing-md);color:#fff;box-shadow:none;line-height:1;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);background:#ffffff24;border:1px solid #ffffff73;justify-content:center;align-items:center;display:inline-flex}.pwa-install-banner__button--ghost:hover{box-shadow:none}.pwa-push-banner__error{border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:#fffffff5;opacity:1;background:#e74c3c38;border:1px solid #ffffff52;align-items:center;margin-top:4px;padding:2px 8px;display:inline-flex}@media (width<=640px){.pwa-push-banner{align-items:stretch;gap:var(--spacing-sm);border-radius:16px;flex-direction:column;padding:14px}.pwa-push-banner .pwa-install-banner__content{align-items:flex-start;width:100%}.pwa-push-banner .pwa-install-banner__logo{border-radius:10px;width:44px;height:44px;padding:5px 7px}.pwa-push-banner__actions{justify-content:flex-end;gap:10px;width:100%;margin-left:0}.pwa-push-banner__actions .pwa-install-banner__button{min-width:98px;height:38px;min-height:38px}}@media (width<=390px){.pwa-push-banner__actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.pwa-push-banner__actions .pwa-install-banner__button{width:100%;min-width:0}}@keyframes pwaBannerIn{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.pwa-install-modal,.pwa-install-banner{animation:none}.pwa-install-banner__button{transition:none}}.notification-bell:hover{opacity:.8}.badge--danger{background:var(--color-error);color:#fff;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-align:center;min-width:20px;padding:2px 6px;position:absolute;top:0;right:0}.notification-bell .notification-icon{width:20px;height:20px;color:var(--color-text);transition:color var(--transition-fast), transform var(--transition-fast);display:inline-block}.notification-bell:hover .notification-icon{color:var(--color-primary);transform:translateY(-2px)}.notification-empty .icon{margin:0 auto var(--spacing-md);color:var(--color-text-light);display:block}[data-theme=dark] .notification-empty .icon{color:var(--color-text-light)}.breadcrumbs{padding:var(--spacing-md) var(--spacing-lg);background:var(--color-background-alt);border-bottom:var(--border-width) solid var(--color-border)}.breadcrumbs__inner{justify-content:space-between;align-items:center;gap:var(--spacing-sm);display:flex}.breadcrumbs__list{align-items:center;gap:var(--spacing-xs);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs__item{align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);display:flex}.breadcrumbs__link{color:var(--color-primary);transition:color var(--transition-fast);font-weight:var(--font-weight-medium);text-decoration:none}.breadcrumbs__link:hover{color:var(--color-primary-dark)}.breadcrumbs__separator{color:var(--color-text-light);-webkit-user-select:none;user-select:none;font-weight:var(--font-weight-normal)}.breadcrumbs__current{color:var(--color-text);font-weight:var(--font-weight-semibold)}.breadcrumbs__back-mobile{border:var(--border-width) solid var(--color-border);background:var(--color-background);color:var(--color-primary);font-family:var(--font-family-base);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);white-space:nowrap;cursor:pointer;transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);align-items:center;gap:4px;padding:5px 8px;line-height:1;display:none}.breadcrumbs__back-mobile:hover{background:var(--color-primary-soft);border-color:var(--color-primary-light)}.sidebar{background:var(--color-background-alt);border-right:var(--border-width) solid var(--color-border);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:transparent transparent;width:240px;min-height:calc(100vh - 82px);max-height:calc(100vh - 82px);padding:6px 0;position:sticky;top:82px;overflow-y:auto}.sidebar:hover{scrollbar-color:#2c6b6f66 transparent}.sidebar::-webkit-scrollbar{width:10px}.sidebar::-webkit-scrollbar-track{background:0 0}.sidebar::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:padding-box content-box;border:2px solid #0000}.sidebar:hover::-webkit-scrollbar-thumb{background:#2c6b6f59}.sidebar__nav{width:100%}.sidebar__menu{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.sidebar__item{width:100%}.sidebar__link{align-items:center;gap:var(--spacing-sm);padding:8px var(--spacing-md);color:var(--color-text);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);border-left:3px solid #0000;text-decoration:none;transition:all .2s;display:flex;position:relative}.sidebar__link:before{content:"";background:linear-gradient(90deg, var(--color-accent), transparent);opacity:0;width:0;transition:all .3s;position:absolute;top:0;bottom:0;left:0}.sidebar__link:hover{color:var(--color-accent);border-left-color:var(--color-accent);background:#e67e5e0d;transform:translate(2px)}.sidebar__link:hover:before{opacity:.08;width:100%}.sidebar__link:hover .sidebar__icon{color:var(--color-accent);transform:scale(1.1)}.sidebar__link--active{background:var(--color-primary-soft);color:var(--color-primary);border-left-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.sidebar__icon{color:currentColor;flex-shrink:0;transition:all .2s}.sidebar__label{flex:1}.sidebar__badge{border-radius:var(--radius-full);background:var(--color-error);color:#fff;min-width:20px;height:20px;font-size:.7rem;font-weight:var(--font-weight-semibold);justify-content:center;align-items:center;padding:0 6px;line-height:1;display:inline-flex}.dm-thread-list__ul{margin:0;padding:0;list-style:none}.dm-thread-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);cursor:pointer;border-bottom:1px solid var(--color-border);transition:background .15s;display:flex}.dm-thread-item:last-child{border-bottom:none}.dm-thread-item:hover,.dm-thread-item:active{background:var(--color-surface-secondary,#f5f5f3)}.dm-thread-item__body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.dm-thread-item__row{justify-content:space-between;align-items:baseline;gap:var(--spacing-sm);display:flex}.dm-thread-item__name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.dm-thread-item--unread .dm-thread-item__name{font-weight:var(--font-weight-semibold);color:var(--color-text)}.dm-thread-item__time{color:var(--color-text-secondary);white-space:nowrap;flex-shrink:0;font-size:.72rem}.dm-thread-item__preview{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.dm-thread-item--unread .dm-thread-item__preview{color:var(--color-text);font-weight:var(--font-weight-medium)}.dm-thread-item--blocked .dm-thread-item__preview{color:var(--color-error);font-style:italic}.dm-thread-item__badge{margin-left:var(--spacing-xs);flex-shrink:0}.emoji-picker{position:relative}.emoji-picker__trigger{padding:4px 6px;font-size:1.2rem;line-height:1}.emoji-picker__panel{background:var(--color-surface,#fff);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-sm);z-index:200;grid-template-columns:repeat(8,1fr);gap:2px;width:272px;display:grid;position:absolute;bottom:calc(100% + 8px);right:0;box-shadow:0 4px 20px #0000001f}.emoji-picker__btn{cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:5px;font-size:1.25rem;line-height:1;transition:background .1s}.emoji-picker__btn:hover{background:var(--color-surface-secondary,#f0f0ee)}@media (width<=480px){.emoji-picker__panel{grid-template-columns:repeat(7,1fr);width:240px;left:0;right:auto}}.dm-composer{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-background-alt,#f0efeb);border-top:1px solid var(--color-border);flex-shrink:0}.dm-composer__disabled{text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:var(--spacing-xs) 0}.dm-composer__error{color:var(--color-error);font-size:var(--font-size-xs);margin:0 0 var(--spacing-xs)}.dm-composer__bar{align-items:flex-end;gap:var(--spacing-sm);display:flex}.dm-composer__left{flex-shrink:0;align-items:center;gap:2px;display:flex}.dm-composer__left .emoji-picker__trigger{color:var(--color-text-secondary);border-radius:50%;padding:6px;font-size:1.35rem}.dm-composer__left .emoji-picker__trigger:hover{background:#0000000f}.dm-composer__input{resize:none;background:var(--color-surface,#fff);min-width:0;font-size:var(--font-size-sm);color:var(--color-text);border:none;border-radius:20px;outline:none;flex:1;max-height:120px;padding:10px 14px;font-family:inherit;line-height:1.4;overflow-y:auto;box-shadow:0 1px 2px #00000014}.dm-composer__input::placeholder{color:var(--color-text-secondary)}.dm-composer__input:disabled{opacity:.6}.dm-composer__send{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;padding:0;transition:background .15s,transform .1s;display:flex}.dm-composer__send:hover:not(:disabled){background:var(--color-primary-dark,var(--color-primary));filter:brightness(.9)}.dm-composer__send:active:not(:disabled){transform:scale(.92)}.dm-composer__send:disabled{background:var(--color-border);cursor:default}.dm-thread-item--unread{border-left:3px solid var(--color-primary);padding-left:calc(var(--spacing-lg) - 3px)}.sidebar__calendar{padding:var(--spacing-sm);border-top:var(--border-width) solid var(--color-border);margin-top:auto}.event-calendar{background:var(--color-background-warm);border-radius:var(--radius-md);padding:6px;position:relative;overflow:visible}.event-calendar__header{padding:var(--spacing-xs) var(--spacing-xs);border-radius:var(--radius-md) var(--radius-md) 0 0;border-bottom:1px solid var(--color-border);background:#2d20170a;justify-content:space-between;align-items:center;margin-bottom:0;display:flex}.event-calendar__month{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.event-calendar__nav-btn{color:var(--color-primary);cursor:pointer;padding:0 var(--spacing-xs);transition:color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;width:28px;height:28px;line-height:1;display:inline-flex}.event-calendar__nav-btn:hover{color:var(--color-primary-dark)}.event-calendar__actions{align-items:center;gap:var(--spacing-xs);display:inline-flex}.event-calendar__today-btn{background:var(--color-background);border:1px solid var(--color-border);color:var(--color-text);font-size:var(--font-size-xs);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);padding:4px 8px}.event-calendar__today-btn:hover{border-color:var(--color-primary-light);color:var(--color-primary)}.event-calendar__nav-icon{display:block}.appointments-manager-page .event-calendar__nav-icon{width:22px;height:22px}.event-calendar__weekdays{margin-bottom:var(--spacing-xs);border-bottom:1px solid var(--color-border);background:#2d201708;grid-template-columns:repeat(7,1fr);gap:2px;padding:2px 0;display:grid}.event-calendar__weekday{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-light);text-align:center;padding:var(--spacing-xs) 0}.event-calendar__days{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.event-calendar__day{aspect-ratio:1;font-size:var(--font-size-xs);border-radius:var(--radius-sm);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.event-calendar__day--empty{visibility:hidden}.event-calendar__day--active{background:var(--color-background);color:var(--color-text);cursor:pointer}.event-calendar__day--active:hover{background:var(--color-primary-soft);color:var(--color-primary)}.event-calendar__day--has-event{font-weight:var(--font-weight-semibold);position:relative}.event-calendar__day--has-slot{color:#0f766e;background:#10b98129;box-shadow:inset 0 -2px #10b981}.event-calendar__day--has-slot:hover{background:#10b98138}.event-calendar__day--has-booked-slot{color:#8f3e2a;background:#e67e5e2e;box-shadow:inset 0 -2px #e67e5e}.event-calendar__day--has-booked-slot:hover{background:#e67e5e42}.event-calendar__day--has-mixed-slot{color:#8a5a00;background:#f59e0b33;box-shadow:inset 0 -2px #f59e0b}.event-calendar__day--has-mixed-slot:hover{background:#f59e0b47}.event-calendar__day--has-upcoming-event{color:#a51f3f;background:#ef444429;box-shadow:inset 0 -2px #ef4444}.event-calendar__day--has-past-event{color:#8f5f5f;background:#ef44440f;box-shadow:inset 0 -2px #e4b3b3}.event-calendar__day--selected{background:var(--color-primary);color:#fff;font-weight:var(--font-weight-bold)}.event-calendar__day--selected:after{content:none}.event-calendar__day--today{box-shadow:inset 0 0 0 1px var(--color-primary);font-weight:var(--font-weight-semibold)}.event-calendar__popover{z-index:5;-webkit-backdrop-filter:blur(16px);background:linear-gradient(135deg,#ffffff75 0%,#ffffff38 100%);border:1px solid #ffffff6b;border-radius:14px;padding:10px;animation:.34s cubic-bezier(.22,1.2,.32,1) eventCalendarDetailsIn;position:absolute;bottom:26px;left:8px;right:8px;box-shadow:0 14px 30px #0f172a3d,inset 0 1px #ffffff8c}.event-calendar__popover:before{content:"";border-radius:inherit;pointer-events:none;background:radial-gradient(120px 60px at 10% 0,#ffffff5c,#0000 70%),radial-gradient(120px 70px at 100% 10%,#78aab12e,#0000 74%);position:absolute;inset:0}.event-calendar__details-header{justify-content:space-between;align-items:center;gap:var(--spacing-xs);background:linear-gradient(135deg,#ffffff7a 0%,#d2e8ea47 100%);border:1px solid #ffffff73;border-radius:10px;margin-bottom:8px;padding:7px 8px;display:flex}.event-calendar__details-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:#0f3639;text-transform:capitalize;letter-spacing:.025em}.event-calendar__details-close{color:#10383b;cursor:pointer;background:#ffffff73;border:1px solid #10383b33;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:16px;line-height:1;transition:background .2s,transform .2s;display:inline-flex}.event-calendar__details-close:hover{background:#fffc;transform:scale(1.05)}.event-calendar__details-list{gap:6px;max-height:136px;padding-right:2px;display:grid;overflow-y:auto}.event-calendar__event-item{background:#ffffffc7;border:1px solid #ffffff85;border-radius:10px;padding:7px 8px;box-shadow:0 2px 12px #0f172a12}.event-calendar__event-item--past{background:#fff8f8eb;border-color:#e4b3b38c}.event-calendar__event-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:#143f42;margin-bottom:2px}.event-calendar__event-badge{font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.01em;border:1px solid #0000;border-radius:999px;align-items:center;margin-bottom:4px;padding:1px 6px;display:inline-flex}.event-calendar__event-badge--past{color:#8f5454;background:#ef444417;border-color:#e4b3b3a6}.event-calendar__event-badge--snack{color:#175f50;background:#10b9811f;border-color:#10b9814d}.event-calendar__event-badge--appointment{color:#2b5f9e;background:#3b82f61f;border-color:#3b82f64d}.event-calendar__event-desc{font-size:var(--font-size-xs);color:#2a5053;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3;display:-webkit-box;overflow:hidden}.event-calendar__sheet-backdrop,.event-calendar__sheet{display:none}@keyframes eventCalendarDetailsIn{0%{opacity:0;transform:translateY(14px)scale(.975)}68%{opacity:1;transform:translateY(-2px)scale(1.008)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes eventCalendarSheetIn{0%{opacity:0;transform:translateY(34px)scale(.985)}72%{opacity:1;transform:translateY(-1px)scale(1.002)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes eventCalendarBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes eventCalendarSheetItemIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.events-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.events-list .card{transition:all var(--transition-normal)}.events-list .card.card--compact{padding:var(--spacing-sm)}.events-list .card__header--compact{margin-bottom:var(--spacing-xs);padding-bottom:var(--spacing-xs)}.events-list .card:hover{box-shadow:var(--shadow-lg)}.event-item{gap:var(--spacing-md);padding:var(--spacing-md);background:var(--color-background);border-radius:var(--radius-md);border:1px solid var(--color-border);transition:all var(--transition-normal);align-items:stretch;min-height:96px;display:flex}.event-item--past{background:linear-gradient(0deg, #94a3b81f, #94a3b81f), var(--color-background);border-color:#94a3b873}.event-item:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-sm)}.event-item__date{min-width:60px;max-width:60px;padding:var(--spacing-sm);background:var(--color-primary);border-radius:var(--radius-md);color:#fff;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;display:flex}.event-item__day{font-size:28px;font-weight:var(--font-weight-bold);line-height:1}.event-item__month{text-transform:uppercase;font-size:11px;font-weight:var(--font-weight-semibold);opacity:.95;letter-spacing:.5px;margin-top:2px}.event-item--past .event-item__date{background:#8796a9}.event-item__content{min-width:0;padding-right:var(--spacing-lg);flex-direction:column;flex:1;justify-content:center;display:flex}.event-item__header{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs);flex-wrap:wrap;display:flex}.event-item__title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;line-height:1.3;overflow:hidden}.event-item--past .event-item__title,.event-item--past .event-item__time,.event-item--past .event-item__indicator{color:#5f6b79}.event-item__time{color:var(--color-text-light);font-size:var(--font-size-sm);margin-bottom:var(--spacing-xs);align-items:center;gap:4px;font-weight:500;display:flex}.event-item__description{font-size:var(--font-size-sm);color:var(--color-text-light);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;line-height:1.5;display:-webkit-box;overflow:hidden}.event-item__attachments{margin-top:var(--spacing-sm)}.event-attachment-btn{align-items:center;gap:var(--spacing-xs);display:inline-flex}.event-attachments-multiple{gap:var(--spacing-xs);flex-direction:column;display:flex}.event-attachments-count{align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text);font-weight:500;display:flex}.event-attachments__list{gap:var(--spacing-xs);margin-top:var(--spacing-xs);flex-wrap:wrap;display:flex}.event-item--clickable{cursor:pointer;transition:all .2s;position:relative}.event-item--clickable:hover{background-color:var(--color-bg-hover);border-color:var(--color-primary);transform:translate(4px);box-shadow:0 2px 8px #00000014}.event-item--past.event-item--clickable:hover{background-color:#94a3b82e;border-color:#7884948c}.event-item__past-badge{color:#495565;background:#94a3b833;border:1px solid #78849473}.event-item__description--truncate{-webkit-line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.event-item__indicator{align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-xs);background-color:var(--color-bg-secondary);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--color-text-light);width:fit-content;padding:4px 8px;font-weight:500;display:flex}.event-item__arrow{right:var(--spacing-md);color:var(--color-text-light);opacity:0;transition:opacity .2s;position:absolute;top:50%;transform:translateY(-50%)}.event-item--clickable:hover .event-item__arrow{opacity:1}.event-detail-header h2{font-size:var(--font-size-xl);color:var(--color-text);margin:0}.event-detail-banner{background:linear-gradient(135deg, rgba(var(--color-primary-rgb,72, 130, 132), .06) 0%, rgba(var(--color-primary-rgb,72, 130, 132), .02) 100%);border-left:4px solid var(--color-primary);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.event-detail-banner-content{gap:var(--spacing-lg);flex-flow:wrap;display:flex}.event-detail-banner-item{align-items:flex-start;gap:var(--spacing-sm);color:var(--color-primary);display:flex}.event-detail-banner-text{flex-direction:column;gap:2px;display:flex}.event-detail-banner-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.8px;color:var(--color-text-light);font-weight:600}.event-detail-banner-value{font-size:var(--font-size-base);color:var(--color-text);font-weight:600;line-height:1.3}.event-detail-section{margin-bottom:var(--spacing-lg)}.event-detail-section:last-child{margin-bottom:0}.event-detail-section-title{align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-base);color:var(--color-text);margin:0 0 var(--spacing-sm) 0;font-weight:600;display:flex}.event-detail-info-grid{gap:var(--spacing-md);flex-direction:column;display:flex}.event-detail-info-item{gap:var(--spacing-xs);flex-direction:column;display:flex}.event-detail-info-label{align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-text-light);text-transform:uppercase;letter-spacing:.8px;font-weight:600;display:flex}.event-detail-info-value{font-size:var(--font-size-lg);color:var(--color-text);padding-left:calc(16px + var(--spacing-xs));font-weight:600;line-height:1.4}.event-detail-empty{padding:var(--spacing-xl);text-align:center;color:var(--color-text-light);justify-content:center;align-items:center;gap:var(--spacing-sm);flex-direction:column;display:flex}.event-detail-empty p{margin:0}.event-detail-description{color:var(--color-text);white-space:pre-wrap;margin:0;line-height:1.6}.event-detail-attachments{gap:var(--spacing-xs);flex-direction:column;display:flex}.event-detail-attachment{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-primary);text-decoration:none;transition:all .2s;display:flex}.event-detail-attachment:hover{background-color:var(--color-bg-hover);border-color:var(--color-primary)}.event-detail-attachment span{flex:1}.event-detail-attachment-icon{color:var(--color-text-light)}.modal-footer-actions{justify-content:space-between;align-items:center;gap:var(--spacing-md);width:100%;display:flex}.modal-footer-actions-right{gap:var(--spacing-xs);display:flex}.card--clickable{cursor:pointer;min-height:88px;transition:all .2s}.card--clickable:hover{background-color:var(--color-bg-hover);border-color:var(--color-primary);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.event-card-content{gap:var(--spacing-md);align-items:center;width:100%;display:flex}.event-card-main{flex:1;min-width:0}.event-card-title-row{align-items:center;gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.event-card-title-row .card__title{flex:1;min-width:0;margin:0}.events-list-card__past-badge{color:#495565;background:#94a3b833;border:1px solid #78849473}.event-card-preview{margin:var(--spacing-xs) 0 0 0;font-size:var(--font-size-sm);color:var(--color-text);-webkit-line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;line-height:1.5;display:-webkit-box;overflow:hidden}.event-card-indicator{align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-xs);background-color:var(--color-bg-secondary);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--color-text-light);width:fit-content;padding:4px 8px;font-weight:500;display:flex}.events-list-card--past{background:linear-gradient(0deg, #94a3b81f, #94a3b81f), var(--color-background);border-color:#94a3b86b}.events-list-card--past .card__title,.events-list-card--past .card__subtitle,.events-list-card--past .event-card-indicator{color:#5f6b79}.events-list-card--past .event-card-indicator{background-color:#94a3b833}.events-list-card--past.card--clickable:hover{background:linear-gradient(0deg, #94a3b833, #94a3b833), var(--color-background);border-color:#7884948c}.event-card-actions{gap:var(--spacing-xs);flex-shrink:0;align-self:center;display:flex}.events-filter-bar{align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border);display:flex}.events-filter-bar__label{font-size:var(--font-size-sm);color:var(--color-text-light);white-space:nowrap}.events-filter-bar .select--sm{flex:1;max-width:200px}.empty-state--compact{padding:var(--spacing-xl) var(--spacing-md);text-align:center}.empty-state--compact .empty-state__icon{color:var(--color-text-lighter);margin-bottom:var(--spacing-sm)}.events-manager-layout{gap:var(--spacing-lg);grid-template-columns:1fr minmax(260px,320px);align-items:start;display:grid}.appointments-manager-layout{gap:var(--spacing-lg);grid-template-columns:1fr minmax(320px,380px);align-items:start;display:grid}.appointments-manager-layout--family{grid-template-columns:minmax(0,1.1fr) minmax(300px,360px) minmax(0,1.1fr)}.appointments-list-panel{min-width:0}.appointments-list-panel--family-main,.appointments-secondary-panel--family{gap:var(--spacing-md);display:grid}.appointments-manager-layout--family .appointments-list-panel--family-main{order:2}.appointments-manager-layout--family .appointments-calendar-panel{order:1}.appointments-manager-layout--family .appointments-secondary-panel--family{order:3}.appointments-guide-card .card__body{flex-direction:column;gap:6px;display:flex}.appointments-guide-list{color:var(--color-text-light);gap:4px;margin:0;padding-left:1rem;display:grid}.appointments-guide-card,.appointments-history-card{background:var(--color-background);border:1px solid var(--color-border);padding:8px 10px}.appointments-guide-card .card__body,.appointments-history-card .card__body{margin-bottom:0;padding:0}.appointments-overview-card .card__body{gap:var(--spacing-lg);flex-direction:column;display:flex}.appointments-history-card .card__body{flex-direction:column;display:flex}.appointments-guide-card .appointments-section,.appointments-history-card .appointments-section{gap:2px}.appointments-guide-card .appointments-section__header .card__title,.appointments-history-card .appointments-section__header .card__title{font-size:var(--font-size-sm)}.appointments-guide-card .appointments-section__toggle,.appointments-history-card .appointments-section__toggle{min-width:56px;min-height:28px;padding:2px 8px;line-height:1.15}.appointments-upcoming-card .card__body{flex-direction:column;display:flex}.appointments-section{flex-direction:column;gap:6px;display:flex}.appointments-section+.appointments-section{padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.appointments-section__header{justify-content:space-between;align-items:center;gap:var(--spacing-sm);display:flex}.appointments-section__header .card__title{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);margin:0}.appointments-section__meta{font-size:var(--font-size-xs);color:var(--color-text-light);font-weight:var(--font-weight-medium)}.appointments-section__actions{align-items:center;gap:var(--spacing-xs);display:inline-flex}.appointments-section__toggle{min-width:64px;font-size:var(--font-size-xs);border-color:var(--color-border);color:var(--color-text-light);padding:4px 10px}.appointments-section__toggle:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-primary);color:#fff}.appointments-section--history .my-appointments-list{max-height:520px;padding-right:2px;overflow-y:auto}.appointments-calendar-panel{order:2}.events-calendar-panel .card__header{align-items:center}.events-calendar-panel{order:2}@media (width<=1320px){.appointments-manager-layout--family{grid-template-columns:minmax(0,1fr) minmax(300px,360px)}.appointments-secondary-panel--family{grid-column:1/-1;grid-template-columns:1fr 1fr}}.events-calendar--manager{background:var(--color-background);border-radius:var(--radius-md);padding:var(--spacing-sm);border:1px solid var(--color-border)}.events-calendar--manager .event-calendar__day--has-past-event:not(.event-calendar__day--has-upcoming-event){color:#657487;background:#94a3b829;box-shadow:inset 0 -2px #b4bfcc}.events-calendar--manager .event-calendar__day--has-past-event:not(.event-calendar__day--has-upcoming-event):hover{background:#94a3b83d}.events-calendar-clear{width:100%;margin-top:var(--spacing-sm)}.appointments-calendar-panel .event-calendar__nav-btn span{font-size:28px;line-height:1}.appointments-mobile-slots{display:none}.events-list-panel{min-width:0}.events-list-header{margin-bottom:var(--spacing-xs);justify-content:space-between;align-items:center;display:flex}.events-list-title{font-size:var(--font-size-md);margin:0}.events-list-subtitle{color:var(--color-text-light);font-size:var(--font-size-sm);margin:4px 0 0}.events-list-next{color:var(--color-text-light);font-size:var(--font-size-xs);margin:4px 0 0}.snacks-week-table{border-collapse:separate;border-spacing:0 var(--spacing-sm);table-layout:fixed;background:0 0;min-width:680px}.snacks-week-table th{background:var(--color-background);color:var(--color-text);border-bottom:1px solid var(--color-border)}.snacks-week-table td{vertical-align:top;padding-top:var(--spacing-md);padding-bottom:var(--spacing-md);background:var(--color-background-alt);border-bottom:0}.snacks-week-table tbody tr td:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.snacks-week-table tbody tr td:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.snacks-week-table tbody tr{box-shadow:var(--shadow-sm)}.snacks-week-table tbody tr:hover td{background:var(--color-background-warm)}.snacks-week-table__week-cell{width:180px}.snack-week-date-actions{margin-top:var(--spacing-sm);gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.snack-week-suspend-inline{min-height:30px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-light);background:#2c6b6f14;border-color:#2c6b6f59;padding:4px 10px}.snack-week-suspend-inline:hover:not(:disabled){color:var(--color-primary-dark);background:#2c6b6f24;border-color:#2c6b6f75}.snacks-week-table__taller-cell{width:calc(50% - 170px)}.snack-week-cell{justify-content:flex-start;gap:var(--spacing-xs);flex-direction:column;min-height:116px;display:flex}.snack-week-cell--empty{justify-content:center}.snack-week-cell__actions{gap:var(--spacing-sm);flex-wrap:wrap;align-items:center;display:flex}.snacks-week-table__state-cell{width:160px}.snack-week-state{align-items:flex-start;min-height:116px;display:flex}.snack-week-action{white-space:nowrap}.snack-filters{gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-background-alt);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.snack-filter-chip{text-align:center}.snack-filter-chip--active{font-weight:var(--font-weight-semibold);border-color:#2c6b6f80;transform:translateY(-1px);box-shadow:0 0 0 2px #2c6b6f52}.snack-filters__active-hint{margin:-4px 0 var(--spacing-md) 0;font-size:var(--font-size-sm);color:var(--color-text-light)}.snacks-header-actions{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.snacks-header-actions .btn{white-space:nowrap}.snack-action-button{background-color:var(--color-secondary-light);color:#2b241b;border-color:var(--color-secondary);min-height:28px;padding:2px 8px;font-size:.75rem;font-weight:500}.snack-delete-button{min-height:30px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:#b15b2b;background:#f57a3a14;border-color:#f57a3a57;padding:4px 10px}.snack-delete-button:hover:not(:disabled){color:#974c21;background:#f57a3a24;border-color:#dc672c70}.snacks-week-cards{display:none}@media (width<=640px){.snacks-week-table-wrap{display:none}.snacks-week-cards{gap:var(--spacing-md);display:grid}.snack-week-card__header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);display:flex}.snack-week-card__section{padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);margin-bottom:var(--spacing-sm)}.snack-week-card__label{font-size:var(--font-size-xs);color:var(--color-text-light);margin-bottom:4px}.snack-week-card__title{font-weight:var(--font-weight-semibold);margin-bottom:4px}.snack-week-card__row{gap:var(--spacing-xs);margin-top:var(--spacing-xs);flex-wrap:wrap;align-items:center;display:flex}.snack-week-card__suspend{width:100%}.snack-week-suspend-inline{justify-content:center;width:100%}.snacks-header-actions{width:100%}.snacks-header-actions .btn{flex:100%}.snack-filters{gap:var(--spacing-sm)}.snack-filter-chip{flex:1 1 calc(50% - var(--spacing-sm))}.snack-filters .btn{flex:100%}}@media (width<=390px){.sidebar__menu{grid-template-columns:1fr}}.snack-action-button:hover:not(:disabled){background-color:var(--color-secondary);color:#2b241b}.events-filters{gap:var(--spacing-md);margin-bottom:var(--spacing-md);grid-template-columns:repeat(3,minmax(220px,1fr)) auto;align-items:end;display:grid}.events-filter-field{flex-direction:column;display:flex}.events-filters .form-label{font-size:var(--font-size-sm);margin-bottom:4px}.events-filters .form-input--sm,.events-filters .form-select.form-input--sm{height:40px;padding:8px 12px;line-height:1.2}.events-filter-field .form-label{margin-bottom:var(--spacing-xs)}.events-filter-clear{height:36px}.events-day-group{margin-bottom:var(--spacing-md)}.events-day-heading{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary);margin-bottom:var(--spacing-sm);text-transform:capitalize}.events-day-items{gap:var(--spacing-sm);flex-direction:column;display:flex}.events-list .card__body{padding-top:0}.events-list .card__body p{font-size:var(--font-size-sm);color:var(--color-text)}.event-media-list{margin-top:var(--spacing-sm);font-size:var(--font-size-sm)}.event-media-list__items{margin:var(--spacing-xs) 0 0;gap:6px;padding:0;list-style:none;display:grid}.event-media-list__items li{align-items:center;gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.event-media-list__meta{color:var(--color-text-light);font-size:var(--font-size-xs)}.events-manager-page .dashboard-content{padding:var(--spacing-lg) var(--spacing-lg)}@media (width<=1024px){.events-manager-layout{grid-template-columns:1fr}.events-calendar-panel{order:0}.events-filters,.appointments-manager-layout{grid-template-columns:1fr}.appointments-calendar-panel{order:0}.appointments-manager-page .appointments-calendar-panel{order:-1}.appointments-manager-page{flex-direction:column;display:flex}.appointments-manager-page>.dashboard-header{order:1}.appointments-manager-page>.dashboard-content{order:2}.appointments-manager-page>.appointments-mobile-create-trigger{margin-top:var(--spacing-md);order:3;display:block}.appointments-manager-page>.appointments-mobile-create-trigger .btn{width:100%}.appointments-mobile-create-actions{gap:var(--spacing-sm);display:grid}.manual-slot-scheduler,.manual-slot-time-selects{grid-template-columns:1fr}.appointments-manager-page>.create-slots-form-card{margin-top:var(--spacing-md);order:4}.appointments-manager-layout--family .appointments-secondary-panel--family{order:0}.appointments-manager-layout--family .appointments-calendar-panel{order:1}.appointments-manager-layout--family .appointments-list-panel--family-main{order:2;display:none}.appointments-mobile-slots{margin-top:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background-alt);display:block;overflow:hidden}.appointments-mobile-slots__trigger{width:100%;color:var(--color-text);justify-content:space-between;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:left;cursor:pointer;background:0 0;border:0;padding:10px 12px;display:flex}.appointments-mobile-slots__meta{font-size:var(--font-size-xs);color:var(--color-text-light);font-weight:var(--font-weight-medium)}.appointments-mobile-slots__content{border-top:1px solid var(--color-border);background:var(--color-background);padding:8px 10px 10px}.appointments-secondary-panel--family{grid-template-columns:1fr}.appointments-section__header{flex-wrap:wrap;align-items:flex-start}.create-slots-grid--period,.create-slots-grid--time,.create-slots-grid--setup,.create-slots-subgrid{grid-template-columns:1fr}.create-slots-form-card .card__header{padding-bottom:var(--spacing-sm)}.create-slots-form-card .card__body{padding:var(--spacing-sm)}.create-slots-section{padding:10px}.create-slots-actions{justify-content:stretch}.create-slots-actions .btn{width:100%}.appointments-manager-page .appointments-header__actions{display:none}}.dashboard-header--compact{padding:var(--spacing-lg) var(--spacing-lg)}.dashboard-header--compact .dashboard-title{font-size:var(--font-size-2xl);margin:0}.dashboard-header--compact .dashboard-subtitle{font-size:var(--font-size-sm);margin:var(--spacing-xs) 0 0 0}.page-container .page-header h1,.page-container .mb-md>h1,.page-container .card__header .card__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-normal)}.page-container .page-header .text-muted,.page-container .mb-md>.text-muted,.page-container .card__header .card__subtitle{font-size:var(--font-size-xs)}.btn--danger-outline{border-color:var(--color-error);color:var(--color-error);background-color:#0000}.btn--danger-outline:hover:not(:disabled){background-color:var(--color-error);color:#fff}.dashboard-header{padding:var(--spacing-lg) var(--spacing-lg);background:var(--color-background-alt);border-bottom:var(--border-width) solid var(--color-border);justify-content:space-between;align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.dashboard-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-normal);color:var(--color-text);line-height:var(--line-height-tight);margin:0}.dashboard-subtitle{font-size:var(--font-size-md);color:var(--color-text-light);margin:var(--spacing-xs) 0 0 0}.dashboard-content{padding:var(--spacing-xl) var(--spacing-lg)}.dashboard-section{margin-bottom:var(--spacing-2xl)}.dashboard-section:last-child{margin-bottom:0}.section-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-primary);margin:0 0 var(--spacing-lg) 0;padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-primary-soft)}.admin-dashboard-page .dashboard-content{padding:var(--spacing-lg) var(--spacing-lg)}.admin-dashboard-page .dashboard-section{margin-bottom:var(--spacing-lg)}.admin-dashboard-page .section-title{margin-bottom:var(--spacing-md)}.admin-dashboard-page .dashboard-header{padding:var(--spacing-lg) var(--spacing-lg)}.admin-dashboard-page .grid-cards-sm{gap:var(--spacing-sm)}.admin-dashboard-page .card__title{font-size:var(--font-size-md)}.admin-dashboard-page .card p{font-size:var(--font-size-sm);margin:0}.admin-dashboard-page .admin-dashboard-panel{background:var(--color-background-alt);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm)}.admin-dashboard-page .admin-dashboard-panel--featured{background:linear-gradient(135deg, var(--color-background-alt) 0%, var(--color-background-warm) 100%);border-color:#2c6b6f33}.admin-dashboard-page .section-title{margin-bottom:var(--spacing-xs);border-bottom:none}.admin-dashboard-page .section-heading{gap:var(--spacing-xs);margin-bottom:var(--spacing-md);flex-direction:column;display:flex}.admin-dashboard-page .section-heading--inline{margin-bottom:var(--spacing-sm)}.admin-dashboard-page .section-subtitle{font-size:var(--font-size-sm);color:var(--color-text-light);margin:0}.admin-dashboard-page .section-heading--inline .section-title{align-items:baseline;gap:var(--spacing-sm);flex-wrap:wrap;margin-bottom:0;display:flex}.admin-dashboard-page .section-heading--inline .section-subtitle{font-weight:var(--font-weight-normal)}.admin-dashboard-page .admin-dashboard-grid{gap:var(--spacing-md)}.admin-dashboard-page .admin-dashboard-grid--featured{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.admin-dashboard-page .admin-dashboard-card{gap:var(--spacing-sm);background:var(--color-background);transition:transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);border-color:#2c6b6f2e;align-items:flex-start;display:flex}.admin-dashboard-page .admin-dashboard-card:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-md);transform:translateY(-2px)}.admin-dashboard-page .admin-dashboard-card__icon{background:var(--color-primary-soft);width:36px;height:36px;color:var(--color-primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex;box-shadow:inset 0 0 0 1px #2c6b6f1a}.admin-dashboard-page .admin-dashboard-card--featured .admin-dashboard-card__icon{color:var(--color-accent-dark);background:#e67e5e24;box-shadow:inset 0 0 0 1px #e67e5e33}.admin-dashboard-page .admin-dashboard-card__content{flex-direction:column;gap:2px;display:flex}.admin-dashboard-page .admin-dashboard-card__content p{color:var(--color-text-light)}.admin-dashboard-page .admin-dashboard-grid>.admin-dashboard-card{animation:.35s ease-out both adminDashboardFade}.admin-dashboard-page .admin-dashboard-grid>.admin-dashboard-card:nth-child(2){animation-delay:40ms}.admin-dashboard-page .admin-dashboard-grid>.admin-dashboard-card:nth-child(3){animation-delay:80ms}.admin-dashboard-page .admin-dashboard-grid>.admin-dashboard-card:nth-child(4){animation-delay:.12s}.admin-dashboard-page .admin-dashboard-grid>.admin-dashboard-card:nth-child(5){animation-delay:.16s}@keyframes adminDashboardFade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}[data-theme=dark] .admin-dashboard-page .admin-dashboard-card{background:var(--color-background-alt);border-color:#ffffff14}[data-theme=dark] .admin-dashboard-page .admin-dashboard-panel--featured{border-color:#7dbec140}[data-theme=dark] .admin-dashboard-page .admin-dashboard-card--featured .admin-dashboard-card__icon{color:var(--color-accent-light);background:#5ba5a833;box-shadow:inset 0 0 0 1px #5ba5a84d}.family-dashboard-page .admin-dashboard-panel{background:var(--color-background-alt);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm)}.family-dashboard-page .admin-dashboard-panel--featured{background:linear-gradient(135deg, var(--color-background-alt) 0%, var(--color-background-warm) 100%);border-color:#2c6b6f33}.family-dashboard-page .section-title{margin-bottom:var(--spacing-xs);border-bottom:none}.family-dashboard-page .section-heading{gap:var(--spacing-xs);margin-bottom:var(--spacing-md);flex-direction:column;display:flex}.family-dashboard-page .section-heading--inline{margin-bottom:var(--spacing-sm)}.family-dashboard-page .section-subtitle{font-size:var(--font-size-sm);color:var(--color-text-light);margin:0}.family-dashboard-page .section-heading--inline .section-title{align-items:baseline;gap:var(--spacing-sm);flex-wrap:wrap;margin-bottom:0;display:flex}.family-dashboard-page .section-heading--inline .section-subtitle{font-weight:var(--font-weight-normal)}.family-dashboard-page .admin-dashboard-grid{gap:var(--spacing-md)}.family-dashboard-page .admin-dashboard-grid--featured{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.family-dashboard-page .admin-dashboard-card{gap:var(--spacing-sm);background:var(--color-background);transition:transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);border-color:#2c6b6f2e;align-items:flex-start;display:flex}.family-dashboard-page .admin-dashboard-card:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-md);transform:translateY(-2px)}.family-dashboard-page .family-card-primary .admin-dashboard-card__icon{color:var(--color-primary);box-shadow:none;background:0 0}.family-dashboard-page .family-card-accent .admin-dashboard-card__icon{color:#d67456;box-shadow:none;background:0 0}.family-dashboard-page .family-card-info .admin-dashboard-card__icon{color:#4a9da0;box-shadow:none;background:0 0}.family-dashboard-page .family-card-success .admin-dashboard-card__icon{color:#43a047;box-shadow:none;background:0 0}.family-dashboard-page .family-card-warning .admin-dashboard-card__icon{color:#f57c00;box-shadow:none;background:0 0}.family-dashboard-page .family-card-neutral .admin-dashboard-card__icon{color:#616161;box-shadow:none;background:0 0}.family-dashboard-page .admin-dashboard-grid>.admin-dashboard-card{animation:.35s ease-out both adminDashboardFade}.family-dashboard-page .admin-dashboard-grid>.admin-dashboard-card:nth-child(2){animation-delay:40ms}.family-dashboard-page .admin-dashboard-grid>.admin-dashboard-card:nth-child(3){animation-delay:80ms}.family-dashboard-page .admin-dashboard-grid>.admin-dashboard-card:nth-child(4){animation-delay:.12s}[data-theme=dark] .family-dashboard-page .admin-dashboard-card{background:var(--color-background-alt);border-color:#ffffff14}[data-theme=dark] .family-dashboard-page .admin-dashboard-panel--featured{border-color:#7dbec140}[data-theme=dark] .family-dashboard-page .family-card-primary .admin-dashboard-card__icon{color:var(--color-primary-light);background:0 0}[data-theme=dark] .family-dashboard-page .family-card-accent .admin-dashboard-card__icon{color:#f08968;background:0 0}[data-theme=dark] .family-dashboard-page .family-card-info .admin-dashboard-card__icon{color:#6fb3b6;background:0 0}[data-theme=dark] .family-dashboard-page .family-card-success .admin-dashboard-card__icon{color:#66bb6a;background:0 0}[data-theme=dark] .family-dashboard-page .family-card-warning .admin-dashboard-card__icon{color:#ffa726;background:0 0}[data-theme=dark] .family-dashboard-page .family-card-neutral .admin-dashboard-card__icon{color:#9e9e9e;background:0 0}.appointments-header{padding:var(--spacing-lg) var(--spacing-lg)}.appointments-header__actions{gap:var(--spacing-md);display:flex}.appointments-mobile-create-trigger{display:none}.appointments-mobile-create-actions{gap:var(--spacing-sm);display:flex}.create-slots-form-card{border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.create-slots-form-card .card__header{border-bottom:1px solid var(--color-border)}.create-slots-form-card .card__subtitle{color:var(--color-text-light);font-size:var(--font-size-sm);margin:4px 0 0}.create-slots-layout{gap:var(--spacing-md);display:grid}.create-slots-section{padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background-alt)}.create-slots-section__title{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.assign-inline-toggle{align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text);cursor:pointer;display:inline-flex}.assign-inline-toggle input{margin:0}.manual-slot-scheduler{gap:var(--spacing-sm);grid-template-columns:1fr 1fr;display:grid}.manual-slot-input-card{gap:var(--spacing-sm);padding:var(--spacing-sm);border:1px solid color-mix(in srgb, var(--color-primary) 12%, var(--color-border));border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-background) 84%, white);display:grid}.manual-slot-input-card__header{align-items:flex-start;gap:var(--spacing-sm);color:var(--color-primary);display:flex}.manual-slot-input-card__header strong{font-size:var(--font-size-sm);color:var(--color-text);margin-bottom:2px;display:block}.manual-slot-input-card__header span{font-size:var(--font-size-xs);color:var(--color-text-light);display:block}.manual-slot-time-selects{gap:var(--spacing-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.manual-slot-time-select{gap:6px;display:grid}.manual-slot-time-select label{font-size:11px;font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-light)}.create-slots-grid{gap:var(--spacing-sm);display:grid}.create-slots-grid--period{grid-template-columns:1fr}.create-slots-subgrid{gap:var(--spacing-sm);grid-template-columns:1fr 1fr;display:grid}.create-slots-grid--time,.create-slots-grid--setup{grid-template-columns:1fr 1fr}.create-slots-form-card .form-group{margin-bottom:0}.create-slots-form-card .form-group label{font-size:var(--font-size-xs);color:var(--color-text-light);margin-bottom:4px}.create-slots-form-card .form-group input,.create-slots-form-card .form-group select{width:100%}.create-slots-form-card .form-group input[type=date],.create-slots-form-card .form-group input[type=time]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.create-slots-form-card .form-group input[type=date]::-webkit-calendar-picker-indicator{opacity:.85;filter:none;cursor:pointer}.create-slots-form-card .form-group input[type=time]::-webkit-calendar-picker-indicator{opacity:.85;filter:none;cursor:pointer}.create-slots-actions{margin-top:var(--spacing-md);padding-top:var(--spacing-sm);border-top:1px solid var(--color-border);justify-content:flex-end;display:flex}.family-dashboard-page .dashboard-header,.family-dashboard-page .dashboard-content{padding:var(--spacing-lg) var(--spacing-lg)}.family-dashboard-page .dashboard-section{margin-bottom:var(--spacing-md)}.family-dashboard-page .grid-cards-sm{gap:var(--spacing-sm)}.family-dashboard-page .card__title{font-size:var(--font-size-md)}.family-dashboard-page .card p{font-size:var(--font-size-sm);margin:0}.layout-container{min-height:calc(100vh - 82px);display:flex}.sidebar-backdrop{display:none}.layout-main{flex-direction:column;flex:1;min-width:0;display:flex}.main-content{flex:1;padding:0}@media (width<=1024px){.navbar__menu-toggle{display:inline-flex}.sidebar{top:calc(var(--navbar-content-height,70px) + env(safe-area-inset-top,0px));box-sizing:border-box;width:auto;max-width:100%;min-height:0;box-shadow:none;max-height:0;transition:max-height var(--transition-normal), padding var(--transition-fast), border-color var(--transition-fast);background:var(--color-background-alt);border-bottom:none;border-right:none;padding:0;position:fixed;left:0;right:0;overflow:hidden}.sidebar--open{z-index:calc(var(--z-sticky) - 1);max-height:calc(100dvh - (var(--navbar-content-height,70px) + env(safe-area-inset-top,0px)));padding:var(--spacing-sm) 0;border-bottom:var(--border-width) solid var(--color-border);overflow:hidden auto}.sidebar-backdrop{-webkit-backdrop-filter:blur(1px);z-index:calc(var(--z-sticky) - 2);cursor:pointer;background:#0f172a3d;border:none;margin:0;padding:0;display:block;position:fixed;inset:0}}.notification-wrapper{position:relative}.notification-dropdown-container{z-index:var(--z-dropdown);position:absolute;top:calc(100% + 8px);right:0}.notification-dropdown{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);width:380px;max-height:500px;box-shadow:var(--shadow-lg);overflow:hidden}.notification-header{padding:var(--spacing-md);border-bottom:1px solid var(--color-border);background:var(--color-background-warm);justify-content:space-between;align-items:center;display:flex}.notification-header h3{font-size:var(--font-size-md);color:var(--color-text);margin:0}.notification-admin-summary{display:none}.notification-count{background:var(--color-accent);color:#fff;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);padding:2px 8px}.notification-list{max-height:400px;overflow-y:auto}.notification-section+.notification-section{border-top:1px solid var(--color-border)}.notification-section__header{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-light);background:var(--color-background-warm)}.notification-item{padding:var(--spacing-md);border-bottom:1px solid var(--color-border);cursor:pointer;transition:background var(--transition-fast);justify-content:space-between;align-items:flex-start;gap:var(--spacing-sm);display:flex}.notification-item:hover{background:var(--color-background-warm)}.notification-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;background:var(--color-background-warm)}.notification-item:last-child{border-bottom:none}.notification-item--urgent{border-left:4px solid var(--color-error);background:#fff5f5}.notification-content{flex:1}.notification-content h4{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.notification-content p{font-size:var(--font-size-sm);color:var(--color-text-light);line-height:var(--line-height-normal);margin:0}.notification-action{margin-top:var(--spacing-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-primary);display:inline-flex}.notification-time{margin-top:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-text-light);font-style:italic;display:block}.notification-item__aside{align-items:flex-end;gap:var(--spacing-xs);flex-direction:column;display:flex}.notification-item__arrow{color:var(--color-text-light);display:inline-flex}.urgent-badge{background:var(--color-error);color:#fff;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);white-space:nowrap;padding:2px 8px}.notification-empty{padding:var(--spacing-xl);text-align:center;color:var(--color-text-light)}.notification-empty .icon{margin-bottom:var(--spacing-md);color:var(--color-text-light);display:block}.notification-empty .icon svg{width:48px;height:48px}.notification-footer{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-background-alt);text-align:center;font-size:var(--font-size-xs);color:var(--color-text-light);border-top:1px solid var(--color-border)}@media (width<=768px){.modal-content{border-radius:0;max-width:100%;max-height:100vh}.btn--lg{font-size:var(--font-size-md)}.card{padding:var(--spacing-md)}.login-logo{max-width:150px}.login-subtitle{font-size:var(--font-size-md)}.chip-text{max-width:150px}.family-selector{max-height:250px}.family-selector-actions{justify-content:flex-start}.selected-count{text-align:left;width:100%;margin-left:0}.appointments-main-grid{grid-template-columns:1fr}.calendar-grid{gap:2px}.calendar-day{min-height:38px;padding:2px}.calendar-day-number{font-size:var(--font-size-xs)}.upcoming-appointment-item{flex-direction:column;align-items:flex-start}.my-appointment-item{align-items:flex-start;gap:var(--spacing-sm);flex-direction:column}.appointment-meta{flex-wrap:wrap;margin-left:0}.week-grid{gap:var(--spacing-xs);grid-template-columns:repeat(2,1fr)}.week-day-column{min-height:300px}.admin-appointments-stats{grid-template-columns:repeat(2,1fr)}.stat-card{padding:var(--spacing-md)}.stat-card__value{font-size:1.5rem}.view-mode-toggle{flex-wrap:wrap}.appointments-manager-page>.dashboard-content{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.appointments-manager-page .appointments-list-panel>.card{min-width:0;padding:10px}.appointments-manager-page .appointments-list-panel>.card>.card__body{min-width:0;margin-bottom:0}.appointments-manager-page .day-appointments-list{margin-top:var(--spacing-sm);gap:6px}.admin-day-appointment-item{align-items:start;gap:var(--spacing-sm);width:100%;min-width:0;padding:var(--spacing-sm) 10px;box-sizing:border-box;grid-template-columns:minmax(0,1fr) minmax(96px,42%)}.appointment-info-section{flex-flow:column;grid-column:2;align-items:flex-start;gap:6px;min-width:0;margin-left:0}.appointment-time-section,.appointment-identity{min-width:0}.appointment-identity{width:100%}.appointment-duration,.appointment-family,.appointment-child,.appointment-note-preview{overflow-wrap:anywhere}.admin-calendar-day{min-height:80px;padding:4px}.admin-calendar-day-number{font-size:var(--font-size-sm)}.admin-stat-badge{min-width:16px;height:16px;font-size:10px}.legend-items{gap:var(--spacing-sm);flex-direction:column}.appointment-form-actions{flex-direction:column}.appointment-form-actions .btn{width:100%}.loading-screen__logo-container{width:104px;height:104px}.loading-screen__logo{width:62px;height:62px}.loading-screen__message{font-size:var(--font-size-md)}}@media (width<=480px){.notification-dropdown{width:90vw;right:-20px}}.child-form{gap:var(--spacing-xl);flex-direction:column;display:flex}.child-form__grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.child-form .form-section{background:linear-gradient(135deg, var(--color-background) 0%, var(--color-background-warm) 100%);border:var(--border-width) solid var(--color-secondary-light);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm)}.child-form .form-section h3,.child-form__reports-section .child-card__section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);letter-spacing:-.01em;color:var(--color-primary-dark);margin:0;line-height:1.3}.child-form .form-section h3,.child-form__reports-section .student-reports__header{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--color-secondary-light)}.child-form .select-multiple{min-height:140px}.child-form__reports-section .student-reports{background:linear-gradient(135deg, var(--color-background) 0%, var(--color-background-warm) 100%);border:var(--border-width) solid var(--color-secondary-light);border-left:3px solid var(--color-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-lg)}.child-form .family-selector{max-height:168px;margin-top:var(--spacing-xs);background-color:var(--color-background-alt)}.child-form .family-checkbox{padding:6px var(--spacing-sm);flex-direction:row;align-items:center}.child-form .family-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary)}.child-form__chips{margin-bottom:var(--spacing-xs);flex-wrap:wrap;gap:6px;display:flex}.child-form__chip{border:1px solid var(--color-primary);border-radius:var(--radius-full,999px);background:var(--color-primary-soft);color:var(--color-primary-dark);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast);align-items:center;gap:6px;padding:4px 8px 4px 10px;display:inline-flex}.child-form__chip:hover{background:var(--color-background-warm)}.child-form .family-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.child-form .family-email{font-size:var(--font-size-xs);color:var(--color-text-light)}.child-form .family-info{flex-flow:row;flex:1;align-items:center;gap:8px;min-width:0;overflow:hidden}.child-form .family-name,.child-form .family-email{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.child-form .family-name{max-width:45%}.child-form .family-email{max-width:55%}.child-form .family-email:before{content:"·";color:var(--color-text-light);margin-right:6px}.child-form__medical-section{gap:var(--spacing-md);grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;display:grid}.child-form__medical-section .form-group{margin-bottom:0}.child-form__medical-section h3,.child-form__medical-section>p,.child-form__subtitle{grid-column:1/-1;margin-bottom:0}.child-form__subtitle{margin:var(--spacing-xs) 0 0;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-light)}.child-form__subtitle:first-of-type{margin-top:0}.child-form__medical-compact-field{min-width:0}.child-form .form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-light);letter-spacing:.01em;margin-bottom:6px}.child-form .form-input,.child-form .form-select,.child-form .form-textarea{border-width:1px;border-color:var(--color-border);font-size:var(--font-size-sm);padding:10px 12px;line-height:1.4}.child-form .form-textarea{min-height:72px}.child-form__medical-compact-textarea{min-height:76px}.child-form__medical-wide-field{grid-column:1/-1}.child-form__pickup-grid{gap:var(--spacing-sm);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.child-form__pickup-card{padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background-alt)}.child-form__pickup-card-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary-dark);margin-bottom:10px}.child-form__pickup-card .form-group{margin-bottom:10px}.child-form__pickup-card .form-group:last-child{margin-bottom:0}.child-form__pickup-card .form-label{font-size:var(--font-size-xs);color:var(--color-text-light);margin-bottom:4px}.child-form__pickup-card .form-input{font-size:var(--font-size-sm);padding:10px 12px}.child-form__actions{justify-content:flex-end;gap:var(--spacing-md);padding-top:var(--spacing-lg);border-top:1px solid var(--color-secondary-light);display:flex}@media (width<=1400px){.child-form__pickup-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=1100px){.child-form__pickup-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=768px){.children-page .child-card--admin .child-card__medical-grid,.child-form__medical-section{grid-template-columns:1fr}.child-form__medical-wide-field{grid-column:auto}.child-form__pickup-grid{grid-template-columns:1fr}.child-form__actions{flex-direction:column}.child-form__actions .btn{width:100%}}[data-theme=dark] .card{background-color:var(--color-background-alt);border-color:var(--color-border)}[data-theme=dark] .card--warm{background:var(--color-background-alt);border-color:var(--color-border)}[data-theme=dark] .card--highlight{background-color:var(--color-background-warm);border-left-color:var(--color-accent)}[data-theme=dark] .child-card{background-color:var(--color-background-alt);border-color:var(--color-border)}[data-theme=dark] .child-card__header{background:var(--color-background);border-bottom-color:var(--color-border)}[data-theme=dark] .child-card__name{color:var(--color-text)}[data-theme=dark] .child-card__label{color:var(--color-text-light)}[data-theme=dark] .child-card__value{color:var(--color-text)}[data-theme=dark] .child-card__section{background:var(--color-background);border-left-color:var(--color-primary)}[data-theme=dark] .child-card__section--medical{background:var(--color-background-warm);border-left-color:var(--color-warning)}[data-theme=dark] .child-card__section-title{color:var(--color-text)}[data-theme=dark] .child-form__reports-section .child-card__section-title{color:var(--color-primary-dark)}[data-theme=dark] .conversations-list{background:var(--color-background-alt);border-color:var(--color-border)}[data-theme=dark] .conversation-row{border-bottom-color:var(--color-border)}[data-theme=dark] .conversation-row:hover{background:var(--color-background)}[data-theme=dark] .conversation-row--unread{background:#6366f114}[data-theme=dark] .conversation-row--unread:hover{background:#6366f11f}[data-theme=dark] .conversations-filters{background:var(--color-background)}[data-theme=dark] .filter-tab--active,[data-theme=dark] .conversations-empty{background:var(--color-background-alt)}[data-theme=dark] .child-card__family-item,[data-theme=dark] .child-card__medical-item{background:var(--color-background);border-color:var(--color-border);color:var(--color-text)}[data-theme=dark] .child-card__medical-item--alert{background:var(--color-background-warm);border-color:#f4433666}[data-theme=dark] .child-card__medical-item strong{color:var(--color-text)}[data-theme=dark] .child-card__medical-item span{color:var(--color-text-light)}[data-theme=dark] .navbar{background:var(--color-background);border-bottom-color:var(--color-border)}[data-theme=dark] .btn--ghost{color:var(--color-text)}[data-theme=dark] .btn--ghost:hover:not(:disabled){background-color:var(--color-background-alt)}[data-theme=dark] .theme-toggle{color:var(--color-text)}[data-theme=dark] .page-header__title,[data-theme=dark] h1{color:var(--color-primary-light)}[data-theme=dark] h2{color:var(--color-primary)}[data-theme=dark] .page-header__subtitle{color:var(--color-text-light)}.snack-status{transition:all var(--transition-fast);border-radius:4px;align-items:center;padding:4px 12px;font-size:.8125rem;font-weight:500;display:inline-flex}.snack-status--empty{color:#b42318;background:#fef3f2;border:1px solid #fecdca}.snack-status--pending{color:#b54708;background:#fffaeb;border:1px solid #fedf89}.snack-status--confirmed{color:#067647;background:#f6fef9;border:1px solid #abefc6}.snack-status--alert{color:#d92d20;background:#fff1f0;border:1px solid #feb2a8}.snack-status--cancelled,.snack-status--incomplete{color:#b42318;background:#fef3f2;border:1px solid #fecdca}.snack-status--complete{color:#067647;background:#f6fef9;border:1px solid #abefc6}.snack-status--suspended{color:#667085;background:#f9fafb;border:1px solid #d0d5dd}[data-theme=dark] .snack-status--empty,[data-theme=dark] .snack-status--incomplete{color:#fda29b;background:#fecdca1a;border-color:#fecdca33}[data-theme=dark] .snack-status--alert{color:#ff6b59;background:#feb2a826;border-color:#feb2a84d}[data-theme=dark] .snack-status--pending{color:#fec84b;background:#fedf891a;border-color:#fedf8933}[data-theme=dark] .snack-status--confirmed,[data-theme=dark] .snack-status--complete{color:#6ce9a6;background:#abefc61a;border-color:#abefc633}[data-theme=dark] .snack-status--cancelled{color:#fda29b;background:#fecdca1f;border-color:#fecdca40}[data-theme=dark] .snack-status--suspended{color:#98a2b3;background:#6670851a;border-color:#66708533}[data-theme=dark] .form-input,[data-theme=dark] .form-textarea,[data-theme=dark] .form-select{background-color:var(--color-background-alt);border-color:var(--color-border);color:var(--color-text)}[data-theme=dark] .form-input:focus,[data-theme=dark] .form-textarea:focus,[data-theme=dark] .form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #7bbec126}[data-theme=dark] .form-input:disabled,[data-theme=dark] .form-textarea:disabled,[data-theme=dark] .form-select:disabled{background-color:var(--color-background);opacity:.6}[data-theme=dark] .filters-card .form-input,[data-theme=dark] .filters-card .form-select{background-color:var(--color-background-alt);border-color:var(--color-border);color:var(--color-text)}[data-theme=dark] .filters-card .form-input:focus,[data-theme=dark] .filters-card .form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #7bbec126}[data-theme=dark] .stat-card{background:var(--color-background-alt);border-color:var(--color-border)}[data-theme=dark] .stat-card:hover{border-color:var(--color-primary)}[data-theme=dark] .stat-label{color:var(--color-text-light)}[data-theme=dark] .stat-value{color:var(--color-text)}[data-theme=dark] .child-card__footer,[data-theme=dark] .card__footer{background:var(--color-background);border-top-color:var(--color-border)}.conversation-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.family-conversations-page{max-width:none;margin:0;padding:0}.conversations-header{margin-bottom:var(--spacing-lg)}.conversations-header__content{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.conversations-header__actions{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.conversations-title{color:var(--color-text);margin:0;font-size:1.5rem;font-weight:700}.conversations-subtitle{color:var(--color-text-light);font-size:var(--font-size-sm);margin:2px 0 0}.conversations-toolbar{justify-content:space-between;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md);flex-wrap:wrap;display:flex}.conversations-filters{background:var(--color-bg-secondary);border-radius:var(--radius-md);gap:0;padding:3px;display:flex}.filter-tab{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);color:var(--color-text-light);font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:none;font-weight:500;transition:all .15s;display:flex}.filter-tab:hover{color:var(--color-text)}.filter-tab--active{background:var(--color-bg);color:var(--color-text);box-shadow:0 1px 3px #00000014}.filter-tab__count{background:var(--color-primary);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:600;display:inline-flex}.conversations-unread-pill{color:#dc2626;font-size:var(--font-size-sm);background:#ef44441a;border-radius:20px;padding:6px 12px;font-weight:600}.conversations-empty{padding:var(--spacing-3xl) var(--spacing-lg);text-align:center;background:var(--color-bg-secondary);border-radius:var(--radius-lg);flex-direction:column;justify-content:center;align-items:center;display:flex}.conversations-empty__text{margin:0 0 var(--spacing-md);font-size:var(--font-size-base);color:var(--color-text-light)}.conversations-list{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.conversation-row{align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);color:inherit;border-bottom:1px solid var(--color-border);border-left:3px solid #0000;text-decoration:none;transition:all .2s;display:flex}.conversation-row:last-child{border-bottom:none}.conversation-row:hover{background:var(--color-bg-secondary);border-left-color:var(--color-primary);border-left-width:4px;transform:translate(2px)}.conversation-row,.conversation-row:hover,.conversation-row:active,.conversation-row:focus,.conversation-row *,.conversation-row :hover{text-decoration:none!important}.conversation-row--unread{background:#6366f10a}.conversation-row--unread:hover{background:#6366f114}.conversation-row__avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.conversation-row__content{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.conversation-row__top{justify-content:space-between;align-items:baseline;gap:var(--spacing-sm);display:flex}.conversation-row__subject{font-size:var(--font-size-base);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.conversation-row--unread .conversation-row__subject{font-weight:700}.conversation-row__time{font-size:var(--font-size-xs);color:var(--color-text-lighter);white-space:nowrap;flex-shrink:0}.conversation-row--unread .conversation-row__time{color:var(--color-primary);font-weight:500}.conversation-row__middle{align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-light);display:flex}.conversation-row__separator{color:var(--color-text-lighter)}.conversation-row__bottom{justify-content:space-between;align-items:center;gap:var(--spacing-sm);display:flex}.conversation-row__preview{font-size:var(--font-size-sm);color:var(--color-text-light);white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;overflow:hidden}.conversation-row__indicators{align-items:center;gap:var(--spacing-xs);flex-shrink:0;display:flex}.conversation-row__badge{background:var(--color-primary);color:#fff;border-radius:10px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;display:flex}.conversation-row__status{text-transform:uppercase;letter-spacing:.3px;border-radius:10px;padding:3px 8px;font-size:10px;font-weight:600}.conversation-row__status--pendiente{color:#ea580c;background:#fb923c1f}.conversation-row__status--en-curso{color:#2563eb;background:#3b82f61f}.conversation-row__status--respondida{color:#15803d;background:#22c55e1f}.conversation-row__status--cerrada{color:#64748b;background:#94a3b81f}.status-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:12px;padding:4px 10px;font-size:11px;font-weight:600}.status-badge--pendiente{color:#ea580c;background:#fb923c26}.status-badge--en-curso{color:#2563eb;background:#3b82f626}.status-badge--respondida{color:#15803d;background:#22c55e26}.status-badge--cerrada{color:#64748b;background:#94a3b826}.conversation-item{justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-md);display:flex}.conversation-item__main{flex:1;min-width:0}.conversation-item__header{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);flex-wrap:wrap;display:flex}.conversation-item__title{margin:0 0 var(--spacing-xs)}.conversation-item__meta{gap:var(--spacing-sm);color:var(--color-text-light);font-size:var(--font-size-sm);flex-wrap:wrap;display:flex}.conversation-item__preview{color:var(--color-text-light);margin-top:var(--spacing-xs);margin-bottom:0}.conversation-item__time{font-size:var(--font-size-sm);color:var(--color-text-light);white-space:nowrap}.conversation-header{gap:var(--spacing-sm);margin-bottom:var(--spacing-md);flex-direction:column;display:flex}.conversation-header__meta{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.conversation-header__actions{gap:var(--spacing-sm);flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;display:flex}.conversation-header__reassign{gap:var(--spacing-xs);flex-direction:column;min-width:300px;display:flex}.conversation-header__reassign label{font-size:var(--font-size-sm);color:var(--color-text-light)}.conversation-header__actions{flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:10px;display:flex}.conversation-header-layout{grid-template-columns:minmax(0,1fr) auto auto;align-items:start;column-gap:16px;display:grid}.conversation-header-layout__main{min-width:0}.conversation-header-layout__center{justify-content:center;display:flex}.conversation-header-layout__actions{align-self:start}.conversation-management-panel{margin-top:var(--spacing-sm);margin-bottom:var(--spacing-sm);justify-content:flex-end;display:flex}.conversation-management-card{border:1px solid color-mix(in srgb, var(--color-primary) 20%, var(--color-border));border-radius:var(--radius-md);background:linear-gradient(180deg, color-mix(in srgb, var(--color-primary-soft) 72%, white) 0%, white 100%);min-width:min(100%,560px);box-shadow:var(--shadow-sm);align-items:center;gap:10px;padding:10px;display:flex}.conversation-management-card__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-light);white-space:nowrap;flex-shrink:0}.conversation-management-card .btn,.conversation-management-card .form-select{min-height:40px}.conversation-management-card .btn{font-size:var(--font-size-sm);padding:10px 14px}.conversation-management-card .form-select{padding-top:8px;padding-bottom:8px}.conversation-header__reassign-controls{gap:8px;display:flex}.conversation-header__reassign-controls--inline{flex-wrap:nowrap;flex:1;align-items:center}.conversation-header__reassign-controls .form-select{flex:1;min-width:0}.conversation-management-card__close{white-space:nowrap;width:auto}.conversation-reassign-feedback{margin-top:var(--spacing-sm)}.conversation-detail-page{max-width:800px;padding:var(--spacing-lg);flex-direction:column;min-height:calc(100vh - 120px);margin:0 auto;display:flex}.conversation-detail-header{margin-bottom:var(--spacing-lg)}.conversation-back-link{color:var(--color-primary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-md);font-weight:500;text-decoration:none;transition:color .15s;display:inline-block}.conversation-back-link:hover{color:var(--color-primary-dark)}.conversation-detail-header__info{padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.conversation-detail-title{margin:0 0 var(--spacing-sm);color:var(--color-text);font-size:1.5rem;font-weight:700}.conversation-detail-meta{align-items:center;gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.conversation-status-tag{text-transform:uppercase;letter-spacing:.3px;margin-right:var(--spacing-sm);border-radius:12px;padding:4px 10px;font-size:11px;font-weight:600}.conversation-status-tag--pendiente{color:#ea580c;background:#fb923c1f}.conversation-status-tag--en-curso{color:#2563eb;background:#3b82f61f}.conversation-status-tag--respondida{color:#15803d;background:#22c55e1f}.conversation-status-tag--cerrada{color:#64748b;background:#94a3b81f}.conversation-meta-item{font-size:var(--font-size-sm);color:var(--color-text-light)}.conversation-meta-item--grupal{color:#154f56;border-radius:var(--radius-full);font-size:var(--font-size-xs);background:#d9eff1;border:1px solid #154f5638;padding:2px 8px;font-weight:600}.conversation-meta-divider{color:var(--color-text-lighter)}.conversation-detail-participants{font-size:var(--font-size-xs);color:var(--color-text-light);margin:var(--spacing-xs) 0 0}.conversation-header__participants{font-size:var(--font-size-sm);margin:2px 0 var(--spacing-xs)}.conversation-messages{gap:var(--spacing-md);padding:var(--spacing-md) 0;flex-direction:column;flex:1;display:flex}.conversation-empty{text-align:center;padding:var(--spacing-xl);color:var(--color-text-light)}.chat-message{max-width:85%;display:flex}.chat-message--sent{margin-left:auto}.chat-message--received{margin-right:auto}.chat-message__content{padding:var(--spacing-md);border-radius:var(--radius-lg);position:relative}.chat-message--received .chat-message__content{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-bottom-left-radius:4px}.chat-message--sent .chat-message__content{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);color:#fff;border-bottom-right-radius:4px}.chat-message__header{justify-content:space-between;align-items:baseline;gap:var(--spacing-md);margin-bottom:var(--spacing-xs);display:flex}.chat-message__author{font-weight:600;font-size:var(--font-size-sm)}.chat-message--received .chat-message__author{color:var(--color-text)}.chat-message--sent .chat-message__author{color:#ffffffe6}.chat-message__time{font-size:var(--font-size-xs);white-space:nowrap}.chat-message--received .chat-message__time{color:var(--color-text-lighter)}.chat-message--sent .chat-message__time{color:#ffffffb3}.chat-message__text{font-size:var(--font-size-base);word-wrap:break-word;margin:0;line-height:1.5}.msg-link{color:inherit;word-break:break-all;text-decoration:underline}.msg-link:hover,.msg-link:visited{color:inherit;background:0 0;text-decoration:underline}.chat-message__attachments{margin-top:var(--spacing-sm);gap:var(--spacing-xs);flex-direction:column;display:flex}.chat-attachment{align-items:center;gap:var(--spacing-xs);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:inherit;background:#0000000d;padding:4px 8px;text-decoration:none;transition:background .15s;display:inline-flex}.chat-attachment:hover{background:#0000001a}.chat-message--sent .chat-attachment{color:#fff;background:#fff3}.chat-message--sent .chat-attachment:hover{background:#ffffff4d}.conversation-reply{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md);margin-top:auto}.conversation-reply__input{resize:none;width:100%;font-family:inherit;font-size:var(--font-size-base);color:var(--color-text);margin-bottom:var(--spacing-sm);background:0 0;border:none;outline:none;padding:0}.conversation-reply__input::placeholder{color:var(--color-text-lighter)}.conversation-reply__footer{justify-content:space-between;align-items:center;gap:var(--spacing-md);padding-top:var(--spacing-sm);border-top:1px solid var(--color-border);display:flex}.conversation-reply__file{cursor:pointer;color:var(--color-text-light);font-size:var(--font-size-sm);align-items:center;transition:color .15s;display:inline-flex}.conversation-reply__file:hover{color:var(--color-primary)}.conversation-reply__file input{display:none}.conversation-reply__file-text{align-items:center;gap:6px;display:inline-flex}.conversation-reply__file-text svg{flex-shrink:0}.conversation-closed-notice{text-align:center;padding:var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-md);color:var(--color-text-light);font-size:var(--font-size-sm);margin-top:auto}[data-theme=dark] .conversation-detail-header__info{border-bottom-color:var(--color-border)}[data-theme=dark] .chat-message--received .chat-message__content,[data-theme=dark] .conversation-reply{background:var(--color-background-alt);border-color:var(--color-border)}[data-theme=dark] .conversation-reply__footer{border-top-color:var(--color-border)}[data-theme=dark] .conversation-closed-notice{background:var(--color-background-alt)}.conversation-thread{gap:var(--spacing-md);margin:var(--spacing-md) 0;flex-direction:column;display:flex}.message-bubble{background:var(--color-background-warm);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md);max-width:760px;box-shadow:var(--shadow-sm)}.message-bubble--own{background:var(--color-primary-soft);border-color:#2c6b6f33;margin-left:auto}.message-bubble__header{justify-content:space-between;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-light);margin-bottom:var(--spacing-xs);display:flex}.message-bubble__attachments a{font-size:var(--font-size-sm);display:block}.message-bubble__meta{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.msg-receipt{flex-shrink:0;align-items:center;line-height:1;display:inline-flex}.msg-receipt__tick{stroke:currentColor}.msg-receipt__label{color:var(--color-text-light);white-space:normal;font-size:.78rem;display:inline-block}.msg-receipt--sent{color:#aab8c2}.msg-receipt--read{color:#4fc3f7}.msg-receipt--partial{color:#aab8c2}.msg-receipt--partial .msg-receipt__tick--second{stroke:#4fc3f7}.conversation-compose{gap:var(--spacing-sm);border-top:1px solid var(--color-border);padding-top:var(--spacing-md);flex-direction:column;display:flex}.conversation-compose__actions{gap:var(--spacing-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.conversation-admin-actions{gap:var(--spacing-md);margin-bottom:var(--spacing-md);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.conversation-composer{gap:var(--spacing-xs);border:1px solid color-mix(in srgb, var(--color-primary) 20%, var(--color-border));border-radius:calc(var(--radius-lg) + 2px);background:linear-gradient(180deg, color-mix(in srgb, var(--color-primary-soft) 45%, white) 0%, white 100%);box-shadow:var(--shadow-sm);flex-direction:column;margin-top:auto;padding:10px;display:flex}.conversation-composer__shell{align-items:center;gap:10px;display:flex}.conversation-composer__input{resize:vertical;border:1px solid color-mix(in srgb, var(--color-primary) 18%, var(--color-border));min-width:0;min-height:48px;font-family:inherit;font-size:var(--font-size-base);color:var(--color-text);background:#fff;border-radius:22px;outline:none;flex:1;padding:12px 16px;line-height:1.45;box-shadow:inset 0 1px #ffffffd9}.conversation-composer__input::placeholder{color:var(--color-text-lighter)}.conversation-composer__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary-soft) 85%, white)}.conversation-composer__input:disabled{background:color-mix(in srgb, white 72%, var(--color-background-alt));color:var(--color-text-light)}.conversation-composer__send{background:linear-gradient(135deg, var(--color-info,#5ba5a8) 0%, var(--color-primary-light) 100%);color:#fff;width:48px;min-width:48px;height:48px;min-height:48px;box-shadow:0 10px 18px color-mix(in srgb, var(--color-info,#5ba5a8) 24%, transparent);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-self:center;align-items:center;transition:transform .15s,box-shadow .15s,filter .15s;display:inline-flex}.conversation-composer__send:hover:not(:disabled){filter:saturate(1.05);box-shadow:0 12px 22px color-mix(in srgb, var(--color-info,#5ba5a8) 30%, transparent);transform:translateY(-1px)}.conversation-composer__send:disabled{background:linear-gradient(135deg, color-mix(in srgb, var(--color-border) 85%, white) 0%, var(--color-border) 100%);box-shadow:none;cursor:not-allowed}.conversation-composer__attachment{gap:var(--spacing-xs);flex-direction:column;display:flex}.conversation-composer__attachment .pn-upload-files{margin-top:0}.conversation-composer--admin{border-top:1px solid var(--color-border);padding-top:var(--spacing-md);box-shadow:none;background:0 0;border-bottom:none;border-left:none;border-right:none;border-radius:0}@media (width<=1100px){.conversation-header-layout{grid-template-columns:1fr auto;grid-template-areas:"main actions""center center";row-gap:12px}.conversation-header-layout__main{grid-area:main}.conversation-header-layout__center{grid-area:center;width:100%}.conversation-header-layout__actions{grid-area:actions}.conversation-management-card{box-sizing:border-box;width:100%;min-width:0}}@media (width<=768px){.navbar{padding:var(--spacing-sm) var(--spacing-md);padding-top:calc(var(--spacing-sm) + env(safe-area-inset-top,0px));gap:var(--spacing-sm);--navbar-content-height:56px}.navbar__logo img{height:40px}.navbar__actions{gap:var(--spacing-sm);flex-wrap:nowrap}.navbar__summary{display:none}.user-menu__dropdown{width:220px}.theme-toggle{width:32px;height:32px}.notification-bell{padding:6px}.user-menu__button{width:36px;height:36px}.user-menu__name{display:none}.sidebar{top:calc(var(--navbar-content-height,70px) + env(safe-area-inset-top,0px));box-sizing:border-box;width:auto;max-width:100%;min-height:0;box-shadow:none;max-height:0;transition:max-height var(--transition-normal), padding var(--transition-fast), border-color var(--transition-fast);background:var(--color-background-alt);border-bottom:none;border-right:none;padding:0;position:fixed;left:0;right:0;overflow:hidden}.sidebar--open{z-index:calc(var(--z-sticky) - 1);max-height:calc(100dvh - (var(--navbar-content-height,70px) + env(safe-area-inset-top,0px)));padding:var(--spacing-sm) 0;border-bottom:var(--border-width) solid var(--color-border);overflow:hidden auto}.sidebar-backdrop{-webkit-backdrop-filter:blur(1px);z-index:calc(var(--z-sticky) - 2);cursor:pointer;background:#0f172a3d;border:none;margin:0;padding:0;display:block;position:fixed;inset:0}.sidebar__menu{padding:4px var(--spacing-md) 0;box-sizing:border-box;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;display:grid}.sidebar__item{width:100%;min-width:0}.sidebar__item:last-child:nth-child(odd){grid-column:1/-1;justify-content:center;display:flex}.sidebar__item:last-child:nth-child(odd) .sidebar__link{justify-content:center;width:calc(50% - 4px)}.sidebar__link{font-size:var(--font-size-sm);opacity:0;box-sizing:border-box;background:linear-gradient(#ffffffe0 0%,#faf8f5eb 100%);border:1px solid #2c6b6f1f;border-radius:12px;width:100%;min-width:0;min-height:48px;padding:10px 12px;transform:translateY(6px);box-shadow:0 4px 12px #0f172a0f}.sidebar__link:before{display:none}.sidebar--open .sidebar__link{animation:.34s cubic-bezier(.22,1,.36,1) forwards sidebarMobileTileIn}.sidebar--open .sidebar__item:first-child .sidebar__link{animation-delay:20ms}.sidebar--open .sidebar__item:nth-child(2) .sidebar__link{animation-delay:40ms}.sidebar--open .sidebar__item:nth-child(3) .sidebar__link{animation-delay:60ms}.sidebar--open .sidebar__item:nth-child(4) .sidebar__link{animation-delay:80ms}.sidebar--open .sidebar__item:nth-child(5) .sidebar__link{animation-delay:.1s}.sidebar--open .sidebar__item:nth-child(6) .sidebar__link{animation-delay:.12s}.sidebar--open .sidebar__item:nth-child(7) .sidebar__link{animation-delay:.14s}.sidebar--open .sidebar__item:nth-child(8) .sidebar__link{animation-delay:.16s}.sidebar--open .sidebar__item:nth-child(9) .sidebar__link{animation-delay:.18s}.sidebar--open .sidebar__item:nth-child(10) .sidebar__link{animation-delay:.2s}.sidebar--open .sidebar__item:nth-child(11) .sidebar__link{animation-delay:.22s}.sidebar--open .sidebar__item:nth-child(12) .sidebar__link{animation-delay:.24s}.sidebar__link:hover,.sidebar__link:active{border-color:#2c6b6f59;transform:translateY(-1px);box-shadow:0 8px 18px #2c6b6f24}.sidebar__link--active{background:linear-gradient(#e0f1f1f2 0%,#d2eaebf2 100%);border-color:#2c6b6f73}.sidebar__icon{width:16px;height:16px}.sidebar__label{font-size:var(--font-size-sm);white-space:nowrap;text-overflow:ellipsis;line-height:1.2;overflow:hidden}[data-theme=dark] .sidebar__link,[data-theme=dark] .sidebar__link:hover,[data-theme=dark] .sidebar__link:active{color:#1e4d50}[data-theme=dark] .sidebar__link--active{color:#b14c33}.sidebar__calendar{margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md) var(--spacing-md);border-top:1px solid var(--color-border);display:block}.event-calendar{background:radial-gradient(130px 70px at 100% 0,#78aab124,#0000 75%),linear-gradient(#ffffffb8 0%,#faf8f5e6 100%);border:1px solid #ffffff8c;box-shadow:0 10px 24px #0f172a1f}.event-calendar__day{min-height:34px;font-size:12px}.event-calendar__popover{display:none}.event-calendar__sheet-backdrop{z-index:calc(var(--z-modal-backdrop) - 2);-webkit-backdrop-filter:blur(2px);background:linear-gradient(#0f172a40 0%,#0f172a73 100%);border:none;margin:0;padding:0;animation:.22s ease-out eventCalendarBackdropIn;display:block;position:fixed;inset:0}.event-calendar__sheet{z-index:calc(var(--z-modal-backdrop) - 1);-webkit-backdrop-filter:blur(18px);padding:8px 12px calc(26px + env(safe-area-inset-bottom,0px));transform-origin:bottom;will-change:transform, opacity;background:radial-gradient(180px 90px at 100% 0,#78aab12e,#0000 72%),linear-gradient(#fffffff5 0%,#f7fcfced 100%);border:1px solid #ffffff73;border-bottom:none;border-top-left-radius:20px;border-top-right-radius:20px;max-height:62vh;animation:.34s cubic-bezier(.2,.9,.2,1) eventCalendarSheetIn;display:block;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -18px 48px #0f172a47,inset 0 1px #ffffff9e}.event-calendar__sheet:before{content:"";background:linear-gradient(90deg,#0000 0%,#fffc 50%,#0000 100%);height:1px;position:absolute;top:0;left:0;right:0}.event-calendar__sheet-handle{background:linear-gradient(90deg,#143f423d,#143f426b,#143f423d);border-radius:999px;width:52px;height:5px;margin:4px auto 12px}.event-calendar__sheet .event-calendar__details-header{z-index:1;-webkit-backdrop-filter:blur(8px);border-radius:12px;margin-bottom:10px;padding:8px 10px;position:sticky;top:0}.event-calendar__sheet .event-calendar__details-title{font-size:var(--font-size-md);letter-spacing:.01em}.event-calendar__sheet .event-calendar__details-close{width:28px;height:28px;font-size:18px}.event-calendar__sheet .event-calendar__details-list{gap:8px;max-height:none;padding-bottom:8px;padding-right:0}.event-calendar__sheet .event-calendar__event-item{border-radius:12px;padding:10px 10px 10px 12px;animation:.24s ease-out both eventCalendarSheetItemIn;position:relative}.event-calendar__sheet .event-calendar__event-item:first-child{animation-delay:20ms}.event-calendar__sheet .event-calendar__event-item:nth-child(2){animation-delay:40ms}.event-calendar__sheet .event-calendar__event-item:nth-child(3){animation-delay:60ms}.event-calendar__sheet .event-calendar__event-item:nth-child(4){animation-delay:80ms}.event-calendar__sheet .event-calendar__event-item:nth-child(5){animation-delay:.1s}@media (prefers-reduced-motion:reduce){.event-calendar__sheet-backdrop,.event-calendar__sheet,.event-calendar__sheet .event-calendar__event-item{animation:none}}.event-calendar__sheet .event-calendar__event-item:before{content:"";background:linear-gradient(#2c6b6f 0%,#6da7aa 100%);border-radius:999px;width:3px;position:absolute;top:9px;bottom:9px;left:0}.event-calendar__sheet .event-calendar__event-title{font-size:var(--font-size-md);margin-bottom:3px}.event-calendar__sheet .event-calendar__event-desc{font-size:var(--font-size-sm);-webkit-line-clamp:3;line-height:1.42}@keyframes sidebarMobileTileIn{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.dashboard-header{padding:var(--spacing-md);align-items:flex-start}.breadcrumbs{padding:10px var(--spacing-md)}.breadcrumbs__inner{align-items:flex-start}.breadcrumbs__list{flex:1;min-width:0}.breadcrumbs__back-mobile{display:inline-flex}.dashboard-header .btn--back{display:none}.dashboard-title,.communications-header .dashboard-title,.family-talleres-header .dashboard-title,.dashboard-header--compact .dashboard-title{font-size:1.625rem}.family-talleres-page .dashboard-header.family-talleres-header{padding:var(--spacing-sm) var(--spacing-md)}.family-talleres-header .dashboard-subtitle{font-size:var(--font-size-xs)}.family-talleres-selector .card__body{padding:var(--spacing-sm)}.family-talleres-selector__row{gap:var(--spacing-xs);grid-template-columns:1fr}.family-talleres-selector__control-wrap{max-width:none}.family-talleres-selector__details{padding-left:0;padding-top:var(--spacing-sm);border-top:1px solid #2c6b6f1f;border-left:none}.family-talleres-content-tabs{padding:6px 8px 0;overflow-x:auto}.family-talleres-content-tab{white-space:nowrap;padding:7px 12px}.family-talleres-content-panel{padding:var(--spacing-sm)}.dashboard-content{padding:var(--spacing-md)}.section-title{font-size:var(--font-size-lg)}.filters-grid{grid-template-columns:1fr}.family-conversations-page{padding:0}.conversations-header__content{align-items:stretch;gap:var(--spacing-sm);flex-direction:column}.conversations-title{font-size:1.25rem}.conversations-toolbar{flex-direction:column;align-items:stretch}.conversations-filters{justify-content:center;width:100%}.filter-tab{padding:var(--spacing-sm);font-size:var(--font-size-xs);flex:1;justify-content:center}.conversations-unread-pill{text-align:center}.conversation-row{padding:var(--spacing-sm) var(--spacing-md);gap:var(--spacing-sm)}.conversation-row__avatar{width:36px;height:36px;font-size:14px}.conversation-row__middle{display:none}.conversation-row__status{padding:2px 6px;font-size:9px}.conversation-detail-page{padding:var(--spacing-md)}.conversation-detail-title{font-size:1.25rem}.chat-message{max-width:92%}.chat-message__header{flex-direction:column;gap:2px}.conversation-reply__footer{align-items:stretch;gap:var(--spacing-sm);flex-direction:column}.conversation-management-card{flex-direction:column;align-items:stretch;width:100%;min-width:0}.conversation-header-layout{grid-template-columns:1fr;grid-template-areas:none;row-gap:12px}.conversation-header-layout__main,.conversation-header-layout__center,.conversation-header-layout__actions{grid-area:auto;width:100%}.conversation-header__reassign-controls--inline{flex-wrap:wrap}.conversation-management-card__footer,.conversation-reply__file{justify-content:center}.conversation-item{flex-direction:column}.conversation-item__time{margin-top:var(--spacing-xs);align-self:flex-start}.conversation-compose__actions,.conversation-admin-actions{flex-direction:column;align-items:stretch}.conversation-composer__shell{align-items:center}.conversation-composer__input{border-radius:20px;min-height:108px}.conversation-composer__send{align-self:center}.conversation-header__actions{flex-direction:column;align-items:stretch;width:100%}.conversation-header__reassign{min-width:0}.conversation-header__reassign-controls{flex-direction:column}.conversation-header__reassign-controls .form-select{min-width:0}.notification-dropdown{width:100%;max-width:none;max-height:calc(100vh - 90px)}.notification-admin-summary{gap:var(--spacing-xs);padding:var(--spacing-sm);border-bottom:1px solid var(--color-border);background:var(--color-background-alt);grid-template-columns:1fr;display:grid}.notification-admin-summary__item{text-align:left;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-background);width:100%;color:var(--color-text);cursor:pointer;gap:2px;padding:8px 10px;display:grid}.notification-admin-summary__item--action{background:var(--color-background-warm);border-color:#e67e5e59}.notification-admin-summary__label{font-size:var(--font-size-xs);color:var(--color-text-light)}.notification-admin-summary__value{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.navbar__menu-toggle{display:inline-flex}.notification-dropdown-container{padding:0 var(--spacing-md);position:fixed;top:64px;left:0;right:0}}@keyframes welcomeOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes welcomeCardIn{0%{opacity:0;transform:scale(.93)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes welcomeCardOut{0%{opacity:1;transform:scale(1)translateY(0)}to{opacity:0;transform:scale(.95)translateY(8px)}}.welcome-modal__overlay{z-index:var(--z-modal-backdrop);padding:var(--spacing-md);-webkit-backdrop-filter:blur(6px);opacity:0;background:#1e373273;justify-content:center;align-items:center;transition:opacity .28s;display:flex;position:fixed;inset:0}.welcome-modal__overlay--in{opacity:1;animation:.28s forwards welcomeOverlayIn}.welcome-modal__wrapper{width:100%;max-width:400px;position:relative}.welcome-modal__card{background:var(--color-background-alt);opacity:0;border-radius:18px;width:100%;transition:opacity .28s,transform .28s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden;transform:scale(.93)translateY(12px);box-shadow:0 2px 4px #0000000a,0 8px 24px #1e4d501f,0 24px 48px #1e4d501a}.welcome-modal__card--in{opacity:1;animation:.32s cubic-bezier(.34,1.56,.64,1) forwards welcomeCardIn;transform:scale(1)translateY(0)}.welcome-modal__accent-bar{background:linear-gradient(90deg, var(--color-accent) 0%, var(--color-primary-light) 50%, var(--color-primary) 100%);height:4px}.welcome-modal__card>:not(.welcome-modal__accent-bar){padding-inline:var(--spacing-xl)}.welcome-modal__brand{padding-top:var(--spacing-lg);font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.12em;text-transform:uppercase;color:var(--color-primary-light);margin:0}.welcome-modal__title{margin:var(--spacing-xs) 0 var(--spacing-xs);font-size:1.35rem;font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-primary-dark)}.welcome-modal__subtitle{font-size:var(--font-size-sm);color:var(--color-text-light);line-height:var(--line-height-normal);margin:0}.welcome-modal__divider{align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-lg);margin-bottom:var(--spacing-sm);display:flex}.welcome-modal__divider:before,.welcome-modal__divider:after{content:"";background:var(--color-border);flex:1;height:1px}.welcome-modal__divider span{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-light);white-space:nowrap}.welcome-modal__features{padding-inline:var(--spacing-xl);gap:var(--spacing-xs);flex-direction:column;margin:0;list-style:none;display:flex}.welcome-modal__feature{align-items:center;gap:var(--spacing-md);padding:9px var(--spacing-md);border-radius:var(--radius-md);transition:background-color var(--transition-fast);border:1px solid #0000;display:flex}.welcome-modal__feature-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.welcome-modal__feature-icon--accent{background:color-mix(in srgb, var(--color-accent) 12%, transparent);color:var(--color-accent-dark)}.welcome-modal__feature-icon--info{background:color-mix(in srgb, var(--color-info) 12%, transparent);color:var(--color-info)}.welcome-modal__feature-icon--success{background:color-mix(in srgb, var(--color-success) 12%, transparent);color:var(--color-success)}.welcome-modal__feature-icon--primary{background:color-mix(in srgb, var(--color-primary) 10%, transparent);color:var(--color-primary)}.welcome-modal__feature-text{flex-direction:column;gap:1px;display:flex}.welcome-modal__feature-text strong{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);line-height:1.3}.welcome-modal__feature-text span{font-size:var(--font-size-xs);color:var(--color-text-light);line-height:1.3}.welcome-modal__cta{margin:var(--spacing-lg) var(--spacing-xl) var(--spacing-xl);width:calc(100% - var(--spacing-xl) * 2);padding:13px var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);letter-spacing:.02em;background:var(--color-accent);color:#fff;cursor:pointer;transition:background-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);border:none;display:block;box-shadow:0 2px 8px #e67e5e59}.welcome-modal__cta:hover{background:var(--color-accent-dark);transform:translateY(-1px);box-shadow:0 4px 14px #e67e5e73}.welcome-modal__cta:active{transform:translateY(0);box-shadow:0 2px 6px #e67e5e4d}.welcome-modal__close{z-index:10;border-radius:var(--radius-full);width:32px;height:32px;color:var(--color-primary);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);background:#fff;border:1.5px solid #2c6b6f47;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:-12px;right:-12px;box-shadow:0 2px 6px #0000001f}.welcome-modal__close:hover{background:var(--color-primary-soft);color:var(--color-primary-dark);transform:scale(1.1);box-shadow:0 3px 10px #2c6b6f33}@media (width<=480px){.welcome-modal__wrapper{max-width:100%}.welcome-modal__card{border-radius:14px}.welcome-modal__card>:not(.welcome-modal__accent-bar),.welcome-modal__features,.welcome-modal__cta{padding-inline:var(--spacing-lg)}.welcome-modal__cta{width:calc(100% - var(--spacing-lg) * 2);margin-inline:var(--spacing-lg)}.welcome-modal__title{font-size:1.2rem}}.container.social-page{max-width:100%}.social-page{gap:var(--spacing-md);flex-direction:column;display:flex}.social-page__meta{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.social-page__layout{display:block}.social-filter-bar{z-index:10;-webkit-backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #ffffffa6;border-radius:999px;align-items:center;gap:5px;padding:5px 8px;display:flex;position:absolute;top:12px;left:12px;box-shadow:0 2px 14px #1118271c}.social-filter-chip{cursor:pointer;color:var(--color-text-secondary);white-space:nowrap;letter-spacing:.01em;background:0 0;border:1.5px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:5px;padding:4px 11px;font-size:.73rem;font-weight:500;line-height:1;transition:background .16s,color .16s,border-color .16s,transform .1s;display:inline-flex}.social-filter-chip:active{transform:scale(.94)}.social-filter-chip__dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;transition:transform .16s}.social-filter-chip.is-active .social-filter-chip__dot{transform:scale(1.2);background:#ffffffbf!important}.social-filter-chip--family .social-filter-chip__dot{background:var(--color-success)}.social-filter-chip--child .social-filter-chip__dot{background:var(--color-warning)}.social-filter-chip--staff .social-filter-chip__dot{background:var(--color-secondary-dark)}.social-filter-chip--family:not(.is-active){border-color:var(--color-success);color:var(--color-success)}.social-filter-chip--child:not(.is-active){border-color:var(--color-warning);color:var(--color-warning)}.social-filter-chip--staff:not(.is-active){border-color:var(--color-secondary-dark);color:var(--color-secondary-dark)}.social-filter-chip--family.is-active{background:var(--color-success);border-color:var(--color-success);color:#fff}.social-filter-chip--child.is-active{background:var(--color-warning);border-color:var(--color-warning);color:#fff}.social-filter-chip--staff.is-active{background:var(--color-secondary-dark);border-color:var(--color-secondary-dark);color:#fff}.social-filter-chip--family:hover,.social-filter-chip--child:hover,.social-filter-chip--staff:hover{filter:brightness(.9)}.social-filter-chip--reset{border:1.5px solid var(--color-border);width:26px;height:26px;color:var(--color-text-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1rem;display:flex}.social-filter-chip--reset:hover{border-color:var(--color-primary);color:var(--color-primary);filter:none}@media (width<=480px){.social-filter-bar{gap:4px;padding:4px 6px;top:8px;left:8px}.social-filter-chip{padding:3px 8px;font-size:.68rem}}.social-filters-card{box-shadow:0 5px 14px #1118271c}.social-filters-mobile-toggle{z-index:5;border-color:color-mix(in srgb, var(--color-border) 84%, transparent);background:color-mix(in srgb, var(--color-background-alt) 90%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:none;position:absolute;top:10px;left:10px;box-shadow:0 6px 16px #1118271f}.social-filters-mobile-toggle.is-open{background:color-mix(in srgb, var(--color-primary-light) 18%, var(--color-background-alt))}.social-filters-card--overlay{z-index:4;background:color-mix(in srgb, var(--color-background-alt) 94%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:min(188px,100% - 20px);display:none;position:absolute;top:50px;left:10px}.social-filters-card--overlay.is-open{display:block}.social-filters-card--overlay .card__header{padding:3px 6px 2px}.social-filters-card--overlay .card__title{text-transform:uppercase;letter-spacing:.8px;margin:0;font-size:.48rem;line-height:1}.social-filters-card--overlay .btn{min-height:20px;padding:0 6px;font-size:.62rem}.social-filters-card__body{flex-direction:column;gap:2px;padding:3px 1px 4px;display:flex}.social-filters__group{flex-direction:column;gap:1px;display:flex}.social-filters__actions{margin-top:4px}.social-filters__option{transition:opacity var(--transition-fast);justify-content:space-between;align-items:center;gap:4px;padding:1px 0;font-size:.73rem;display:flex}.social-filters__option.is-muted{opacity:.58}.social-filters__label{align-items:center;gap:3px;min-width:0;display:inline-flex}.social-filter-dot{border-radius:999px;width:6px;height:6px;display:inline-block}.social-filter-dot--family{background:var(--color-success)}.social-filter-dot--child{background:var(--color-warning)}.social-filter-dot--staff{background:var(--color-secondary-dark)}.social-map-card{width:100%}.social-map-card__body{gap:var(--spacing-sm);flex-direction:column;display:flex}.social-map-card__toolbar{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.social-map-card__toolbar .form-input{flex:1;min-width:200px}.social-map-card__toolbar .btn{align-items:center;gap:6px;display:inline-flex}.social-hidden-dropdown{position:relative}.social-hidden-dropdown__menu{width:min(360px,82vw);padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-background);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);position:absolute;top:calc(100% + 8px);right:0}.social-hidden-dropdown__header,.social-hidden-dropdown__actions,.social-hidden-dropdown__footer{justify-content:space-between;align-items:center;gap:var(--spacing-xs);display:flex}.social-hidden-dropdown__header{margin-bottom:var(--spacing-sm)}.social-hidden-dropdown__header strong{color:var(--color-text);font-size:var(--font-size-sm)}.social-hidden-dropdown__header span{color:var(--color-text-light);font-size:var(--font-size-xs)}.social-hidden-dropdown__actions{margin-bottom:var(--spacing-sm)}.social-hidden-dropdown__list{max-height:260px;margin-bottom:var(--spacing-sm);flex-direction:column;gap:6px;display:flex;overflow-y:auto}.social-hidden-dropdown__item{border-radius:var(--radius-md);background:var(--color-background-alt);cursor:pointer;grid-template-columns:auto minmax(0,1fr);align-items:flex-start;gap:10px;padding:8px 10px;display:grid}.social-hidden-dropdown__item:hover{background:var(--color-primary-soft)}.social-hidden-dropdown__item input{margin-top:2px}.social-hidden-dropdown__item-text{flex-direction:column;gap:2px;min-width:0;display:flex}.social-hidden-dropdown__item-text span{color:var(--color-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.social-hidden-dropdown__item-text small{color:var(--color-text-light);font-size:var(--font-size-xs)}.social-hidden-dropdown__footer{padding-top:var(--spacing-sm);border-top:1px solid var(--color-border)}.social-fullscreen-btn{white-space:nowrap}.social-fullscreen-icon{flex-shrink:0}.social-map-card__canvas{border:1px solid var(--color-border);border-radius:var(--radius-md);background:linear-gradient(180deg, color-mix(in srgb, var(--color-primary-light) 12%, transparent), color-mix(in srgb, var(--color-background-alt) 95%, transparent));position:relative;overflow:hidden}:-webkit-any(.social-map-card.is-fullscreen,.social-map-card:fullscreen,.social-map-card:-webkit-full-screen){border:none;border-radius:0;width:100%;max-width:none;height:100%;margin:0}:is(.social-map-card.is-fullscreen,.social-map-card:fullscreen,.social-map-card:fullscreen){border:none;border-radius:0;width:100%;max-width:none;height:100%;margin:0}:-webkit-any(.social-map-card.is-fullscreen .social-map-card__body,.social-map-card:fullscreen .social-map-card__body,.social-map-card:-webkit-full-screen .social-map-card__body){height:100%;padding:12px}:is(.social-map-card.is-fullscreen .social-map-card__body,.social-map-card:fullscreen .social-map-card__body,.social-map-card:fullscreen .social-map-card__body){height:100%;padding:12px}:-webkit-any(.social-map-card.is-fullscreen .social-map-card__canvas,.social-map-card:fullscreen .social-map-card__canvas,.social-map-card:-webkit-full-screen .social-map-card__canvas){flex:1;min-height:0}:is(.social-map-card.is-fullscreen .social-map-card__canvas,.social-map-card:fullscreen .social-map-card__canvas,.social-map-card:fullscreen .social-map-card__canvas){flex:1;min-height:0}.social-map-card__loading{justify-content:center;align-items:center;gap:var(--spacing-sm);flex-direction:column;min-height:620px;display:flex}.social-node-sidebar{z-index:3;width:min(300px,100% - 28px);max-height:calc(100% - 28px);position:absolute;top:14px;right:14px}.social-node-sidebar__card{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:color-mix(in srgb, var(--color-background-alt) 92%, transparent);max-height:100%;overflow:auto}.social-node-sidebar__header{justify-content:space-between;align-items:center;gap:var(--spacing-sm);padding:8px 10px 6px;display:flex}.social-node-sidebar__card .card__body{padding:8px 10px 10px;position:relative}.social-node-sidebar__header .card__title{font-size:.95rem}.social-node-sidebar__close-btn{min-height:24px;padding:0 8px;font-size:.74rem;position:absolute;top:8px;right:10px}.social-selected{flex-direction:column;gap:8px;padding-top:2px;display:flex}.social-page__profile-grid{gap:var(--spacing-md);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.social-page__profile-single{width:100%}.social-profile-editor__body-grid{gap:var(--spacing-xl);margin-bottom:var(--spacing-md);grid-template-columns:220px 1fr;align-items:start;display:grid}.social-profile-editor__col-left{gap:var(--spacing-md);flex-direction:column;display:flex}.social-profile-editor__col-right{flex-direction:column;display:flex}@media (width<=600px){.social-profile-editor__body-grid{grid-template-columns:1fr}}.social-side-panel__card .card__body{gap:var(--spacing-sm);flex-direction:column;display:flex}.social-selected__identity{align-items:flex-start;gap:10px;padding-right:78px;display:flex}.social-selected__admin-actions{border-top:1px solid var(--color-border);justify-content:flex-end;padding-top:8px;display:flex}.social-selected__identity-content{flex-direction:column;gap:4px;min-width:0;display:flex}.social-selected__identity h4{margin:0;font-size:.98rem;line-height:1.2}.social-selected__meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.social-selected__identity p{color:var(--color-text-light);margin:0;font-size:.82rem;line-height:1.25}.social-selected__contact{border-top:1px solid var(--color-border);flex-direction:column;gap:5px;padding-top:8px;display:flex}.social-selected__contact-row{grid-template-columns:minmax(92px,104px) minmax(0,1fr);align-items:start;gap:10px;font-size:.8rem;line-height:1.35;display:grid}.social-selected__contact-row strong{color:var(--color-text-light);padding-top:1px;font-size:.75rem;font-weight:600}.social-selected__contact-value{min-width:0}.social-selected__contact-value span,.social-selected__contact-value a{overflow-wrap:anywhere;word-break:break-word;display:block}.social-selected__contact-value a{color:var(--color-primary-dark);text-decoration:none}.social-selected__contact-value a:hover{text-decoration:underline}.social-selected__related{border-top:1px solid var(--color-border);padding-top:8px}.social-selected__related strong{font-size:.84rem}.social-selected__related ul{max-height:148px;margin:6px 0 0;padding-left:16px;overflow:auto}.social-selected__related li+li{margin-top:4px}.social-file-input{display:none}.social-profile-editor .card__body{gap:var(--spacing-md)}.social-profile-editor__avatar-section{align-items:center;gap:var(--spacing-xs);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border);flex-direction:column;display:flex}.social-profile-editor__avatar-wrap{display:inline-flex;position:relative}.social-profile-editor__avatar-btn{background:var(--color-primary);color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;transition:background .15s;display:flex;position:absolute;bottom:0;right:0;box-shadow:0 1px 4px #00000040}.social-profile-editor__avatar-btn:hover{background:var(--color-primary-dark)}.social-profile-editor__avatar-name{font-size:var(--font-size-sm);color:var(--color-text);font-weight:600}.social-profile-editor__toggle-row{justify-content:space-between;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary);display:flex}.social-profile-editor__toggle-text{flex-direction:column;gap:2px;min-width:0;display:flex}.social-profile-editor__toggle-label{font-size:var(--font-size-sm);color:var(--color-text);font-weight:600}.social-profile-editor__toggle-hint{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.social-profile-editor__section{gap:var(--spacing-sm);flex-direction:column;display:flex}.social-profile-editor__section-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-light);margin:0;font-weight:700}.social-profile-editor__fields{gap:var(--spacing-sm);flex-direction:column;display:flex}.social-profile-editor__field{flex-direction:column;gap:5px;display:flex}.social-profile-editor__field-header{justify-content:space-between;align-items:center;gap:var(--spacing-sm);display:flex}.social-profile-editor__field-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:500}.social-profile-editor__vis-toggle{cursor:pointer;flex-shrink:0;align-items:center;gap:5px;display:inline-flex}.social-profile-editor__vis-toggle input{display:none}.social-profile-editor__vis-track{background:var(--color-border);border-radius:8px;flex-shrink:0;width:28px;height:16px;transition:background .2s;position:relative}.social-profile-editor__vis-track:after{content:"";background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.social-profile-editor__vis-toggle input:checked+.social-profile-editor__vis-track{background:var(--color-primary)}.social-profile-editor__vis-toggle input:checked+.social-profile-editor__vis-track:after{transform:translate(12px)}.social-profile-editor__vis-label{font-size:var(--font-size-xs);color:var(--color-text-light)}.social-toggle{cursor:pointer;flex-shrink:0;align-items:center;display:inline-flex}.social-toggle input{display:none}.social-toggle__track{background:var(--color-border);border-radius:11px;width:40px;height:22px;transition:background .2s;position:relative}.social-toggle__track:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #00000040}.social-toggle input:checked+.social-toggle__track{background:var(--color-primary)}.social-toggle input:checked+.social-toggle__track:after{transform:translate(18px)}.social-profile-editor__save{width:100%}.social-children{gap:var(--spacing-sm);flex-direction:column;display:flex}.social-children__item{align-items:center;gap:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-sm);background:var(--color-background-alt);grid-template-columns:auto 1fr auto;display:grid}.social-children__meta{flex-direction:column;display:flex}.social-children__meta strong{font-size:var(--font-size-sm)}.social-children__meta span{color:var(--color-text-light);font-size:var(--font-size-xs)}.link-btn{color:var(--color-primary-dark);font:inherit;cursor:pointer;background:0 0;border:none;padding:0}.link-btn:hover{text-decoration:underline}@media (width<=1120px){.social-filters-card--overlay{width:auto;margin:var(--spacing-sm) var(--spacing-sm) 0;position:static}.social-page__profile-grid{grid-template-columns:1fr}.social-node-sidebar{width:100%;max-height:none;margin-top:var(--spacing-sm);position:static}.social-node-sidebar__card{max-height:none}}@media (width<=768px){.social-map-card__toolbar .social-fullscreen-btn{display:none}.social-node-sidebar{z-index:6;width:auto;max-height:min(48%,340px);margin:0;position:absolute;inset:auto 10px 10px}.social-node-sidebar__card{border:1px solid color-mix(in srgb, var(--color-border) 84%, transparent);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-background-alt) 94%, transparent);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);max-height:100%;overflow:auto;box-shadow:0 12px 28px #1118272e}.social-node-sidebar__header{padding:8px 10px 6px}.social-node-sidebar__header .card__title{font-size:.84rem;line-height:1.2}.social-node-sidebar__header .btn{min-height:26px;padding:0 8px;font-size:.74rem}.social-node-sidebar__close-btn{min-height:24px;top:6px;right:8px}.social-node-sidebar__card .card__body{padding:8px 10px 10px}.social-selected__identity h4{font-size:.9rem}.social-selected__identity{padding-right:72px}.social-selected__contact-row{grid-template-columns:84px 1fr;font-size:.79rem}.social-selected__related ul{max-height:96px}.social-filters-card--overlay{border-color:color-mix(in srgb, var(--color-border) 82%, transparent);width:min(228px,100% - 20px);box-shadow:0 12px 28px #11182729}}.tabs{margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border);background:var(--color-background);padding-bottom:0;padding:var(--spacing-md) var(--spacing-lg) 0;margin:0 calc(-1 * var(--spacing-lg));gap:8px;display:flex}.tab{padding:var(--spacing-sm) var(--spacing-lg);color:var(--color-text-light);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;transition:all .2s;display:flex}.tab:hover{color:var(--color-primary);background:var(--color-primary-soft)}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.category-manager,.tab-content{padding:var(--spacing-xl) var(--spacing-lg);animation:.3s fadeIn}.manager-header{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:center;display:flex}.manager-header h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--spacing-xs) 0}.categories-list{gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.category-card{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md);align-items:center;gap:var(--spacing-md);grid-template-columns:minmax(0,1fr) auto;transition:all .2s;display:grid;box-shadow:0 2px 8px #0f172a0a}.category-card:hover{border-color:var(--color-primary);transform:translateY(-2px);box-shadow:0 10px 20px #2c6b6f1f}.category-info h3{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 4px}.category-info{min-width:0}.category-meta{font-size:var(--font-size-xs);color:var(--color-text-light);letter-spacing:.02em;text-transform:uppercase;margin:0}.role-badge{background:var(--color-primary-soft);color:var(--color-primary);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border:1px solid var(--color-primary);padding:4px 10px;display:inline-block}.category-actions{gap:var(--spacing-xs);justify-content:flex-end;padding:0;display:flex}.btn-edit,.btn-delete,.btn-edit-small,.btn-delete-small{border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;border:1px solid #0000;padding:8px 16px;transition:all .2s}.btn-edit,.btn-edit-small{background:var(--color-background-alt);color:var(--color-text);border-color:var(--color-border)}.btn-edit:hover,.btn-edit-small:hover{background:var(--color-primary-soft);color:var(--color-primary);border-color:var(--color-primary)}.btn-delete,.btn-delete-small{color:#dc2626;background:#fee2e2;border-color:#fecaca}.btn-delete:hover,.btn-delete-small:hover{color:#fff;background:#dc2626;border-color:#dc2626}.btn-edit-small,.btn-delete-small{font-size:var(--font-size-xs);padding:6px 9px}.album-manager-placeholder{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-light)}.category-subtitle{font-size:var(--font-size-sm);color:var(--color-text-light);font-weight:var(--font-weight-normal)}.albums-grid{gap:var(--spacing-md);margin-top:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(230px,1fr));display:grid}.album-card{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s;overflow:hidden;box-shadow:0 1px 3px #0000000d}.album-card:hover{border-color:var(--color-primary);transform:translateY(-4px);box-shadow:0 8px 20px #2c6b6f1f}.album-thumbnail{background:var(--color-background-alt);justify-content:center;align-items:center;width:100%;height:146px;display:flex;position:relative;overflow:hidden}.album-thumbnail img{object-fit:cover;width:100%;height:100%}.album-placeholder{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);opacity:.4;color:var(--color-text-light)}.album-info{padding:10px 12px}.album-info h3{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 4px;line-height:1.3}.album-description{font-size:var(--font-size-xs);color:var(--color-text-light);-webkit-line-clamp:1;-webkit-box-orient:vertical;margin:2px 0;display:-webkit-box;overflow:hidden}.album-date{font-size:var(--font-size-xs);color:var(--color-text-light);margin-top:6px;display:block}.album-actions{padding:0 var(--spacing-md) var(--spacing-md);gap:var(--spacing-sm);justify-content:flex-end;display:flex}.album-manager .albums-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.album-manager .album-thumbnail{height:128px}.album-manager .album-info{padding:8px 10px}.album-manager .album-info h3{font-size:var(--font-size-sm);margin-bottom:2px}.album-manager .album-description{-webkit-line-clamp:1;margin:0}.album-manager .album-date{margin-top:4px;font-size:11px}.album-manager .album-actions{gap:6px;padding:0 10px 10px}.album-manager .btn-edit-small,.album-manager .btn-delete-small{padding:5px 8px;font-size:11px}.category-manager .categories-list{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.category-manager .category-card{gap:10px;padding:10px}.media-uploader-placeholder{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-light);background:var(--color-background-alt);border-radius:var(--radius-lg);border:2px dashed var(--color-border)}.uploader-header h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 4px}.uploader-subtitle{font-size:var(--font-size-sm);color:var(--color-text-light);margin-bottom:var(--spacing-lg)}.uploader-hint{font-size:var(--font-size-sm);color:var(--color-primary);background:var(--color-primary-soft);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);margin-top:var(--spacing-sm);border-left:3px solid var(--color-primary)}.gallery-notification-banner{justify-content:space-between;align-items:center;gap:var(--spacing-lg);margin:var(--spacing-lg) 0;padding:var(--spacing-lg);border-radius:var(--radius-lg);border:1px solid color-mix(in srgb, var(--color-primary) 28%, var(--color-border));background:linear-gradient(135deg, color-mix(in srgb, var(--color-primary-soft) 80%, white) 0%, var(--color-background-alt) 100%);display:flex}.gallery-notification-banner.is-sending{border-color:color-mix(in srgb, var(--color-primary) 45%, var(--color-border));background:linear-gradient(135deg, color-mix(in srgb, var(--color-primary-soft) 92%, white) 0%, var(--color-background-alt) 100%)}.gallery-notification-banner__body{flex-direction:column;gap:6px;display:flex}.gallery-notification-banner__body strong{color:var(--color-text);font-size:var(--font-size-md)}.gallery-notification-banner__body p{color:var(--color-text-light);font-size:var(--font-size-sm);margin:0}.drop-zone{border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-3xl);text-align:center;cursor:pointer;background:var(--color-background-alt);margin:var(--spacing-lg) 0;transition:all .2s}.drop-zone:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.drop-zone.drag-active{border-color:var(--color-primary);background:var(--color-primary-soft);border-style:solid}.drop-zone-content{pointer-events:none}.drop-zone-icon{margin-bottom:var(--spacing-md);opacity:.4;font-size:64px;font-weight:var(--font-weight-bold);display:block}.drop-zone p{font-size:var(--font-size-md);color:var(--color-text);margin:0 0 var(--spacing-xs) 0;font-weight:var(--font-weight-medium)}.drop-zone small{font-size:var(--font-size-sm);color:var(--color-text-light)}.url-input-section{margin-top:var(--spacing-lg);padding:var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:linear-gradient(180deg, var(--color-background) 0%, var(--color-background-alt) 100%);box-shadow:0 10px 24px #0f172a0a}.url-input-header{margin-bottom:var(--spacing-md)}.url-input-header h4{margin:0 0 var(--spacing-xs) 0;color:var(--color-text);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.url-help-text{color:var(--color-text-light);font-size:var(--font-size-sm);margin:0;line-height:1.45}.url-provider-chips{gap:var(--spacing-xs);margin-bottom:var(--spacing-md);flex-wrap:wrap;display:flex}.url-provider-chip{border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-background);color:var(--color-text);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);align-items:center;padding:4px 10px;display:inline-flex}.url-input-label{margin-bottom:var(--spacing-xs);color:var(--color-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);display:block}.url-input-group{gap:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-background);grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:6px;transition:border-color .2s,box-shadow .2s;display:grid}.url-input-group:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.url-input-group.url-input-field--pending{border-color:color-mix(in srgb, var(--color-primary) 45%, var(--color-border))}.url-input-group.url-input-field--valid{border-color:#10b981;box-shadow:0 0 0 2px #10b98126}.url-input{width:100%;color:var(--color-text);font-size:var(--font-size-sm);background:0 0;border:none;padding:10px 12px;font-family:inherit}.url-input:focus{outline:none}.url-input::placeholder{color:var(--color-text-light)}.url-add-button{white-space:nowrap;min-width:140px}.url-add-button:disabled{cursor:not-allowed;opacity:.6}.url-input-footnote{margin:var(--spacing-sm) 0 0;color:var(--color-text-light);font-size:var(--font-size-xs)}.external-videos-list{margin-top:var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);padding:var(--spacing-md)}.external-videos-list__title{margin:0 0 var(--spacing-sm);color:var(--color-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.selected-files{margin-top:var(--spacing-xl)}.selected-files-header{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:center;display:flex}.selected-files-header h4{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.btn-clear{color:var(--color-text-light);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);cursor:pointer;background:0 0;padding:6px 12px;transition:all .2s}.btn-clear:hover:not(:disabled){color:#dc2626;background:#fee2e2;border-color:#fecaca}.btn-clear:disabled{opacity:.5;cursor:not-allowed}.files-list{gap:var(--spacing-sm);max-height:300px;padding:var(--spacing-sm);background:var(--color-background-alt);border-radius:var(--radius-md);flex-direction:column;display:flex;overflow-y:auto}.file-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all .2s;display:flex}.file-item:hover{border-color:var(--color-primary)}.file-icon{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);background:var(--color-primary-soft);color:var(--color-primary);border-radius:var(--radius-sm);text-align:center;flex-shrink:0;min-width:40px;padding:4px 8px}.file-icon--provider{letter-spacing:.04em;min-width:46px}.file-icon--youtube{color:#b91c1c;background:#fee2e2;border:1px solid #fecaca}.file-icon--vimeo{color:#1d4ed8;background:#dbeafe;border:1px solid #bfdbfe}.file-info{flex:1;min-width:0}.file-name{font-size:var(--font-size-sm);color:var(--color-text);font-weight:var(--font-weight-medium);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.file-size{font-size:var(--font-size-xs);color:var(--color-text-light)}.external-video-url{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.btn-remove{border-radius:var(--radius-full);width:24px;height:24px;color:var(--color-text-light);border:1px solid var(--color-border);cursor:pointer;background:0 0;flex-shrink:0;font-size:18px;line-height:1;transition:all .2s}.btn-remove:hover:not(:disabled){color:#fff;background:#dc2626;border-color:#dc2626}.btn-remove:disabled{opacity:.5;cursor:not-allowed}.upload-actions{margin-top:var(--spacing-lg)}.upload-progress{margin-bottom:var(--spacing-md)}.upload-progress p{font-size:var(--font-size-sm);color:var(--color-text);margin:0 0 var(--spacing-sm) 0;font-weight:var(--font-weight-medium)}.progress-bar{background:var(--color-background-alt);border-radius:var(--radius-full);width:100%;height:8px;margin-bottom:var(--spacing-xs);overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--color-primary), var(--color-accent));border-radius:var(--radius-full);height:100%;transition:width .3s}.upload-progress small{font-size:var(--font-size-xs);color:var(--color-text-light)}.btn-upload{width:100%;font-size:var(--font-size-md);padding:14px 24px}.media-grid-container{animation:.3s fadeIn}.media-grid-placeholder{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-light);background:var(--color-background-alt);border-radius:var(--radius-lg);border:2px dashed var(--color-border)}.media-grid-header{margin-bottom:var(--spacing-md)}.media-grid-header h3{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 4px}.media-count{color:var(--color-text-light);font-size:12px}.media-grid{gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.media-card{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all .2s;overflow:hidden;box-shadow:0 1px 3px #0000000d}.media-card:hover{border-color:var(--color-primary);transform:translateY(-2px);box-shadow:0 4px 12px #2c6b6f1a}.media-preview{background:var(--color-background-alt);cursor:pointer;justify-content:center;align-items:center;width:100%;height:120px;display:flex;position:relative;overflow:hidden}.media-preview img,.media-preview video{object-fit:cover;width:100%;height:100%}.video-preview{width:100%;height:100%;position:relative}.video-preview video{filter:brightness(.8)}.play-icon{opacity:.9;color:#fff;border-radius:var(--radius-full);background:#0009;justify-content:center;align-items:center;width:50px;height:50px;font-size:32px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pdf-preview{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.pdf-icon{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-xs)}.media-info{padding:8px}.media-filename{color:var(--color-text);font-size:12px;font-weight:var(--font-weight-medium);white-space:nowrap;text-overflow:ellipsis;margin:0 0 2px;overflow:hidden}.media-size,.media-date{color:var(--color-text-light);font-size:10px;line-height:1.3;display:block}.media-actions{justify-content:flex-end;gap:4px;padding:0 8px 8px;display:flex}.btn-view,.btn-download{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-background-alt);cursor:pointer;color:var(--color-text);align-items:center;gap:4px;padding:5px 8px;font-size:11px;text-decoration:none;transition:all .2s;display:inline-flex}.btn-view:hover,.btn-download:hover{background:var(--color-primary-soft);color:var(--color-primary);border-color:var(--color-primary)}.breadcrumb{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-background-alt);border-radius:var(--radius-md);font-size:var(--font-size-sm);display:flex}.breadcrumb-link{color:var(--color-primary);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);background:0 0;border:none;padding:0;transition:all .2s}.breadcrumb-link:hover{color:var(--color-accent);text-decoration:underline}.breadcrumb-separator{color:var(--color-text-light);-webkit-user-select:none;user-select:none}.breadcrumb-current{color:var(--color-text);font-weight:var(--font-weight-medium)}.media-workspace{gap:var(--spacing-xl);grid-template-columns:1fr 1fr;display:grid}.media-uploader-section,.media-grid-section{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.category-selector{animation:.3s fadeIn}.category-selector h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-lg)}.categories-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(250px,1fr));display:grid}.category-selector-card{background:var(--color-background);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-xl);cursor:pointer;text-align:center;transition:all .2s}.category-selector-card:hover{border-color:var(--color-primary);background:var(--color-primary-soft);transform:translateY(-4px);box-shadow:0 8px 20px #2c6b6f1f}.category-selector-card h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--spacing-xs) 0}.category-selector-thumb{border-radius:var(--radius-md);background:var(--color-background-alt);border:1px solid var(--color-border);width:100%;height:140px;margin-bottom:var(--spacing-md);justify-content:center;align-items:center;display:flex;overflow:hidden}.category-selector-thumb img{object-fit:cover;width:100%;height:100%}.category-manager .modal-overlay .modal-content,.album-manager .modal-overlay .modal-content{padding:var(--spacing-md);max-width:700px}.category-manager .modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a80}.category-modal{border:1px solid color-mix(in srgb, var(--color-primary) 14%, var(--color-border));max-width:760px;max-height:88vh;overflow-y:auto;box-shadow:0 24px 48px #0f172a33}.category-modal .modal-header{border-bottom:1px solid var(--color-border);background:linear-gradient(180deg, color-mix(in srgb, var(--color-primary) 8%, var(--color-background)) 0%, var(--color-background) 100%);padding:10px 14px}.category-modal .modal-header h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.category-modal .modal-close{border-radius:var(--radius-full);background:var(--color-background);border:1px solid var(--color-border);width:34px;height:34px}.category-form,.album-form{flex-direction:column;gap:8px;margin-top:6px;display:flex}.category-modal .category-form{margin-top:4px}.form-group{flex-direction:column;gap:4px;display:flex}.form-group label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.form-group input,.form-group textarea{border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);background:var(--color-background);padding:9px 11px;font-family:inherit;transition:all .2s}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft);outline:none}.form-group input:disabled{background:var(--color-background-alt);cursor:not-allowed;opacity:.6}.cover-input{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background-alt);flex-direction:column;gap:4px;padding:8px;display:flex}.cover-preview{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-background-alt);justify-content:center;align-items:center;width:100%;height:110px;display:flex;overflow:hidden}.cover-preview img{object-fit:cover;width:100%;height:100%}.cover-placeholder{font-size:var(--font-size-sm);color:var(--color-text-light)}.form-group small{font-size:var(--font-size-xs);color:var(--color-text-light)}.form-helper-text{color:var(--color-text-light);margin-bottom:4px;line-height:1.3;display:block}.form-helper-text--error{color:var(--color-error);margin-top:var(--spacing-xs);margin-bottom:0}.roles-selection{flex-direction:column;gap:6px;display:flex}.roles-presets{background:color-mix(in srgb, var(--color-primary) 5%, var(--color-background));border-radius:var(--radius-md);border:1px solid color-mix(in srgb, var(--color-primary) 20%, var(--color-border));padding:6px 8px}.preset-buttons{flex-wrap:wrap;gap:6px;display:flex}.btn-preset{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text);cursor:pointer;padding:5px 9px;transition:all .2s}.btn-preset:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary);transform:translateY(-1px)}.roles-grid{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.role-checkbox{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;align-items:flex-start;gap:6px;padding:8px 9px;transition:all .2s;display:flex}.role-checkbox:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.role-checkbox--selected{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 10%, var(--color-background))}.role-checkbox input[type=checkbox]{cursor:pointer;flex-shrink:0;margin-top:2px}.role-info{flex-direction:column;flex:1;gap:1px;display:flex}.role-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.role-description{font-size:var(--font-size-xs);color:var(--color-text-light);line-height:1.3}.form-actions{border-top:1px solid var(--color-border);justify-content:flex-end;gap:8px;margin-top:2px;padding-top:6px;display:flex}.media-viewer-overlay,.media-viewer-fullscreen{z-index:9999;background:0 0;justify-content:center;align-items:center;animation:.25s forwards fadeInViewer;display:flex;position:fixed;inset:0}@keyframes fadeInViewer{to{background:#000000f2}}.media-viewer-content{background:var(--color-background);border-radius:var(--radius-md);flex-direction:column;max-width:90vw;max-height:90vh;display:flex;overflow:hidden}.media-viewer-fullscreen{opacity:0;flex-direction:column;width:95%;max-width:1400px;padding:0;animation:.3s .1s forwards fadeInContent;position:relative}@keyframes fadeInContent{to{opacity:1}}.viewer-close{top:var(--spacing-lg);right:var(--spacing-lg);color:#fff;cursor:pointer;border-radius:var(--radius-sm);opacity:.7;z-index:100;background:#00000080;border:none;justify-content:center;align-items:center;width:40px;height:40px;font-size:32px;line-height:1;transition:all .3s;display:flex;position:absolute}.viewer-close:hover{opacity:1;background:#000c;transform:scale(1.1)}.viewer-main{min-height:60vh;padding:var(--spacing-lg);background:#000;flex:1;justify-content:center;align-items:center;display:flex;position:relative}.viewer-content{opacity:0;justify-content:center;align-items:center;max-width:100%;max-height:100%;animation:.4s .2s forwards fadeInMedia;display:flex}@keyframes fadeInMedia{to{opacity:1}}.viewer-content img,.viewer-content video,.viewer-content iframe{object-fit:contain;max-width:100%;max-height:calc(85vh - 200px)}.viewer-content iframe{aspect-ratio:16/9;background:#000;border:none;width:90%;max-width:1200px}.viewer-nav{color:#fff;border-radius:var(--radius-sm);cursor:pointer;opacity:.6;background:#ffffff26;border:none;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;transition:all .3s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.viewer-nav:hover{opacity:1;background:#ffffff40;transform:translateY(-50%)scale(1.05)}.viewer-prev{left:var(--spacing-lg)}.viewer-next{right:var(--spacing-lg)}.viewer-footer{padding:var(--spacing-md) var(--spacing-lg);background:#000000b3;border-top:1px solid #ffffff0d;justify-content:space-between;align-items:center;display:flex}.viewer-info{flex:1}.viewer-counter{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:#fffc;margin:0}.viewer-actions{gap:var(--spacing-sm);display:flex}.viewer-actions .btn-download{background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:none;align-items:center;gap:6px;padding:8px 16px;text-decoration:none;transition:all .3s;display:inline-flex}.viewer-actions .btn-download:hover{background:var(--color-accent);transform:translateY(-1px)}.viewer-thumbnails{gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);scrollbar-width:thin;scrollbar-color:#ffffff4d transparent;background:#0006;max-width:100%;display:flex;overflow:auto hidden}.viewer-thumbnails::-webkit-scrollbar{height:4px}.viewer-thumbnails::-webkit-scrollbar-track{background:0 0}.viewer-thumbnails::-webkit-scrollbar-thumb{border-radius:var(--radius-sm);background:#ffffff4d}.thumbnail{border-radius:var(--radius-sm);cursor:pointer;opacity:.6;background:#00000080;border:2px solid #0000;flex-shrink:0;justify-content:center;align-items:center;width:70px;height:70px;transition:all .3s;display:flex;overflow:hidden}.thumbnail img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.thumbnail span{font-size:14px;font-weight:var(--font-weight-medium);color:#ffffffb3}.thumbnail:hover{opacity:.9;border-color:#ffffff80;transform:scale(1.05)}.thumbnail:hover img{transform:scale(1.1)}.thumbnail.active{opacity:1;border-color:#fff;transform:scale(1.05)}.gallery-content{padding:var(--spacing-xl) var(--spacing-lg);animation:.3s fadeIn}.category-grid-viewer{animation:.3s fadeIn}.category-card-viewer{background:var(--color-background);border:2px solid var(--color-border);border-radius:var(--radius-lg);text-align:center;cursor:pointer;transition:all .3s;position:relative;overflow:hidden}.category-card-viewer:before{content:"";background:linear-gradient(90deg, var(--color-primary), var(--color-accent));height:4px;transition:transform .3s;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.category-card-viewer:hover:before{transform:scaleX(1)}.category-card-viewer:hover{border-color:var(--color-primary);background:var(--color-primary-soft);transform:translateY(-6px);box-shadow:0 12px 24px #2c6b6f26}.category-card-viewer h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--spacing-sm) 0}.category-card-viewer .category-description{font-size:var(--font-size-sm);color:var(--color-text-light);margin:var(--spacing-sm) 0}.category-card-thumb{background:var(--color-background-alt);border-bottom:1px solid var(--color-border);justify-content:center;align-items:center;width:100%;height:180px;display:flex;position:relative;overflow:hidden}.category-card-thumb--loading:after{content:"";background:linear-gradient(100deg,#ffffff14 25%,#ffffff4d 45%,#ffffff14 65%);animation:1.2s ease-in-out infinite categoryCoverShimmer;position:absolute;inset:0;transform:translate(-100%)}.category-card-thumb img{object-fit:cover;width:100%;height:100%;transition:opacity .25s}.category-card-thumb--loading img{opacity:.01}@keyframes categoryCoverShimmer{to{transform:translate(100%)}}.category-card-body{padding:var(--spacing-xl)}.category-link{margin-top:var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-primary);font-weight:var(--font-weight-medium);transition:all .2s;display:inline-block}.category-card-viewer:hover .category-link{color:var(--color-accent);transform:translate(4px)}.album-grid-viewer{animation:.3s fadeIn}.album-cards-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.album-card-tile{border-radius:var(--radius-lg);cursor:pointer;background:var(--color-background-alt);font:inherit;text-align:left;border:none;padding:0;transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}.album-card-tile:hover{transform:translateY(-3px);box-shadow:0 8px 24px #00000024}.album-card-tile__cover{aspect-ratio:4/3;background:var(--color-background-alt);width:100%;position:relative;overflow:hidden}.album-card-tile__collage{background:linear-gradient(135deg, #2c6b6f2e, #e67e5e24), var(--color-background-alt);grid-template-rows:repeat(2,1fr);grid-template-columns:1.2fr .8fr;gap:3px;width:100%;height:100%;padding:3px;display:grid}.album-card-tile__collage--2{grid-template-rows:1fr;grid-template-columns:repeat(2,1fr)}.album-card-tile__collage-item{background:#ffffff4d;border-radius:12px;position:relative;overflow:hidden}.album-card-tile__collage--2 .album-card-tile__collage-item--1{grid-row:auto}.album-card-tile__collage-item--1{grid-row:1/span 2}.album-card-tile__collage-item img{object-fit:cover;width:100%;height:100%;transition:transform .35s;display:block}.album-card-tile__cover img{object-fit:cover;width:100%;height:100%;transition:transform .3s;display:block}.album-card-tile:hover .album-card-tile__cover img,.album-card-tile:hover .album-card-tile__collage-item img{transform:scale(1.05)}.album-card-tile__cover-placeholder{width:100%;height:100%;color:var(--color-text-light);background:var(--color-background-alt);justify-content:center;align-items:center;display:flex}.album-card-tile__gradient{pointer-events:none;background:linear-gradient(#0000 40%,#0000008c 100%);position:absolute;inset:0}.album-card-tile__info{flex-direction:column;gap:1px;padding:10px 12px;display:flex;position:absolute;bottom:0;left:0;right:0}.album-card-tile__name{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:#fff;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 3px #0006;overflow:hidden}.album-card-tile__date{font-size:var(--font-size-xs);color:#ffffffbf}@media (width<=768px){.album-cards-grid{grid-template-columns:repeat(2,1fr);gap:8px}}@media (width<=400px){.album-cards-grid{grid-template-columns:1fr 1fr;gap:6px}}.gallery-nav-row{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:center;display:flex}.gallery-nav-row .gallery-breadcrumbs{margin-bottom:0}.gallery-breadcrumbs{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-background-alt);border-radius:var(--radius-md);font-size:var(--font-size-sm);display:flex}.institutional-lightbox{z-index:9999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:radial-gradient(120% 100% at 50% 0,#3a8d9224 0%,#0000 45%),#05070af0;flex-direction:column;padding:20px 24px 18px;display:flex;position:fixed;inset:0}.institutional-lightbox__header{justify-content:space-between;align-items:center;width:100%;max-width:1280px;margin-bottom:14px;margin-left:auto;margin-right:auto;display:flex}.institutional-lightbox__title{color:#fffffff2;font-size:1.05rem;font-weight:600}.institutional-lightbox__close{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff3d;border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;transition:background .2s,transform .2s;display:flex}.institutional-lightbox__close:hover{background:#ffffff2e;transform:translateY(-1px)}.institutional-lightbox__stage{flex:1;width:100%;max-width:1280px;min-height:0;margin:0 auto}.institutional-lightbox__media{background:#ffffff08;border:1px solid #ffffff1a;border-radius:18px;justify-content:center;align-items:center;width:100%;height:100%;max-height:76vh;display:flex;position:relative;overflow:hidden}.institutional-lightbox__asset{object-fit:contain;width:100%;height:100%;max-height:76vh}.institutional-lightbox__asset--image{width:100%;height:auto;max-height:76vh}.institutional-lightbox__asset--iframe,.institutional-lightbox__asset--pdf{border:0}.institutional-lightbox__overlay-nav{color:#fff;cursor:pointer;z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0e1480;border:1.5px solid #ffffff4d;border-radius:999px;justify-content:center;align-items:center;width:48px;height:48px;padding:0;transition:background .2s,border-color .2s,transform .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.institutional-lightbox__overlay-nav:hover{background:#0a0e14bf;border-color:#fff9;transform:translateY(-50%)scale(1.08)}.institutional-lightbox__overlay-nav--prev{left:16px}.institutional-lightbox__overlay-nav--next{right:16px}.institutional-lightbox__state{color:#ffffffd6;font-size:var(--font-size-sm)}.institutional-lightbox__footer{justify-content:center;align-items:center;width:100%;max-width:1280px;margin-top:14px;margin-left:auto;margin-right:auto;display:flex}.institutional-lightbox__counter{color:#ffffffdb;letter-spacing:.02em;font-size:.86rem;font-weight:600}.institutional-lightbox__controls{align-items:center;gap:10px;display:inline-flex}.institutional-lightbox__control-btn{color:#ffffffeb;background:#ffffff14;border:1px solid #ffffff38;border-radius:999px;padding:7px 12px;font-size:.8rem;font-weight:600}.institutional-lightbox__control-btn:hover{background:#ffffff29}.empty-state{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-light);background:var(--color-background-alt);border-radius:var(--radius-lg);border:2px dashed var(--color-border)}.loading{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-light);font-size:var(--font-size-md);animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.btn-primary{background:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;border:none;padding:12px 24px;transition:all .2s}.btn-primary:hover{background:var(--color-accent);transform:translateY(-1px);box-shadow:0 4px 12px #2c6b6f33}.btn-secondary{color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;background:0 0;padding:12px 24px;transition:all .2s}.btn-secondary:hover{background:var(--color-background-alt);border-color:var(--color-primary);color:var(--color-primary)}@media (width<=768px){.viewer-close{top:var(--spacing-md);right:var(--spacing-md);width:36px;height:36px;font-size:28px}.viewer-main{padding:var(--spacing-md);min-height:50vh}.viewer-content iframe{width:100%}.viewer-nav{width:40px;height:40px;font-size:20px}.viewer-prev{left:var(--spacing-sm)}.viewer-next{right:var(--spacing-sm)}.viewer-footer{padding:var(--spacing-md);align-items:flex-start;gap:var(--spacing-md);flex-direction:column}.viewer-actions{width:100%}.viewer-actions .btn-download{justify-content:center;width:100%}.viewer-thumbnails{padding:var(--spacing-md);gap:var(--spacing-sm)}.thumbnail{width:64px;height:64px}.institutional-lightbox{padding:10px 0 12px}.institutional-lightbox__header{margin-bottom:10px;padding:0 12px}.institutional-lightbox__title{font-size:1rem}.institutional-lightbox__close{width:38px;height:38px}.institutional-lightbox__stage{max-width:100%}.institutional-lightbox__media{background:#00000059;border-left:0;border-right:0;border-radius:0;width:100%;max-height:66vh}.institutional-lightbox__overlay-nav{width:40px;height:40px}.institutional-lightbox__overlay-nav--prev{left:8px}.institutional-lightbox__overlay-nav--next{right:8px}.institutional-lightbox__asset{width:100%;max-height:66vh}.institutional-lightbox__footer{margin-top:10px;padding:0 12px}.roles-grid{grid-template-columns:1fr}.preset-buttons{flex-direction:column}.btn-preset{text-align:left;width:100%}}@media (width<=1024px){.media-workspace{grid-template-columns:1fr}.albums-grid,.media-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.categories-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}@media (width<=640px){.tabs{gap:4px}.tab{font-size:var(--font-size-xs);padding:10px 16px}.url-input-section{padding:var(--spacing-md)}.url-input-group{grid-template-columns:1fr}.url-add-button{width:100%}.gallery-notification-banner{flex-direction:column;align-items:stretch}.gallery-notification-banner .btn-primary{width:100%}.albums-grid,.media-grid{gap:var(--spacing-sm);grid-template-columns:repeat(auto-fill,minmax(145px,1fr))}.category-card{gap:var(--spacing-md);grid-template-columns:1fr}.category-actions{justify-content:flex-end;width:100%}}.album-mosaic{animation:.25s fadeIn}.album-mosaic-empty{background:radial-gradient(circle at 0 0,#e67e5e29,#0000 34%),radial-gradient(circle at 100% 100%,#5ba5a838,#0000 38%),linear-gradient(145deg,#fffffff0 0%,#f5f2edfa 52%,#fff9f0f0 100%);border:1px solid #a890743d;border-radius:28px;grid-template-columns:minmax(220px,320px) minmax(0,1fr);align-items:center;gap:clamp(1.5rem,3vw,3rem);min-height:360px;padding:clamp(1.5rem,4vw,3rem);display:grid;position:relative;overflow:hidden;box-shadow:0 24px 48px #1e4d501f,inset 0 1px #ffffffb8}.album-mosaic-empty:before,.album-mosaic-empty:after{content:"";pointer-events:none;filter:blur(6px);border-radius:50%;position:absolute}.album-mosaic-empty:before{background:radial-gradient(circle,#e67e5e24 0%,#e67e5e00 72%);width:220px;height:220px;top:-110px;right:8%}.album-mosaic-empty:after{background:radial-gradient(circle,#5ba5a82e 0%,#5ba5a800 74%);width:260px;height:260px;bottom:-150px;left:-60px}.album-mosaic-empty__visual,.album-mosaic-empty__content{z-index:1;position:relative}.album-mosaic-empty__visual{justify-content:center;align-items:center;display:flex}.album-mosaic-empty__orb{filter:blur(2px);border-radius:50%;animation:8s ease-in-out infinite albumEmptyFloat;position:absolute}.album-mosaic-empty__orb--primary{background:radial-gradient(circle at 30% 30%,#ffffffc7,#5ba5a83d 45%,#5ba5a800 72%);width:148px;height:148px;top:4px;left:18px}.album-mosaic-empty__orb--accent{background:radial-gradient(circle at 35% 35%,#ffffffbf,#e67e5e38 48%,#e67e5e00 74%);width:112px;height:112px;animation-delay:-3s;bottom:18px;right:12px}.album-mosaic-empty__frame{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(#ffffffb3 0%,#fff9f070 100%);border:1px solid #ffffff9e;border-radius:28px;width:min(100%,300px);padding:18px;position:relative;overflow:hidden;box-shadow:0 24px 40px #384a4829,inset 0 1px #ffffffc7}.album-mosaic-empty__shine{background:linear-gradient(120deg,#0000 12%,#fff6 34%,#0000 58%);animation:4.8s ease-in-out infinite albumEmptyShine;position:absolute;inset:0;transform:translate(-135%)}.album-mosaic-empty__preview-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px;display:grid}.album-mosaic-empty__preview{background:linear-gradient(#ffffffa3,#ffffff29),linear-gradient(135deg,#5ba5a829,#a8907424);border:1px solid #ffffffad;border-radius:18px;min-height:78px;position:relative;overflow:hidden}.album-mosaic-empty__preview:before{content:"";background:radial-gradient(circle at 72% 24%,#ffffff73,#0000 24%),linear-gradient(160deg,#2c6b6f1f 0%,#2c6b6f00 46%);position:absolute;inset:0}.album-mosaic-empty__preview span{background:#ffffffb8;border-radius:999px;height:8px;position:absolute;bottom:12px;left:12px;right:12px;box-shadow:0 -14px #ffffff6b}.album-mosaic-empty__preview--hero{background:linear-gradient(#ffffffb3,#ffffff2e),linear-gradient(135deg,#5ba5a833,#e67e5e2e);min-height:150px}.album-mosaic-empty__preview--hero:after{content:"";background:#fffc;border-radius:50%;width:62px;height:62px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 24px #1e4d5029}.album-mosaic-empty__preview--hero span{bottom:18px;left:18px;right:18px}.album-mosaic-empty__preview--video:after,.album-mosaic-empty__preview--document:after{content:"";position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.album-mosaic-empty__preview--video:after{border-top:10px solid #0000;border-bottom:10px solid #0000;border-left:16px solid #ffffffe0;width:0;height:0}.album-mosaic-empty__preview--document:after{background:linear-gradient(135deg,#ffffffeb 0 70%,#e67e5e66 70% 100%);border-radius:10px;width:28px;height:34px}.album-mosaic-empty__content{flex-direction:column;gap:14px;max-width:520px;display:flex}.album-mosaic-empty__eyebrow{color:var(--color-primary);letter-spacing:.12em;text-transform:uppercase;background:#ffffff94;border:1px solid #2c6b6f24;border-radius:999px;align-self:flex-start;padding:8px 14px;font-size:.72rem;font-weight:700;display:inline-flex}.album-mosaic-empty__content h3{color:var(--color-text);margin:0;font-size:clamp(1.5rem,2vw,2rem);line-height:1.1}.album-mosaic-empty__content p{color:var(--color-text-light);margin:0;font-size:1rem;line-height:1.7}.album-mosaic__actions{margin-top:var(--spacing-sm);justify-content:center;display:flex}.mosaic-grid{border-radius:var(--radius-lg);background:var(--color-border);grid-template-columns:repeat(3,1fr);gap:3px;display:grid;overflow:hidden}.mosaic-grid--dense{grid-template-columns:repeat(4,1fr);gap:2px}.mosaic-tile{aspect-ratio:1;cursor:pointer;background:var(--color-border);border:none;padding:0;position:relative;overflow:hidden}.mosaic-tile--first{grid-column:unset;grid-row:unset;aspect-ratio:1}.mosaic-tile img,.mosaic-tile video{object-fit:cover;width:100%;height:100%;transition:transform .2s;display:block}.mosaic-tile:hover img,.mosaic-tile:hover video{transform:scale(1.04)}.mosaic-tile-placeholder{background:#1a1a1a;width:100%;height:100%}.mosaic-play-overlay{background:#00000047;justify-content:center;align-items:center;transition:background .2s;display:flex;position:absolute;inset:0}.mosaic-tile:hover .mosaic-play-overlay{background:#0006}.mosaic-play-btn{width:36px;height:36px;color:var(--color-text);background:#ffffffe6;border-radius:50%;justify-content:center;align-items:center;display:flex;box-shadow:0 2px 8px #00000040}.mosaic-tile--first .mosaic-play-btn{width:48px;height:48px}.mosaic-tile--first .mosaic-play-btn svg{width:22px;height:22px}.album-mosaic--dense .mosaic-play-btn,.album-mosaic--dense .mosaic-tile--first .mosaic-play-btn{width:30px;height:30px}.album-mosaic--dense .mosaic-tile--first .mosaic-play-btn svg{width:18px;height:18px}.mosaic-video-badge{color:#fff;letter-spacing:.03em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;border-radius:4px;padding:2px 6px;font-size:.65rem;font-weight:700;position:absolute;top:6px;left:6px}.mosaic-video-badge--yt{background:#dc0000cc}.mosaic-tile--overflow{background:#1a1a1a;justify-content:center;align-items:center;display:flex}.mosaic-tile--overflow span{color:#fff;font-size:1.1rem;font-weight:700}.mosaic-tile--filler{cursor:default;background:radial-gradient(circle at 100% 0,#ffffff42,#0000 30%),linear-gradient(145deg,#fff9f0fa 0%,#eee8dffa 100%);justify-content:flex-start;align-items:flex-end;padding:14px;display:flex;position:relative}.mosaic-tile--filler:before,.mosaic-tile--filler:after{content:"";position:absolute;inset:0}.mosaic-tile--filler:before{background:linear-gradient(135deg,#2c6b6f1f,#0000 58%),repeating-linear-gradient(135deg,#ffffff2e 0 10px,#ffffff0a 10px 20px)}.mosaic-tile--filler:after{border:1px solid #ffffff6b;border-radius:18px;inset:10px;box-shadow:inset 0 1px #ffffff47}.mosaic-tile-filler__glow{background:radial-gradient(circle,#e67e5e38 0%,#e67e5e00 72%);border-radius:50%;width:84px;height:84px;position:absolute;top:18px;right:16px}@keyframes albumEmptyFloat{0%,to{transform:translate(0,0)}50%{transform:translateY(-10px)}}@keyframes albumEmptyShine{0%,to{transform:translate(-135%)}55%{transform:translate(135%)}}@media (width<=480px){.album-mosaic-empty{min-height:unset;border-radius:24px;grid-template-columns:1fr;padding:22px 18px}.album-mosaic-empty__frame{width:100%;max-width:280px;padding:14px}.album-mosaic-empty__preview--hero{min-height:132px}.album-mosaic-empty__preview-grid{gap:8px}.album-mosaic-empty__preview{border-radius:16px;min-height:66px}.album-mosaic-empty__content{text-align:center;gap:12px}.album-mosaic-empty__eyebrow{align-self:center}.mosaic-grid--dense{grid-template-columns:repeat(3,1fr)}.mosaic-play-btn{width:28px;height:28px}.mosaic-tile--first .mosaic-play-btn{width:38px;height:38px}}.lightbox-progressive{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.lightbox-progressive__thumb{object-fit:contain;filter:blur(12px);width:100%;height:100%;position:absolute;inset:0;transform:scale(1.04)}.lightbox-progressive__full{opacity:0;transition:opacity .25s}.lightbox-progressive__full--loaded{opacity:1}.institutional-lightbox__asset--video{width:100%;max-height:76vh;display:block}.lightbox-video-wrapper{justify-content:center;align-items:center;width:100%;max-height:76vh;display:flex;position:relative}.lightbox-video-wrapper video{border-radius:12px;width:100%;max-height:76vh;display:block}.lightbox-video-play-overlay{cursor:pointer;justify-content:center;align-items:center;padding-bottom:48px;display:flex;position:absolute;inset:0}.lightbox-video-play-btn{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;background:#ffffff2e;border:2px solid #ffffff8c;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;padding-left:4px;transition:background .2s,transform .2s;display:flex}.lightbox-video-play-btn:hover{background:#ffffff4d;transform:scale(1.1)}@media (width<=768px){.lightbox-video-play-btn{width:56px;height:56px}.lightbox-video-play-btn svg{width:24px;height:24px}}
