@import"https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--font-sans: "Instrument Sans", system-ui, -apple-system, sans-serif;--font-mono: "IBM Plex Mono", monospace;--primary: #16706e;--primary-hover: #0f5b59;--primary-light: #e4efee;--navy: #0d1f2b;--navy-light: #17313d;--navy-subtle: #22414f;--slate-100: #eef1f3;--slate-200: #e3e9ec;--slate-300: #d7dee2;--slate-400: #9db1ba;--slate-600: #4a626f;--slate-800: #0d1f2b;--bg: #eef1f3;--card-bg: #ffffff;--text-main: #0d1f2b;--text-muted: #4a626f;--text-subtle: #6b8290;--border: #d7dee2;--border-subtle: #e3e9ec;--radius: 4px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--highlight-crew: #e4efee;--highlight-crew-border: #16706e;--highlight-total: #f6efdc;--highlight-total-border: #7d6417}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg);color:var(--text-main);line-height:1.5;-webkit-font-smoothing:antialiased}.app-header{background:var(--navy);color:#fff;padding:1rem 2rem;box-shadow:var(--shadow-md)}.header-content{max-width:1300px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.logo{display:flex;align-items:center;gap:.75rem}.logo-icon{width:34px;height:34px;color:#38bdf8}.logo h1{font-size:1.35rem;font-weight:700;letter-spacing:-.02em}.subtitle{font-size:.8rem;color:#94a3b8;display:block}.trip-bar{display:flex;align-items:center;gap:.75rem}.trip-dropdown{background:var(--navy-light);color:#fff;border:1px solid #334155;padding:.55rem 1rem;border-radius:var(--radius);font-size:.95rem;outline:none;min-width:250px}.trip-dropdown:focus{border-color:#38bdf8}.btn{display:inline-flex;align-items:center;gap:.4rem;font-weight:500;font-size:.9rem;padding:.55rem 1rem;border-radius:var(--radius);cursor:pointer;border:1px solid transparent;transition:all .15s ease-in-out}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:#38bdf8;color:var(--navy);font-weight:600}.btn-secondary:hover{background:#7dd3fc}.btn-outline{background:transparent;border-color:var(--slate-300);color:var(--slate-800)}.btn-outline:hover{background:var(--slate-100)}.btn-sm{padding:.35rem .65rem;font-size:.85rem}.btn-icon{width:16px;height:16px}.btn:disabled,.btn[disabled],.btn.btn-inactive{opacity:.55;cursor:not-allowed!important;box-shadow:none!important;filter:grayscale(40%)}.btn-primary:disabled,.btn-primary[disabled],.btn-primary.btn-inactive{background:var(--slate-400)!important;border-color:var(--slate-400)!important;color:#fff!important;cursor:not-allowed!important}.btn-primary:disabled:hover,.btn-primary[disabled]:hover,.btn-primary.btn-inactive:hover{background:var(--slate-400)!important;border-color:var(--slate-400)!important;color:#fff!important;cursor:not-allowed!important}.btn-outline:disabled,.btn-outline[disabled],.btn-outline.btn-inactive{background:var(--slate-100)!important;border-color:var(--slate-300)!important;color:var(--slate-400)!important;cursor:not-allowed!important}.btn-outline:disabled:hover,.btn-outline[disabled]:hover,.btn-outline.btn-inactive:hover{background:var(--slate-100)!important;border-color:var(--slate-300)!important;color:var(--slate-400)!important;cursor:not-allowed!important}.trip-summary-strip{max-width:1300px;margin:1rem auto 0;padding:.65rem 1.25rem;background:#fff;border:1px solid var(--border);border-radius:var(--radius);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.65rem 1rem;box-shadow:var(--shadow-sm)}.trip-meta-item{display:flex;flex-direction:column;gap:.2rem}.meta-label{font-size:.75rem;text-transform:uppercase;color:var(--text-muted);font-weight:600;letter-spacing:.04em}.meta-value{font-weight:600;font-size:.95rem}.badge{display:inline-block;padding:.25rem .65rem;border-radius:9999px;font-size:.8rem;font-weight:600}.badge-info{background:#f1f5f9;color:#334155}.badge-crew{background:#dbeafe;color:#1e40af;border:1px solid #bfdbfe}.badge-total{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.trip-actions{margin-left:auto;display:flex;align-items:center;gap:.5rem;flex-shrink:0;white-space:nowrap}.trip-actions .btn{padding:.35rem .65rem;font-size:.85rem}.trip-actions .btn-outline{background:#fff}.nav-tabs{max-width:1300px;margin:1.5rem auto 0;padding:0 2rem;display:flex;gap:.5rem;border-bottom:2px solid var(--slate-200)}.tab-btn{background:none;border:none;padding:.75rem 1.25rem;font-size:.95rem;font-weight:600;color:var(--text-muted);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;transition:all .15s ease-in-out}.tab-btn:hover{color:var(--navy)}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.main-content{max-width:1300px;margin:1.5rem auto 3rem;padding:0 2rem}.tab-panel{display:none}.tab-panel.active{display:block}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;flex-wrap:wrap;gap:1rem}.panel-desc{font-size:.9rem;color:var(--text-muted);margin-top:.2rem}.filter-controls{display:flex;align-items:center;gap:.75rem}.view-toggle-group{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:#fff}.btn-toggle{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .65rem;background:#fff;border:none;border-right:1px solid var(--border);font-size:.82rem;font-weight:500;color:var(--text-muted, #64748b);cursor:pointer;transition:all .15s ease}.btn-toggle:last-child{border-right:none}.btn-toggle:hover{background:#f1f5f9;color:var(--text-main, #0f172a)}.btn-toggle.active{background:#e0f2fe;color:#0284c7;font-weight:600}.select-filter{padding:.45rem .85rem;border:1px solid var(--border);border-radius:var(--radius);background:#fff;font-size:.9rem}.boat-list-wrapper{width:100%}.boat-list-table-container{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto;box-shadow:var(--shadow-sm)}.boat-list-table{width:100%;border-collapse:collapse;font-size:.84rem;text-align:left}.boat-list-table th,.boat-list-table td{padding:.5rem .45rem;border-bottom:1px solid var(--border);vertical-align:middle}.boat-list-table th:first-child,.boat-list-table td:first-child{padding-left:.75rem}.boat-list-table th:last-child,.boat-list-table td:last-child{padding-right:.75rem}.boat-list-table th{background:#f8fafc;font-weight:600;color:#334155;font-size:.74rem;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.boat-list-table tbody tr:hover{background-color:#f8fafc}.boat-list-table .col-rank{width:54px;min-width:54px;text-align:center}.boat-list-table .col-loa{width:60px;min-width:56px}.boat-list-table .col-cabins{width:100px;min-width:90px}.boat-list-table .col-heads{width:48px;min-width:44px}.boat-list-table .col-capacity{width:58px;min-width:50px}.boat-list-table .col-type,.boat-list-table .col-rate{width:88px;min-width:80px}.boat-list-table .col-actions{width:160px;min-width:160px;text-align:right;white-space:nowrap}.boat-list-name{font-weight:600;font-size:.9rem;color:#0f172a}.boat-list-sub{font-size:.75rem;color:#64748b;margin-top:.1rem}.boat-list-charterer{font-size:.8rem;color:#0369a1;font-weight:500}.boat-list-actions{display:flex;align-items:center;gap:.25rem;justify-content:flex-end;white-space:nowrap}.boat-list-filter-row{background:#f1f5f9;border-bottom:2px solid #cbd5e1}.boat-list-filter-row th{padding:.3rem .25rem!important;vertical-align:middle;background:#f1f5f9;text-transform:none;letter-spacing:normal;font-weight:400}.boat-list-filter-row th:first-child{padding-left:.5rem!important}.boat-list-filter-row th:last-child{padding-right:.5rem!important}.table-filter-input,.table-filter-select{width:100%;box-sizing:border-box;padding:.2rem .25rem;font-size:.72rem;height:25px;color:var(--slate-800);background-color:#fff;border:1px solid #cbd5e1;border-radius:4px;outline:none;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.table-filter-input:focus,.table-filter-select:focus{border-color:var(--primary);box-shadow:0 0 0 2px #0e749026}.table-filter-input::placeholder{color:#94a3b8;font-size:.7rem}.btn-filter-reset{padding:.2rem .35rem;font-size:.7rem;font-weight:600;color:#b91c1c!important;background:#fef2f2!important;border:1px solid #fca5a5!important;border-radius:4px;cursor:pointer;white-space:nowrap;transition:all .15s ease}.btn-filter-reset:hover{background:#fee2e2!important;color:#991b1b!important;border-color:#f87171!important}.boat-list-filter-status{display:flex;align-items:center;justify-content:space-between;padding:.4rem .75rem;background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;margin-bottom:.65rem;font-size:.8rem;color:#0369a1}.boat-list-filter-status strong{color:#0c4a6e}.boat-action-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0!important;font-size:.8rem;border-radius:var(--radius);flex-shrink:0;text-decoration:none;cursor:pointer;line-height:1}.boat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:1.5rem}.boat-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow-sm);transition:transform .15s ease,box-shadow .15s ease;display:flex;flex-direction:column;position:relative;text-align:left}.boat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.boat-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.65rem;margin-bottom:.75rem;text-align:left}.boat-title-area{flex:1;min-width:0;text-align:left}.boat-name-header{display:flex;align-items:center;justify-content:flex-start;gap:.5rem;flex-wrap:wrap;text-align:left;margin-bottom:.2rem}.boat-name-badge{font-size:.65rem;text-transform:uppercase;font-weight:700;color:#0369a1;background:#e0f2fe;padding:.1rem .45rem;border-radius:4px;display:inline-block;width:fit-content;letter-spacing:.04em}.boat-name-title{font-size:1.2rem;font-weight:700;color:var(--navy);margin:0;line-height:1.3;text-align:left}.boat-sub{font-size:.85rem;color:var(--text-muted)}.boat-card-charterer{font-size:.82rem;color:#0369a1;margin-top:.35rem;display:flex;align-items:center;gap:.3rem}.boat-card-charterer-label{color:var(--text-muted);font-weight:500}.boat-type-badge{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:3px 10px;border-radius:9999px;display:inline-flex;align-items:center;border:1px solid transparent;-webkit-user-select:none;user-select:none;line-height:1.2}.boat-type-monohull{background:#eef3f6;color:#2e4958;border-color:#d2dfe6}.boat-type-catamaran{background:#e2f2f1;color:#0f5b59;border-color:#9fc4c2}.boat-type-trimaran{background:#f4ecf8;color:#6a3a78;border-color:#dbc3e2}.boat-type-tag-dark{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;padding:3px 10px;border-radius:9999px;display:inline-flex;align-items:center;border:1px solid transparent;background:#22414f;color:#cfe0e4;-webkit-user-select:none;user-select:none;line-height:1.2}.boat-type-tag-dark.boat-type-monohull{background:#1c3342;color:#b5cdd9;border-color:#2b4b5e}.boat-type-tag-dark.boat-type-catamaran{background:#103b3d;color:#8be2dc;border-color:#1a5e62}.boat-type-tag-dark.boat-type-trimaran{background:#362442;color:#debfe8;border-color:#583a6a}.boat-charterer-tag-dark{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;background:#22414f;color:#cfe0e4;padding:3px 10px;border-radius:9999px;display:inline-flex;align-items:center;border:1px solid #2f4c59;-webkit-user-select:none;user-select:none;line-height:1.2}.fleet-actions-panel{display:flex;gap:10px;flex-wrap:wrap;align-items:center;width:100%}.fleet-actions-panel .btn-action-primary,.fleet-actions-panel .btn-action-secondary{flex:1 1 140px}.btn-action-primary{background:var(--teal, #16706e);color:#fff;border:1px solid var(--teal, #16706e);border-radius:3px;font-family:var(--font-sans);font-size:12.5px;font-weight:600;padding:10px 14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;transition:all .15s ease;white-space:nowrap}.btn-action-primary:hover{background:#0f5b59;border-color:#0f5b59;color:#fff}.btn-action-secondary{background:#fff;color:#0d1f2b;border:1px solid #d7dee2;border-radius:3px;font-family:var(--font-sans);font-size:12.5px;font-weight:600;padding:10px 14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;transition:all .15s ease;white-space:nowrap}.btn-action-secondary:hover{background:#f7f9fa;border-color:#35505d;color:#0d1f2b}.btn-action-reprocess{background:#fff;color:#16706e;border:1px solid #d7dee2;border-radius:3px;font-family:var(--font-sans);font-size:12.5px;font-weight:500;padding:10px 14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;transition:all .15s ease;width:100%}.btn-action-reprocess:hover:not(:disabled){background:#eef4f7;border-color:#16706e;color:#0f5b59}.btn-action-reprocess:disabled{opacity:.65;cursor:not-allowed}.rank-selector-row{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;background:var(--slate-100);padding:.4rem .75rem;border-radius:var(--radius)}.rank-selector-row label{font-size:.8rem;font-weight:600;color:var(--slate-600)}.rank-select{padding:.2rem .5rem;font-size:.85rem;font-weight:700;border-radius:4px;border:1px solid var(--border)}.boat-specs-table-container{background:#f8fafc;border:1px solid #e2e8f0;border-radius:var(--radius);padding:.45rem .75rem;margin-bottom:.85rem}.boat-specs-table{width:100%;border-collapse:collapse}.boat-specs-table tr{border-bottom:1px solid #edf2f7}.boat-specs-table tr:last-child{border-bottom:none}.boat-specs-table td{padding:.28rem 0;font-size:.82rem;line-height:1.35}.boat-specs-table .spec-label{color:var(--text-muted);text-align:left;font-weight:400}.boat-specs-table .spec-value{color:var(--navy);font-weight:600;font-family:JetBrains Mono,monospace;text-align:right;white-space:nowrap}.rate-banner{display:flex;flex-direction:column;align-items:stretch;padding:.75rem 0 0;border-top:1px dashed var(--border);margin-top:auto;gap:.6rem}.rate-display{display:flex;align-items:center;justify-content:space-between;width:100%}.rate-val-group{display:flex;align-items:baseline;gap:.35rem}.rate-amount{font-size:1.25rem;font-weight:700;color:var(--navy);white-space:nowrap}.rate-period{font-size:.8rem;color:var(--text-muted);font-weight:500;white-space:nowrap}.boat-comment-link{font-size:.8rem;font-weight:500;color:var(--teal);text-decoration:none;padding:.2rem .5rem;border-radius:var(--radius-sm);background:#0ea5e914;transition:all .15s ease}.boat-comment-link:hover{background:#0ea5e92e;color:var(--navy)}.boat-links{display:flex;gap:.45rem;align-items:stretch;width:100%}.boat-links .btn{flex:1 1 0px;min-width:0;padding:.45rem .6rem;font-size:.82rem;font-weight:600;text-align:center;justify-content:center;white-space:nowrap;border-radius:4px}.boat-links .enrich-boat-btn{color:#0284c7;border-color:#bae6fd}.boat-links .enrich-boat-btn:hover{background:#f0f9ff;border-color:#0284c7}.boat-links .delete-boat-btn{color:#ef4444;border-color:#fecaca}.boat-links .delete-boat-btn:hover{background:#fef2f2;border-color:#ef4444}.delete-charterer-btn{color:#ef4444!important;border-color:#fecaca!important;background:#fff!important;padding:.35rem .75rem!important;font-size:.8rem!important;font-weight:600!important;cursor:pointer;border-radius:var(--radius);transition:all .15s}.delete-charterer-btn:hover{background:#fef2f2!important;border-color:#ef4444!important;color:#b91c1c!important}.matrix-table-container{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto;box-shadow:var(--shadow-sm)}.matrix-table{width:100%;border-collapse:collapse;text-align:right;font-size:.88rem}.matrix-table th,.matrix-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border);white-space:nowrap}.matrix-table th{background:#f8fafc;font-weight:600;color:var(--slate-800);border-top:1px solid var(--border)}.matrix-table th.col-boat{text-align:left;position:sticky;left:0;background:#f8fafc;z-index:2;box-shadow:2px 0 4px -2px #0000001a}.matrix-table td.col-boat{text-align:left;position:sticky;left:0;background:#fff;z-index:1;font-weight:600;box-shadow:2px 0 4px -2px #0000001a}.matrix-table th.highlight-crew,.matrix-table td.highlight-crew{background-color:var(--highlight-crew)!important;font-weight:700;color:#1e3a8a;border-left:2px solid var(--highlight-crew-border);border-right:2px solid var(--highlight-crew-border)}.matrix-table th.highlight-total,.matrix-table td.highlight-total{background-color:#fefce8;font-weight:700;color:#78350f;border-left:1px solid #fde68a}.matrix-crew-note{font-size:.8rem;color:var(--slate-500);font-weight:500;white-space:nowrap}.input-days{width:70px;padding:.35rem .5rem;border:1px solid var(--border);border-radius:4px;font-weight:600}.matrix-controls{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.matrix-control-item{display:flex;align-items:center;gap:.5rem;font-size:.88rem;font-weight:500;color:var(--slate-700)}.select-sort{padding:.35rem .6rem;border:1px solid var(--border);border-radius:4px;background:#fff;font-size:.88rem;color:var(--slate-800);cursor:pointer;font-weight:500}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s ease,color .15s ease}.sortable-th:hover{background-color:#f1f5f9;color:var(--primary)}.matrix-table th.col-boat.sortable-th:hover{background-color:#f1f5f9}.sort-indicator{display:inline-block;margin-left:.35rem;font-size:.75rem;opacity:.5;vertical-align:middle}.sortable-th.sorted-active{color:var(--primary)}.sortable-th.sorted-active .sort-indicator{opacity:1;color:var(--primary);font-weight:700}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1.5rem}.modal.hidden{display:none}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-dialog{position:relative;background:#fff;border-radius:var(--radius);max-width:560px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);z-index:101}.modal-dialog-sm{max-width:440px}#editBoatModal{align-items:flex-start;padding-top:1.5rem}#editBoatModal .modal-dialog{max-height:calc(100vh - 3rem)}.modal-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-header h3{font-size:1.2rem;color:var(--navy)}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-muted)}.modal-body{padding:1.5rem}.modal-intro{font-size:.9rem;color:var(--text-muted);margin-bottom:1.25rem}.modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:.75rem}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.85rem;font-weight:600;color:var(--slate-800);margin-bottom:.35rem}.form-input{width:100%;padding:.55rem .85rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.95rem;outline:none}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0284c726}.form-hint{display:block;font-size:.75rem;color:var(--text-muted);margin-top:.2rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.ingest-status{margin-top:1.25rem;padding:1.15rem;background:var(--primary-light);border:1px solid rgba(2,132,199,.2);border-radius:var(--radius);display:flex;flex-direction:column;gap:.85rem;color:var(--primary-hover);font-size:.9rem}.ingest-status-header{display:flex;align-items:flex-start;gap:.85rem}.ingest-status-text-wrap{flex:1;min-width:0}.ingest-status-title-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.ingest-status-title{font-weight:600;color:var(--primary-hover);line-height:1.3}.ingest-timer-badge{display:inline-flex;align-items:center;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem;font-weight:600;padding:.15rem .5rem;background:#0284c726;color:#0369a1;border-radius:9999px;letter-spacing:.03em;white-space:nowrap}.ingest-subtext{margin-top:.35rem;font-size:.8rem;font-weight:400;color:var(--text-muted);line-height:1.4;transition:opacity .2s ease-in-out}.ingest-progress-track{width:100%;height:5px;background:#0284c726;border-radius:4px;overflow:hidden;position:relative}.ingest-progress-bar-active{position:absolute;top:0;left:0;height:100%;width:40%;background:linear-gradient(90deg,#0284c7,#38bdf8,#0284c7);border-radius:4px;animation:ingestShimmer 1.8s ease-in-out infinite}@keyframes ingestShimmer{0%{left:-40%;width:30%}50%{width:50%}to{left:100%;width:30%}}.ingest-activity-indicator{display:flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:500;color:#0284c7}.ingest-live-dot{width:8px;height:8px;border-radius:50%;background-color:#10b981;box-shadow:0 0 #10b98166;animation:ingestPulseDot 1.5s infinite;display:inline-block;flex-shrink:0}@keyframes ingestPulseDot{0%{box-shadow:0 0 #10b981b3}70%{box-shadow:0 0 0 7px #10b98100}to{box-shadow:0 0 #10b98100}}@media(prefers-reduced-motion:reduce){.ingest-progress-bar-active,.ingest-live-dot{animation:none}}.spinner{width:22px;height:22px;border:3px solid rgba(2,132,199,.3);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{grid-column:1 / -1;text-align:center;padding:4rem 2rem;background:#fff;border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-muted)}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.header-right{display:flex;align-items:center;gap:1rem}.btn-outline-light{background:transparent;color:#f1f5f9;border:1px solid #475569}.btn-outline-light:hover{background:#1e293b;border-color:#64748b;color:#fff}.user-menu{display:flex;align-items:center;gap:.75rem;background:#ffffff0f;padding:.35rem .75rem;border-radius:var(--radius);border:1px solid rgba(255,255,255,.1)}.user-profile-badge{display:flex;align-items:center;gap:.6rem}.user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid #38bdf8;background:#334155}.user-info{display:flex;flex-direction:column;line-height:1.2}.user-name{font-size:.85rem;font-weight:600;color:#f8fafc}.user-email{font-size:.7rem;color:#94a3b8}.user-dropdown{background:#0f172a;color:#f1f5f9;border:1px solid #334155;font-size:.8rem;padding:.25rem .5rem;border-radius:4px}.btn-google{display:inline-flex;align-items:center;gap:.5rem;background:#fff;color:#374151;font-size:.8rem;font-weight:500;padding:.35rem .75rem;border-radius:4px;text-decoration:none;border:1px solid #d1d5db;transition:all .15s ease}.btn-google:hover{background:#f9fafb;box-shadow:var(--shadow-sm)}.google-icon{width:16px;height:16px}.btn-icon{background:#1e293b;color:#f8fafc;border:1px solid #475569;padding:.25rem .55rem;border-radius:4px;font-size:.9rem;cursor:pointer}.btn-icon:hover{background:#334155}.btn-logout{background:transparent;color:#94a3b8;border:1px solid #475569;font-size:.75rem;padding:.35rem .65rem;border-radius:4px;cursor:pointer;transition:all .15s ease}.btn-logout:hover{background:#334155;color:#f8fafc}.btn-google.btn-lg{padding:.65rem 1.25rem;font-size:.95rem;font-weight:500;border-radius:6px}.btn-google.btn-lg .google-icon{width:20px;height:20px}.auth-cta-card{padding:3rem 1.5rem;text-align:center;background:#1e293b;border:1px solid #334155;border-radius:8px;max-width:560px;margin:3rem auto}.view-panel{width:100%}.view-container{max-width:1300px;margin:2rem auto;padding:0 2rem}.view-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.view-subtitle{color:var(--text-muted);font-size:.95rem;margin-top:.25rem}.trip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:1.5rem}.trip-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.5rem;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}.trip-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:#cbd5e1}.trip-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.trip-card-title{font-size:1.2rem;font-weight:700;color:var(--navy)}.trip-card-dest{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem;font-weight:500;color:var(--primary);margin-bottom:.75rem}.trip-card-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.trip-stat-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;border-radius:9999px;font-size:.8rem;font-weight:500;background:var(--slate-100);color:var(--slate-600)}.trip-card-actions{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:1rem;border-top:1px solid var(--slate-100)}.btn-danger-outline{background:transparent;color:#ef4444;border:1px solid #fecaca;padding:.4rem .8rem;border-radius:var(--radius);font-size:.85rem;cursor:pointer;transition:all .15s}.btn-danger-outline:hover{background:#fef2f2;border-color:#ef4444}.btn-danger{background:#ef4444;color:#fff;border:1px solid #dc2626;padding:.5rem 1.1rem;border-radius:var(--radius);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s}.btn-danger:hover{background:#dc2626;border-color:#b91c1c}.confirm-dialog-content{display:flex;gap:1.15rem;align-items:flex-start}.confirm-dialog-icon{flex-shrink:0;width:2.75rem;height:2.75rem;border-radius:50%;background:#fee2e2;color:#ef4444;display:flex;align-items:center;justify-content:center;font-size:1.35rem}.confirm-dialog-text{flex:1}.confirm-dialog-text h4{margin:0 0 .4rem;font-size:1.05rem;color:var(--navy);font-weight:600}.confirm-dialog-text p{margin:0;font-size:.9rem;color:var(--text-muted);line-height:1.45}.workflow-container{max-width:1300px;margin:1.25rem auto 0;padding:0 2rem}.workflow-banner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #bae6fd;border-left:6px solid var(--primary);border-radius:var(--radius);padding:1.25rem 1.5rem;box-shadow:var(--shadow-sm);margin-bottom:1rem}.workflow-banner-icon{font-size:2rem;flex-shrink:0}.workflow-banner-content{flex-grow:1}.workflow-banner-content h4{font-size:1.05rem;font-weight:700;color:#0369a1;margin-bottom:.25rem}.workflow-banner-content p{font-size:.9rem;color:#334155;line-height:1.4}.workflow-banner-actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.trip-summary-left,.trip-title-and-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:nowrap}.active-trip-heading{font-size:1.25rem;font-weight:700;color:var(--navy);margin:0;white-space:nowrap}.trip-meta-tags{display:flex;align-items:center;gap:.45rem;flex-wrap:nowrap;white-space:nowrap}.meta-tag{font-size:.85rem;color:var(--slate-600);white-space:nowrap}.pricing-assistant-card{background:#f8fafc;border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1.25rem}.pricing-assistant-header{display:flex;align-items:flex-start;gap:.6rem;margin-bottom:.6rem}.pricing-paste-icon,.ai-sparkle-icon{font-size:1.25rem;line-height:1}.pricing-assistant-subtitle{font-size:.8rem;color:#475569;margin-top:.15rem;line-height:1.35}.pricing-textarea{font-family:inherit;font-size:.85rem;line-height:1.4;background:#fff;border:1px solid #cbd5e1;resize:vertical}.pricing-assistant-actions{display:flex;align-items:center;gap:.75rem;margin-top:.6rem}.parse-status-text{font-size:.82rem;font-weight:500;color:#0369a1}.parse-status-text.success{color:#15803d}.parse-status-text.error{color:#b91c1c}.fees-section{background:#f8fafc;border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1.25rem}.fees-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.fees-label{font-size:.9rem;font-weight:700;color:var(--navy);display:block}.fees-help-text{font-size:.78rem;color:var(--text-muted)}.fees-header-right{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.total-fees-badge{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:74px;height:74px;min-width:74px;min-height:74px;border-radius:50%;background:#e0f2fe;border:1px solid #bae6fd;color:#0369a1;box-sizing:border-box;padding:.25rem;flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:.78rem;font-weight:700;line-height:1.2}.total-fees-badge span{display:block;text-align:center;line-height:1.15}.total-fees-badge .total-fees-amount{font-size:.82rem;font-weight:800}.fees-list-container{display:flex;flex-direction:column;gap:.5rem}.fee-row-item{display:flex;align-items:center;gap:.6rem;background:#fff;border:1px solid #e2e8f0;padding:.4rem .6rem;border-radius:var(--radius)}.fee-name-input{flex:3;padding:.35rem .6rem;font-size:.85rem;border:1px solid #cbd5e1;border-radius:4px}.fee-amount-wrapper{flex:1.5;display:flex;align-items:center;gap:.25rem}.fee-amount-symbol{font-size:.85rem;font-weight:600;color:#64748b}.fee-amount-input{width:100%;padding:.35rem .5rem;font-size:.85rem;font-family:JetBrains Mono,monospace;border:1px solid #cbd5e1;border-radius:4px}.fee-delete-btn{background:transparent;color:#94a3b8;border:none;font-size:1.1rem;cursor:pointer;padding:.2rem .4rem;line-height:1;border-radius:4px;transition:all .15s}.fee-delete-btn:hover{color:#ef4444;background:#fef2f2}.no-fees-hint{font-size:.82rem;color:#94a3b8;font-style:italic;padding:.4rem 0}.boat-pricing-details{background:#f8fafc;border:1px solid #e2e8f0;border-radius:var(--radius);padding:.6rem .8rem;margin-bottom:.85rem}.rates-badge-group{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.4rem}.rate-badge{font-size:.74rem;padding:.15rem .5rem;border-radius:4px;font-weight:600}.rate-badge-weekday{background:#f1f5f9;color:#334155;border:1px solid #cbd5e1}.rate-badge-weekend{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.fees-breakdown-badges{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.35rem}.fee-pill{font-size:.72rem;background:#e0f2fe;color:#0369a1;border:1px solid #bae6fd;padding:.12rem .45rem;border-radius:9999px;font-weight:500}.deposit-info-note{font-size:.74rem;color:#64748b;margin-top:.35rem;display:flex;align-items:center;gap:.3rem}.cost-breakdown-sub{font-size:.7rem;color:#64748b;font-family:JetBrains Mono,monospace;font-weight:400;display:flex;align-items:center;gap:.25rem}.weekend-rate-pill{display:inline-block;background:#ede9fe;color:#5b21b6;border:1px solid #ddd6fe;font-size:.62rem;font-weight:700;padding:.05rem .35rem;border-radius:9999px;line-height:1.2;text-transform:uppercase;letter-spacing:.02em}.boat-detail-topbar{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1.5rem;background:#fff;border-bottom:1px solid var(--border);gap:1rem;flex-wrap:wrap}.boat-detail-topbar-left{display:flex;align-items:center;gap:1rem}.boat-detail-breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.92rem;color:var(--text-muted)}.breadcrumb-separator{color:#cbd5e1}.boat-detail-topbar-actions{display:flex;align-items:center;gap:.5rem}.boat-detail-content-area{max-width:1200px;margin:1.5rem auto;padding:0 1.5rem 3rem}.boat-detail-header-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-sm);margin-bottom:1.5rem}.boat-detail-header-main{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;flex-wrap:wrap}.boat-detail-titles{flex:1;min-width:280px}.boat-detail-badge-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;flex-wrap:wrap}.badge-rank-pill{background:#fef3c7;color:#92400e;font-size:.75rem;font-weight:700;padding:.2rem .6rem;border-radius:9999px;border:1px solid #fde68a}.badge-charterer-pill{background:#f0fdf4;color:#166534;font-size:.75rem;font-weight:600;padding:.2rem .65rem;border-radius:9999px!important;border:1px solid #bbf7d0;-webkit-user-select:none;user-select:none;display:inline-flex;align-items:center}.boat-detail-vessel-name{font-size:1.85rem;font-weight:800;color:var(--navy);margin:0 0 .35rem;line-height:1.2}.boat-detail-vessel-subtitle{font-size:1rem;color:var(--text-muted);margin:0}.boat-detail-kpi-group{display:flex;gap:1rem;flex-wrap:wrap}.boat-kpi-card{background:#f8fafc;border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1.15rem;display:flex;flex-direction:column;min-width:140px}.boat-kpi-card.highlight{background:#f0f9ff;border-color:#bae6fd}.boat-kpi-card .kpi-label{font-size:.72rem;text-transform:uppercase;font-weight:600;color:var(--text-muted);letter-spacing:.04em;margin-bottom:.25rem}.boat-kpi-card.highlight .kpi-label{color:#0369a1}.boat-kpi-card .kpi-value{font-size:1.3rem;font-weight:800;color:#0f172a}.boat-kpi-card.highlight .kpi-value{color:#0284c7}.boat-kpi-card .kpi-value small{font-size:.75rem;font-weight:400;color:#64748b}.boat-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media(max-width:900px){.boat-detail-grid{grid-template-columns:1fr}}.detail-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.detail-card-header{padding:1rem 1.25rem;background:#f8fafc;border-bottom:1px solid var(--border)}.detail-card-header h3{font-size:1.05rem;font-weight:700;color:var(--navy);margin:0}.detail-card-header .card-subtitle{font-size:.8rem;color:var(--text-muted);display:block;margin-top:.15rem}.detail-card-body{padding:1.25rem}.two-col-specs-table{width:100%;border-collapse:collapse;font-size:.88rem}.two-col-specs-table th.spec-label{width:48%;text-align:left;font-weight:500;color:#475569;padding:.65rem .5rem;border-bottom:1px solid #f1f5f9}.two-col-specs-table td.spec-value{width:52%;text-align:right;font-weight:600;color:#0f172a;padding:.65rem .5rem;border-bottom:1px solid #f1f5f9}.two-col-specs-table tr:last-child th,.two-col-specs-table tr:last-child td{border-bottom:none}.spec-sources-url-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.source-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:#0284c7;text-decoration:none;padding:.4rem .75rem;background:#f8fafc;border-radius:6px;border:1px solid #e2e8f0;transition:all .15s ease}.source-link:hover{background:#f0f9ff;border-color:#bae6fd}.source-arrow{margin-left:auto;font-size:.8rem}.pricing-summary-box{background:#f8fafc;border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:1.25rem}.pricing-row{display:flex;justify-content:space-between;align-items:center;padding:.4rem 0;font-size:.9rem;color:#334155}.pricing-row.sub-rate{font-size:.82rem;color:#64748b;padding-left:.75rem}.pricing-row.calculation{border-top:1px dashed var(--border);margin-top:.5rem;padding-top:.6rem;font-weight:600;color:#0f172a}.fees-section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.fees-section-heading h4{font-size:.92rem;font-weight:700;color:#334155;margin:0}.fee-badge-count{font-size:.75rem;color:#64748b;background:#f1f5f9;padding:.1rem .45rem;border-radius:9999px}.no-fees-note{font-size:.85rem;color:#64748b;font-style:italic;margin-bottom:1.25rem}.fees-detail-table{width:100%;border-collapse:collapse;font-size:.85rem;margin-bottom:1.25rem}.fees-detail-table th,.fees-detail-table td{padding:.55rem .5rem;border-bottom:1px solid #f1f5f9}.fees-detail-table th{background:#f8fafc;color:#475569;font-weight:600;text-align:left}.fee-type-pill{font-size:.7rem;text-transform:capitalize;background:#f1f5f9;color:#475569;padding:.1rem .4rem;border-radius:4px}.grand-total-box{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--radius);padding:1.15rem}.grand-total-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.grand-label{font-size:1rem;font-weight:700;color:#166534}.grand-amount{font-size:1.5rem;font-weight:800;color:#15803d}.grand-per-person{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:#166534;border-top:1px dashed #bbf7d0;padding-top:.5rem}.boat-name-link{color:var(--navy);text-decoration:none;cursor:pointer;transition:color .15s ease;text-align:left}.boat-name-link:hover{color:var(--color-primary, #0284c7);text-decoration:underline}.highlight-pulse{animation:pulse-border 1.5s ease-in-out infinite;border-color:#0284c7!important}@keyframes pulse-border{0%{box-shadow:0 0 #0284c7b3}70%{box-shadow:0 0 0 10px #0284c700}to{box-shadow:0 0 #0284c700}}.filter-checkbox-label{display:inline-flex;align-items:center;gap:.45rem;font-size:.85rem;color:#475569;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:500;padding:.35rem .65rem;border-radius:6px;background:#f8fafc;border:1px solid #e2e8f0;transition:all .15s ease}.filter-checkbox-label:hover{background:#f1f5f9;border-color:#cbd5e1}.filter-checkbox-label input[type=checkbox]{width:1rem;height:1rem;accent-color:#dc2626;cursor:pointer}.badge-definite-no{background:#fee2e2;color:#991b1b;border:1px solid #fecaca;font-weight:600;display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;padding:.15rem .5rem;border-radius:9999px}.boat-card-definite-no{opacity:.75;background:snow;border-color:#fca5a5!important}.boat-card-definite-no:hover{opacity:1}.boat-row-definite-no{opacity:.75;background:snow!important}.boat-row-definite-no:hover{opacity:1}.matrix-row-definite-no{opacity:.75;background:snow!important}.matrix-row-definite-no:hover{opacity:1}.matrix-row-cheapest,.matrix-row-cheapest td.col-boat{background:#f0fdf4!important}.matrix-row-cheapest:hover,.matrix-row-cheapest:hover td.col-boat{background:#dcfce7!important}.badge-cheapest{display:inline-flex;align-items:center;gap:.25rem;background:#dcfce7;color:#15803d;border:1px solid #86efac;font-size:.72rem;font-weight:700;padding:.15rem .5rem;border-radius:9999px;letter-spacing:.02em}.badge-missing-pricing{display:inline-flex;align-items:center;gap:.25rem;background:#fef3c7;color:#92400e;border:1px solid #fcd34d;font-size:.72rem;font-weight:700;padding:.15rem .5rem;border-radius:9999px;letter-spacing:.02em}.boat-card-missing-pricing{border-color:#f59e0b!important;background:#fffdf5}.boat-card-missing-pricing:hover{border-color:#d97706!important;box-shadow:0 4px 12px #f59e0b26}.boat-row-missing-pricing{background:#fffdf5!important}.boat-row-missing-pricing:hover{background:#fef9c3!important}.matrix-row-missing-pricing,.matrix-row-missing-pricing td.col-boat{background:#fffdf5!important}.matrix-row-missing-pricing:hover,.matrix-row-missing-pricing:hover td.col-boat{background:#fef9c3!important}.btn-definite-no{color:#dc2626!important;border-color:#fecaca!important;background:#fff5f5;transition:all .15s ease}.btn-definite-no:hover{background:#fee2e2!important;color:#991b1b!important;border-color:#fca5a5!important}.btn-restore-definite-no{color:#059669!important;border-color:#a7f3d0!important;background:#ecfdf5;transition:all .15s ease}.btn-restore-definite-no:hover{background:#d1fae5!important;color:#047857!important;border-color:#6ee7b7!important}.definite-no-modal-banner{background:#fef2f2;border:1px solid #fee2e2;border-radius:8px;padding:.75rem 1rem;margin-bottom:1rem}.definite-no-banner-name{font-weight:700;color:#991b1b;font-size:.95rem}.definite-no-banner-specs{font-size:.8rem;color:#b91c1c;margin-top:.15rem}.definite-no-suggestions{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-bottom:1.25rem}.definite-no-suggestions-label{font-size:.75rem;color:var(--slate-500);font-weight:500;margin-right:.25rem}.btn-chip{background:#f8fafc;border:1px solid #e2e8f0;color:#475569;font-size:.75rem;font-weight:500;padding:.2rem .55rem;border-radius:9999px;cursor:pointer;transition:all .15s ease}.btn-chip:hover{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.boat-detail-discussion-wrapper{margin-top:1.5rem}.discussion-card{border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;overflow:hidden}.comment-count-badge{display:inline-flex;align-items:center;padding:.25rem .65rem;font-size:.8rem;font-weight:600;color:var(--teal);background:#0ea5e91a;border-radius:9999px}.comments-thread-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.comments-loading,.comments-empty-state,.comment-error{padding:2rem 1rem;text-align:center;border-radius:var(--radius-sm);background:#f8fafc;color:var(--text-muted)}.comments-empty-state p{font-weight:600;color:var(--navy);margin-bottom:.25rem}.comments-empty-state small{font-size:.85rem}.comment-error{color:#dc2626;background:#fef2f2}.comment-bubble-item{display:flex;align-items:flex-start;gap:.85rem}.comment-avatar-col{flex-shrink:0}.comment-avatar-img{width:36px;height:36px;border-radius:50%;object-fit:cover;border:1px solid var(--border)}.comment-avatar-fallback{width:36px;height:36px;border-radius:50%;background:var(--navy);color:#fff;font-weight:600;font-size:.9rem;display:flex;align-items:center;justify-content:center}.comment-content-col{flex:1;background:#f8fafc;border:1px solid #e2e8f0;border-radius:var(--radius-md);padding:.75rem 1rem;position:relative}.comment-item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem;padding-bottom:.35rem;border-bottom:1px solid #edf2f7}.comment-author-info{display:flex;align-items:baseline;gap:.5rem}.comment-author-name{font-size:.9rem;color:var(--navy);font-weight:600}.comment-timestamp{font-size:.75rem;color:var(--text-muted)}.btn-delete-comment{background:transparent;border:none;color:#94a3b8;font-size:1.25rem;line-height:1;padding:.1rem .4rem;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.btn-delete-comment:hover{background:#fee2e2;color:#dc2626}.comment-body-text{font-size:.9rem;color:var(--text-main);line-height:1.5;white-space:pre-wrap;word-break:break-word}.comment-composer{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius-md);padding:1rem}.composer-header{margin-bottom:.5rem}.composer-label{font-size:.88rem;font-weight:600;color:var(--navy);display:block}.comment-textarea{width:100%;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;font-size:.9rem;resize:vertical;min-height:80px;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}.comment-textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px #0ea5e926}.composer-actions{display:flex;justify-content:flex-end;margin-top:.75rem}.trip-duration-indicator-row{display:flex;align-items:center;gap:.75rem;padding:.6rem .85rem;margin-top:-.25rem;margin-bottom:1rem;background-color:#f8fafc;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.875rem}.trip-duration-indicator-row .indicator-label{font-weight:500;color:var(--text-muted)}.badge-warning{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.badge-secondary{background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0}.bulk-action-bar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;margin-bottom:1.25rem;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #cbd5e1;border-left:4px solid var(--teal);border-radius:var(--radius);box-shadow:0 2px 4px #0000000a;animation:fadeIn .15s ease}.bulk-action-bar.hidden{display:none!important}.bulk-action-info{display:flex;align-items:center;gap:.6rem;font-size:.95rem;color:#1e293b}.bulk-selected-badge{background:var(--navy);color:#fff;padding:.2rem .6rem;border-radius:9999px;font-size:.8rem;font-weight:700}.bulk-action-buttons{display:flex;align-items:center;gap:.5rem}.boat-select-checkbox{width:1.15rem;height:1.15rem;cursor:pointer;accent-color:var(--teal);border-radius:4px;margin:0;display:block}.boat-card.boat-card-selected{border-color:var(--teal)!important;box-shadow:0 0 0 2px #0ea5e959!important;background-color:#f8fafc}.boat-row-selected{background-color:#f0fdfa!important}.boat-card-select-wrap{display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:3px}.col-select{width:44px;text-align:center;vertical-align:middle}.enrichment-progress-strip{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#f0fdf4,#ecfdf5);border:1px solid #a7f3d0;border-radius:8px;padding:.75rem 1.25rem;margin:1rem 0;box-shadow:0 2px 4px #10b98114;transition:opacity .4s ease,transform .4s ease}.enrichment-progress-strip.hidden{display:none!important}.enrichment-strip-left{display:flex;align-items:center;gap:.85rem;min-width:0}.enrichment-indicator{position:relative;width:14px;height:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.enrichment-pulse-dot{width:10px;height:10px;background-color:#10b981;border-radius:50%;position:relative;animation:pulse-ring 1.8s cubic-bezier(.24,0,.38,1) infinite}@keyframes pulse-ring{0%{box-shadow:0 0 #10b981b3}70%{box-shadow:0 0 0 8px #10b98100}to{box-shadow:0 0 #10b98100}}.enrichment-strip-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.enrichment-title-row{display:flex;align-items:center;gap:.5rem}.enrichment-title{font-size:.925rem;font-weight:600;color:#065f46}.enrichment-detail{font-size:.8rem;color:#047857;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.enrichment-strip-right{display:flex;align-items:center;gap:1rem;flex-shrink:0}.enrichment-progress-wrapper{display:flex;align-items:center;gap:.75rem}.enrichment-progress-track{width:140px;height:8px;background-color:#d1fae5;border-radius:9999px;overflow:hidden}.enrichment-progress-bar{height:100%;background:linear-gradient(90deg,#10b981,#059669);border-radius:9999px;transition:width .35s ease-out}.enrichment-percent{font-size:.85rem;font-weight:700;color:#065f46;min-width:38px;text-align:right}.btn-enrichment-dismiss{background:transparent;border:none;color:#047857;cursor:pointer;font-size:.9rem;padding:.25rem;line-height:1;border-radius:4px;opacity:.7;transition:opacity .15s ease}.btn-enrichment-dismiss:hover{opacity:1}.boat-card-pulse{animation:card-flash 1.2s ease-out}@keyframes card-flash{0%{box-shadow:0 0 0 3px #10b981b3;border-color:#10b981}to{box-shadow:var(--shadow-sm);border-color:var(--color-border)}}[data-r=narrow],[data-r=sheetbar]{display:none!important}@media(max-width:980px){[data-sheet="1"]{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;z-index:50!important;max-width:none!important;border:0!important;border-radius:0!important;overflow-y:auto!important;padding-bottom:28px!important}[data-sheet="1"] [data-r=sheetbar]{display:block!important;position:sticky!important;top:0!important;z-index:3!important;padding:10px 14px!important;background:#0d1f2b!important;border-bottom:1px solid #22414f!important}[data-sheet="1"] button,[data-sheet="1"] select{min-height:46px!important}[data-sheet="1"] a{display:inline-flex!important;align-items:center!important;min-height:46px!important}#fleetInspectorColumn{display:contents!important}[data-r=inspector]:not([data-sheet="1"]){display:none!important}}@media(max-width:780px){[data-r=wide]{display:none!important}[data-r=narrow]{display:block!important}[data-r=pad]{padding:24px 16px 76px!important}[data-r=work]{padding:16px 16px 136px!important}[data-r=inspector]{position:static!important;max-width:100%!important}[data-r=tripcard]{grid-template-columns:minmax(0,1fr)!important;gap:18px!important;padding:20px 18px!important}[data-r=tripbtn]{justify-self:start!important;padding:13px 18px!important}[data-r=search]{width:100%!important;flex:1 1 100%!important}[data-r=metarow]{flex-wrap:wrap!important;gap:4px 16px!important}[data-r=h1]{font-size:27px!important}[data-r=tripbar]{gap:10px 14px!important}button,select,input{min-height:44px!important}[data-r=chip]{min-height:44px!important;align-items:center!important}}@media(max-width:520px){[data-r=chrome]{display:none!important}}.edit-boat-section{padding-bottom:1.25rem;border-bottom:1px solid var(--border-subtle);margin-bottom:1.25rem}.edit-boat-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.edit-boat-section-title{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-subtle);padding-bottom:.5rem;border-bottom:1px solid var(--border-subtle);margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}.edit-boat-grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.edit-boat-grid-6{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:12px}.nav-header-tabs{display:flex;align-items:center;gap:4px}.nav-header-btn{background:transparent;border:0;border-radius:2px;padding:8px 10px;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;white-space:nowrap;color:#7b9099;transition:all .15s ease}.nav-header-btn:hover{color:#eef1f3}.nav-header-btn.active{background:#22414f;color:#eef1f3}.boat-tag-shortlist{display:inline-flex;align-items:center;gap:4px;background:#fef3c7;border:1px solid #fcd34d;color:#92400e;padding:2px 8px 2px 6px;border-radius:9999px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;-webkit-user-select:none;user-select:none;box-shadow:0 1px 2px #d9770629;line-height:1.2}.boat-tag-shortlist .star-icon{width:12px;height:12px;fill:#f59e0b;color:#f59e0b;filter:drop-shadow(0 .5px 1px rgba(180,83,9,.35));flex-shrink:0}.boat-tag-cheapest{display:inline-flex;align-items:center;gap:3px;background:#e4efee;border:1px solid #b2d6d4;color:#0f5b59;padding:2px 7px;border-radius:9999px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;-webkit-user-select:none;user-select:none;line-height:1.2}.boat-tag-no{display:inline-flex;align-items:center;gap:3px;background:#f6e7e3;border:1px solid #fad3cb;color:#9b4a3a;padding:2px 7px 2px 5px;border-radius:9999px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;-webkit-user-select:none;user-select:none;line-height:1.2}.boat-external-link{display:inline-flex;align-items:center;gap:3px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:11px;font-weight:600;color:#16706e;text-decoration:none;padding:2px 7px;border-radius:4px;background:#f8fafc;border:1px solid #cbd5e1;white-space:nowrap;cursor:pointer;transition:all .15s ease-in-out;line-height:1.2}.boat-external-link .external-icon{width:10px;height:10px;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;fill:none;flex-shrink:0;transition:transform .15s ease}.boat-external-link:hover{background:#16706e!important;color:#fff!important;border-color:#16706e!important;box-shadow:0 1px 3px #16706e40!important;text-decoration:none!important}.boat-external-link:hover .external-icon{transform:translate(1px,-1px)}.boat-external-link-dark{background:#17313d!important;border-color:#2f4c59!important;color:#8fc4c1!important}.boat-external-link-dark:hover{background:#16706e!important;border-color:#16706e!important;color:#fff!important}.boat-name-link{transition:color .15s ease}.boat-name-link:hover{color:#16706e!important;text-decoration:underline!important}.boat-name-link-inspector:hover{color:#8fc4c1!important;text-decoration:underline!important}.charterer-name-link{transition:color .15s ease}.charterer-name-link:hover{color:#16706e!important;text-decoration:underline!important}.compare-view-toggle{display:inline-flex;align-items:center;background:var(--slate-100, #eef1f3);border:1px solid var(--slate-300, #d7dee2);border-radius:4px;padding:2px;gap:2px}.compare-view-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:none;background:transparent;color:#475569;font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;border-radius:3px;cursor:pointer;transition:all .15s ease}.compare-view-btn:hover{color:#0f172a}.compare-view-btn.active{background:#fff;color:#0d1f2b;font-weight:600;box-shadow:0 1px 3px #00000014}.compare-type-badge{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:4px;border:1px solid transparent;white-space:nowrap;line-height:1.2}.compare-type-catamaran{background:#ccfbf1;color:#0f5b59;border-color:#14b8a6}.compare-type-monohull{background:#e2e8f0;color:#0f172a;border-color:#94a3b8}.compare-type-trimaran{background:#f3e8ff;color:#581c87;border-color:#c084fc}.compare-type-motor{background:#fef3c7;color:#92400e;border-color:#f59e0b}.compare-type-other{background:#f1f5f9;color:#334155;border-color:#cbd5e1}.compare-badge-year{display:inline-flex;align-items:center;font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:11px;font-weight:600;color:#1e293b;background:#f8fafc;border:1px solid #cbd5e1;padding:2px 7px;border-radius:3px;white-space:nowrap}.compare-length-val{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:13.5px;font-weight:700;color:#0d1f2b;white-space:nowrap}.compare-length-sub{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:10px;color:#64748b;margin-top:1px}.compare-capacity-pill{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:11px;font-weight:600;color:#0369a1;background:#e0f2fe;border:1px solid #7dd3fc;padding:3px 8px;border-radius:3px;white-space:nowrap}.compare-capacity-pill.capacity-alert{color:#991b1b;background:#fee2e2;border-color:#f87171}.compare-brand-text{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#475569;line-height:1.2}.compare-model-text{font-size:13.5px;font-weight:700;color:#0d1f2b;line-height:1.3}.compare-matrix-scroll{overflow-x:auto;border-radius:4px;border:1px solid var(--slate-300, #d7dee2);background:#fff;position:relative}.compare-matrix-table{width:100%;border-collapse:separate;border-spacing:0;min-width:640px}.compare-matrix-table th,.compare-matrix-table td{padding:12px 16px;border-bottom:1px solid #eef1f3;border-right:1px solid #eef1f3;vertical-align:middle}.compare-matrix-table th:last-child,.compare-matrix-table td:last-child{border-right:none}.compare-matrix-table tr:last-child td{border-bottom:none}.compare-matrix-label-th,.compare-matrix-label-td{position:sticky;left:0;z-index:2;background:#f8fafc!important;font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#475569;width:160px;min-width:160px;box-shadow:2px 0 4px #00000008}.compare-matrix-col-header{min-width:200px;max-width:260px;background:#fff;vertical-align:top;padding:16px}.compare-matrix-col-header.cheapest-col{background:#f0fdf4}.compare-matrix-cell{background:#fff;transition:background .15s ease}.compare-matrix-cell.cheapest-cell{background:#fafffc}.compare-matrix-table tr:hover td{background:#f8fafc}.compare-matrix-table tr:hover td.cheapest-cell{background:#f0fdf4}.compare-table-container{overflow-x:auto;border-radius:4px;border:1px solid var(--slate-300, #d7dee2);background:#fff}.compare-data-table{width:100%;border-collapse:collapse;min-width:900px}.compare-data-table th{background:#f8fafc;padding:12px 14px;font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#475569;text-align:left;border-bottom:2px solid #e2e8f0;-webkit-user-select:none;user-select:none;white-space:nowrap}.compare-data-table th.sortable{cursor:pointer;transition:color .15s ease}.compare-data-table th.sortable:hover{color:#0f172a}.compare-data-table th.sorted{color:#0f5b59}.compare-data-table td{padding:14px;border-bottom:1px solid #eef1f3;vertical-align:middle;background:#fff;transition:background .15s ease}.compare-data-table tr:hover td{background:#f8fafc}.compare-data-table tr.cheapest-row td{background:#fafffc}.compare-data-table tr.cheapest-row:hover td{background:#f0fdf4}.compare-mobile-card{background:#fff;border-bottom:1px solid #eef1f3;padding:18px 16px;cursor:pointer;transition:background .15s ease}.compare-mobile-card:hover{background:#f8fafc}.compare-mobile-card.cheapest-card{background:#fafffc;border-left:3px solid #10b981}.compare-mobile-specs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0;background:#f8fafc;border:1px solid #e2e8f0;border-radius:4px;padding:12px}.compare-mobile-spec-tile{display:flex;flex-direction:column;gap:3px}.compare-mobile-spec-label{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.compare-mobile-spec-val{font-size:13px;font-weight:600;color:#0d1f2b}
