@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400&family=Source+Sans+3:wght@300;400;500;600&display=swap');

:root {
    --color-bg: #faf8f5; --color-surface: #ffffff; --color-primary: #8b5e3c;
    --color-primary-dark: #6b4226; --color-primary-light: #d4a574;
    --color-text: #2c2520; --color-text-muted: #7a6e63; --color-border: #e8e0d8;
    --color-success: #5a7c5a; --color-success-bg: #eef5ee;
    --color-error: #a04040; --color-error-bg: #fdf0f0;
    --color-warning: #b8860b; --color-warning-bg: #fefce8;
    --color-booked: #d4cfc9;
    --font-display: 'Cormorant Garamond', Georgia, serif;
    --font-body: 'Source Sans 3', 'Segoe UI', sans-serif;
    --radius: 10px; --shadow: 0 2px 16px rgba(44,37,32,0.06);
    --transition: 0.25s cubic-bezier(0.4,0,0.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased;}
.page-wrapper{min-height:100vh;display:flex;flex-direction:column;}
.container{width:100%;max-width:520px;margin:0 auto;padding:0 20px;}
.container--wide{max-width:720px;}

/* Header */
.site-header{background:rgba(255,255,255,0.92);border-bottom:1px solid var(--color-border);padding:20px 0;position:sticky;top:0;z-index:100;backdrop-filter:blur(12px);}
.header-inner{display:flex;justify-content:space-between;align-items:center;max-width:900px;margin:0 auto;padding:0 24px;}
.site-logo{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--color-primary);text-decoration:none;letter-spacing:-0.02em;}
.site-logo span{display:block;font-size:0.7rem;font-family:var(--font-body);font-weight:400;color:var(--color-text-muted);letter-spacing:0.15em;text-transform:uppercase;margin-top:2px;}
.header-nav{display:flex;align-items:center;gap:16px;}
.header-user{font-size:0.85rem;color:var(--color-text-muted);}
.header-user strong{color:var(--color-text);font-weight:600;}

.main-content{flex:1;padding:48px 0 60px;}

/* Card */
.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:40px 36px;animation:fadeUp .5s ease both;}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
.card-header{text-align:center;margin-bottom:32px;}
.card-header h1{font-family:var(--font-display);font-size:2rem;font-weight:700;color:var(--color-primary-dark);letter-spacing:-0.02em;line-height:1.2;}
.card-header p{color:var(--color-text-muted);font-size:0.95rem;margin-top:8px;}

/* Forms */
.form-group{margin-bottom:20px;}
.form-group label{display:block;font-size:0.8rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--color-text-muted);margin-bottom:6px;}
.form-control{width:100%;padding:12px 16px;font-family:var(--font-body);font-size:1rem;color:var(--color-text);background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:8px;transition:border-color var(--transition),box-shadow var(--transition);outline:none;}
.form-control:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(139,94,60,0.1);}
.form-control::placeholder{color:#b8aea4;}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 28px;font-family:var(--font-body);font-size:0.95rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all var(--transition);text-decoration:none;line-height:1;}
.btn--primary{background:var(--color-primary);color:#fff;width:100%;}
.btn--primary:hover{background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:0 4px 16px rgba(139,94,60,0.25);}
.btn--outline{background:transparent;color:var(--color-primary);border:1.5px solid var(--color-border);}
.btn--outline:hover{border-color:var(--color-primary);background:rgba(139,94,60,0.04);}
.btn--success{background:var(--color-success);color:#fff;}
.btn--success:hover{background:#4a6c4a;}
.btn--danger{background:var(--color-error);color:#fff;}
.btn--danger:hover{background:#8c3434;}
.btn--small{padding:8px 18px;font-size:0.85rem;}
.link-text{text-align:center;margin-top:20px;font-size:0.9rem;color:var(--color-text-muted);}
.link-text a{color:var(--color-primary);text-decoration:none;font-weight:500;transition:color var(--transition);}
.link-text a:hover{color:var(--color-primary-dark);text-decoration:underline;}

/* Messages */
.message{padding:14px 18px;border-radius:8px;margin-bottom:20px;font-size:0.9rem;line-height:1.5;}
.message--success{background:var(--color-success-bg);color:var(--color-success);border:1px solid rgba(90,124,90,0.2);}
.message--error{background:var(--color-error-bg);color:var(--color-error);border:1px solid rgba(160,64,64,0.2);}
.message--warning{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid rgba(184,134,11,0.2);}

/* Booking */
.booking-date-banner{text-align:center;padding:20px;background:linear-gradient(135deg,rgba(139,94,60,0.06),rgba(201,149,107,0.08));border-radius:var(--radius);margin-bottom:32px;border:1px solid rgba(139,94,60,0.1);}
.booking-date-banner .date-label{font-size:0.75rem;text-transform:uppercase;letter-spacing:0.15em;color:var(--color-text-muted);margin-bottom:4px;}
.booking-date-banner .date-value{font-family:var(--font-display);font-size:1.6rem;font-weight:700;color:var(--color-primary-dark);}

.time-zone{margin-bottom:32px;}.time-zone:last-child{margin-bottom:0;}
.time-zone-label{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--color-primary-dark);margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--color-border);}
.slots-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}

.slot-btn{padding:14px 8px;font-family:var(--font-body);font-size:0.95rem;font-weight:500;text-align:center;border:1.5px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:all var(--transition);}
.slot-btn:hover:not(.slot-btn--booked){border-color:var(--color-primary);background:rgba(139,94,60,0.04);transform:translateY(-1px);box-shadow:0 3px 12px rgba(139,94,60,0.12);}
.slot-btn--booked{background:var(--color-booked);border-color:transparent;color:#9a938c;cursor:not-allowed;text-decoration:line-through;opacity:0.5;}
.slot-btn--selected{border-color:var(--color-primary);background:var(--color-primary);color:#fff;box-shadow:0 3px 12px rgba(139,94,60,0.25);}
.slot-btn--your-booking{border-color:var(--color-success);background:var(--color-success-bg);color:var(--color-success);font-weight:600;cursor:default;opacity:1;text-decoration:none;}
.slot-btn--pending{border-color:var(--color-warning);background:var(--color-warning-bg);color:var(--color-warning);font-weight:600;cursor:default;opacity:0.85;text-decoration:none;}

.booking-confirm{margin-top:28px;text-align:center;}
.booking-confirm p{margin-bottom:16px;font-size:0.95rem;color:var(--color-text-muted);}
.booking-confirm strong{color:var(--color-primary-dark);font-family:var(--font-display);font-size:1.2rem;}

.existing-booking{text-align:center;padding:28px;border-radius:var(--radius);margin-bottom:28px;}
.existing-booking.status-pending{background:var(--color-warning-bg);border:1px solid rgba(184,134,11,0.2);}
.existing-booking.status-approved{background:var(--color-success-bg);border:1px solid rgba(90,124,90,0.2);}
.existing-booking .booking-icon{font-size:2.5rem;margin-bottom:12px;}
.existing-booking h3{font-family:var(--font-display);font-size:1.3rem;margin-bottom:4px;}
.existing-booking .booking-time{font-size:1.8rem;font-family:var(--font-display);font-weight:700;color:var(--color-primary-dark);margin:8px 0;}
.existing-booking .booking-date{color:var(--color-text-muted);font-size:0.9rem;}
.existing-booking .status-text{font-size:0.85rem;font-weight:600;margin-top:8px;padding:4px 14px;border-radius:100px;display:inline-block;}
.status-text.pending{background:rgba(184,134,11,0.1);color:var(--color-warning);}
.status-text.approved{background:rgba(90,124,90,0.1);color:var(--color-success);}
.cancel-section{margin-top:16px;padding-top:16px;border-top:1px solid rgba(0,0,0,0.06);}

/* Admin */
.admin-table{width:100%;border-collapse:collapse;margin-top:20px;font-size:0.9rem;}
.admin-table th,.admin-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--color-border);}
.admin-table th{font-size:0.75rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--color-text-muted);background:var(--color-bg);font-weight:600;}
.admin-table tr:hover td{background:rgba(139,94,60,0.02);}
.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;margin-bottom:28px;}
.stat-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;padding:20px;text-align:center;}
.stat-card .stat-value{font-family:var(--font-display);font-size:2rem;font-weight:700;color:var(--color-primary-dark);}
.stat-card .stat-label{font-size:0.8rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:0.08em;margin-top:4px;}
.badge{display:inline-block;padding:3px 10px;border-radius:100px;font-size:0.75rem;font-weight:600;}
.badge--success{background:var(--color-success-bg);color:var(--color-success);}
.badge--warning{background:var(--color-warning-bg);color:var(--color-warning);}
.badge--muted{background:#f0ece8;color:var(--color-text-muted);}
.admin-actions{display:flex;gap:6px;flex-wrap:wrap;}

/* ===== Footer with Map ===== */
.site-footer-full{background:var(--color-surface);border-top:1px solid var(--color-border);padding:40px 0 0;}
.footer-inner{max-width:720px;margin:0 auto;padding:0 20px;}
.footer-map-card{border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);margin-bottom:24px;}
.footer-map iframe{display:block;width:100%;height:200px;border:0;}
.footer-map-info{display:flex;align-items:center;gap:14px;padding:16px 20px;background:var(--color-bg);}
.footer-map-pin{font-size:1.5rem;}
.footer-map-info strong{color:var(--color-primary-dark);font-size:0.95rem;display:block;}
.footer-map-info span{color:var(--color-text-muted);font-size:0.85rem;}
.footer-map-link{margin-left:auto;font-size:0.85rem;color:var(--color-primary);font-weight:600;text-decoration:none;white-space:nowrap;}
.footer-map-link:hover{text-decoration:underline;}
.footer-bottom{text-align:center;padding:20px;color:var(--color-text-muted);font-size:0.8rem;border-top:1px solid var(--color-border);}

@media(max-width:560px){
    .card{padding:28px 22px;}.card-header h1{font-size:1.6rem;}
    .slots-grid{grid-template-columns:repeat(2,1fr);}
    .header-inner{flex-direction:column;gap:8px;}
    .admin-stats{grid-template-columns:1fr 1fr;}
    .admin-table{font-size:0.8rem;}.admin-table th,.admin-table td{padding:8px 10px;}
    .footer-map-info{flex-wrap:wrap;gap:10px;}
    .footer-map-link{margin-left:0;}
}
