:root{--cream: #FAF7F2;--cream-dark: #F2EDE3;--cream-darker: #E8E0D0;--navy: #1B2A4A;--navy-dark: #0F1A33;--navy-light: #2D3E63;--gold: #C4A265;--gold-light: #D9BE88;--charcoal: #3A3A3A;--text-secondary: #6B6B6B;--border: #D9D1C2;--error: #8B2A2A;--success: #2F6B3D;--font-serif: "Cormorant Garamond", "Garamond", serif;--font-sans: "Raleway", -apple-system, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--cream);color:var(--charcoal);font-family:var(--font-sans);font-weight:400;-webkit-font-smoothing:antialiased;min-height:100vh}h1,h2,h3,h4{font-family:var(--font-serif);color:var(--navy);font-weight:500;letter-spacing:.01em}h1{font-size:3rem;line-height:1.1}h2{font-size:2rem;line-height:1.2}h3{font-size:1.5rem;line-height:1.3}a{color:var(--navy);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s}a:hover{border-bottom-color:var(--gold)}button{font-family:var(--font-sans);cursor:pointer;border:none;background:none}input,select{font-family:var(--font-sans);font-size:.95rem;width:100%;padding:.75rem 1rem;background:var(--cream);border:1px solid var(--border);color:var(--charcoal);outline:none;transition:border-color .2s}input:focus,select:focus{border-color:var(--navy)}label{display:block;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:var(--navy);margin-bottom:.5rem;font-weight:500}.app-container{min-height:100vh;display:flex;flex-direction:column}.header{padding:1.5rem 3rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;background:var(--cream)}.brand{font-family:var(--font-serif);font-size:1.5rem;font-weight:500;letter-spacing:.05em;color:var(--navy)}.brand-mark{color:var(--gold);margin:0 .3em}.nav{display:flex;gap:2rem;align-items:center}.nav a{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--navy);font-weight:500}.nav button{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-secondary);font-weight:500}.nav button:hover{color:var(--navy)}.main{flex:1;padding:3rem;max-width:1100px;margin:0 auto;width:100%}.auth-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-art{background:var(--navy);color:var(--cream);padding:4rem;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-art:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 20% 30%,rgba(196,162,101,.15) 0%,transparent 50%),radial-gradient(ellipse at 80% 70%,rgba(196,162,101,.08) 0%,transparent 50%);pointer-events:none}.auth-art-content{position:relative;z-index:1}.auth-art h1{color:var(--cream);font-size:3.5rem;font-weight:400;font-style:italic;line-height:1.05;margin-bottom:1.5rem}.auth-art p{color:var(--cream-darker);font-size:1.05rem;line-height:1.7;max-width:32ch}.auth-art-footer{position:relative;z-index:1;font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;color:var(--gold-light)}.auth-form-wrap{display:flex;align-items:center;justify-content:center;padding:3rem;background:var(--cream)}.auth-form{width:100%;max-width:380px}.auth-form h2{font-size:2.25rem;margin-bottom:.5rem}.auth-form .tagline{color:var(--text-secondary);font-size:.95rem;margin-bottom:2.5rem}.form-row{margin-bottom:1.25rem}.btn-primary{width:100%;padding:.9rem 1.5rem;background:var(--navy);color:var(--cream);font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;transition:background .2s;margin-top:.5rem}.btn-primary:hover{background:var(--navy-dark)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{padding:.9rem 1.5rem;background:transparent;color:var(--navy);font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;border:1px solid var(--navy);transition:all .2s}.btn-secondary:hover{background:var(--navy);color:var(--cream)}.btn-text{font-size:.85rem;color:var(--text-secondary);letter-spacing:.02em}.btn-text:hover{color:var(--navy)}.auth-toggle{text-align:center;margin-top:2rem;font-size:.9rem;color:var(--text-secondary)}.auth-toggle button{color:var(--navy);font-weight:500;font-size:.9rem;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px}.page-header{margin-bottom:3rem;padding-bottom:2rem;border-bottom:1px solid var(--border)}.page-header h1{font-size:2.5rem;font-style:italic;font-weight:400;margin-bottom:.5rem}.page-header .subtitle{color:var(--text-secondary);font-size:1rem}.eyebrow{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:.75rem;font-weight:500}.card{background:var(--cream);border:1px solid var(--border);padding:2.5rem;margin-bottom:2rem}.card-header{margin-bottom:2rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border)}.card-header h2{font-size:1.75rem;font-style:italic;font-weight:400}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.form-grid .full{grid-column:1 / -1}.helper-text{font-size:.8rem;color:var(--text-secondary);margin-top:.5rem;font-style:italic}.form-actions{display:flex;gap:1rem;margin-top:2rem}.booking-list{display:flex;flex-direction:column;gap:1rem}.booking-item{display:grid;grid-template-columns:auto 1fr auto;gap:2rem;padding:1.5rem 2rem;background:var(--cream);border:1px solid var(--border);align-items:center;transition:border-color .2s}.booking-item:hover{border-color:var(--navy)}.booking-date{font-family:var(--font-serif);font-size:1.5rem;color:var(--navy);font-style:italic;line-height:1}.booking-date .month{font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;color:var(--gold);font-style:normal;font-family:var(--font-sans);display:block;margin-bottom:.3rem}.booking-meta .course{font-family:var(--font-serif);font-size:1.2rem;color:var(--navy);margin-bottom:.25rem}.booking-meta .window{font-size:.85rem;color:var(--text-secondary)}.status-badge{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;padding:.4rem .9rem;border:1px solid;font-weight:500}.status-queued{color:var(--navy);border-color:var(--navy)}.status-firing{color:var(--gold);border-color:var(--gold)}.status-booked{color:var(--success);border-color:var(--success);background:#edf5ee}.status-failed_other,.status-failed_no_slots{color:var(--error);border-color:var(--error)}.status-cancelled{color:var(--text-secondary);border-color:var(--border)}.empty-state{padding:4rem 2rem;text-align:center;border:1px dashed var(--border);color:var(--text-secondary)}.empty-state p{font-style:italic;font-family:var(--font-serif);font-size:1.2rem}.message{padding:1rem 1.25rem;margin-bottom:1.5rem;border-left:3px solid;font-size:.9rem}.message-error{border-color:var(--error);background:#f7ecec;color:var(--error)}.message-success{border-color:var(--success);background:#edf5ee;color:var(--success)}.credential-status{padding:1rem 1.25rem;background:var(--cream-dark);border-left:3px solid var(--gold);margin-bottom:2rem;font-size:.9rem}.credential-status strong{color:var(--navy)}.loading{text-align:center;padding:4rem;color:var(--text-secondary);font-style:italic;font-family:var(--font-serif);font-size:1.2rem}@media(max-width:768px){.auth-shell{grid-template-columns:1fr}.auth-art{display:none}.form-grid{grid-template-columns:1fr}.header{padding:1rem 1.5rem}.main{padding:1.5rem}.booking-item{grid-template-columns:1fr;gap:1rem}h1{font-size:2rem}.auth-form h2{font-size:1.75rem}}
