.navbar{background:#1e293b;color:#fff;padding:.75rem 0;box-shadow:0 1px 3px #0000001a}.navbar-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.navbar-brand{display:flex;align-items:center;gap:.75rem;font-weight:700;font-size:1.25rem;color:#fff;text-decoration:none}.navbar-brand:hover{color:#93c5fd;text-decoration:none}.navbar-brand:hover .navbar-brand-text{color:#93c5fd}.navbar-logo{height:36px;width:auto;max-width:120px;object-fit:contain;display:block}.navbar-brand-text{color:inherit}.navbar-links{display:flex;align-items:center;gap:1rem}.navbar-links a{color:#e2e8f0;text-decoration:none}.navbar-links a:hover{color:#fff;text-decoration:none}.navbar-user{font-size:.875rem;color:#94a3b8}.btn-sm{padding:.35rem .75rem;font-size:.875rem}.navbar .btn-secondary{background:#334155;color:#e2e8f0}.navbar .btn-secondary:hover{background:#475569;color:#fff}.auth-page{min-height:calc(100vh - 120px);display:flex;align-items:center;justify-content:center;padding:2rem}.auth-card{width:100%;max-width:400px;padding:2rem}.auth-card h1{margin:0 0 1.5rem;font-size:1.5rem;text-align:center}.auth-footer{margin-top:1.5rem;text-align:center;font-size:.875rem;color:#64748b}.btn-block{width:100%;margin-top:.5rem}.movie-list-page{min-height:100%}.dashboard-hero{background:linear-gradient(135deg,#0f172a,#1e293b);color:#fff;padding:2.5rem 0;margin-bottom:2rem;box-shadow:0 4px 6px -1px #0f172a26}.dashboard-title{margin:0 0 .35rem;font-size:1.75rem;font-weight:700;letter-spacing:-.02em}.dashboard-subtitle{margin:0;font-size:1rem;color:#94a3b8;font-weight:400}.movie-list-content{margin-top:0}.dashboard-empty{padding:3rem 2rem;text-align:center;color:#64748b}.movie-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.5rem}.movie-card{text-decoration:none;color:inherit;transition:transform .2s ease,box-shadow .2s ease;display:flex;flex-direction:column}.movie-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px -8px #0f172a1f;text-decoration:none;color:inherit}.movie-card-poster-wrap{overflow:hidden;border-radius:10px 10px 0 0;background:#f1f5f9}.movie-poster{width:100%;aspect-ratio:2/3;object-fit:cover;display:block}.movie-poster-placeholder{width:100%;aspect-ratio:2/3;background:#e2e8f0;display:flex;align-items:center;justify-content:center;font-size:.875rem;color:#64748b}.movie-card-body{padding:1.25rem;flex:1;display:flex;flex-direction:column}.movie-title{margin:0 0 .35rem;font-size:1.05rem;font-weight:600;line-height:1.3;color:#0f172a}.movie-meta{margin:0 0 .5rem;font-size:.8rem;color:#64748b}.movie-card-cta{font-size:.8rem;font-weight:500;color:#2563eb;margin-top:auto}.back-link{display:inline-block;margin-bottom:1rem;font-size:.875rem}.movie-detail-header{display:flex;gap:2rem;padding:1.5rem;margin-bottom:2rem;flex-wrap:wrap}.movie-detail-left{display:flex;gap:1.5rem;flex-wrap:wrap;flex:1;min-width:0}.movie-detail-poster{flex-shrink:0;width:200px}.movie-detail-trailer{flex-shrink:0;width:calc(300px * 16 / 9);height:300px}.trailer-embed-wrapper{position:relative;width:100%;height:100%;overflow:hidden;border-radius:8px;background:#0f0f0f}.trailer-iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.trailer-placeholder{width:100%;height:100%;min-height:300px;aspect-ratio:16/9;background:#e2e8f0;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#64748b;font-size:.875rem}.movie-detail-poster img{width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:8px}.poster-placeholder{width:100%;aspect-ratio:2/3;background:#e2e8f0;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#64748b;font-size:.875rem}.movie-detail-info h1{margin:0 0 .5rem;font-size:1.5rem}.movie-detail-info .movie-meta{color:#64748b;font-size:.9rem;margin-bottom:1rem}.movie-description{margin:0 0 1rem;font-size:.9rem;line-height:1.5;color:#475569}.btn-book-tickets{display:inline-block;padding:.75rem 2rem;font-size:1rem;font-weight:600;background:#dc2626;color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background .2s}.btn-book-tickets:hover{background:#b91c1c}.showtimes-section h2{margin-bottom:1rem;font-size:1.25rem}.showtimes-by-day{display:flex;flex-direction:column;gap:1.5rem}.showtime-day-group{border-bottom:1px solid #e5e7eb;padding-bottom:1rem}.showtime-day-group:last-child{border-bottom:none}.showtime-day-label{font-size:1rem;font-weight:600;margin:0 0 .75rem;color:#1e293b}.showtime-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.showtime-card{padding:1rem;text-decoration:none;color:inherit;transition:background .2s,box-shadow .2s}.showtime-card:hover{background:#f8fafc;box-shadow:0 2px 8px #00000014;text-decoration:none;color:inherit}.showtime-venue{font-weight:600;font-size:.9rem;margin-bottom:.25rem}.showtime-date,.showtime-time{font-size:.85rem;color:#64748b}.movie-showtimes-page{padding-bottom:2rem}.showtimes-movie-title{font-size:1.5rem;margin:0 0 .5rem}.showtimes-movie-meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.9rem;color:#64748b;margin-bottom:1.5rem}.date-selector-bar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e5e7eb}.date-tab{display:flex;flex-direction:column;align-items:center;min-width:70px;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:8px;background:#fff;cursor:pointer;font-size:.8rem;transition:border-color .2s,background .2s}.date-tab:hover{border-color:#94a3b8;background:#f8fafc}.date-tab-active{border-color:#dc2626;background:#fef2f2;color:#dc2626;font-weight:600}.date-tab-weekday{font-size:.7rem;opacity:.9}.date-tab-day{font-size:1.1rem;font-weight:600}.date-tab-month{font-size:.7rem;opacity:.9}.showtimes-legend{margin-bottom:1rem;font-size:.8rem;color:#64748b}.legend-available{display:inline-flex;align-items:center;gap:.35rem}.legend-available:before{content:"";width:8px;height:8px;border-radius:50%;background:#22c55e}.theatres-list{display:flex;flex-direction:column;gap:1.5rem}.theatre-card{padding:1.25rem}.theatre-name{font-size:1rem;font-weight:600;margin:0 0 1rem}.showtime-buttons{display:flex;flex-wrap:wrap;gap:.75rem}.showtime-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:90px;padding:.6rem 1rem;background:#dcfce7;border:1px solid #86efac;border-radius:8px;color:#166534;font-weight:500;text-decoration:none;transition:background .2s,border-color .2s}.showtime-btn:hover{background:#bbf7d0;border-color:#4ade80;color:#14532d;text-decoration:none}.showtime-btn-time{font-size:.95rem}.showtime-btn-format{font-size:.75rem;opacity:.9;margin-top:.15rem}.theatre-policy{font-size:.8rem;color:#64748b;margin:.75rem 0 0}.seat-map{padding:1rem;background:#f8fafc;border-radius:8px;max-width:500px;margin:0 auto}.screen-label{text-align:center;font-size:.875rem;color:#64748b;margin-bottom:1rem;padding:.25rem;background:#e2e8f0;border-radius:4px}.seat-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.row-label{width:1.5rem;font-weight:600;font-size:.875rem}.seats{display:flex;gap:4px;flex-wrap:wrap}.seat{width:32px;height:32px;border-radius:4px;border:1px solid #cbd5e1;background:#fff;font-size:.75rem;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}.seat:hover:not(.seat-disabled):not(:disabled){border-color:#2563eb;background:#eff6ff}.seat-available{background:#dcfce7;border-color:#86efac}.seat-selected{background:#15803d;border-color:#166534;color:#fff}.seat-locked{background:#fef3c7;border-color:#fcd34d}.seat-booked,.seat-disabled{background:#f1f5f9;border-color:#cbd5e1;color:#94a3b8;cursor:not-allowed}.seat-legend{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem;font-size:.75rem;color:#64748b}.legend-item{display:inline-flex;align-items:center;gap:.25rem}.legend-item:before{content:"";width:14px;height:14px;border-radius:2px;border:1px solid #cbd5e1}.legend-item.seat-available:before{background:#dcfce7;border-color:#86efac}.legend-item.seat-selected:before{background:#15803d;border-color:#166534}.legend-item.seat-locked:before{background:#fef3c7;border-color:#fcd34d}.legend-item.seat-booked:before{background:#f1f5f9;border-color:#cbd5e1}.seat-count-modal-overlay{position:fixed;inset:0;background:#00000080;z-index:100}.seat-count-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:101;padding:2rem;max-width:360px;width:90%}.seat-count-modal-title{font-size:1.25rem;margin:0 0 1.25rem;text-align:center}.seat-count-modal .seat-count-buttons{justify-content:center;margin-bottom:1rem}.seat-count-modal-price{font-size:.875rem;color:#64748b;margin-bottom:1.25rem;text-align:center}.seat-count-modal-cta{width:100%}.seat-selection-page h1{margin-bottom:.5rem;font-size:1.5rem}.movie-info{margin-bottom:1rem;color:#64748b;font-size:.9rem}.seat-selection-page .error-msg{margin-bottom:1rem}.seat-selection-layout{display:flex;gap:2rem;align-items:flex-start;flex-wrap:wrap}.seat-map-wrap{flex:1;min-width:280px}.seat-options-card{flex-shrink:0;width:220px;padding:1.25rem}.change-seats-btn{margin-bottom:1rem;width:100%}.seat-count-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.seat-count-btn{width:36px;height:36px;padding:0;border-radius:6px;border:1px solid #d1d5db;background:#fff;font-weight:500}.seat-count-btn:hover{border-color:#2563eb;background:#eff6ff}.seat-count-active{background:#2563eb;border-color:#1d4ed8;color:#fff}.seat-count-label{font-size:.875rem;color:#64748b;margin-bottom:1rem}.proceed-btn{width:100%}@media(max-width:640px){.seat-selection-layout{flex-direction:column}.seat-options-card{width:100%;max-width:400px}}.confirmation-page h1{margin-bottom:1rem;font-size:1.5rem}.confirm-summary{padding:1.5rem;margin-bottom:1rem;max-width:400px}.confirm-summary p{margin:.25rem 0}.confirm-actions{display:flex;gap:.75rem}.confirmation-success{padding:2rem;max-width:400px;margin:0 auto;text-align:center}.confirmation-success h1{color:#16a34a;margin-bottom:1rem}.booking-id{font-size:1.1rem;margin-bottom:1rem}.confirmation-success .meta{color:#64748b;font-size:.9rem}.confirmation-success .btn{margin-top:1.5rem}.my-bookings-page h1{margin-bottom:1.5rem;font-size:1.5rem}.bookings-list{display:flex;flex-direction:column;gap:1rem}.booking-card{padding:1.25rem;max-width:500px}.booking-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.booking-id{font-weight:600;font-size:1rem}.booking-status{font-size:.75rem;padding:.2rem .5rem;border-radius:4px;text-transform:capitalize}.status-confirmed{background:#dcfce7;color:#166534}.status-cancelled{background:#fee2e2;color:#991b1b}.booking-movie{font-weight:500;margin:.25rem 0}.booking-meta,.booking-seats,.booking-amount{font-size:.875rem;color:#64748b;margin:.25rem 0}.admin-movies-page{padding-top:.5rem}.admin-movies-page h1{margin-bottom:.35rem;font-size:1.5rem;font-weight:700;color:#0f172a}.admin-hint{color:#64748b;font-size:.9rem;margin-bottom:1.5rem}.admin-movie-form{padding:1.75rem;max-width:620px;margin-bottom:2rem}.admin-movie-form .form-group{margin-bottom:1rem}.admin-movie-form textarea{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-family:inherit;resize:vertical}.admin-movie-form textarea:focus{outline:none;border-color:#2563eb}.success-msg{color:#16a34a;font-size:.9rem;margin-bottom:.5rem}.admin-movies-list h2{font-size:1.1rem;margin-bottom:.75rem}.movies-list-simple{list-style:none;padding:0;margin:0}.movies-list-simple li{padding:.5rem 0;border-bottom:1px solid #e5e7eb;font-size:.9rem}.movies-list-simple li:last-child{border-bottom:none}.admin-movie-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.admin-movie-item span{flex:1;min-width:200px}.admin-movie-item-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.form-actions-inline{margin-bottom:1rem}.btn-edit{color:#2563eb;border-color:#93c5fd;background:#eff6ff}.btn-edit:hover{background:#dbeafe;border-color:#2563eb;color:#1d4ed8}.btn-delete{flex-shrink:0;color:#dc2626;border-color:#fca5a5;background:#fef2f2}.btn-delete:hover{background:#fee2e2;border-color:#dc2626;color:#b91c1c}.admin-showtimes-page{padding-top:.5rem}.admin-showtimes-page h1{margin-bottom:.35rem;font-size:1.5rem;font-weight:700;color:#0f172a}.admin-showtimes-page .admin-hint{color:#64748b;font-size:.9rem;margin-bottom:1.5rem}.admin-showtime-form{padding:1.75rem;max-width:620px;margin-bottom:2rem}.admin-showtime-form .form-group{margin-bottom:1rem}.admin-showtime-form select{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:1rem}.admin-showtime-form select:focus{outline:none;border-color:#2563eb}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:600px){.form-row{grid-template-columns:1fr}}.admin-showtimes-list h2{font-size:1.1rem;margin-bottom:.75rem}.screen-search-wrap{margin-bottom:1rem;max-width:320px}.screen-search-label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.35rem;color:#374151}.screen-search-input{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem}.screen-search-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb33}.screen-search-input::placeholder{color:#9ca3af}.showtimes-list-simple{list-style:none;padding:0;margin:0}.showtimes-list-simple li{padding:.5rem 0;border-bottom:1px solid #e5e7eb;font-size:.9rem}.showtimes-list-simple li:last-child{border-bottom:none}.admin-showtime-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.admin-showtime-item span{flex:1;min-width:200px}.btn-delete-showtime{flex-shrink:0;color:#dc2626;border-color:#fca5a5;background:#fef2f2}.btn-delete-showtime:hover{background:#fee2e2;border-color:#dc2626;color:#b91c1c}.admin-bookings-page{padding-top:.5rem}.admin-bookings-page h1{margin-bottom:1rem;font-size:1.5rem;font-weight:700;color:#0f172a}.admin-bookings-list{display:flex;flex-direction:column;gap:1rem}.admin-booking-card{padding:1.25rem;max-width:600px}.admin-booking-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.admin-booking-card .booking-id{font-weight:600;font-size:1rem}.admin-booking-card .booking-status{font-size:.75rem;padding:.2rem .5rem;border-radius:4px;text-transform:capitalize}.admin-booking-customer,.admin-booking-movie,.admin-booking-showtime,.admin-booking-seats,.admin-booking-amount,.admin-booking-date{font-size:.9rem;margin:.35rem 0;color:#374151}.admin-booking-card strong{color:#1f2937;margin-right:.25rem}*{box-sizing:border-box}:root{--color-bg: #f8fafc;--color-surface: #ffffff;--color-border: #e2e8f0;--color-text: #0f172a;--color-text-muted: #64748b;--color-primary: #0f172a;--color-primary-hover: #1e293b;--color-accent: #2563eb;--color-accent-hover: #1d4ed8;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 4px 6px -1px rgba(15, 23, 42, .08), 0 2px 4px -2px rgba(15, 23, 42, .05);--shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, .08), 0 4px 6px -4px rgba(15, 23, 42, .05);--radius: 10px;--radius-sm: 6px}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--color-bg);color:var(--color-text);line-height:1.5}#root{min-height:100vh}main{min-height:calc(100vh - 56px);padding-bottom:2rem}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}input,button{font-size:1rem}.container{max-width:1200px;margin:0 auto;padding:1.25rem 1.5rem}.error-msg{color:#dc2626;font-size:.875rem;margin-top:.25rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.25rem;font-weight:500;color:var(--color-text)}.form-group input{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.form-group input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px #2563eb33}.btn{display:inline-block;padding:.5rem 1rem;border-radius:var(--radius-sm);border:none;font-weight:500;transition:background .2s,box-shadow .2s}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover{background:var(--color-accent-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:#f1f5f9;border-color:#cbd5e1}.btn:disabled{opacity:.6;cursor:not-allowed}.card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow:hidden;border:1px solid var(--color-border)}
