@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";.dashboard-page{max-width:1000px;margin:0 auto}.dash-header{margin-bottom:1.5rem}@media (width>=768px){.dash-header{margin-bottom:2rem}}.dash-header h2{color:var(--color-text-main);margin-bottom:.25rem;font-size:1.5rem;font-weight:700}@media (width>=768px){.dash-header h2{font-size:1.75rem}}.dash-grid{grid-template-columns:1fr;gap:1rem;margin-bottom:2rem;display:grid}@media (width>=768px){.dash-grid{grid-template-columns:2fr 1fr;gap:1.5rem;margin-bottom:2.5rem}}.dash-card{background-color:var(--color-bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);padding:1.5rem}@media (width>=768px){.dash-card{padding:2rem}}.dash-card h3{color:var(--color-text-main);margin-bottom:1rem;font-size:1rem;font-weight:600}@media (width>=768px){.dash-card h3{margin-bottom:1.5rem;font-size:1.125rem}}.today-res-info{flex-direction:column;align-items:center;gap:1rem;display:flex}.seat-highlight{background-color:var(--color-primary-light);border-radius:var(--radius-full);border:4px solid var(--color-primary);justify-content:center;align-items:center;width:5rem;height:5rem;display:flex}@media (width>=768px){.seat-highlight{width:6rem;height:6rem}}.seat-label{color:var(--color-primary);font-size:1.5rem;font-weight:800}@media (width>=768px){.seat-label{font-size:2rem}}.status-badge{border-radius:var(--radius-full);align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.875rem;font-weight:600;display:inline-flex}.status-badge.success{background-color:var(--color-success-bg);color:var(--color-success)}.status-badge.pending{background-color:var(--color-warning-bg);color:var(--color-warning)}.empty-state{text-align:center;color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;padding:1.5rem;display:flex}@media (width>=768px){.empty-state{padding:2rem}}.empty-state.sm{background-color:var(--color-bg-surface);border-radius:var(--radius-lg);border:1px dashed var(--color-border);padding:1rem}.empty-icon{color:var(--color-text-muted);opacity:.5;margin-bottom:.5rem}.inline-flex{width:auto;padding:.5rem 1rem;font-size:.875rem;display:inline-flex}.stats-card{flex-direction:column;align-items:center;display:flex}.stats-circle{width:100px;height:100px;margin-bottom:.75rem}@media (width>=768px){.stats-circle{width:120px;height:120px;margin-bottom:1rem}}.circular-chart{max-width:80%;max-height:250px;margin:0 auto;display:block}.circle-bg{fill:none;stroke:var(--color-border);stroke-width:3.8px}.circle{fill:none;stroke-width:3.8px;stroke-linecap:round;stroke:var(--color-primary);transition:stroke-dasharray 1s ease-out}.percentage{fill:var(--color-text-main);font-family:var(--font-family-main);text-anchor:middle;font-size:.4em;font-weight:700}.available-count{color:var(--color-success);background-color:var(--color-success-bg);border-radius:var(--radius-full);padding:.25rem .75rem;font-size:.75rem;font-weight:600}@media (width>=768px){.available-count{font-size:.875rem}}.upcoming-section h3{color:var(--color-text-main);margin-bottom:1rem;font-size:1.125rem;font-weight:700}@media (width>=768px){.upcoming-section h3{font-size:1.25rem}}.upcoming-list{flex-direction:column;gap:.75rem;display:flex}@media (width>=768px){.upcoming-list{gap:1rem}}.upcoming-item{background-color:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:transform var(--transition-normal);align-items:center;gap:.75rem;padding:.75rem;display:flex}@media (width>=768px){.upcoming-item{gap:1rem;padding:1rem}}.upcoming-item:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.upcoming-date{background-color:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-md);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:3rem;height:3rem;display:flex}@media (width>=768px){.upcoming-date{width:3.5rem;height:3.5rem}}.date-day{font-size:1rem;font-weight:800;line-height:1}@media (width>=768px){.date-day{font-size:1.25rem}}.date-month{text-transform:uppercase;font-size:.65rem;font-weight:600}@media (width>=768px){.date-month{font-size:.75rem}}.upcoming-details{flex-direction:column;display:flex}.upcoming-seat{color:var(--color-text-main);font-size:.875rem;font-weight:600}@media (width>=768px){.upcoming-seat{font-size:1rem}}.upcoming-status{color:var(--color-text-muted);font-size:.75rem}@media (width>=768px){.upcoming-status{font-size:.875rem}}.seat-map-container{flex-direction:column;gap:.75rem;width:100%;display:flex}.seat-map-wrapper{justify-content:center;width:100%;display:flex}.seat-map-area{aspect-ratio:1.2;background-color:var(--color-bg-surface);border:2px dashed var(--color-border);border-radius:var(--radius-lg);width:100%;position:relative}@media (width>=768px){.seat-map-area{aspect-ratio:16/9}}.seat-btn{border-radius:var(--radius-sm);width:1.6rem;height:1.6rem;transition:all var(--transition-normal);box-shadow:var(--shadow-sm);z-index:10;justify-content:center;align-items:center;font-size:.65rem;font-weight:700;display:flex;position:absolute;transform:translate(-50%,-50%)}@media (width>=480px){.seat-btn{width:2rem;height:2rem;font-size:.75rem}}@media (width>=768px){.seat-btn{border-radius:var(--radius-md);width:3rem;height:2.7rem;font-size:.875rem}}.seat-btn:hover:not(:disabled){box-shadow:var(--shadow-md);z-index:20;transform:translate(-50%,-50%)scale(1.1)}.seat-available{background-color:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success)}.seat-available:hover{background-color:var(--color-success);color:#fff}.seat-occupied{background-color:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger);cursor:not-allowed;opacity:.8}.seat-mine{background-color:var(--color-primary-light);color:var(--color-primary);border:1px solid var(--color-primary);cursor:not-allowed}.seat-inactive{background-color:var(--color-border);color:var(--color-text-muted);cursor:not-allowed;opacity:.5}.seat-selected{outline:3px solid var(--color-primary);outline-offset:2px;background-color:var(--color-primary);color:#fff}.seat-legend{background-color:var(--color-bg-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-wrap:wrap;justify-content:center;gap:1rem;padding:.75rem 1rem;display:flex}@media (width>=768px){.seat-legend{gap:1.5rem}}.legend-item{color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:.5rem;font-size:.75rem;font-weight:500;display:flex}@media (width>=768px){.legend-item{font-size:.875rem}}.legend-color{border-radius:var(--radius-sm);width:.875rem;height:.875rem}@media (width>=768px){.legend-color{width:1rem;height:1rem}}.legend-color.seat-selected.border-only{outline:2px solid var(--color-primary);outline-offset:-2px;background-color:#0000}.book-page{max-width:1000px;margin:0 auto}.book-header{flex-direction:column;gap:1rem;margin-bottom:1.5rem;display:flex}@media (width>=768px){.book-header{flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:1.25rem}}.book-header h2{color:var(--color-text-main);font-size:1.25rem;font-weight:700}@media (width>=768px){.book-header h2{font-size:1.5rem}}.subtitle{color:var(--color-text-muted);font-size:.875rem}.date-picker-box{background-color:var(--color-bg-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);align-self:flex-start;align-items:center;gap:.5rem;padding:.5rem 1rem;display:flex}.date-picker-box label{color:var(--color-text-muted);font-size:.875rem;font-weight:500}.date-picker-box input{color:var(--color-text-main);cursor:pointer;background:0 0;border:none;outline:none;font-family:inherit;font-size:.875rem;font-weight:500}.alert{border-radius:var(--radius-md);margin-bottom:1rem;padding:1rem;font-size:.875rem}.alert-error{background-color:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger)}.alert-success{background-color:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success)}.loading-state{height:16rem;color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.book-layout{grid-template-columns:1fr;gap:1.25rem;display:grid}@media (width>=1024px){.book-layout{grid-template-columns:2fr 1fr;gap:1.5rem}}.map-section{background-color:var(--color-bg-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);padding:.5rem}@media (width>=768px){.map-section{padding:1.5rem}}.summary-card{background-color:var(--color-bg-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);padding:1.25rem}@media (width>=1024px){.summary-card{position:sticky;top:1.5rem}}.summary-card h3{margin-bottom:1rem;font-size:1.125rem;font-weight:700}.summary-details{flex-direction:column;gap:1rem;margin-bottom:1.5rem;display:flex}.detail-row{flex-direction:column;display:flex}.detail-label{color:var(--color-text-muted);margin-bottom:.25rem;font-size:.875rem}.detail-value{font-weight:500}.badge-seat{background-color:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-sm);align-self:flex-start;padding:.25rem .75rem;font-weight:700;display:inline-block}.empty-value{color:var(--color-text-muted);font-size:.875rem;font-style:italic}.progress-container{align-items:center;gap:.5rem;display:flex}.progress-bar-bg{background-color:var(--color-border);border-radius:var(--radius-full);width:100%;height:.5rem;overflow:hidden}.progress-bar-fill{background-color:var(--color-primary);border-radius:var(--radius-full);height:100%;transition:width .3s}.progress-bar-fill.full{background-color:var(--color-danger)}.progress-text{font-size:.875rem;font-weight:500}.summary-card .btn-primary{width:100%}.my-res-page{max-width:1000px;margin:0 auto}.page-header{margin-bottom:1.5rem}@media (width>=768px){.page-header{margin-bottom:2rem}}.page-header h2{color:var(--color-text-main);font-size:1.25rem;font-weight:700}@media (width>=768px){.page-header h2{font-size:1.5rem}}.table-container{background-color:var(--color-bg-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);-webkit-overflow-scrolling:touch;overflow-x:auto}.res-table{border-collapse:collapse;text-align:left;width:100%;min-width:600px}@media (width>=768px){.res-table{min-width:100%}}.res-table th{color:var(--color-text-muted);border-bottom:1px solid var(--color-border);background-color:var(--color-bg-body);white-space:nowrap;padding:.75rem 1rem;font-size:.75rem;font-weight:600}@media (width>=768px){.res-table th{padding:1rem;font-size:.875rem}}.res-table td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:.75rem 1rem;font-size:.875rem}@media (width>=768px){.res-table td{padding:1rem}}.res-table tr:last-child td{border-bottom:none}.bold-date{color:var(--color-text-main);font-weight:600}.status-badge-sm{border-radius:var(--radius-full);text-transform:uppercase;white-space:nowrap;padding:.25rem .5rem;font-size:.7rem;font-weight:600}@media (width>=768px){.status-badge-sm{font-size:.75rem}}.status-badge-sm.pending{background-color:var(--color-warning-bg);color:var(--color-warning)}.status-badge-sm.checked_in{background-color:var(--color-success-bg);color:var(--color-success)}.status-badge-sm.cancelled{background-color:var(--color-danger-bg);color:var(--color-danger)}.status-badge-sm.expired{background-color:var(--color-border);color:var(--color-text-muted)}.time-text{color:var(--color-text-main);font-size:.75rem}@media (width>=768px){.time-text{font-size:.875rem}}.time-text.muted{color:var(--color-text-muted)}.cancel-btn{color:var(--color-danger);border-radius:var(--radius-md);transition:background-color var(--transition-normal);background-color:var(--color-danger-bg);align-items:center;gap:.25rem;padding:.4rem .6rem;font-size:.75rem;font-weight:600;display:flex}@media (width>=768px){.cancel-btn{background-color:#0000;padding:.25rem .5rem;font-size:.875rem;font-weight:500}}.cancel-btn:hover{background-color:var(--color-danger-bg);opacity:.8}.cancel-btn:disabled{color:var(--color-text-muted);cursor:not-allowed;opacity:.6;background-color:#0000}.cancel-btn:disabled:hover{background-color:#0000}:root{--color-primary:#3b82f6;--color-primary-hover:#2563eb;--color-primary-light:#eff6ff;--color-bg-body:#f8fafc;--color-bg-surface:#fff;--color-text-main:#0f172a;--color-text-muted:#64748b;--color-border:#e2e8f0;--color-success:#10b981;--color-success-bg:#ecfdf5;--color-danger:#ef4444;--color-danger-bg:#fef2f2;--color-warning:#f59e0b;--color-warning-bg:#fffbeb;--font-family-main:"Inter", sans-serif;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-full:9999px;--transition-normal:.2s ease-in-out}@media (prefers-color-scheme:dark){:root{--color-bg-body:#020617;--color-bg-surface:#0f172a;--color-text-main:#f8fafc;--color-text-muted:#94a3b8;--color-border:#1e293b;--color-primary-light:#172554;--color-success-bg:#064e3b;--color-danger-bg:#7f1d1d;--color-warning-bg:#78350f}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family-main);background-color:var(--color-bg-body);color:var(--color-text-main);-webkit-font-smoothing:antialiased;line-height:1.5}a{color:inherit;text-decoration:none}button{cursor:pointer;transition:all var(--transition-normal);background:0 0;border:none;font-family:inherit}.app-layout{flex-direction:column;height:100vh;display:flex;overflow:hidden}.mobile-header{background-color:var(--color-bg-surface);border-bottom:1px solid var(--color-border);z-index:100;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.mobile-logo{color:var(--color-primary);background:linear-gradient(135deg, var(--color-primary), #60a5fa);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.25rem;font-weight:700}.menu-toggle{border-radius:var(--radius-md);width:2.5rem;height:2.5rem;color:var(--color-text-main);background-color:var(--color-bg-body);justify-content:center;align-items:center;display:flex}.app-sidebar{background-color:var(--color-bg-surface);border-right:1px solid var(--color-border);z-index:200;flex-direction:column;justify-content:space-between;width:280px;transition:transform .3s ease-in-out;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.app-sidebar.open{transform:translate(0)}.sidebar-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:150;opacity:0;visibility:hidden;background-color:#00000080;transition:all .3s ease-in-out;position:fixed;inset:0}.sidebar-overlay.visible{opacity:1;visibility:visible}.app-main{background-color:var(--color-bg-body);flex:1;padding:1rem;overflow-y:auto}@media (width>=1024px){.app-layout{flex-direction:row}.mobile-header{display:none}.app-sidebar{z-index:auto;position:static;transform:none}.sidebar-overlay{display:none}.app-main{padding:1.25rem 2rem}}.sidebar-header{padding:1.5rem}.sidebar-title{color:var(--color-primary);background:linear-gradient(135deg, var(--color-primary), #60a5fa);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.5rem;font-weight:700}.sidebar-nav{flex-direction:column;gap:.5rem;padding:0 1rem;display:flex}.nav-item{border-radius:var(--radius-md);color:var(--color-text-muted);transition:all var(--transition-normal);align-items:center;gap:.75rem;padding:.75rem 1rem;font-weight:500;display:flex}.nav-item:hover{background-color:var(--color-bg-body);color:var(--color-text-main);transform:translate(4px)}.nav-item.active{background-color:var(--color-primary);color:#fff;box-shadow:0 4px 12px #3b82f64d}.nav-section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);opacity:.7;margin-top:2rem;margin-bottom:.5rem;padding:0 1rem;font-size:.75rem;font-weight:700}.sidebar-footer{border-top:1px solid var(--color-border);padding:1rem}.user-profile{border-radius:var(--radius-md);background-color:var(--color-bg-body);align-items:center;gap:.75rem;margin-bottom:.5rem;padding:.75rem;display:flex}.user-avatar{border-radius:var(--radius-full);background-color:var(--color-primary);color:#fff;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:.875rem;font-weight:600;display:flex}.user-info{flex:1;overflow:hidden}.user-name{white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-main);font-size:.875rem;font-weight:600;overflow:hidden}.user-role{color:var(--color-text-muted);font-size:.75rem}.logout-btn{border-radius:var(--radius-md);width:100%;color:var(--color-danger);justify-content:center;align-items:center;gap:.5rem;padding:.5rem;font-weight:500;display:flex}.logout-btn:hover{background-color:var(--color-danger-bg)}.logout-btn:disabled{opacity:.6;cursor:not-allowed}.logout-btn:disabled:hover{background-color:#0000}.auth-container{background:linear-gradient(135deg, var(--color-bg-body) 0%, var(--color-primary-light) 100%);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}@media (width>=768px){.auth-container{padding:2rem}}.auth-card{background-color:var(--color-bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--color-border);width:100%;max-width:400px;padding:2.5rem}.auth-card h1{text-align:center;margin-bottom:.5rem;font-size:1.75rem}.auth-card p{text-align:center;color:var(--color-text-muted);margin-bottom:2rem;font-size:.875rem}.form-group{margin-bottom:1.25rem}.form-group label{margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.form-group input{border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-bg-body);width:100%;color:var(--color-text-main);transition:var(--transition-normal);padding:.75rem;font-family:inherit}.form-group input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #3b82f61a}.btn-primary{background-color:var(--color-primary);color:#fff;border-radius:var(--radius-md);justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.75rem;font-weight:600;display:flex}.btn-primary:hover{background-color:var(--color-primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.7;cursor:not-allowed;transform:none}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.text-center{text-align:center}
