:root{--primary-color:#4a90e2;--primary-dark:#3a7bc8;--secondary-color:#7c3aed;--success-color:#22c55e;--warning-color:#f59e0b;--error-color:#ef4444;--text-primary:#1f2937;--text-secondary:#6b7280;--text-light:#9ca3af;--background:#f9fafb;--surface:#fff;--border-color:#e5e7eb;--border-radius:8px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}*{box-sizing:border-box;margin:0;padding:0}body,html{max-width:100vw;overflow-x:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:var(--background);color:var(--text-primary);line-height:1.5}a{color:var(--primary-color);text-decoration:none}a:hover{text-decoration:underline}input,select,textarea{font-family:inherit;font-size:1rem;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:var(--border-radius);width:100%;transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(74,144,226,.15)}input:disabled,select:disabled,textarea:disabled{background-color:var(--background);cursor:not-allowed}label{display:block;margin-bottom:.5rem;color:var(--text-primary)}button,label{font-weight:500}button{font-family:inherit;font-size:1rem;padding:.75rem 1.5rem;border:none;border-radius:var(--border-radius);cursor:pointer;transition:opacity .2s,transform .1s}button:disabled{opacity:.6;cursor:not-allowed}button:hover:not(:disabled){opacity:.9}button:active:not(:disabled){transform:scale(.98)}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-secondary{background-color:var(--text-secondary);color:#fff}.btn-outline{background-color:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.btn-outline:hover:not(:disabled){background-color:var(--background)}.btn-danger{background-color:var(--error-color);color:#fff}.btn-success{background-color:var(--success-color);color:#fff}.card{background-color:var(--surface);border-radius:var(--border-radius);box-shadow:var(--shadow);padding:1.5rem}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-secondary{color:var(--text-secondary)}.text-light{color:var(--text-light)}.text-success{color:var(--success-color)}.text-warning{color:var(--warning-color)}.text-error{color:var(--error-color)}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:1rem}.mb-4{margin-bottom:1.5rem}.mb-5{margin-bottom:2rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:1rem}.mt-4{margin-top:1.5rem}.mt-5{margin-top:2rem}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:1rem}.gap-4{gap:1.5rem}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 1rem}.page{min-height:100vh;padding:2rem 0}.spinner{width:24px;height:24px;border:3px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.alert{padding:1rem;border-radius:var(--border-radius);margin-bottom:1rem}.alert-error{background-color:#fef2f2;color:var(--error-color);border:1px solid #fecaca}.alert-success{background-color:#f0fdf4;color:var(--success-color);border:1px solid #bbf7d0}.alert-warning{background-color:#fffbeb;color:var(--warning-color);border:1px solid #fde68a}.form-group{margin-bottom:1.25rem}.form-error{color:var(--error-color);font-size:.875rem;margin-top:.25rem}.table-container{overflow-x:auto}table{width:100%;border-collapse:collapse}td,th{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-color)}th{font-weight:600}th,tr:hover{background-color:var(--background)}.badge{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500;text-transform:uppercase}.badge-pending{background-color:#fef3c7;color:#92400e}.badge-confirmed{background-color:#dbeafe;color:#1e40af}.badge-checked-in{background-color:#d1fae5;color:#065f46}.badge-checked-out{background-color:#e5e7eb;color:#374151}.badge-cancelled{background-color:#fee2e2;color:#991b1b}@media (max-width:768px){.container{padding:0 .75rem}.card{padding:1rem}button{padding:.625rem 1.25rem}}