.form-error{display:block;margin-top:var(--space-xs);font-size:var(--fs-small);color:#e74c3c}.is-invalid{border-color:#e74c3c!important;box-shadow:0 0 0 3px #e74c3c33!important}#dashboard-shell[hidden],.dashboard-page .site-header[hidden],.dashboard-page .site-footer[hidden],.dashboard-page .nav-drawer[hidden],.dashboard-page .nav-overlay[hidden]{display:none!important}.dashboard-page .site-header{background-color:var(--color-charcoal);box-shadow:0 2px 16px #0000004d}.auth-gate[hidden]{display:none!important}.auth-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:120px var(--space-lg) var(--space-3xl);background-color:var(--color-light-gray)}.auth-card{width:100%;max-width:440px;background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-3xl) var(--space-2xl);text-align:center}.auth-card__logo{display:block;width:80px;height:auto;margin:0 auto var(--space-lg)}.auth-card__title{font-family:var(--font-heading);font-size:var(--fs-h2);font-weight:var(--fw-bold);color:var(--color-charcoal);margin-bottom:var(--space-xs)}.auth-card__subtitle{font-family:var(--font-body);font-size:var(--fs-small);color:var(--color-text-light);margin-bottom:var(--space-2xl)}.auth-form{text-align:left}.auth-form .form-group{margin-bottom:var(--space-md)}.auth-form__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.auth-card__btn{width:100%;margin-top:var(--space-md)}.auth-card__divider{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-xl) 0;color:var(--color-text-light);font-size:var(--fs-small)}.auth-card__divider:before,.auth-card__divider:after{content:"";flex:1;height:1px;background:#e0e0e0}.auth-error{background:#fef2f2;color:#c0392b;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:var(--fs-small);margin-top:var(--space-sm);border:1px solid #fecaca}.dashboard{display:flex;min-height:100vh;padding-top:0}.dashboard__sidebar{position:fixed;top:0;left:0;bottom:0;width:260px;background:var(--color-charcoal);overflow-y:auto;z-index:100;transition:transform var(--transition-base);display:flex;flex-direction:column}.dashboard__main{flex:1;margin-left:260px;min-width:0;display:flex;flex-direction:column}.dashboard__topbar{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-xl);background:var(--color-white);border-bottom:1px solid #e5e5e5;position:sticky;top:0;z-index:50}.dashboard__sidebar-toggle{display:none;background:none;border:none;cursor:pointer;color:var(--color-text);padding:var(--space-xs)}.dashboard__page-title{font-family:var(--font-heading);font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--color-charcoal);flex:1}.dashboard__user-info{display:flex;align-items:center;gap:var(--space-md)}.dashboard__user-name{font-family:var(--font-heading);font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--color-text-light)}.dashboard__content{padding:var(--space-xl);flex:1}.btn--small{padding:.4rem 1rem;font-size:var(--fs-caption)}.sidebar__header{padding:var(--space-xl) var(--space-lg);border-bottom:1px solid rgba(255,255,255,.1);text-align:center}.sidebar__logo{width:64px;height:64px;object-fit:contain;margin:0 auto var(--space-sm);display:block}.sidebar__title{font-family:var(--font-heading);font-size:var(--fs-small);font-weight:var(--fw-bold);color:var(--color-gold);text-transform:uppercase;letter-spacing:.08em}.sidebar__section{padding:var(--space-md) 0;border-bottom:1px solid rgba(255,255,255,.06)}.sidebar__section-label{display:block;padding:var(--space-xs) var(--space-lg);font-family:var(--font-heading);font-size:var(--fs-caption);font-weight:var(--fw-bold);color:#fff6;text-transform:uppercase;letter-spacing:.1em}.sidebar__link{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);font-family:var(--font-heading);font-size:var(--fs-small);font-weight:var(--fw-medium);color:#ffffffb3;text-decoration:none;transition:color var(--transition-fast),background-color var(--transition-fast);cursor:pointer;border:none;background:none;width:100%;text-align:left}.sidebar__link:hover{color:var(--color-white);background:#ffffff14}.sidebar__link--active{color:var(--color-gold);background:#a899681f;border-right:3px solid var(--color-gold)}.sidebar__link svg{width:18px;height:18px;flex-shrink:0}.sidebar__footer{margin-top:auto;padding:var(--space-lg);border-top:1px solid rgba(255,255,255,.1)}.sidebar__sign-out{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:none;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);color:#ffffffb3;font-size:var(--fs-caption);font-family:var(--font-heading);cursor:pointer;transition:all var(--transition-fast)}.sidebar__sign-out:hover{color:var(--color-white);border-color:#fff6;background:#ffffff0d}.sidebar__sign-out svg{width:16px;height:16px;flex-shrink:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-lg);margin-bottom:var(--space-2xl)}.stats-card{background:var(--color-white);border-radius:var(--radius-md);padding:var(--space-xl);box-shadow:var(--shadow-sm);display:flex;align-items:flex-start;gap:var(--space-md);transition:box-shadow var(--transition-fast)}.stats-card:hover{box-shadow:var(--shadow-md)}.stats-card--clickable{cursor:pointer;border:2px solid transparent;transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.stats-card--clickable:hover{border-color:var(--color-gold-light)}.stats-card--active{border-color:var(--color-gold);box-shadow:var(--shadow-md)}.stats-card--active .stats-card__value{color:var(--color-gold-dark)}.stats-card__icon{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#a899681f;color:var(--color-gold-dark)}.stats-card__icon svg{width:24px;height:24px}.stats-card__info{flex:1;min-width:0}.stats-card__value{display:block;font-family:var(--font-heading);font-size:clamp(1.5rem,3vw,2rem);font-weight:var(--fw-bold);line-height:1;color:var(--color-charcoal);margin-bottom:var(--space-xs)}.stats-card__label{font-family:var(--font-heading);font-size:var(--fs-caption);font-weight:var(--fw-medium);color:var(--color-text-light);text-transform:uppercase;letter-spacing:.05em}.data-table-wrapper{background:var(--color-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.data-table__toolbar{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-bottom:1px solid #eee;flex-wrap:wrap}.data-table__search{flex:1;min-width:200px;padding:.5rem .75rem;font-family:var(--font-body);font-size:var(--fs-small);border:1px solid #d1d1d1;border-radius:var(--radius-sm);background:var(--color-light-gray)}.data-table__search:focus{outline:none;border-color:var(--color-gold);box-shadow:0 0 0 3px #a8996833}.data-table__actions{display:flex;gap:var(--space-sm)}.data-table__scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-family:var(--font-body);font-size:var(--fs-small)}.data-table th{padding:var(--space-sm) var(--space-md);font-family:var(--font-heading);font-size:var(--fs-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-light);background:var(--color-light-gray);text-align:left;white-space:nowrap;border-bottom:2px solid #e0e0e0;-webkit-user-select:none;user-select:none}.data-table__th--sortable{cursor:pointer}.data-table__th--sortable:hover{color:var(--color-gold-dark)}.data-table__th--sortable:after{content:" ↕";font-size:.7em;opacity:.5}.data-table__th--asc:after{content:" ↑";opacity:1;color:var(--color-gold-dark)}.data-table__th--desc:after{content:" ↓";opacity:1;color:var(--color-gold-dark)}.data-table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid #f0f0f0;vertical-align:middle;color:var(--color-text)}.data-table tbody tr:hover{background:#a899680a}.data-table__row--clickable{cursor:pointer}.data-table__row--clickable:hover{background:#a8996814!important}.data-table__empty{text-align:center;padding:var(--space-3xl) var(--space-lg);color:var(--color-text-light);font-style:italic}.data-table__pagination{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-top:1px solid #eee;font-size:var(--fs-small);color:var(--color-text-light)}.data-table__page-btns{display:flex;gap:var(--space-xs)}.data-table__page-btn{padding:.3rem .7rem;border:1px solid #d1d1d1;border-radius:var(--radius-sm);background:var(--color-white);font-family:var(--font-heading);font-size:var(--fs-caption);cursor:pointer;transition:all var(--transition-fast)}.data-table__page-btn:hover{border-color:var(--color-gold);color:var(--color-gold-dark)}.data-table__page-btn--active{background:var(--color-gold);border-color:var(--color-gold);color:var(--color-white)}.data-table__page-btn:disabled{opacity:.4;cursor:not-allowed}.form-section{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-2xl);margin-bottom:var(--space-xl);border:1px solid #e8e8e4}.form-section__title{font-family:var(--font-heading);font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--color-charcoal);margin-bottom:var(--space-xs);padding-bottom:var(--space-md);border-bottom:2px solid var(--color-gold);display:flex;align-items:center;gap:var(--space-sm)}.form-section__title svg{width:22px;height:22px;color:var(--color-gold);flex-shrink:0}.form-section__desc{color:var(--color-text-light);font-size:var(--fs-small);line-height:var(--lh-normal);margin-bottom:var(--space-xl)}.form-section__title+.form-group,.form-section__title+.form-row,.form-section__title+.form-row--3,.form-section__title+.form-row--4{margin-top:var(--space-xl)}.form-section__desc+.form-group,.form-section__desc+.form-row,.form-section__desc+.form-row--3,.form-section__desc+.form-row--4{margin-top:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}.form-row--3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-lg)}.form-row--4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:var(--space-lg)}.dashboard .form-input,.dashboard .form-select,.dashboard .form-textarea{padding:.85rem 1rem;border-radius:var(--radius-md);border-color:#ddd;font-size:var(--fs-small);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast)}.dashboard .form-input:hover,.dashboard .form-select:hover,.dashboard .form-textarea:hover{border-color:#bbb}.dashboard .form-input:focus,.dashboard .form-select:focus,.dashboard .form-textarea:focus{border-color:var(--color-gold);box-shadow:0 0 0 3px #a8996826;background-color:var(--color-white)}.dashboard .form-input:disabled,.dashboard .form-select:disabled{background-color:var(--color-light-gray);color:var(--color-text-light);border-color:#e8e8e4;cursor:not-allowed;opacity:.8}.dashboard .form-label{font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-light);margin-bottom:var(--space-xs)}.dashboard .form-group{margin-bottom:var(--space-md)}.dashboard .form-section>.btn,.dashboard .form-section form>.btn{margin-top:var(--space-lg);min-width:200px}.repeater__rows{display:flex;flex-direction:column;gap:var(--space-md)}.repeater__row{display:grid;grid-template-columns:1fr 1fr 90px 110px auto;gap:var(--space-md);align-items:end;padding:var(--space-lg);background:var(--color-light-gray);border-radius:var(--radius-md);border:1px solid #e8e8e4;position:relative}.repeater__row .form-group{margin-bottom:0}.repeater__remove{width:36px;height:36px;display:flex;align-items:center;justify-content:center;padding:0;background:none;border:1px solid #e0d0d0;color:#c0392b;border-radius:50%;cursor:pointer;font-size:1.1rem;line-height:1;transition:all var(--transition-fast);align-self:end;margin-bottom:2px}.repeater__remove:hover{background:#c0392b;color:var(--color-white);border-color:#c0392b}.repeater__remove:disabled{opacity:.3;cursor:not-allowed}.repeater__add{margin-top:var(--space-md)}.mini-form-block{background:var(--color-light-gray);border-radius:var(--radius-md);padding:var(--space-lg);border:1px solid #e8e8e4}.mini-form-block__title{font-family:var(--font-heading);font-size:var(--fs-small);font-weight:var(--fw-semibold);color:var(--color-charcoal);margin-bottom:var(--space-md);text-transform:uppercase;letter-spacing:.04em}.mini-form-block__row{display:flex;gap:var(--space-sm)}.mini-form-block__row .form-input{flex:1}.mini-form-block__list{margin-top:var(--space-md)}.mini-form-block__item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xs) var(--space-sm);border-bottom:1px solid #e0e0e0;font-size:var(--fs-small);color:var(--color-text)}.mini-form-block__item:last-child{border-bottom:none}.mini-form-block__empty{font-size:var(--fs-small);color:var(--color-text-light);font-style:italic;display:block;padding:var(--space-xs) 0}.badge--pending{background:#fef3cd;color:#856404}.badge--approved{background:#d4edda;color:#155724}.badge--denied{background:#f8d7da;color:#721c24}.badge--checked-in{background:#d1ecf1;color:#0c5460}.toast-container{position:fixed;top:100px;right:var(--space-lg);z-index:1300;display:flex;flex-direction:column;gap:var(--space-sm);pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:var(--color-charcoal);color:var(--color-white);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-family:var(--font-heading);font-size:var(--fs-small);font-weight:var(--fw-medium);animation:toastSlideIn var(--transition-base) ease;max-width:400px}.toast--success{background:#155724}.toast--error{background:#721c24}.toast--warning{background:#856404}.toast__close{background:none;border:none;color:inherit;font-size:1.2rem;cursor:pointer;opacity:.7;margin-left:auto;padding:0 var(--space-xs)}.toast__close:hover{opacity:1}@keyframes toastSlideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes toastSlideOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-lg);opacity:0;visibility:hidden;transition:opacity var(--transition-base),visibility var(--transition-base)}.modal-overlay.is-open{opacity:1;visibility:visible}.modal-container{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:100%;max-width:720px;max-height:85vh;overflow-y:auto;transform:translateY(20px);transition:transform var(--transition-base)}.modal-overlay.is-open .modal-container{transform:translateY(0)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg) var(--space-xl);border-bottom:1px solid #e5e5e5}.modal-title{font-family:var(--font-heading);font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--color-charcoal)}.modal-close{background:none;border:none;font-size:1.5rem;color:var(--color-text-light);cursor:pointer;padding:var(--space-xs);line-height:1}.modal-close:hover{color:var(--color-text)}.modal-body{padding:var(--space-xl)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);border-top:1px solid #e5e5e5}.app-modal{display:flex;flex-direction:column;gap:var(--space-lg)}.app-modal__section{padding-bottom:var(--space-lg);border-bottom:1px solid #eee}.app-modal__section:last-child{border-bottom:none;padding-bottom:0}.app-modal__section-title{font-family:var(--font-heading);font-size:var(--fs-small);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-gold-dark);margin-bottom:var(--space-md);display:flex;align-items:center;gap:var(--space-sm)}.app-modal__badge{display:inline-flex;align-items:center;justify-content:center;background:var(--color-gold);color:var(--color-white);font-size:var(--fs-caption);font-weight:var(--fw-bold);width:22px;height:22px;border-radius:50%;line-height:1}.app-modal__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm) var(--space-xl)}.app-modal__field{display:flex;flex-direction:column;gap:2px}.app-modal__label{font-family:var(--font-heading);font-size:var(--fs-caption);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-light)}.app-modal__value{font-size:var(--fs-small);color:var(--color-text);line-height:var(--lh-normal)}.app-modal__table{width:100%;border-collapse:collapse;font-size:var(--fs-small)}.app-modal__table th{padding:var(--space-xs) var(--space-sm);font-family:var(--font-heading);font-size:var(--fs-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-light);background:var(--color-light-gray);text-align:left;border-bottom:2px solid #e0e0e0}.app-modal__table td{padding:var(--space-xs) var(--space-sm);border-bottom:1px solid #f0f0f0;color:var(--color-text)}.app-modal__table tbody tr:hover{background:#a899680a}.app-modal__empty{font-size:var(--fs-small);color:var(--color-text-light);font-style:italic;margin:0}.app-modal .form-row{margin-bottom:0}.app-modal .form-group{margin-bottom:var(--space-md)}@media(max-width:480px){.app-modal__grid{grid-template-columns:1fr}}.checkin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-lg)}.checkin-card{background:var(--color-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-xl);border-left:4px solid #d1d1d1;transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.checkin-card:hover{box-shadow:var(--shadow-md)}.checkin-card--checked-in{border-left-color:#28a745;background:#f8fdf9}.checkin-card--not-checked-in{border-left-color:#ffc107}.checkin-card__header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-xs)}.checkin-card__name{font-family:var(--font-heading);font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--color-charcoal)}.checkin-card__kid-count{font-family:var(--font-heading);font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--color-text-light);background:var(--color-light-gray);padding:2px 8px;border-radius:10px;white-space:nowrap;flex-shrink:0}.checkin-card__detail{font-size:var(--fs-small);color:var(--color-text-light);margin-bottom:var(--space-xs)}.checkin-card__children{margin:var(--space-md) 0 0;padding-top:var(--space-sm);border-top:1px solid #e8e8e4}.checkin-card__children-label{display:block;font-family:var(--font-heading);font-size:var(--fs-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-light);margin-bottom:var(--space-xs)}.checkin-card__child-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.checkin-card__child{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:4px 8px;background:var(--color-light-gray);border-radius:var(--radius-sm);font-size:var(--fs-small)}.checkin-card__child-name{font-weight:var(--fw-medium);color:var(--color-text)}.checkin-card__child-meta{font-size:var(--fs-caption);color:var(--color-text-light);white-space:nowrap}.checkin-card__no-children{font-size:var(--fs-small);color:var(--color-text-light);font-style:italic}.checkin-card__time{font-size:var(--fs-caption);color:var(--color-text-light);margin-left:var(--space-sm)}.checkin-card__actions{display:flex;align-items:center;margin-top:var(--space-md)}.checkin-group{margin-bottom:var(--space-2xl)}.checkin-group__header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg);padding-bottom:var(--space-sm);border-bottom:2px solid var(--color-gold)}.checkin-group__title{display:flex;flex-direction:column;gap:2px}.checkin-group__location{font-family:var(--font-heading);font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--color-charcoal)}.checkin-group__datetime{font-family:var(--font-heading);font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--color-text-light)}.checkin-group__meta{display:flex;align-items:center;gap:var(--space-md);flex-shrink:0}.checkin-group__count{font-family:var(--font-heading);font-size:var(--fs-small);font-weight:var(--fw-semibold);color:var(--color-text)}.checkin-group__progress{font-family:var(--font-heading);font-size:var(--fs-caption);font-weight:var(--fw-medium);color:var(--color-text-light);background:var(--color-light-gray);padding:3px 10px;border-radius:10px}@media(max-width:768px){.checkin-group__header{flex-direction:column;align-items:flex-start}.checkin-group__meta{flex-wrap:wrap}}.bar-chart{display:flex;flex-direction:column;gap:var(--space-sm)}.bar-chart__row{display:flex;align-items:center;gap:var(--space-md)}.bar-chart__label{font-family:var(--font-heading);font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--color-text);min-width:120px;text-align:right}.bar-chart__bar-wrapper{flex:1;height:28px;background:var(--color-light-gray);border-radius:var(--radius-sm);overflow:hidden}.bar-chart__bar{height:100%;background:var(--color-gold);border-radius:var(--radius-sm);transition:width var(--transition-slow);min-width:2px}.bar-chart__value{font-family:var(--font-heading);font-size:var(--fs-small);font-weight:var(--fw-bold);color:var(--color-text);min-width:40px}.stats-dashboard{display:flex;flex-direction:column;gap:var(--space-2xl)}.stats-kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--space-md)}.stats-kpi-link{text-decoration:none;color:inherit}.stats-kpi{background:var(--color-white);border-radius:var(--radius-md);padding:var(--space-lg);box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:var(--space-md);transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.stats-kpi-link:hover .stats-kpi,.stats-kpi:hover{box-shadow:var(--shadow-md)}.stats-kpi-link:hover .stats-kpi{transform:translateY(-2px)}.stats-kpi__icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#a899681f;color:var(--color-gold-dark)}.stats-kpi__value{display:block;font-family:var(--font-heading);font-size:1.75rem;font-weight:var(--fw-bold);line-height:1;color:var(--color-charcoal)}.stats-kpi__label{font-family:var(--font-heading);font-size:var(--fs-caption);font-weight:var(--fw-medium);color:var(--color-text-light);text-transform:uppercase;letter-spacing:.05em}.stats-charts-row{display:grid;grid-template-columns:300px 1fr;gap:var(--space-xl)}.stats-chart-card{background:var(--color-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.stats-chart-card--wide{min-height:220px}.stats-chart-card__title{font-family:var(--font-heading);font-size:var(--fs-body);font-weight:var(--fw-semibold);color:var(--color-charcoal);padding:var(--space-md) var(--space-lg);border-bottom:1px solid #eee;margin:0}.stats-chart-card__body{padding:var(--space-lg);position:relative}.stats-chart-card__body--centered{display:flex;align-items:center;justify-content:center}.stats-table{width:100%;border-collapse:collapse;font-size:var(--fs-small)}.stats-table th{text-align:left;font-family:var(--font-heading);font-size:var(--fs-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-light);padding:var(--space-sm) var(--space-md);border-bottom:2px solid #eee}.stats-table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid #f0f0f0}.stats-table tr:last-child td{border-bottom:none}@media(max-width:768px){.stats-charts-row{grid-template-columns:1fr}.stats-chart-card--wide{min-height:200px}.stats-kpi-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.stats-kpi-row{grid-template-columns:1fr}}.dashboard__sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:99}@media(max-width:1024px){.dashboard__sidebar.is-open~.dashboard__sidebar-overlay{display:block}}.loading-spinner{display:flex;align-items:center;justify-content:center;padding:var(--space-3xl);color:var(--color-text-light);font-family:var(--font-heading);font-size:var(--fs-small);gap:var(--space-sm)}.loading-spinner:before{content:"";width:24px;height:24px;border:3px solid var(--color-light-gray);border-top-color:var(--color-gold);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:var(--space-4xl) var(--space-xl);color:var(--color-text-light)}.empty-state__icon{font-size:3rem;margin-bottom:var(--space-md);opacity:.3}.empty-state__text{font-family:var(--font-heading);font-size:var(--fs-body);font-weight:var(--fw-medium)}.action-btn{padding:.25rem .5rem;border:1px solid #d1d1d1;border-radius:var(--radius-sm);background:var(--color-white);font-family:var(--font-heading);font-size:var(--fs-caption);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.action-btn:hover{border-color:var(--color-gold);color:var(--color-gold-dark)}.action-btn--approve{border-color:#28a745;color:#28a745}.action-btn--approve:hover{background:#28a745;color:var(--color-white)}.action-btn--deny{border-color:#dc3545;color:#dc3545}.action-btn--deny:hover{background:#dc3545;color:var(--color-white)}.action-btn--danger{border-color:#dc3545;color:#dc3545}.action-btn--danger:hover{background:#dc3545;color:var(--color-white)}.action-btn--send{border-color:var(--color-gold);color:var(--color-gold-dark)}.action-btn--send:hover{background:var(--color-gold);color:var(--color-white)}.filter-bar{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-xl);flex-wrap:wrap}.filter-bar .form-select{width:auto;min-width:180px;padding:.5rem 2.5rem .5rem .75rem;font-size:var(--fs-small)}.filter-bar .form-input{width:auto;min-width:200px;padding:.5rem .75rem;font-size:var(--fs-small)}.csv-preview__scroll{overflow-x:auto;margin-top:var(--space-sm)}.csv-preview{width:100%;border-collapse:collapse;font-family:var(--font-body);font-size:var(--fs-caption)}.csv-preview th{padding:var(--space-xs) var(--space-sm);font-family:var(--font-heading);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-light);background:var(--color-light-gray);text-align:left;white-space:nowrap;border-bottom:2px solid #e0e0e0}.csv-preview td{padding:var(--space-xs) var(--space-sm);border-bottom:1px solid #f0f0f0;color:var(--color-text);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.csv-preview tbody tr:hover{background:#a899680a}@media(max-width:1024px){.dashboard__sidebar{transform:translate(-100%)}.dashboard__sidebar.is-open{transform:translate(0);box-shadow:var(--shadow-xl)}.dashboard__main{margin-left:0}.dashboard__sidebar-toggle{display:block}.form-section{padding:var(--space-xl)}}@media(max-width:768px){.dashboard__content{padding:var(--space-md)}.dashboard__topbar{padding:var(--space-sm) var(--space-md)}.dashboard__page-title{font-size:var(--fs-body)}.stats-grid{grid-template-columns:1fr 1fr}.form-row,.form-row--3,.form-row--4{grid-template-columns:1fr;gap:0}.form-section{padding:var(--space-lg)}.repeater__row{grid-template-columns:1fr 1fr;gap:var(--space-sm);padding:var(--space-md)}.repeater__row .form-group:nth-child(3),.repeater__row .form-group:nth-child(4){grid-column:auto}.repeater__remove{grid-column:1 / -1;justify-self:end;width:100%;border-radius:var(--radius-sm);height:auto;padding:var(--space-xs) var(--space-sm);font-size:var(--fs-caption)}.data-table__toolbar{flex-direction:column;align-items:stretch}.data-table__search{min-width:0}.data-table__scroll{font-size:var(--fs-caption)}.checkin-grid{grid-template-columns:1fr}.auth-gate{padding:var(--space-xl) var(--space-md) var(--space-2xl)}.auth-card{padding:var(--space-2xl) var(--space-lg)}.auth-form__row{grid-template-columns:1fr}.modal-container{max-width:100%;margin:var(--space-md);max-height:90vh}.dashboard__user-name{display:none}.filter-bar{flex-direction:column;align-items:stretch}.filter-bar .form-select,.filter-bar .form-input{width:100%;min-width:0}.dashboard .form-section>.btn,.dashboard .form-section form>.btn{width:100%;justify-content:center}.stats-card{padding:var(--space-lg)}.stats-card__icon{width:40px;height:40px}.stats-card__icon svg{width:20px;height:20px}.bar-chart__label{min-width:80px;font-size:var(--fs-caption)}.bar-chart__row{flex-wrap:wrap}.checkin-card{padding:var(--space-lg)}}@media(max-width:480px){.stats-grid{grid-template-columns:1fr;gap:var(--space-md)}.data-table__pagination{flex-direction:column;gap:var(--space-sm);text-align:center}.repeater__row{grid-template-columns:1fr}.form-section__title{font-size:var(--fs-body)}.sidebar__header{padding:var(--space-lg) var(--space-md)}.sidebar__link{padding:var(--space-sm) var(--space-md);font-size:var(--fs-caption)}}@media print{.site-header,.site-footer,.dashboard__sidebar,.dashboard__topbar,.toast-container,.modal-overlay,.data-table__toolbar,.data-table__pagination,.action-btn,.btn{display:none!important}.dashboard__main{margin-left:0}.dashboard{padding-top:0}.data-table-wrapper{box-shadow:none;border:1px solid #ccc}.data-table th{background:#f0f0f0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.stats-card{box-shadow:none;border:1px solid #ddd}}
