.config-page{min-height:100vh;background-color:var(--color-gray-50)}.config-header{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-light) 100%);color:#fff;padding:var(--spacing-md) var(--spacing-lg);box-shadow:var(--shadow-md)}.btn-back{background-color:#fff3;color:#fff;padding:.5rem 1rem;border:1px solid rgba(255,255,255,.3);border-radius:var(--border-radius-sm);font-size:.875rem;cursor:pointer;transition:background-color .2s;font-family:var(--font-family)}.btn-back:hover{background-color:#ffffff4d}.restaurant-selector{background:#fff;border:1px solid var(--color-gray-300);color:var(--color-gray-800);padding:.625rem 1rem;border-radius:var(--border-radius-sm);font-size:.875rem;cursor:pointer;font-family:var(--font-family);min-width:220px}.loading-bar{height:3px;background:var(--color-gray-200);overflow:hidden;position:relative}.loading-bar-inner{height:100%;width:40%;background:var(--color-primary);animation:loading-slide 1.5s ease-in-out infinite}@keyframes loading-slide{0%{transform:translate(-100%)}50%{transform:translate(250%)}to{transform:translate(250%)}}.alert-success{background-color:#d4edda;border:1px solid var(--color-success);color:#155724;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);margin-bottom:var(--spacing-md);font-size:.875rem}.alert-error{background-color:#f8d7da;border:1px solid var(--color-danger);color:#721c24;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);margin-bottom:var(--spacing-md);font-size:.875rem}.config-section{background:#fff;padding:var(--spacing-lg);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);margin-bottom:var(--spacing-lg)}.section-hint{font-size:.875rem;color:var(--color-gray-500);margin-bottom:var(--spacing-md);line-height:1.6}.radio-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.radio-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-sm);border:2px solid var(--color-gray-200);border-radius:var(--border-radius);cursor:pointer;transition:border-color .2s}.radio-label:hover{border-color:var(--color-primary)}.radio-label input[type=radio]{margin-top:.25rem;cursor:pointer}.radio-label input[type=radio]:checked+div strong{color:var(--color-primary)}.radio-hint{font-size:.875rem;color:var(--color-gray-500);margin-top:.25rem}.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--spacing-md)}.form-group{position:relative}.form-group label{display:block;font-weight:500;color:var(--color-gray-700);font-size:.875rem;margin-bottom:var(--spacing-xs)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.625rem;border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);font-size:.875rem;font-family:var(--font-family);transition:border-color .2s}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #003d821a}.input-error{border-color:var(--color-danger)!important}.error-text{display:block;color:var(--color-danger);font-size:.75rem;margin-top:.25rem}.error-text-small{display:block;color:var(--color-danger);font-size:.7rem;margin-top:.125rem}.table-container{background:#fff;border-radius:var(--border-radius);overflow:hidden;border:1px solid var(--color-gray-200)}.table-input{width:100%;padding:.5rem;border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);font-size:.875rem;font-family:var(--font-family)}.table-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #003d821a}.menu-textarea{font-family:Courier New,monospace;font-size:.875rem;line-height:1.6;resize:vertical}.save-row{display:flex;justify-content:flex-end;margin-bottom:var(--spacing-lg)}.btn-save{padding:.75rem 2rem;font-size:1rem}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.calendar-wrapper{max-width:600px;margin-top:var(--spacing-md)}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);padding:var(--spacing-sm);background:var(--color-gray-100);border-radius:var(--border-radius-sm)}.calendar-nav-btn{background:#fff;border:1px solid var(--color-gray-300);color:var(--color-gray-700);width:36px;height:36px;border-radius:var(--border-radius-sm);cursor:pointer;font-size:1.25rem;display:flex;align-items:center;justify-content:center;transition:background-color .2s,border-color .2s;font-family:var(--font-family)}.calendar-nav-btn:hover{background:var(--color-gray-50);border-color:var(--color-primary);color:var(--color-primary)}.calendar-month-title{font-size:1rem;font-weight:600;color:var(--color-gray-800);text-transform:capitalize}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.375rem;margin-bottom:var(--spacing-md)}.calendar-day-name{text-align:center;font-size:.75rem;font-weight:600;color:var(--color-gray-500);padding:.5rem 0;text-transform:uppercase}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);font-size:.875rem;color:var(--color-gray-800);background:#fff;cursor:pointer;transition:all .15s;-webkit-user-select:none;user-select:none}.calendar-day:hover:not(.past){border-color:var(--color-primary);background:var(--color-gray-50);transform:scale(1.05)}.calendar-day.closed{background:#fee;border-color:var(--color-danger);color:var(--color-danger);font-weight:600}.calendar-day.past{opacity:.4;cursor:default}.calendar-day.today{border-color:var(--color-primary);border-width:2px;font-weight:600;color:var(--color-primary)}.calendar-reason-row{margin-bottom:var(--spacing-md)}.calendar-reason-input{width:100%;padding:.625rem;border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);font-size:.875rem;font-family:var(--font-family)}.calendar-reason-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #003d821a}.calendar-info{font-size:.875rem;color:var(--color-gray-500);margin-top:var(--spacing-sm)}.calendar-list{margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--color-gray-200)}.calendar-list-title{font-size:.875rem;font-weight:600;color:var(--color-gray-700);margin-bottom:var(--spacing-sm);text-transform:uppercase;letter-spacing:.5px}.calendar-list-items{display:flex;flex-direction:column;gap:.5rem}.calendar-list-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm);background:var(--color-gray-50);border-radius:var(--border-radius-sm);border:1px solid var(--color-gray-200);font-size:.875rem}.calendar-remove-btn{background:transparent;border:1px solid var(--color-danger);color:var(--color-danger);padding:.25rem .75rem;border-radius:var(--border-radius-sm);font-size:.75rem;cursor:pointer;transition:background-color .2s;font-family:var(--font-family)}.calendar-remove-btn:hover{background:var(--color-danger);color:#fff}@media (max-width: 768px){.field-grid{grid-template-columns:1fr}.calendar-wrapper{max-width:100%}.header-content{flex-direction:column;align-items:flex-start}.restaurant-selector{width:100%}}.btn-secondary{background-color:var(--color-gray-200);color:var(--color-gray-800);padding:.75rem 2rem;border:1px solid var(--color-gray-300);border-radius:var(--border-radius);font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s,border-color .2s;font-family:var(--font-family)}.btn-secondary:hover{background-color:var(--color-gray-300);border-color:var(--color-gray-400)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.calendar-day.open{border:2px solid var(--color-success);background-color:#22c55e0d;cursor:pointer}.calendar-day.open:hover{background-color:#22c55e26;border-color:var(--color-success)}.calendar-day.closed{border:2px solid var(--color-danger);background-color:#ef44440d;cursor:pointer}.calendar-day.closed:hover{background-color:#ef444426;border-color:var(--color-danger)}.calendar-day.selected{border:3px solid var(--color-primary);background-color:#3b82f626;cursor:pointer;font-weight:600}.calendar-day.past{opacity:.3;cursor:not-allowed}.selection-panel{margin-top:1.5rem;padding:1.5rem;border:2px solid var(--color-primary);border-radius:var(--border-radius);background-color:#3b82f60d}.radio-label{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;border:1px solid var(--color-gray-200);border-radius:var(--border-radius-sm);cursor:pointer;transition:all .2s}.radio-label:hover{background-color:var(--color-gray-50);border-color:var(--color-primary)}.radio-label input[type=radio]{margin-top:.125rem;flex-shrink:0}.radio-label input[type=radio]:checked+div{color:var(--color-primary)}.radio-hint{font-size:.875rem;color:var(--color-gray-500);margin:0;margin-top:.25rem}:root{--color-primary: #003d82;--color-primary-dark: #002855;--color-primary-light: #0056b3;--color-secondary: #00a6e8;--color-success: #28a745;--color-warning: #ffc107;--color-danger: #dc3545;--color-gray-50: #f8f9fa;--color-gray-100: #e9ecef;--color-gray-200: #dee2e6;--color-gray-300: #ced4da;--color-gray-400: #adb5bd;--color-gray-500: #6c757d;--color-gray-600: #495057;--color-gray-700: #343a40;--color-gray-800: #212529;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2rem;--spacing-xl: 3rem;--border-radius: 8px;--border-radius-sm: 4px;--border-radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family);background-color:var(--color-gray-50);color:var(--color-gray-800);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-light) 100%);padding:var(--spacing-md)}.login-card{background:#fff;padding:var(--spacing-xl);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:400px}.login-logo{text-align:center;margin-bottom:var(--spacing-lg)}.login-logo img{max-width:200px;height:auto}.login-title{font-size:1.5rem;font-weight:600;color:var(--color-primary);margin-bottom:var(--spacing-xs);text-align:center}.login-subtitle{color:var(--color-gray-500);font-size:.875rem;text-align:center;margin-bottom:var(--spacing-lg)}.login-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-group label{font-weight:500;color:var(--color-gray-700);font-size:.875rem}.form-group input{padding:.75rem;border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);font-size:1rem;transition:border-color .2s}.form-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #003d821a}.error-message{background-color:#fee;color:var(--color-danger);padding:var(--spacing-sm);border-radius:var(--border-radius-sm);font-size:.875rem;border:1px solid var(--color-danger)}.btn-primary{background-color:var(--color-primary);color:#fff;padding:.75rem;border:none;border-radius:var(--border-radius-sm);font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-primary:hover{background-color:var(--color-primary-dark)}.btn-primary:active{transform:translateY(1px)}.dashboard-container{min-height:100vh;background-color:var(--color-gray-50)}.dashboard-header{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-light) 100%);color:#fff;padding:var(--spacing-md) var(--spacing-lg);box-shadow:var(--shadow-md)}.header-content{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--spacing-md)}.header-branding{display:flex;align-items:center;gap:var(--spacing-md)}.header-logo{height:40px;width:auto;background:#fff;padding:var(--spacing-xs);border-radius:var(--border-radius-sm)}.header-title h1{font-size:1.5rem;font-weight:600;margin-bottom:.25rem}.header-subtitle{font-size:.875rem;opacity:.9}.header-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.btn-logout{background-color:#fff3;color:#fff;padding:.5rem 1rem;border:1px solid rgba(255,255,255,.3);border-radius:var(--border-radius-sm);font-size:.875rem;cursor:pointer;transition:background-color .2s}.btn-logout:hover{background-color:#ffffff4d}.filters-container{max-width:1400px;margin:0 auto;padding:var(--spacing-lg);background:#fff;border-bottom:1px solid var(--color-gray-200)}.filters-row{display:flex;gap:var(--spacing-md);align-items:end;flex-wrap:wrap}.filter-group{flex:1;min-width:200px}.filter-group label{display:block;font-weight:500;margin-bottom:var(--spacing-xs);color:var(--color-gray-700);font-size:.875rem}.filter-group select,.filter-group input{width:100%;padding:.625rem;border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);font-size:.875rem}.btn-apply{padding:.625rem 1.5rem;background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--border-radius-sm);font-weight:500;cursor:pointer;transition:background-color .2s}.btn-apply:hover{background-color:var(--color-primary-dark)}.dashboard-content{max-width:1400px;margin:0 auto;padding:var(--spacing-lg)}.section{margin-bottom:var(--spacing-xl)}.section-title{font-size:1.25rem;font-weight:600;color:var(--color-primary);margin-bottom:var(--spacing-md);display:flex;align-items:center;gap:var(--spacing-xs)}.section-title:before{content:"";width:4px;height:24px;background-color:var(--color-primary);border-radius:2px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.kpi-card{background:#fff;padding:var(--spacing-md);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);border-left:4px solid var(--color-primary);transition:transform .2s,box-shadow .2s}.kpi-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.kpi-card.success{border-left-color:var(--color-success)}.kpi-card.warning{border-left-color:var(--color-warning)}.kpi-card.danger{border-left-color:var(--color-danger)}.kpi-label{font-size:.875rem;color:var(--color-gray-500);font-weight:500;text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-xs)}.kpi-value{font-size:2rem;font-weight:700;color:var(--color-gray-800);line-height:1}.kpi-description{font-size:.75rem;color:var(--color-gray-500);margin-top:var(--spacing-xs)}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(500px,1fr));gap:var(--spacing-md)}.chart-card{background:#fff;padding:var(--spacing-md);border-radius:var(--border-radius);box-shadow:var(--shadow-sm)}.chart-card.full-width{grid-column:1 / -1}.chart-title{font-size:1rem;font-weight:600;color:var(--color-gray-700);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-gray-100)}.chart-container{height:300px;width:100%}.chart-container.tall{height:400px}.table-container{background:#fff;border-radius:var(--border-radius);box-shadow:var(--shadow-sm);overflow:hidden}.table{width:100%;border-collapse:collapse}.table thead{background-color:var(--color-gray-100)}.table th{padding:var(--spacing-sm);text-align:left;font-weight:600;color:var(--color-gray-700);font-size:.875rem;text-transform:uppercase;letter-spacing:.5px}.table td{padding:var(--spacing-sm);border-bottom:1px solid var(--color-gray-100)}.table tbody tr:hover{background-color:var(--color-gray-50)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--color-gray-500)}.loading-spinner{width:48px;height:48px;border:4px solid var(--color-gray-200);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--spacing-sm)}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:var(--spacing-xl);color:var(--color-gray-500)}.empty-state-icon{font-size:3rem;margin-bottom:var(--spacing-sm);opacity:.5}@media (max-width: 768px){.charts-grid,.kpi-grid{grid-template-columns:1fr}.header-content{flex-direction:column;align-items:flex-start}.filters-row{flex-direction:column}.filter-group{width:100%}}.btn-config{background-color:#fff3;color:#fff;padding:.625rem 1.25rem;border:1px solid rgba(255,255,255,.3);border-radius:var(--border-radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s,border-color .2s;font-family:var(--font-family)}.btn-config:hover{background-color:#ffffff4d;border-color:#ffffff80}
