.login-container{align-items:center;background:linear-gradient(135deg,#1a365d,#2d5986 50%,#1a365d);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:480px;overflow:hidden;width:100%}.login-header{background:linear-gradient(135deg,#2d5986,#1a365d);color:#fff;padding:30px;text-align:center}.login-header h1{font-size:28px;margin:0}.login-header p{font-size:14px;margin:8px 0 0;opacity:.85}.login-content{padding:30px}.login-description{color:#555;margin-bottom:20px}.login-description,.login-error{font-size:14px;text-align:center}.login-error{background:#fee;border:1px solid #fcc;border-radius:8px;color:#c00;margin-bottom:16px;padding:10px 14px}.form-group{flex:1 1}.form-group label{color:#444;margin-bottom:4px}.form-group input{border:1px solid #ddd;border-radius:8px;box-sizing:border-box;font-size:14px;padding:10px 12px;transition:border-color .2s;width:100%}.form-group input:focus{border-color:#2d5986;box-shadow:0 0 0 3px #2d598626;outline:none}.form-row{display:flex;gap:12px}.form-section-label{border-bottom:1px solid #e8e8e8;color:#2d5986;font-size:13px;font-weight:700;margin:18px 0 8px;padding-bottom:4px}.login-btn{background:linear-gradient(135deg,#2d5986,#1a365d);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:8px;padding:12px;transition:opacity .2s;width:100%}.login-btn:hover{opacity:.9}.login-btn:disabled{cursor:not-allowed;opacity:.6}.signup-btn{background:linear-gradient(135deg,#2e7d32,#1b5e20)}.toggle-link{color:#666;font-size:14px;margin-top:16px;text-align:center}.toggle-link button{background:none;border:none;color:#2d5986;cursor:pointer;font-size:14px;font-weight:600;padding:0;text-decoration:underline}.toggle-link button:hover{color:#1a365d}.login-features{border-top:1px solid #eee;margin-top:24px;padding-top:20px}.login-features h3{color:#444;font-size:14px;margin:0 0 10px}.login-features ul{list-style:none;margin:0;padding:0}.login-features li{color:#666;font-size:13px;padding:4px 0}.login-footer{background:#f8f8f8;border-top:1px solid #eee;padding:16px;text-align:center}.login-footer p{color:#999;font-size:12px;margin:0}@media (max-width:500px){.form-row{flex-direction:column;gap:0}.login-card{border-radius:12px}.login-content{padding:20px}}.login-info{background:#e8f2ff;border:1px solid #b3d1f5;border-radius:6px;color:#049;font-size:14px;line-height:1.5;margin-bottom:16px;padding:12px 14px}.text-link{background:none;border:none;color:#06c;cursor:pointer;font-size:inherit;font-weight:500;padding:0;text-decoration:underline}.text-link:hover{color:#049}:root{--blue-primary:#06c;--blue-dark:#049;--blue-darker:#037;--blue-light:#e8f2ff;--blue-border:#b3d1f5;--text-dark:#1a2a3a;--text-mid:#4a5a6a;--text-light:#7a8a9a;--white:#fff;--shadow-sm:0 2px 8px #0066cc1a;--shadow-md:0 4px 16px #0066cc24}.dashboard{animation:fadeIn .3s}.dashboard-header{align-items:flex-start;border-bottom:2px solid #b3d1f5;border-bottom:2px solid var(--blue-border);display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.dashboard-title h2{color:#037;color:var(--blue-darker);font-size:26px;margin-bottom:4px}.dashboard-title p{color:#4a5a6a;color:var(--text-mid);font-size:14px}.header-actions{align-items:center;display:flex;gap:10px}.help-btn{background:#06c;background:var(--blue-primary);border:none;border-radius:6px;color:#fff;color:var(--white);cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:background .2s;white-space:nowrap}.help-btn:hover{background:#049;background:var(--blue-dark)}.help-panel{animation:slideDown .3s;background:#e8f2ff;background:var(--blue-light);border:2px solid #06c;border:2px solid var(--blue-primary);border-radius:8px;box-shadow:0 2px 8px #0066cc1a;box-shadow:var(--shadow-sm);margin-bottom:20px;padding:24px}.help-panel h3{color:#037;color:var(--blue-darker);font-size:18px;margin-bottom:16px}.help-section{border-bottom:1px solid #b3d1f5;border-bottom:1px solid var(--blue-border);margin-bottom:16px;padding-bottom:16px}.help-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.help-section h4{color:#049;color:var(--blue-dark);font-size:15px;margin-bottom:8px}.help-section p{color:#4a5a6a;color:var(--text-mid);font-size:14px;line-height:1.6;margin-bottom:4px}.moorings-list{background:#fff;background:var(--white);border:1px solid #b3d1f5;border:1px solid var(--blue-border);border-radius:10px;box-shadow:0 2px 8px #0066cc1a;box-shadow:var(--shadow-sm);padding:20px}.harbor-section{margin-bottom:28px}.harbor-section h3{background:#06c;background:var(--blue-primary);border-radius:4px;color:#fff;color:var(--white);display:inline-block;font-size:13px;font-weight:700;letter-spacing:.05em;margin-bottom:12px;padding:6px 12px;text-transform:uppercase}.moorings-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.mooring-card{background:#fff;background:var(--white);border:2px solid #ddd;border-radius:10px;padding:15px;transition:all .2s}.mooring-card.has-boats{background:#fff8f0;border-color:#ff9800}.mooring-card.available{background:#f1f8f4;border-color:#4caf50}.mooring-card:hover{box-shadow:0 4px 16px #0066cc24;box-shadow:var(--shadow-md);transform:translateY(-2px)}.mooring-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.mooring-header h4{color:#1a2a3a;color:var(--text-dark);font-size:16px;font-weight:700}.mooring-boats{margin-bottom:8px}.boat-entry{background:#fff;background:var(--white);border:1px solid #ddd;border-radius:6px;margin-bottom:10px;padding:12px}.boat-entry.boat-member_boat_1,.boat-entry.boat-member_boat_2{border-left:4px solid #4caf50}.boat-entry.boat-member_on_other_boat{background:#fffbf0;border-left:4px solid #ff9800}.boat-entry.boat-member_on_my_burgee{background:#e8f2ff;background:var(--blue-light);border-left:4px solid #06c;border-left:4px solid var(--blue-primary)}.boat-entry.boat-unknown_poaching{background:#fff5f5;border-left:4px solid #dc3545}.badge{border-radius:4px;display:inline-block;font-size:11px;font-weight:700;letter-spacing:.02em;margin-bottom:8px;padding:3px 8px}.badge.danger{background:#dc3545}.badge.danger,.badge.warning{color:#fff;color:var(--white)}.badge.warning{background:#ff9800}.badge.info{background:#06c;background:var(--blue-primary);color:#fff;color:var(--white)}.boat-info{font-size:13px}.boat-info p{color:#4a5a6a;color:var(--text-mid);margin-bottom:6px}.boat-info strong{color:#1a2a3a;color:var(--text-dark)}.departure-change-inline{background:#e8f2ff;background:var(--blue-light);border:1px solid #b3d1f5;border:1px solid var(--blue-border);border-radius:4px;margin:6px 0 8px;padding:8px}.departure-change-inline label{color:#049;color:var(--blue-dark);display:block;font-size:12px;font-weight:600;margin-bottom:4px}.departure-change-inline input[type=date]{border:1px solid #b3d1f5;border:1px solid var(--blue-border);border-radius:4px;font-size:13px;margin-bottom:6px;padding:6px 8px;width:100%}.departure-change-actions{display:flex;gap:6px}.change-date-link{background:none;border:none;color:#06c;color:var(--blue-primary);cursor:pointer;font-size:11px;font-weight:600;margin-left:6px;padding:0;text-decoration:underline;vertical-align:middle}.change-date-link:hover{color:#037;color:var(--blue-darker)}.boat-photos{background:#f9f9f9;border-radius:4px;margin:10px 0;padding:10px}.view-photos-btn{background:none;border:none;color:#06c;color:var(--blue-primary);cursor:pointer;font-size:12px;font-weight:600;padding:0}.view-photos-btn:hover{text-decoration:underline}.photos-gallery{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.uploaded-gallery{background:#e8f2ff;background:var(--blue-light);border:1px solid #b3d1f5;border:1px solid var(--blue-border);border-radius:6px;margin-bottom:12px;padding:10px}.photo-thumb{border:2px solid #b3d1f5;border:2px solid var(--blue-border);border-radius:4px;cursor:pointer;height:64px;object-fit:cover;transition:transform .15s;width:64px}.photo-thumb:hover{transform:scale(1.05)}.boat-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.mooring-empty{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:80px;text-align:center}.mooring-empty p{color:#7a8a9a;color:var(--text-light);margin-bottom:10px}.check-in-panel{animation:slideDown .3s;background:#fff;background:var(--white);border:2px solid #b3d1f5;border:2px solid var(--blue-border);border-radius:10px;box-shadow:0 4px 16px #0066cc24;box-shadow:var(--shadow-md);margin-bottom:20px;padding:22px}.check-in-panel h3{border-bottom:2px solid #b3d1f5;border-bottom:2px solid var(--blue-border);color:#037;color:var(--blue-darker);font-size:18px;margin-bottom:18px;padding-bottom:10px}.check-in-body{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:1fr 1fr}.boat-type-selector{background:#e8f2ff;background:var(--blue-light);border:1px solid #b3d1f5;border:1px solid var(--blue-border);border-radius:6px;padding:14px}.boat-type-selector h4{color:#049;color:var(--blue-dark);font-size:13px;font-weight:700;letter-spacing:.04em;margin-bottom:10px;text-transform:uppercase}.radio-group{display:flex;flex-direction:column;gap:8px}.radio-group label{align-items:center;border-radius:4px;color:#4a5a6a;color:var(--text-mid);cursor:pointer;display:flex;font-size:13px;padding:6px 8px;transition:background .15s}.radio-group label:hover{background:#b3d1f5;background:var(--blue-border)}.radio-group input[type=radio]{accent-color:#06c;accent-color:var(--blue-primary);cursor:pointer;margin-right:8px}.form-group{margin-bottom:14px}.form-group label{color:#1a2a3a;color:var(--text-dark);display:block;font-size:13px;font-weight:600;margin-bottom:5px}.form-group input,.form-group select,.form-group textarea{background:#fff;background:var(--white);border:1px solid #ccc;border-radius:5px;color:#1a2a3a;color:var(--text-dark);font-size:14px;padding:9px 11px;transition:border-color .2s,box-shadow .2s;width:100%}.form-group input:focus,.form-group textarea:focus{border-color:#06c;border-color:var(--blue-primary);box-shadow:0 0 0 3px #0066cc1f;outline:none}.form-group input[readonly]{background:#f4f4f4;color:#4a5a6a;color:var(--text-mid)}.form-group small{color:#7a8a9a;color:var(--text-light);display:block;font-size:12px;margin-top:4px}.info-box{background:#fffbf0;border-left:4px solid #ff9800;border-radius:4px;margin-bottom:14px;padding:12px}.info-box p{color:#666;font-size:12px;margin-bottom:4px}.info-box-blue{background:#e8f2ff;background:var(--blue-light);border-left:4px solid #06c;border-left:4px solid var(--blue-primary)}.info-box-blue p{color:#049;color:var(--blue-dark)}.form-actions{display:flex;gap:10px;margin-top:18px}.form-actions .btn{flex:1 1}.photo-upload-panel{border-color:#dc3545}.photo-upload-header{margin-bottom:16px}.photo-upload-header h3{border-bottom-color:#f5c6cb;color:#c0392b}.photo-upload-subtitle{color:#4a5a6a;color:var(--text-mid);font-size:13px;margin-top:6px}.photo-upload-area{align-items:center;background:#e8f2ff;background:var(--blue-light);border:2px dashed #b3d1f5;border:2px dashed var(--blue-border);border-radius:8px;display:flex;flex-direction:column;gap:8px;margin-bottom:16px;padding:20px;text-align:center}.photo-upload-area small{color:#7a8a9a;color:var(--text-light);font-size:12px}.btn-primary{background:var(--blue-primary);color:var(--white)}.btn-primary:hover:not(:disabled){background:var(--blue-dark)}.btn-danger,.btn-secondary{color:var(--white)}.btn-photo-upload{background:#e8f2ff;background:var(--blue-light);border:1px solid #b3d1f5;border:1px solid var(--blue-border);color:#06c;color:var(--blue-primary);cursor:pointer}.btn-photo-upload:hover{background:#b3d1f5;background:var(--blue-border)}.loading{color:var(--blue-primary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:900px){.check-in-body{grid-template-columns:1fr}}@media (max-width:768px){.moorings-grid{grid-template-columns:1fr}.dashboard-header{flex-direction:column;gap:12px}}.reports{animation:fadeIn .3s}.reports-header{margin-bottom:30px}.reports-header h2{color:#333;font-size:28px;margin-bottom:5px}.reports-header p{color:#666;font-size:14px}.report-selector{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;justify-content:space-between;margin-bottom:20px;padding:15px}.report-buttons{display:flex;flex:1 1;gap:10px}.report-btn{background:#f5f5f5;border:2px solid #0000;border-radius:6px;color:#666;cursor:pointer;font-size:14px;font-weight:500;padding:10px 16px;transition:all .3s}.report-btn:hover{background:#e0e0e0}.report-btn.active{background:#06c;border-color:#06c;color:#fff}.export-btn{background:#28a745;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 16px;transition:all .3s}.export-btn:hover{background:#218838;transform:translateY(-2px)}.report-content{animation:slideUp .3s;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:20px}.report-content h3{color:#333;font-size:18px;margin-bottom:20px}.status-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.status-item{border:1px solid #ddd;border-left:4px solid #999;border-radius:6px;display:flex;gap:12px;padding:12px}.status-item.member_boat_1,.status-item.member_boat_2{background:#f1f8f4;border-left-color:#4caf50}.status-item.member_on_other_boat{background:#fffbf0;border-left-color:#ff9800}.status-item.unknown_poaching{background:#fff5f5;border-left-color:#dc3545}.status-badge{font-size:24px;min-width:30px;text-align:center}.status-info{flex:1 1}.status-info p{color:#666;font-size:13px;margin-bottom:4px}.status-info strong{color:#333}.boat-name{color:#333!important;font-size:14px!important;font-weight:600!important}.departure,.member-name,.registration{color:#666}.poaching-list{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.poaching-item{background:#fff5f5;border:2px solid #dc3545;border-radius:6px;padding:15px}.incident-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.incident-header h4{color:#333;font-size:16px;margin:0}.incident-details{display:flex;flex-direction:column;gap:6px}.incident-details p{color:#666;font-size:13px;margin:0}.good-news{color:#28a745;font-size:16px;font-weight:500;padding:20px;text-align:center}.burgee-list{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.burgee-item{background:#fffbf0;border:2px solid #ff9800;border-radius:6px;padding:15px}.member-info{border-bottom:1px solid #ffe0b2;margin-bottom:12px;padding-bottom:12px}.member-info h4{color:#333;font-size:16px;margin:0 0 6px}.on-boat{color:#ff6f00;font-weight:500}.own-boat{color:#666;font-size:13px}.mooring-info{display:flex;flex-direction:column;gap:4px}.mooring-info p{color:#666;font-size:13px;margin:0}.loading{color:#666;padding:40px;text-align:center}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.report-selector{align-items:flex-start;flex-direction:column;gap:15px}.report-buttons{flex-wrap:wrap;width:100%}.report-btn{flex:1 1;min-width:100px}.burgee-list,.poaching-list,.status-grid{grid-template-columns:1fr}}.report-actions{align-items:center;display:flex;gap:8px}.print-btn{background:#037;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:background .2s}.print-btn:hover{background:#025}.usage-history-report h3{color:#037;margin-bottom:8px}.history-table{border-collapse:collapse;font-size:13px;margin-bottom:24px;width:100%}.history-table th{background:#037;color:#fff;font-size:12px;font-weight:600;padding:8px 10px;text-align:left;white-space:nowrap}.history-table td{border-bottom:1px solid #e0e8f5;padding:7px 10px;vertical-align:middle}.history-table tr:hover{background:#f0f6ff}.type-pill{background:#e8f2ff;color:#049;padding:2px 7px}.status-pill,.type-pill{border-radius:10px;font-size:11px;white-space:nowrap}.status-pill{font-weight:600;padding:2px 8px}.status-pill.active{background:#fff3cd;color:#856404}.status-pill.checked_out{background:#d4edda;color:#155724}.status-pill.overdue{background:#f8d7da;color:#721c24}*,:before,å :after{box-sizing:border-box}body{background:#eef4fb;color:#1a2a3a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,sans-serif;margin:0}.app-container{display:flex;flex-direction:column;min-height:100vh}.app-topbar{background:#037;box-shadow:0 2px 12px #00337740;height:56px;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:100}.app-topbar,.topbar-left{align-items:center;display:flex}.topbar-title{color:#fff;font-size:20px;font-weight:700;letter-spacing:.01em;margin:0;white-space:nowrap}.topbar-title em{font-style:italic}.topbar-right{align-items:center;display:flex;gap:10px}.topbar-user{color:#ffffffd9;margin-right:6px}.topbar-nav-btn,.topbar-user{font-size:13px;white-space:nowrap}.topbar-nav-btn{background:#ffffff1f;border:1px solid #fff3;border-radius:6px;color:#ffffffe6;cursor:pointer;font-weight:500;padding:7px 14px;transition:background .15s,color .15s}.topbar-nav-btn:hover{background:#fff3;color:#fff}.topbar-nav-btn.active{background:#06c;border-color:#06c;color:#fff;font-weight:600}.topbar-signout{background:none;border:1px solid #ffffff4d;border-radius:6px;color:#ffffffd9;cursor:pointer;font-size:13px;font-weight:500;padding:7px 14px;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.topbar-signout:hover{background:#dc354599;border-color:#dc354580;color:#fff}.app-main{background:#eef4fb;flex:1 1;margin:0 auto;max-width:1400px;min-height:calc(100vh - 56px);padding:28px 32px;width:100%}.btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:4px;justify-content:center;padding:9px 16px;text-decoration:none;transition:all .2s}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background:#06c;color:#fff}.btn-primary:hover:not(:disabled){background:#049}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover:not(:disabled){background:#545b62}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover:not(:disabled){background:#b02a37}.btn-sm{font-size:13px;padding:6px 12px}.btn-xs{border-radius:4px;font-size:12px;padding:4px 8px}.alert{align-items:center;border-radius:6px;display:flex;font-size:14px;justify-content:space-between;margin-bottom:16px;padding:12px 16px}.alert-error{background:#fff0f0;border:1px solid #f5c6cb;color:#721c24}.alert-success{background:#f0fff4;border:1px solid #c3e6cb;color:#155724}.close-btn{background:none;border:none;color:inherit;cursor:pointer;font-size:18px;line-height:1;opacity:.7;padding:0 0 0 12px}.close-btn:hover{opacity:1}.loading{align-items:center;color:#06c;display:flex;font-size:16px;justify-content:center;min-height:200px}@media (max-width:768px){.app-topbar{flex-wrap:wrap;gap:8px;height:auto;padding:10px 14px}.topbar-left{width:100%}.topbar-title{font-size:18px}.topbar-right{flex-wrap:wrap;gap:6px;width:100%}.topbar-user{font-size:12px;margin-bottom:2px;margin-right:0;width:100%}.topbar-nav-btn,.topbar-signout{font-size:12px;padding:6px 10px}.app-main{padding:16px}}
/*# sourceMappingURL=main.3553dcbb.css.map*/