@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";
:root{--color-bg:#faf9f6;--color-bg-card:#fff;--color-bg-hover:#f5f3ee;--color-bg-subtle:#f0ede6;--color-border:#e2dfd8;--color-border-strong:#c9c5bc;--color-text-primary:#1a1814;--color-text-secondary:#5c574f;--color-text-muted:#8a857d;--color-text-inverse:#fff;--color-accent:#2c5530;--color-accent-hover:#1e3d22;--color-accent-light:#e8f0e9;--color-status-available:#2c5530;--color-status-available-bg:#e8f0e9;--color-status-pending:#8b6914;--color-status-pending-bg:#fdf6e3;--color-status-booked:#a33b2c;--color-status-booked-bg:#fbe9e6;--color-status-inactive:#7a756d;--color-status-inactive-bg:#f0ede6;--color-error:#a33b2c;--color-error-bg:#fbe9e6;--color-success:#2c5530;--color-success-bg:#e8f0e9;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:.75rem;--font-size-sm:.8125rem;--font-size-base:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--space-xs:.25rem;--space-sm:.5rem;--space-md:.75rem;--space-lg:1rem;--space-xl:1.5rem;--space-2xl:2rem;--space-3xl:3rem;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--shadow-sm:0 1px 2px #1a18140f;--shadow-md:0 2px 8px #1a181414;--shadow-lg:0 4px 16px #1a18141a;--transition-fast:.15s ease;--transition-normal:.2s ease}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family);background-color:var(--color-bg);color:var(--color-text-primary);min-height:100vh;line-height:1.5}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}button{font-family:var(--font-family);cursor:pointer;font-size:var(--font-size-base);background:0 0;border:none}.page-container{max-width:1100px;padding:var(--space-xl) var(--space-xl);margin:0 auto}.header{background:var(--color-bg-card);border-bottom:1px solid var(--color-border);padding:var(--space-lg) var(--space-xl);z-index:100;position:sticky;top:0}.mobile-menu-btn{display:none}.header-inner{justify-content:space-between;align-items:center;max-width:1100px;margin:0 auto;display:flex}.header-brand{align-items:center;gap:var(--space-md);display:flex}.header-brand h1{font-size:var(--font-size-lg);color:var(--color-text-primary);letter-spacing:-.02em;font-weight:600}.header-brand span{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:400}.header-user{align-items:center;gap:var(--space-lg);display:flex}.header-user-name{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.header-nav{align-items:center;gap:var(--space-md);display:flex}.header-nav-link{font-size:var(--font-size-sm);color:var(--color-text-secondary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);transition:all var(--transition-fast);text-decoration:none}.header-nav-link:hover,.header-nav-link.active{background:var(--color-bg-hover);color:var(--color-text-primary);text-decoration:none}.btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);font-size:var(--font-size-sm);transition:all var(--transition-fast);white-space:nowrap;min-height:36px;font-weight:500;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn-secondary{background:var(--color-bg-card);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-border-strong)}.btn-danger{background:var(--color-error);color:var(--color-text-inverse)}.btn-danger:hover:not(:disabled){background:#8b3023}.btn-ghost{color:var(--color-text-secondary);padding:var(--space-xs) var(--space-sm)}.btn-ghost:hover:not(:disabled){color:var(--color-text-primary);background:var(--color-bg-hover)}.btn-sm{padding:var(--space-xs) var(--space-md);font-size:var(--font-size-xs);min-height:28px}.btn-lg{padding:var(--space-md) var(--space-xl);font-size:var(--font-size-md);min-height:44px}.card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl);transition:box-shadow var(--transition-normal)}.card:hover{box-shadow:var(--shadow-md)}.badge{font-size:var(--font-size-xs);letter-spacing:.02em;text-transform:uppercase;border-radius:100px;align-items:center;padding:2px 10px;font-weight:500;display:inline-flex}.badge-available{background:var(--color-status-available-bg);color:var(--color-status-available)}.badge-pending{background:var(--color-status-pending-bg);color:var(--color-status-pending)}.badge-booked{background:var(--color-status-booked-bg);color:var(--color-status-booked)}.badge-inactive{background:var(--color-status-inactive-bg);color:var(--color-status-inactive)}.badge-completed{background:var(--color-bg-subtle);color:var(--color-text-secondary)}.badge-rejected{background:var(--color-error-bg);color:var(--color-error)}.cabin-grid{gap:var(--space-xl);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.cabin-card{gap:var(--space-md);flex-direction:column;display:flex}.cabin-card-header{justify-content:space-between;align-items:flex-start;display:flex}.cabin-card-header h3{font-size:var(--font-size-lg);font-weight:600}.cabin-card-details{gap:var(--space-sm);flex-direction:column;display:flex}.cabin-card-detail{align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.cabin-card-detail .label{color:var(--color-text-muted);min-width:80px}.cabin-card-footer{padding-top:var(--space-md);border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-top:auto;display:flex}.active-booking-banner{background:var(--color-accent-light);border:1px solid var(--color-accent);border-radius:var(--radius-lg);padding:var(--space-xl);margin-bottom:var(--space-2xl)}.active-booking-banner.pending{background:var(--color-status-pending-bg);border-color:var(--color-status-pending)}.active-booking-banner h3{font-size:var(--font-size-md);margin-bottom:var(--space-md);font-weight:600}.active-booking-banner .booking-details{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.active-booking-banner .booking-detail{font-size:var(--font-size-sm)}.active-booking-banner .booking-detail .label{color:var(--color-text-muted);font-size:var(--font-size-xs);margin-bottom:2px;display:block}.active-booking-banner .banner-actions{margin-top:var(--space-lg);align-items:center;gap:var(--space-md);display:flex}.countdown{font-variant-numeric:tabular-nums;font-weight:500}.countdown.warning{color:var(--color-status-pending)}.countdown.danger{color:var(--color-error)}.form-group{gap:var(--space-xs);margin-bottom:var(--space-lg);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:500}.form-label .required{color:var(--color-error)}.form-input{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);font-family:var(--font-family);background:var(--color-bg-card);color:var(--color-text-primary);transition:border-color var(--transition-fast);min-height:38px}.form-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-light);outline:none}.form-input:disabled{background:var(--color-bg-subtle);color:var(--color-text-muted)}.form-input.error{border-color:var(--color-error)}.form-error{font-size:var(--font-size-xs);color:var(--color-error)}.form-select{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);font-family:var(--font-family);background:var(--color-bg-card);color:var(--color-text-primary);cursor:pointer;min-height:38px}.form-select:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-light);outline:none}.modal-overlay{z-index:1000;padding:var(--space-xl);animation:fadeIn var(--transition-fast);background:#1a181466;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-bg-card);border-radius:var(--radius-lg);width:100%;max-width:560px;max-height:85vh;box-shadow:var(--shadow-lg);animation:slideUp var(--transition-normal);overflow-y:auto}.modal-header{padding:var(--space-xl);border-bottom:1px solid var(--color-border);background:var(--color-bg-card);z-index:1;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.modal-header h2{font-size:var(--font-size-lg);font-weight:600}.modal-body{padding:var(--space-xl)}.modal-footer{padding:var(--space-lg) var(--space-xl);border-top:1px solid var(--color-border);justify-content:flex-end;gap:var(--space-md);background:var(--color-bg-card);display:flex;position:sticky;bottom:0}.alert{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-bottom:var(--space-lg)}.alert-error{background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error)}.alert-success{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success)}.alert-warning{background:var(--color-status-pending-bg);color:var(--color-status-pending);border:1px solid var(--color-status-pending)}.loading-container{padding:var(--space-3xl);justify-content:center;align-items:center;display:flex}.spinner{border:2.5px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin}.login-page{min-height:100vh;padding:var(--space-xl);justify-content:center;align-items:center;display:flex}.login-card{text-align:center;width:100%;max-width:400px}.login-card h1{font-size:var(--font-size-2xl);margin-bottom:var(--space-sm);letter-spacing:-.03em;font-weight:700}.login-card .subtitle{color:var(--color-text-secondary);font-size:var(--font-size-base);margin-bottom:var(--space-2xl)}.login-card .divider{align-items:center;gap:var(--space-md);margin:var(--space-xl) 0;color:var(--color-text-muted);font-size:var(--font-size-xs);display:flex}.login-card .divider:before,.login-card .divider:after{content:"";background:var(--color-border);flex:1;height:1px}.login-card .note{color:var(--color-text-muted);font-size:var(--font-size-xs);margin-top:var(--space-lg)}.google-btn-wrapper{margin-top:var(--space-lg);justify-content:center;display:flex}.section-title{font-size:var(--font-size-md);color:var(--color-text-primary);margin-bottom:var(--space-lg);font-weight:600}.page-title{font-size:var(--font-size-2xl);letter-spacing:-.03em;margin-bottom:var(--space-sm);font-weight:700}.page-subtitle{color:var(--color-text-secondary);font-size:var(--font-size-base);margin-bottom:var(--space-2xl)}.empty-state{text-align:center;padding:var(--space-3xl) var(--space-xl);color:var(--color-text-muted)}.empty-state h3{font-size:var(--font-size-md);margin-bottom:var(--space-sm);color:var(--color-text-secondary);font-weight:500}.empty-state p{font-size:var(--font-size-sm)}.group-members-section{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg);background:var(--color-bg)}.group-member-row{gap:var(--space-md);padding-bottom:var(--space-md);margin-bottom:var(--space-md);border-bottom:1px solid var(--color-border);grid-template-columns:1fr 1fr;display:grid}.group-member-row:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.group-member-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-sm);grid-column:1/-1;font-weight:500}.table-responsive{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.history-table{border-collapse:separate;border-spacing:0;width:100%}.history-table th{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;padding:var(--space-md) var(--space-lg);text-align:left;border-bottom:1px solid var(--color-border);background:var(--color-bg);white-space:nowrap;font-weight:500}.history-table td{font-size:var(--font-size-sm);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border);white-space:nowrap}.history-table tr:hover td{background:var(--color-bg-hover)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:768px){.page-container{padding:var(--space-lg) var(--space-md)}.cabin-grid{grid-template-columns:1fr}.header-inner{flex-direction:row;justify-content:space-between;align-items:center}.mobile-menu-btn{color:var(--color-text-primary);padding:var(--space-xs);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.header-user{background:var(--color-bg-card);width:100%;padding:var(--space-md);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-md);gap:var(--space-md);flex-direction:column;align-items:stretch;display:none;position:absolute;top:100%;left:0}.header-user.open{display:flex}.header-nav{flex-direction:column;width:100%}.header-nav-link{text-align:center;width:100%}.header-user-name{text-align:center;width:100%;padding:var(--space-sm) 0;display:block}.modal{border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-width:100%;max-height:95vh}.modal-overlay{align-items:flex-end;padding:0}.group-member-row,.active-booking-banner .booking-details{grid-template-columns:1fr}}.rules-section{margin-top:var(--space-3xl);padding:var(--space-xl);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.rules-section h3{font-size:var(--font-size-lg);margin-bottom:var(--space-md);color:var(--color-text-primary);font-weight:600}.rules-section ul{color:var(--color-text-secondary);list-style-position:inside}.rules-section li{margin-bottom:var(--space-sm);font-size:var(--font-size-sm)}
