/* MDV UI · tokens → foundation → components → pages → responsive states.
   Source of truth. Public file is generated from this file by the package builder. */
@font-face {
    font-family: 'Plus Jakarta Sans';
    src: url('/mdv-ui/fonts/plus-jakarta-sans-variable.woff2') format('woff2');
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
}

/* Tokens */
.mdv-app {
    --mdv-font: 'Plus Jakarta Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    --mdv-ink: #18181b;
    --mdv-muted: #52525b;
    --mdv-subtle: #71717a;
    --mdv-bg: #fafafa;
    --mdv-paper: #fff;
    --mdv-soft: #f4f4f5;
    --mdv-line: #e4e4e7;
    --mdv-control-line: #d4d4d8;
    --mdv-primary: #18181b;
    --mdv-primary-hover: #3f3f46;
    --mdv-danger: #b91c1c;
    --mdv-danger-hover: #991b1b;
    --mdv-success: #166534;
    --mdv-warning: #92400e;
    --mdv-brand: #078fa9;
    --mdv-radius: 18px;
    --mdv-field-radius: 13px;
    --mdv-pill: 999px;
    --mdv-content-width: 1152px;
    --mdv-field-size: 13px;
    --mdv-control-height: 40px;
    --mdv-menu-shadow: 0 12px 30px rgb(24 24 27 / .12);
    color-scheme: light;
}

/* Foundation */
.mdv-app { margin: 0; min-height: 100vh; display: flex; flex-direction: column; background: var(--mdv-bg); color: var(--mdv-ink); font: 400 12.5px/1.55 var(--mdv-font); font-feature-settings: normal; }
.mdv-app *, .mdv-app *::before, .mdv-app *::after { box-sizing: border-box; }
.mdv-app :where(h1,h2,h3,p,dl,dd,form) { margin: 0; }
.mdv-app :where(h1,h2,h3,p,dd,a) { overflow-wrap: anywhere; }
.mdv-app :where(button,input,select,textarea) { font-family: inherit; }
.mdv-app :where(button,summary) { cursor: pointer; }
.mdv-app :where(a) { color: inherit; text-decoration: none; }
.mdv-app :where(a,button) { transition: background-color .16s, color .16s, border-color .16s, box-shadow .16s; }
.mdv-app :where(button,a,input,select,textarea,summary):focus-visible { outline: 2px solid var(--mdv-muted); outline-offset: 3px; }
.mdv-app :where(button,input,select,textarea):disabled { cursor: not-allowed; opacity: .55; }
.mdv-app :where(input[type=checkbox],input[type=radio]) { accent-color: var(--mdv-primary); flex-shrink: 0; }
.mdv-app :where(h1) { font-size: clamp(26px,3vw,34px); font-weight: 800; line-height: 1.15; letter-spacing: -.045em; }
.mdv-app :where(h2) { font-size: 17px; font-weight: 700; line-height: 1.35; letter-spacing: -.025em; }
.mdv-app :where(form,section,details) { scroll-margin-top: 120px; }
.mdv-app ::selection { background: var(--mdv-line); color: var(--mdv-ink); }
.mdv-app [hidden] { display: none; }
.mdv-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.mdv-skip-link { position: fixed; top: 8px; left: 16px; z-index: 1000; padding: 10px 16px; border-radius: var(--mdv-pill); background: var(--mdv-ink); color: #fff; transform: translateY(-180%); }
.mdv-skip-link:focus { transform: translateY(0); }
.mdv-icon { display: inline-block; width: 15px; height: 15px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }

/* Shared application shell */
.mdv-container, .mdv-main { width: 100%; max-width: var(--mdv-content-width); margin-inline: auto; padding-inline: 24px; }
.mdv-main { flex: 1 0 auto; min-width: 0; padding-block: 34px 72px; }
.mdv-header { position: sticky; top: 0; z-index: 100; background: var(--mdv-paper); border-bottom: 1px solid var(--mdv-line); }
.mdv-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 94px; padding-block: 20px; }
.mdv-footer { flex-shrink: 0; padding-block: 19px; border-top: 1px solid var(--mdv-line); background: var(--mdv-paper); color: var(--mdv-subtle); font-size: 11px; }
.mdv-brand { display: inline-flex; align-items: center; gap: 10px; min-width: 0; max-width: 100%; color: var(--mdv-ink); }
.mdv-brand-logo { display: block; width: 96px; height: auto; max-height: 46px; object-fit: contain; }
.mdv-navigation { display: flex; align-items: center; gap: 3px; padding: 5px; border: 1px solid var(--mdv-line); border-radius: 14px; background: var(--mdv-soft); }
.mdv-navigation :is(a,button) { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 36px; padding: 10px 15px; border: 0; border-radius: 10px; background: transparent; color: var(--mdv-ink); font-size: 12px; font-weight: 600; line-height: 1.3; text-decoration: none; }
.mdv-navigation :is(a,button):hover { background: var(--mdv-line); }
.mdv-navigation a.is-active { background: var(--mdv-paper); box-shadow: 0 2px 8px rgb(24 24 27 / .16), 0 1px 2px rgb(24 24 27 / .08); }
.mdv-initials { display: inline-flex; align-items: center; justify-content: center; width: 23px; height: 23px; flex: none; border: 1px solid var(--mdv-control-line); border-radius: 50%; background: var(--mdv-paper); color: var(--mdv-muted); font-size: 9px; font-weight: 700; }
.mdv-mobile-menu { display: none; align-items: center; justify-content: center; width: 40px; height: 40px; flex: none; padding: 0; border: 1px solid var(--mdv-line); border-radius: 10px; background: var(--mdv-soft); color: var(--mdv-ink); }
.mdv-mobile-menu .mdv-icon { width: 18px; height: 18px; }
.mdv-navigation--mobile { flex-direction: column; align-items: stretch; width: 100%; padding: 0; border: 0; background: transparent; }
.mdv-navigation--mobile :is(a,button) { justify-content: flex-start; width: 100%; padding: 12px; border-radius: 9px; font-size: 13px; }
.mdv-navigation--mobile a.is-active { background: var(--mdv-soft); box-shadow: none; }
.mdv-navigation--mobile form { width: 100%; margin-top: 4px; padding-top: 4px; border-top: 1px solid var(--mdv-line); }
.mdv-navigation-dialog { max-width: 380px; }

/* Shared headings, navigation and actions */
.mdv-page-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 18px; margin-bottom: 14px; }
.mdv-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.mdv-overview-head { justify-content: flex-end; }
.mdv-breadcrumbs { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 17px; color: var(--mdv-subtle); font-size: 12px; }
.mdv-breadcrumbs a { color: var(--mdv-muted); padding-block: 3px; }
.mdv-breadcrumbs a:hover { color: var(--mdv-ink); }
.mdv-breadcrumbs [aria-current=page] { color: var(--mdv-ink); font-weight: 700; }
.mdv-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-width: 0; min-height: var(--mdv-control-height); padding: 9px 15px; border: 1px solid var(--mdv-line); border-radius: var(--mdv-pill); font-size: 12px; font-weight: 600; line-height: 1.3; text-align: center; text-decoration: none; white-space: normal; cursor: pointer; }
.mdv-button--outline { background: var(--mdv-paper); color: var(--mdv-ink); }
.mdv-button--outline:hover { background: var(--mdv-soft); border-color: var(--mdv-control-line); }
.mdv-button--primary { background: var(--mdv-primary); border-color: var(--mdv-primary); color: #fff; }
.mdv-button--primary:hover { background: var(--mdv-primary-hover); border-color: var(--mdv-primary-hover); }
.mdv-button--danger { background: var(--mdv-danger); border-color: var(--mdv-danger); color: #fff; }
.mdv-button--danger:hover { background: var(--mdv-danger-hover); border-color: var(--mdv-danger-hover); }
.mdv-button--danger-outline { background: var(--mdv-paper); border-color: var(--mdv-danger); color: var(--mdv-danger); }
.mdv-button--danger-outline:hover { background: #fef2f2; border-color: var(--mdv-danger-hover); color: var(--mdv-danger-hover); }
.mdv-icon-button { width: 36px; min-height: 36px; padding: 0; }
.mdv-button--small { min-height: 36px; padding: 9px 12px; }
.mdv-button--full { width: 100%; }
.mdv-button:disabled { pointer-events: none; }

/* Shared panel, fields, native select and feedback */
.mdv-panel { min-width: 0; padding: 24px; border: 1px solid var(--mdv-line); border-radius: var(--mdv-radius); background: var(--mdv-paper); }
.mdv-field { min-width: 0; }
.mdv-field label, .mdv-field-label { display: block; margin-bottom: 5px; color: var(--mdv-muted); font-size: 12px; font-weight: 600; }
.mdv-app :where(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea) { display: block; width: 100%; min-width: 0; max-width: 100%; min-height: var(--mdv-control-height); margin: 0; padding: 9px 12px; border: 1px solid var(--mdv-control-line); border-radius: var(--mdv-field-radius); background: var(--mdv-paper); color: var(--mdv-ink); font-size: var(--mdv-field-size); font-weight: 400; line-height: 1.4; }
.mdv-app :where(input,select,textarea):focus-visible { border-color: var(--mdv-muted); }
.mdv-app textarea { min-height: 86px; resize: vertical; }
.mdv-app select:not([multiple]) { appearance: none; -webkit-appearance: none; min-height: var(--mdv-control-height); padding-right: 38px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2352525b' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; background-size: 16px; cursor: pointer; }
.mdv-form { display: flex; flex-direction: column; gap: 16px; }
.mdv-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.mdv-full { grid-column: 1 / -1; }
.mdv-create-boat-actions { justify-content: flex-end; }
.mdv-boat-title { font-size: clamp(22px,2.5vw,27px); letter-spacing: -.035em; }
.mdv-form-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.mdv-checkbox { display: inline-flex; align-items: center; gap: 9px; min-height: 28px; color: var(--mdv-muted); font-size: 12px; font-weight: 500; cursor: pointer; }
.mdv-checkbox input { width: 16px; height: 16px; margin: 0; }
.mdv-alert { margin: 0 0 16px; padding: 12px 14px; border: 1px solid; border-radius: 12px; font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.mdv-alert--error { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.mdv-alert--success { background: #ecfdf5; border-color: #a7f3d0; color: #065f46; }
.mdv-field-error { margin-top: 6px; color: #991b1b; font-size: 12px; }
.mdv-readonly { padding-block: 9px; color: var(--mdv-muted); overflow-wrap: anywhere; }

/* Shared semantic badges, status dots and progress */
.mdv-badge { display: inline-flex; align-items: center; max-width: 100%; gap: 5px; padding: 4px 8px; border: 1px solid var(--mdv-line); border-radius: 7px; background: var(--mdv-soft); color: var(--mdv-muted); font-size: 11px; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.mdv-badge--stored { background: #f4f4f5; border-color: #d4d4d8; color: #3f3f46; }
.mdv-badge--delivered { background: #e4e4e7; border-color: #a1a1aa; color: #3f3f46; }
.mdv-badge--uninvoiced { background: var(--mdv-paper); border-color: var(--mdv-control-line); color: var(--mdv-muted); }
.mdv-badge--invoiced { background: #ecfdf5; border-color: #a7f3d0; color: #065f46; }
.mdv-badge--work-none { background: #fff; border-color: #d4d4d8; color: #52525b; }
.mdv-badge--work-ongoing { background: #fef3c7; border-color: #fde68a; color: #92400e; }
.mdv-badge--work-done { background: #dcfce7; border-color: #a7dcb9; color: #166534; }
.mdv-badge--work-delivered { background: #e4e4e7; border-color: #c4c4cc; color: #52525b; }
.mdv-state-dot { display: inline-block; width: 9px; height: 9px; flex: none; border: 1px solid transparent; border-radius: 50%; }
.mdv-state-dot--none { background: #fff; border-color: #a1a1aa; }
.mdv-state-dot--ongoing { background: #eab308; border-color: #ca8a04; }
.mdv-state-dot--done { background: #16a34a; border-color: #15803d; }
.mdv-state-dot--delivered { background: #52525b; border-color: #3f3f46; }
.mdv-progress { display: block; width: 100%; height: 5px; overflow: hidden; border: 0; border-radius: var(--mdv-pill); background: var(--mdv-line); color: #10b981; appearance: none; }
.mdv-progress::-webkit-progress-bar { border-radius: var(--mdv-pill); background: var(--mdv-line); }
.mdv-progress::-webkit-progress-value { border-radius: var(--mdv-pill); background: #10b981; }
.mdv-progress::-moz-progress-bar { border-radius: var(--mdv-pill); background: #10b981; }

/* Overview: one compact inventory summary, filters and a two-column boat grid */
.mdv-dashboard { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-bottom: 18px; padding: 16px 0; border: 1px solid var(--mdv-line); border-radius: 14px; background: var(--mdv-paper); }
.mdv-stat { display: flex; flex-direction: column; gap: 6px; min-width: 0; padding-inline: 20px; }
.mdv-stat + .mdv-stat { border-left: 1px solid var(--mdv-line); }
.mdv-stat-label { display: flex; align-items: center; gap: 6px; color: var(--mdv-muted); font-size: 11px; font-weight: 500; }
.mdv-stat strong { font-size: 22px; font-weight: 800; line-height: 1.1; letter-spacing: -.05em; font-variant-numeric: tabular-nums; }
.mdv-filter-panel { padding: 18px; }
.mdv-filter-grid { display: grid; grid-template-columns: minmax(0,2fr) minmax(150px,1fr) auto; align-items: end; gap: 12px; }
.mdv-search-control { position: relative; }
.mdv-search-control .mdv-icon { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); color: var(--mdv-subtle); pointer-events: none; }
.mdv-search-control input { padding-left: 37px; }
.mdv-filter-trigger { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 40px; padding: 9px 15px; border: 1px solid var(--mdv-line); border-radius: var(--mdv-pill); background: var(--mdv-paper); color: var(--mdv-ink); font-size: 12px; font-weight: 600; line-height: 1.3; }
.mdv-filter-trigger:hover { border-color: var(--mdv-control-line); background: var(--mdv-soft); }
.mdv-filter-count { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; border-radius: 50%; background: var(--mdv-ink); color: #fff; font-size: 10px; font-variant-numeric: tabular-nums; }
.mdv-filter-options { display: grid; gap: 8px; }
.mdv-filter-options .mdv-checkbox { min-height: 36px; }
.mdv-list-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 18px; margin: 20px 0 12px; color: var(--mdv-muted); font-size: 11px; }
.mdv-boat-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px 16px; }
.mdv-boat-card { position: relative; isolation: isolate; display: flex; flex-direction: column; min-width: 0; padding: 18px; border: 1px solid var(--mdv-line); border-left-width: 4px; border-radius: 0; background: var(--mdv-paper); }
.mdv-card-hitarea { position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.mdv-card-hitarea:focus-visible { outline-offset: 4px; }
.mdv-boat-card:has(.mdv-card-hitarea:hover) { border-top-color: var(--mdv-control-line); border-right-color: var(--mdv-control-line); border-bottom-color: var(--mdv-control-line); }
.mdv-boat-card-meta { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.mdv-boat-id { color: var(--mdv-muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.mdv-boat-card-title { min-height: 24px; margin: 9px 0 8px; font-size: 18px; font-weight: 700; line-height: 1.28; letter-spacing: -.025em; }
.mdv-customer { display: flex; align-items: flex-start; gap: 7px; color: var(--mdv-ink); font-size: 13px; font-weight: 600; line-height: 1.5; }
.mdv-customer .mdv-icon { margin-top: 3px; color: var(--mdv-subtle); }
.mdv-customer span { min-width: 0; overflow-wrap: anywhere; }
.mdv-motor { margin-top: 5px; color: var(--mdv-muted); font-size: 12px; }
.mdv-card-bottom { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 12px; margin-top: auto; padding-top: 18px; }
.mdv-card-bottom .mdv-badge { justify-self: start; }
.mdv-work-status { align-items: flex-start; min-width: 0; font-size: 10px; }
.mdv-work-status .mdv-icon { width: 12px; height: 12px; margin-top: 1px; }
.mdv-work-status > span { min-width: 0; }
.mdv-invoice-text { justify-self: end; color: var(--mdv-muted); font-size: 10px; line-height: 1.5; text-align: right; }
.mdv-remaining { display: inline-block; color: var(--mdv-subtle); font-size: 10px; }
.mdv-card-bottom .mdv-progress { grid-column: 1 / -1; }
.mdv-state--none { border-left-color: #a1a1aa; background: #fff; }
.mdv-state--ongoing { border-left-color: #ca8a04; background: #fffbeb; }
.mdv-state--done { border-left-color: #16a34a; background: #f0fdf4; }
.mdv-state--delivered { border-left-color: #52525b; background: #f4f4f5; }
.mdv-legend { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 16px; color: var(--mdv-muted); font-size: 11px; }
.mdv-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.mdv-pagination { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 20px; color: var(--mdv-muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.mdv-empty { padding: 25px; border: 1px dashed var(--mdv-line); border-radius: 12px; background: var(--mdv-paper); color: var(--mdv-muted); text-align: center; }
.mdv-empty--wide { grid-column: 1 / -1; }

/* Customer and boat information are separate panels in a shared save form. */
.mdv-information-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.4fr); align-items: start; gap: 16px; }
.mdv-info-panel { padding: 0; }
.mdv-info-heading { padding: 18px 20px 0; font-size: 16px; }
.mdv-contact-facts { display: grid; gap: 8px; padding: 14px 20px 6px; }
.mdv-contact-facts > div { display: grid; grid-template-columns: 80px minmax(0,1fr); gap: 10px; }
.mdv-vessel-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 16px; padding: 14px 20px 6px; }
.mdv-contact-facts dt, .mdv-vessel-facts dt { color: var(--mdv-subtle); font-size: 10px; }
.mdv-contact-facts dd, .mdv-vessel-facts dd { min-width: 0; color: var(--mdv-ink); font-size: 11.5px; font-weight: 500; line-height: 1.5; overflow-wrap: anywhere; }
.mdv-vessel-facts dt { margin-bottom: 3px; }
.mdv-vessel-notes dd { white-space: pre-wrap; font-weight: 400; }
.mdv-vessel-facts .mdv-badge { font-size: 10px; }
.mdv-boat-details > summary { display: flex; align-items: center; justify-content: flex-end; gap: 6px; min-height: 40px; padding: 10px 20px; color: var(--mdv-muted); font-size: 12px; font-weight: 600; list-style: none; }
.mdv-boat-details > summary::-webkit-details-marker { display: none; }
.mdv-boat-details > summary:hover { color: var(--mdv-ink); }
.mdv-close-label { display: none; }
.mdv-boat-details[open] .mdv-edit-label { display: none; }
.mdv-boat-details[open] .mdv-close-label { display: inline; }
.mdv-boat-details[open] > summary .mdv-icon { transform: rotate(180deg); }
.mdv-edit-fields { padding: 16px 20px 20px; border-top: 1px solid var(--mdv-line); }
.mdv-info-create { padding: 16px 20px 20px; }
.mdv-checklist-panel { margin-top: 18px; }
.mdv-section-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.mdv-task-count { color: var(--mdv-muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.mdv-add-task { display: flex; align-items: flex-start; gap: 8px; }
.mdv-add-task > input { flex: 1; min-width: 0; }
.mdv-add-task > .mdv-button { flex: none; }
.mdv-tasks { display: grid; gap: 10px; margin-top: 16px; }
.mdv-task { display: flex; align-items: flex-start; gap: 12px; min-width: 0; padding: 14px; border: 1px solid var(--mdv-line); border-radius: 12px; background: var(--mdv-bg); }
.mdv-task-check { width: 21px; height: 21px; margin: 9px 0 0; }
.mdv-task-content { flex: 1; min-width: 0; }
.mdv-task-content textarea { min-height: 40px; overflow: hidden; }
.mdv-task-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.mdv-autosave { min-height: 16px; margin-right: auto; color: var(--mdv-subtle); font-size: 10px; }
.mdv-task.is-completed { border-color: #a7dcb9; background: #ecfdf5; }
.mdv-task.is-completed textarea { border-color: #b8dfc6; background: #f7fef9; color: #166534; text-decoration: line-through; }
.mdv-task.is-completed .mdv-task-check { accent-color: #15803d; }
.mdv-task-attribution { color: var(--mdv-muted); font-size: 12px; line-height: 1.65; overflow-wrap: anywhere; }
.mdv-task-attribution strong { color: var(--mdv-ink); font-weight: 600; }
.mdv-task-attribution > div + div { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--mdv-line); }
.mdv-boat-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-top: 20px; }
.mdv-creation-note { flex: 1 1 340px; color: var(--mdv-subtle); font-size: 11px; line-height: 1.65; }

/* Modal */
.mdv-dialog { position: fixed; inset: 0; width: calc(100% - 32px); max-width: 460px; max-height: calc(100dvh - 32px); margin: auto; overflow: auto; padding: 24px; border: 1px solid var(--mdv-line); border-radius: 20px; background: var(--mdv-paper); color: var(--mdv-ink); box-shadow: 0 22px 75px rgb(0 0 0 / .24); }
.mdv-dialog::backdrop { background: rgb(18 18 20 / .5); }
.mdv-dialog h2 { font-size: 19px; font-weight: 700; letter-spacing: -.035em; }
.mdv-dialog-message { display: grid; gap: 8px; margin-top: 12px; color: var(--mdv-muted); font-size: 12px; line-height: 1.65; }
.mdv-dialog-message p:last-child { margin-top: 5px; }
.mdv-dialog-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.mdv-dialog--wide { max-width: 650px; }
.mdv-modal-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.mdv-modal-close { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: var(--mdv-soft); color: var(--mdv-muted); }
.mdv-modal-close:hover { background: var(--mdv-line); color: var(--mdv-ink); }
.mdv-modal-body { margin-top: 16px; }

/* Customer calendar: slots, date selection and boat selection. */
.mdv-calendar-subtitle { margin-top: 6px; color: var(--mdv-muted); font-size: 12px; }
.mdv-calendar-section-head { margin-top: 24px; }
.mdv-slot-day + .mdv-slot-day { margin-top: 22px; }
.mdv-slot-day h3 { margin-bottom: 10px; font-size: 13px; font-weight: 600; text-transform: none; }
.mdv-slot-list { overflow: hidden; border: 1px solid var(--mdv-line); border-radius: 12px; background: var(--mdv-paper); }
.mdv-slot-row { display: grid; grid-template-columns: minmax(155px,1fr) minmax(160px,1fr) auto; align-items: center; gap: 12px; padding: 14px 16px; }
.mdv-slot-row + .mdv-slot-row { border-top: 1px solid var(--mdv-line); }
.mdv-slot-time { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.mdv-slot-time > .mdv-icon { color: var(--mdv-subtle); }
.mdv-slot-visibility { color: var(--mdv-muted); font-size: 12px; }
.mdv-calendar-history { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--mdv-line); }
.mdv-history-toggle { display: inline-flex; align-items: center; gap: 9px; min-height: 40px; padding: 8px 0; border: 0; background: transparent; color: var(--mdv-ink); font-size: 13px; font-weight: 600; }
.mdv-history-toggle[aria-expanded=true] > .mdv-icon { transform: rotate(180deg); }
.mdv-history-content { margin-top: 16px; }
.mdv-wizard-steps { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.mdv-wizard-steps > :is(span,button) { padding: 5px 10px; border: 1px solid var(--mdv-line); border-radius: var(--mdv-pill); color: var(--mdv-subtle); font-size: 11px; }
.mdv-wizard-steps > :is(span,button).is-current { border-color: var(--mdv-ink); background: var(--mdv-ink); color: #fff; }
.mdv-date-picker { max-width: 390px; margin-inline: auto; }
.mdv-date-month { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.mdv-date-month h3 { font-size: 15px; font-weight: 700; text-transform: none; }
.mdv-date-month .mdv-button { width: 38px; padding: 0; }
.mdv-date-weekdays, .mdv-date-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 4px; }
.mdv-date-weekdays { margin-bottom: 7px; text-align: center; color: var(--mdv-subtle); font-size: 10px; }
.mdv-date-day { min-width: 0; min-height: 40px; padding: 8px 2px; border: 1px solid transparent; border-radius: 10px; background: var(--mdv-paper); color: var(--mdv-ink); font-size: 13px; font-weight: 500; font-variant-numeric: tabular-nums; }
.mdv-date-day:hover:not(:disabled) { background: var(--mdv-soft); }
.mdv-date-day.is-today { border-color: var(--mdv-control-line); }
.mdv-date-day.is-selected { border-color: var(--mdv-primary); background: var(--mdv-primary); color: #fff; }
.mdv-date-day.is-selected:hover:not(:disabled) { background: var(--mdv-primary-hover); color: #fff; }
.mdv-date-day.is-outside { visibility: hidden; }
.mdv-date-selected { min-height: 20px; margin-top: 14px; color: var(--mdv-muted); font-size: 12px; text-align: center; }
.mdv-selected-date { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; font-size: 13px; }
.mdv-text-button { padding: 4px 0; border: 0; background: transparent; color: var(--mdv-muted); font-size: 11px; font-weight: 600; }
.mdv-selected-date .mdv-text-button { margin-left: auto; }
.mdv-slot-access { min-width: 0; margin: 20px 0 0; padding: 0; border: 0; }
.mdv-slot-access legend { margin-bottom: 10px; padding: 0; color: var(--mdv-muted); font-size: 12px; font-weight: 600; }
.mdv-access-choice { display: flex; align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--mdv-line); border-radius: 12px; background: var(--mdv-paper); color: var(--mdv-ink); font-size: 12px; cursor: pointer; }
.mdv-access-choice + .mdv-access-choice { margin-top: 8px; }
.mdv-access-choice:has(input:checked) { border-color: #a1a1aa; background: var(--mdv-soft); }
.mdv-access-choice input { width: 16px; height: 16px; margin: 0; }
.mdv-boat-selector { margin-top: 14px; padding: 14px; border: 1px solid var(--mdv-line); border-radius: 14px; background: var(--mdv-bg); }
.mdv-boat-selector-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; color: var(--mdv-muted); font-size: 11px; }
.mdv-boat-selector-head > span:first-child { color: var(--mdv-ink); font-weight: 600; }
.mdv-boat-picker-list { max-height: 240px; overflow: auto; margin-top: 10px; border: 1px solid var(--mdv-line); border-radius: 10px; background: var(--mdv-paper); }
.mdv-boat-picker-row { display: flex; align-items: flex-start; gap: 10px; min-width: 0; padding: 10px 12px; cursor: pointer; }
.mdv-boat-picker-row + .mdv-boat-picker-row { border-top: 1px solid var(--mdv-line); }
.mdv-boat-picker-row:has(input:checked) { background: var(--mdv-soft); }
.mdv-boat-picker-row input { width: 16px; height: 16px; margin: 3px 0 0; }
.mdv-boat-picker-row > span { min-width: 0; overflow-wrap: anywhere; }
.mdv-boat-picker-row strong { display: block; font-size: 12px; font-weight: 600; }
.mdv-boat-picker-row small { display: block; margin-top: 2px; color: var(--mdv-muted); font-size: 11px; }
.mdv-picker-empty, .mdv-picker-hint { padding: 10px 12px; color: var(--mdv-muted); font-size: 11px; }
.mdv-picker-hint { padding: 10px 0 0; }
.mdv-slot-detail-date { text-transform: none; color: var(--mdv-muted); font-size: 12px; text-transform: none; }
.mdv-slot-detail-time { margin-top: 5px; font-size: 22px; font-weight: 700; font-variant-numeric: tabular-nums; }
.mdv-slot-detail-access { margin-top: 16px; color: var(--mdv-muted); font-size: 12px; }
.mdv-slot-boat-details { display: grid; gap: 10px; margin: 14px 0 0; padding: 0; list-style: none; }
.mdv-slot-boat-details li { padding: 10px 12px; border: 1px solid var(--mdv-line); border-radius: 10px; background: var(--mdv-bg); overflow-wrap: anywhere; }
.mdv-slot-boat-details strong { display: block; font-size: 12px; font-weight: 600; }
.mdv-slot-boat-details span { display: block; margin-top: 3px; color: var(--mdv-muted); font-size: 11px; }

/* Authentication, account and error pages use the same primitives */
.mdv-main--auth { display: flex; align-items: center; max-width: 460px; padding-block: 40px; }
.mdv-auth-panel { width: 100%; }
.mdv-auth-brand { display: flex; justify-content: center; margin-bottom: 28px; }
.mdv-auth-brand .mdv-brand-logo { width: 128px; max-height: 64px; }
.mdv-auth-title { margin-bottom: 20px; font-size: 19px; font-weight: 700; letter-spacing: -.035em; }
.mdv-auth-form { display: flex; flex-direction: column; gap: 16px; }
.mdv-auth-form .mdv-field label { margin-bottom: 7px; color: var(--mdv-ink); font-size: 13px; }
.mdv-password-control { position: relative; }
.mdv-password-control input { padding-right: 67px; }
.mdv-password-toggle { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); min-height: 28px; min-width: 48px; padding: 5px 9px; border: 0; border-radius: var(--mdv-pill); background: var(--mdv-soft); color: var(--mdv-muted); font-size: 11px; font-weight: 600; }
.mdv-password-toggle:hover { background: var(--mdv-line); color: var(--mdv-ink); }
.mdv-main--narrow { max-width: 698px; }
.mdv-main--error { max-width: 540px; display: flex; align-items: center; }
.mdv-error-panel { width: 100%; }
.mdv-error-code { margin-bottom: 12px; color: var(--mdv-subtle); font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; }
.mdv-error-panel h1 { font-size: 26px; }
.mdv-error-panel p { margin-top: 12px; color: var(--mdv-muted); }
.mdv-error-panel .mdv-toolbar { margin-top: 24px; }

/* Native select enhancement; unsupported browsers retain their accessible picker */
@supports (appearance: base-select) {
    .mdv-app select:not([multiple]), .mdv-app select::picker(select) { appearance: base-select; }
    .mdv-app select:not([multiple]) { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-right: 12px; background-image: none; }
    .mdv-app select::picker(select) { max-height: 280px; overflow: auto; padding: 6px; border: 1px solid var(--mdv-line); border-radius: 16px; background: var(--mdv-paper); box-shadow: var(--mdv-menu-shadow); }
    .mdv-app select option { padding: 10px 12px; border-radius: 10px; color: var(--mdv-ink); font-family: var(--mdv-font); font-size: var(--mdv-field-size); }
    .mdv-app select option:checked, .mdv-app select option:hover { background: var(--mdv-soft); }
    .mdv-app select::picker-icon { color: var(--mdv-muted); }
    .mdv-app select:open::picker-icon { rotate: 180deg; }
}

/* Responsive: component owners remain above; only layout and touch dimensions change */
@media (max-width:1024px), (pointer:coarse) {
    .mdv-app { --mdv-field-size: 16px; }
    .mdv-task-actions > .mdv-button { min-height: 40px; }
    .mdv-task-actions > .mdv-icon-button { width: 40px; }
    .mdv-task-check { width: 24px; height: 24px; }
}
@media (max-width:900px) {
    .mdv-header-inner { gap: 12px; }
    .mdv-navigation--desktop :is(a,button) { padding-inline: 10px; }
    .mdv-information-grid { grid-template-columns: 1fr; }
}
@media (max-width:680px) {
    .mdv-container, .mdv-main { padding-inline: 16px; }
    .mdv-main { padding-block: 23px 48px; }
    .mdv-header-inner { min-height: 82px; padding-block: 19px; }
    .mdv-brand-logo { width: 76px; max-height: 38px; }
    .mdv-brand { gap: 8px; }
    .mdv-navigation--desktop { display: none; }
    .mdv-mobile-menu { display: inline-flex; }
    .mdv-panel { padding: 18px; }
    .mdv-dashboard { padding-block: 12px; margin-bottom: 14px; }
    .mdv-stat { padding-inline: 10px; }
    .mdv-stat-label { align-items: flex-start; gap: 5px; min-height: 28px; font-size: 10px; line-height: 1.35; }
    .mdv-stat-label .mdv-state-dot { width: 7px; height: 7px; margin-top: 3px; }
    .mdv-stat-label .mdv-icon { width: 12px; height: 12px; margin-top: 1px; }
    .mdv-stat strong { font-size: 20px; }
    .mdv-filter-grid { grid-template-columns: minmax(0,1fr) auto; }
    .mdv-filter-grid > form { grid-column: 1 / -1; }
    .mdv-boat-grid { grid-template-columns: 1fr; gap: 12px; }
    .mdv-boat-card { padding: 15px; }
    .mdv-boat-card-title { min-height: 0; }
    .mdv-info-panel { padding: 0; }
    .mdv-info-heading { padding: 16px 18px 0; }
    .mdv-contact-facts, .mdv-vessel-facts { padding-inline: 18px; }
    .mdv-boat-details > summary { padding-inline: 18px; }
    .mdv-edit-fields, .mdv-info-create { padding: 16px 18px 18px; }
    .mdv-footer { padding-block: 16px; font-size: 10px; }
    .mdv-main--auth { padding-block: 32px; }
    .mdv-main--narrow { max-width: 698px; }
    .mdv-pagination { justify-content: center; }
}
@media (max-width:600px) {
    .mdv-form-grid { grid-template-columns: 1fr; }
    .mdv-time-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .mdv-slot-row { grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
    .mdv-slot-time { grid-column: 1; }
    .mdv-slot-visibility { grid-column: 1; font-size: 11px; }
    .mdv-slot-row > .mdv-button { grid-column: 2; grid-row: 1 / 3; }
}
@media (max-width:520px) {
    .mdv-task { padding: 10px; gap: 9px; }
    .mdv-dialog { padding: 20px; }
    .mdv-card-bottom { gap: 10px; }
}
@media (max-width:360px) {
    .mdv-stat { padding-inline: 8px; }
    .mdv-stat-label { font-size: 9px; }
    .mdv-stat strong { font-size: 19px; }
    .mdv-add-task { flex-wrap: wrap; }
    .mdv-add-task > input { flex-basis: 100%; }
    .mdv-add-task > .mdv-button { margin-left: auto; }
}
@media (prefers-reduced-motion:reduce) {
    .mdv-app *, .mdv-app *::before, .mdv-app *::after { transition: none; scroll-behavior: auto; }
}

/* Navigation and modal editing — MDV */
.mdv-header-right{display:flex;align-items:center;gap:14px;margin-left:auto}.mdv-account-ident{margin-right:16px}
.mdv-account-ident{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:650;white-space:nowrap}
.mdv-header-logout button{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--mdv-muted);font:inherit;font-size:12px;cursor:pointer;padding:9px}
.mdv-header-logout button:hover{color:var(--mdv-ink)}
.mdv-header-logout button{color:var(--mdv-ink)}
.mdv-panel-edit{display:flex;justify-content:flex-end;padding:0 20px 18px;margin-top:auto}
.mdv-boat-delete-small{font-size:10px!important;padding:7px 10px!important;min-height:29px!important}
.mdv-wizard-steps button{font:inherit;cursor:pointer}
.mdv-wizard-steps button:hover{text-decoration:underline}
@media(max-width:760px){.mdv-header-right{gap:8px}.mdv-account-ident{font-size:11px}.mdv-header-logout button{font-size:12px;gap:0}}
@media(max-width:400px){.mdv-account-ident{max-width:135px}.mdv-account-ident>span:last-child{overflow:hidden;text-overflow:ellipsis}}

/* Kundbesök och bokning */
.mdv-account-ident{font-weight:400}

.mdv-panel-edit .mdv-button{margin:0}
.mdv-info-panel{display:flex;flex-direction:column;align-items:stretch}
.mdv-customer-visit-panel{padding:20px 24px;margin:16px 0}
.mdv-customer-visit-panel h2{font-size:19px;margin:0 0 12px}
.mdv-customer-visit-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px}.mdv-booking-link-trigger{margin-left:auto;min-height:30px;padding:6px 10px;font-size:11px}.mdv-copy-icon{display:inline-flex;align-items:center;justify-content:center;min-width:38px}.mdv-copy-icon .mdv-icon{width:16px;height:16px}
.mdv-link-copy{display:flex;gap:6px;margin-top:14px;flex-wrap:wrap}
.mdv-link-copy input{flex:1;min-width:180px;padding:9px;border:1px solid #d6dbe2;border-radius:8px}
.mdv-link-copy button,.mdv-booking-cancel{border:1px solid #cdd3db;border-radius:30px;background:white;padding:8px 15px;cursor:pointer}
.mdv-visit-event{padding:12px 0;border-bottom:1px solid #e5e7eb;display:flex;flex-direction:column;gap:3px}
.mdv-visit-event small,.mdv-muted{color:#737b85}
.mdv-public-booking{max-width:620px;margin:40px auto;padding:26px;background:white}
.mdv-booking-option{display:flex;align-items:center;gap:10px;border:1px solid #e3e5ea;border-radius:10px;padding:15px;margin:8px 0;cursor:pointer}
.mdv-booking-option:has(input:checked){border-color:#18283c;background:#f2f6fa}
.mdv-booking-options{margin-top:25px}
.mdv-booking-current{background:#f1f9f4;padding:14px;border-radius:9px}
.mdv-booking-cancel{margin-top:20px;color:#b91c1c}
.mdv-inline-success{padding:12px;background:#ecfdf3;border-radius:8px}
.mdv-invite-search{width:100%;padding:12px;border:1px solid #dedfe5;border-radius:8px;margin:12px 0}
.mdv-calendar-page .mdv-page-head{justify-content:flex-end}
.mdv-dialog .mdv-modal-body [role=status]{position:relative;z-index:2}


/* Kundbesök 2 – ändringar i gemensam huvudkälla */
.mdv-header{position:static}
.mdv-header-right{gap:20px}.mdv-account-ident{margin:0;font-weight:400}.mdv-account-ident span:last-child{font-weight:400}
.mdv-panel-edit{padding:0 0 16px;margin-top:auto}.mdv-panel-edit .mdv-button{margin-right:0}
.mdv-customer-visit-panel h2,.mdv-visit-panel-toggle{font-size:16px;font-weight:600}
.mdv-visit-panel-toggle{display:flex;align-items:center;justify-content:space-between;background:transparent;border:0;color:inherit;width:100%;padding:0;text-align:left;cursor:pointer}
.mdv-visit-chevron{font-size:18px;display:none}
.mdv-visit-panel-content{margin-top:14px}
.mdv-visit-event span{font-weight:400}
.mdv-booking-open-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;margin-top:12px;background:#17283d;color:white;padding:10px 16px;border-radius:50px;font-size:12px;font-weight:600}
.mdv-copy-toast{position:fixed;z-index:9999;bottom:24px;left:50%;transform:translate(-50%,12px);border:1px solid rgba(255,255,255,.28);border-radius:100px;background:rgba(24,40,59,.86);backdrop-filter:blur(12px);color:#fff;padding:11px 18px;white-space:nowrap;font-size:12px;box-shadow:0 12px 40px #0002;opacity:0;transition:opacity .22s,transform .22s;pointer-events:none}
.mdv-copy-toast.is-visible{opacity:1;transform:translate(-50%,0)}
@media(max-width:760px){.mdv-customer-visit-panel .mdv-visit-chevron{display:block}.mdv-customer-visit-panel:not(.is-expanded) .mdv-visit-panel-content{display:none}.mdv-header-right{gap:10px}.mdv-account-ident{font-size:11px}}
/* Malmö Marinservice – separat publik bokningsupplevelse */
.mms-booking-page{background:#f6f7f7;color:#172a34;font-family:'MMS Lato',Arial,sans-serif}
.mms-main{min-height:100vh}.mms-shell{max-width:790px;margin:0 auto}.mms-header{display:flex;align-items:center;justify-content:center;padding:35px 22px 18px}.mms-logo{max-width:min(300px,78vw);height:auto;max-height:115px;object-fit:contain}
.mms-content{padding:24px 24px 64px}.mms-intro{text-align:center;max-width:580px;margin:0 auto 25px}.mms-eyebrow{color:#61727a;text-transform:uppercase;letter-spacing:.15em;font-size:10px;font-weight:700}.mms-intro h1{font-size:clamp(28px,5.2vw,40px);letter-spacing:-.045em;line-height:1.16;margin:13px 0 15px}.mms-intro p{color:#60717a;font-size:14px;line-height:1.85;margin:0}
.mms-boat{display:flex;align-items:center;gap:15px;max-width:570px;margin:0 auto 28px;background:#fff;border:1px solid #e1e8e8;border-radius:16px;padding:18px 20px;box-shadow:0 5px 24px #183c3f08}.mms-boat-icon{display:flex;align-items:center;justify-content:center;width:45px;height:45px;border-radius:12px;background:#edf4f4;font-size:22px}.mms-field-label{display:block;font-size:11px;font-weight:650;letter-spacing:.03em;color:#74838b;margin-bottom:5px}.mms-boat strong{font-size:17px;font-weight:650}
.mms-booked,.mms-choices,.mms-success{max-width:570px;margin:0 auto 20px}.mms-booked{display:flex;gap:14px;background:#fff;border:1px solid #d6e9db;border-radius:18px;padding:25px;box-shadow:0 5px 24px #183c3f08}.mms-booked-mark{width:30px;height:30px;flex:none;border-radius:50%;background:#daf2e1;color:#267a46;display:grid;place-items:center;font-weight:800}.mms-booked h2{font-size:20px;margin:1px 0 9px;letter-spacing:-.03em}.mms-booked p{font-size:14px;color:#52676b;margin:0 0 18px;line-height:1.65}.mms-booked-actions{display:flex;gap:9px;flex-wrap:wrap}
.mms-button{display:inline-flex;justify-content:center;align-items:center;border-radius:999px;padding:12px 19px;border:1px solid #dce3e4;min-height:43px;font:600 12px 'MMS Lato',Arial,sans-serif;cursor:pointer}.mms-button-primary{background:#192f3b;border-color:#192f3b;color:#fff}.mms-button-secondary{background:#fff;color:#223741}.mms-button-danger{background:#b72d36;color:#fff;border-color:#b72d36}.mms-button:disabled{opacity:.55;cursor:wait}
.mms-success{padding:17px 20px;border-radius:15px;background:#e8f6ed;border:1px solid #cfe7d7;color:#245d3d;display:flex;flex-direction:column;gap:5px;font-size:13px}.mms-success strong{font-size:14px}
.mms-choices{background:#fff;border:1px solid #e1e8e8;border-radius:19px;padding:24px;box-shadow:0 5px 24px #183c3f08}.mms-choice-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:19px}.mms-choice-head h2{font-size:20px;letter-spacing:-.035em;margin:0}.mms-back{background:transparent;border:0;color:#546e74;text-decoration:none;cursor:pointer;font-size:12px}.mms-slot-fieldset{margin:0;padding:0;border:0;display:grid;gap:10px}.mms-sr-only{position:absolute;overflow:hidden;clip:rect(0,0,0,0);height:1px;width:1px;white-space:nowrap}.mms-slot{position:relative;display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #e0e6e7;border-radius:14px;padding:16px 18px;cursor:pointer;transition:background .15s,border-color .15s}.mms-slot:has(input:checked){border-color:#1e5960;background:#eff8f7}.mms-slot input{position:absolute;opacity:0;width:1px;height:1px}.mms-slot:has(input:focus-visible){outline:3px solid #66a0a6;outline-offset:2px}.mms-slot-date{display:flex;flex-direction:column;min-width:104px}.mms-weekday{font-size:11px;color:#697b80;text-transform:none}.mms-day{font-size:26px;font-weight:750;letter-spacing:-.05em;line-height:1.25}.mms-month{font-size:14px;font-weight:700;color:#213943}.mms-slot-time{font-size:15px;font-weight:650;margin-left:auto}.mms-slot-radio{border:1px solid #bdc9cb;border-radius:50%;width:18px;height:18px;flex:none;margin-left:10px}.mms-slot:has(input:checked) .mms-slot-radio{border:5px solid #245861}.mms-submit{width:100%;margin-top:20px}.mms-empty{font-size:13px;color:#63747c;line-height:1.6}
.mms-footnote{max-width:555px;margin:24px auto 0;text-align:center;color:#748189;font-size:12px;line-height:1.8}.mms-footer{text-align:center;border-top:1px solid #e2e9e9;padding:24px 20px 34px;color:#839096;font-size:11px;display:flex;align-items:center;justify-content:center;gap:10px 18px;flex-wrap:wrap}.mms-privacy-link{border:0;padding:3px;background:none;color:inherit;text-decoration:underline;text-underline-offset:2px;font:inherit;cursor:pointer}
@media(max-width:520px){.mms-header{padding-top:25px}.mms-content{padding:15px 17px 40px}.mms-choices{padding:16px}.mms-booked{padding:19px}.mms-slot{padding:14px 13px}.mms-slot-date{min-width:82px}.mms-slot-time{font-size:13px}.mms-intro p{font-size:13px}.mms-booked-actions .mms-button{flex:1}}

.mdv-booking-open-link{font-size:11px;padding:7px 12px;min-height:30px;font-weight:600}
@font-face{font-family:"MMS Lato";src:url("/mdv-ui/fonts/mms-lato-regular.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"MMS Lato";src:url("/mdv-ui/fonts/mms-lato-bold.woff2") format("woff2");font-style:normal;font-weight:600 900;font-display:swap}

/* Booking details and public page refinements */
.mms-boat-model{display:flex;align-items:center;min-height:45px}.mms-intro p{color:#31434b}.mms-header{padding-bottom:9px}.mms-intro h1{margin-top:8px}.mms-privacy-link{text-decoration:none;font-weight:700;color:#425a61}.mms-privacy-link:hover{text-decoration:underline}.mdv-booked-boats{margin:15px 0;padding:14px;border:1px solid var(--mdv-line);border-radius:12px}.mdv-booked-boats h3{font-size:14px;margin-bottom:8px}.mdv-booked-boats summary{font-weight:600;cursor:pointer}.mdv-booked-boats details ul{margin-top:12px}.mdv-slot-blocked{font-size:12px;color:var(--mdv-muted)}.mdv-edit-booking-warning{padding:12px 14px;border:1px solid #e9d39b;border-radius:10px;background:#fff9e8;color:#775313;font-size:12px}

.mdv-slot-meta{display:flex;flex-wrap:wrap;gap:5px 17px;font-size:12px;color:var(--mdv-muted)}.mdv-slot-booking-count{font-weight:600;margin-top:16px}.mdv-booking-list-items{display:grid;gap:12px;margin:15px 0}.mdv-booking-list-item{border:1px solid var(--mdv-line);border-radius:10px;padding:15px;font-size:13px;line-height:1.8}.mdv-booking-list-item strong{display:block;font-size:15px}.mdv-booking-list-item small{display:block;color:var(--mdv-muted)}.mdv-edit-booking-warning ul{margin:8px 0 0;padding-left:20px}

/* MDV booking list / modal corrections */
.mdv-panel-edit{padding-left:20px!important;padding-right:20px!important;padding-bottom:18px!important;box-sizing:border-box}
.mdv-slot-settings-row{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;width:100%}
.mdv-slot-availability{font-size:12px;color:var(--mdv-muted);margin-left:auto;text-align:right}
.mdv-booking-list-cta{display:flex;justify-content:center;width:100%}
.mdv-booking-list-cta .mdv-button{min-width:0;max-width:180px;padding:7px 14px}
.mdv-booking-list-item{display:flex;align-items:flex-start;gap:12px}
.mdv-booking-boat-symbol{display:flex;flex-shrink:0;width:34px;height:34px;align-items:center;justify-content:center;border:1px solid var(--mdv-line);border-radius:9px}
.mdv-booking-boat-symbol .mdv-icon{width:19px;height:19px}
.mdv-booking-boat-content{min-width:0;flex:1}
.mdv-booking-boat-open{display:inline-block;margin-top:5px;font-size:12px}
.mdv-booking-created{color:#8b9098!important;font-size:10px!important;font-weight:400}

/* Slot cards: predictable two-row desktop, compact stacked mobile */
.mdv-slot-row{grid-template-columns:minmax(180px,1.1fr) minmax(125px,.7fr) auto!important;column-gap:18px!important;row-gap:12px!important}
.mdv-slot-settings-row{grid-column:3;grid-row:1;display:flex;justify-content:flex-end;align-items:center;gap:18px;flex-wrap:nowrap;width:auto}
.mdv-slot-availability{margin-left:0;white-space:nowrap;text-align:right;order:0}
.mdv-slot-settings-row .mdv-button{order:1;flex-shrink:0}
.mdv-booking-list-cta{grid-column:1/-1;grid-row:2;justify-content:center;align-items:center;margin:0}
.mdv-booking-list-cta .mdv-button{width:auto!important;min-width:0!important;max-width:180px}
.mdv-booking-list-item{align-items:center}.mdv-booking-boat-content{flex:1;line-height:1.9}.mdv-booking-boat-content b{font-weight:700}.mdv-booking-boat-open{margin:0 0 0 auto!important;white-space:nowrap;display:inline-flex!important;align-items:center;gap:5px;padding:8px 11px!important;font-size:12px!important}
.mdv-booking-boat-open .mdv-icon{width:14px;height:14px}
.mdv-header-logout,.mdv-logout{border:1px solid #e1e2e5!important;border-radius:999px!important;padding:8px 14px!important}
.mms-header{padding-bottom:0!important}.mms-content{padding-top:9px!important}.mms-intro h1{margin-top:3px!important}
@media(max-width:850px){.mdv-slot-row{grid-template-columns:1fr auto!important}.mdv-slot-time{grid-column:1;grid-row:1}.mdv-slot-meta{grid-column:1;grid-row:2}.mdv-slot-settings-row{grid-column:1/-1;grid-row:3;justify-content:space-between;flex-wrap:wrap}.mdv-booking-list-cta{grid-column:1/-1;grid-row:4}.mdv-booking-list-item{flex-wrap:wrap}.mdv-booking-boat-open{margin-left:auto!important}}

/* MDV: focused layout fixes for November 2026 */
.mdv-slot-day h3 { text-transform:none !important; }
.mdv-date-month h3 { text-transform:none !important; }
.mdv-slot-row { grid-template-columns:minmax(150px,1.1fr) minmax(190px,1fr) auto !important; row-gap:0 !important; align-items:center; }
.mdv-slot-meta { grid-column:2;grid-row:1;display:flex;align-items:center;justify-content:flex-start;gap:14px; }

.mdv-slot-settings-row {grid-column:3;grid-row:1;}
.mdv-booking-list-cta {display:none;}
.mdv-booking-list-count {font-weight:700;margin:14px 0 16px!important;}
.mdv-slot-booking-count {margin-bottom:15px;}
.mdv-slot-details .mdv-alert--error,.mdv-dialog .mdv-alert--error {margin-top:16px;margin-bottom:18px;}
.mdv-dialog .mdv-field + .mdv-edit-booking-warning {margin-top:18px;}
.mdv-edit-booking-warning {margin-top:20px;margin-bottom:20px;}
.mdv-header-logout,.mdv-logout {padding:0!important;border:0!important;border-radius:0!important;}
.mdv-header-logout button,.mdv-logout button {min-height:32px!important; padding:6px 12px!important;border:1px solid #e1e2e5!important;border-radius:999px!important;transition:background .16s,border-color .16s,color .16s!important;}
.mdv-header-logout button:hover,.mdv-logout button:hover {background:#f1f3f5!important;border-color:#adb5be!important;color:#19232b!important;}

.mdv-dialog {overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;}
.mdv-feedback,[data-mdv-toast],.mdv-toast,.mdv-notification {z-index:2147483647!important;}
.mms-header{padding-bottom:6px!important}
.mms-content{padding-top:12px!important}
.mms-privacy-link{text-decoration:none!important;transition:background .18s,color .18s; padding:4px 7px;border-radius:8px;cursor:pointer}
.mms-privacy-link:hover{background:transparent;color:inherit;text-decoration:none!important}.mms-privacy-link:focus-visible{background:transparent;color:inherit;text-decoration:none!important}
.mms-calendar-download{width:100%;flex:0 0 100%!important;max-width:100%;display:flex!important;align-items:center;justify-content:center;gap:9px;order:5;margin-top:4px}
.mms-booked-actions{display:flex;flex-wrap:wrap;gap:10px;width:100%}
.mms-policy{max-height:65vh;overflow:auto;font-size:13px;line-height:1.65;color:#35464a}
.mms-policy h3{font-size:14px;font-weight:700;margin:20px 0 6px}
.mms-policy p{margin:8px 0}.mms-policy-note{font-size:11px;color:#69777a;border-top:1px solid #e5e9e9;padding-top:12px}
@media(max-width:850px){.mdv-slot-row{grid-template-columns:1fr auto!important;row-gap:10px!important}.mdv-slot-time{grid-column:1;grid-row:1}.mdv-slot-meta{grid-column:1/-1;grid-row:2}.mdv-slot-settings-row{grid-column:2;grid-row:1;gap:8px}.mdv-slot-availability{white-space:normal}}

.mdv-slot-day > h3, .mdv-slot-detail-date, .mdv-date-month > h3 { text-transform: none !important; }

.mdv-invitation-summary {border:1px solid var(--mdv-line);background:#f8f9fa;border-radius:14px;padding:17px 19px;margin:14px 0;}
.mdv-invitation-summary strong {font-size:19px;}
.mdv-invitation-step-lead{color:var(--mdv-muted);line-height:1.65;}
.mdv-invitation-steps button:not(.is-current){cursor:pointer;}
.mdv-slot-detail-date{text-transform:none!important;}

/* Utskick – stegvis navigering och urvalslista */
.mdv-invitation-steps button{font-size:11px;line-height:1.5;font-weight:600;text-decoration:none!important;}
.mdv-invitation-steps button:hover:not(.is-current){border-color:var(--mdv-ink);color:var(--mdv-ink);background:#f5f6f7;}
.mdv-invitation-preview{margin:16px 0;border:1px solid var(--mdv-line);border-radius:14px;padding:12px 15px;}
.mdv-invitation-preview summary{font-weight:650;cursor:pointer;}
.mdv-invitation-preview-list{margin-top:12px;max-height:280px;overflow-y:auto;}
.mdv-invitation-preview-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:10px 4px;border-top:1px solid var(--mdv-line);font-size:13px;}
.mdv-invitation-preview-row span:first-child{display:flex;flex-direction:column;gap:3px;}
.mdv-invitation-preview-row small{color:var(--mdv-muted);}
.mdv-invitation-preview-row.is-excluded{opacity:.65;background:#fff7f7;}
.mdv-invitation-excluded{color:#a53030;font-size:12px;}
.mdv-invitation-included{color:var(--mdv-muted);font-size:12px;}
/* Kundens kalenderknapp följer samma bredd som de två åtgärderna tillsammans */
.mms-booked-actions{width:max-content!important;max-width:100%;display:grid!important;grid-template-columns:max-content max-content;gap:10px!important;}
.mms-booked-actions .mms-calendar-download{grid-column:1 / -1;width:100%!important;max-width:none!important;min-width:0;flex:none!important;margin-top:4px;}
@media(max-width:520px){.mms-booked-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%!important;}.mms-booked-actions .mms-calendar-download{grid-column:1/-1;}}

/* Shared compact top-level actions, while preserving form submit sizes. */

/* Keep dialog navigable on smaller screens and with long boat lists. */
.mdv-dialog{max-height:calc(100dvh - 32px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;}
.mdv-dialog .mdv-boat-picker-list{max-height:min(230px,30dvh);overflow-y:auto;overscroll-behavior:contain;}
@media(max-height:700px){.mdv-dialog .mdv-boat-picker-list{max-height:150px}}

/* Single source for compact page-heading actions. Specificity is identical
   for both color variants, preventing variant-dependent dimensions. */
.mdv-app .mdv-page-head > .mdv-button.mdv-action-compact,
.mdv-app .mdv-overview-head .mdv-toolbar > .mdv-button {
  appearance: none;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  gap: 7px;
  block-size: 36px;
  min-block-size: 36px;
  max-block-size: 36px;
  padding-block: 0;
  padding-inline: 12px;
  margin: 0;
  border-width: 1px;
  border-style: solid;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}
.mdv-app .mdv-page-head > .mdv-button.mdv-action-compact .mdv-icon,
.mdv-app .mdv-page-head > .mdv-button.mdv-action-compact svg,
.mdv-app .mdv-overview-head .mdv-toolbar > .mdv-button .mdv-icon,
.mdv-app .mdv-overview-head .mdv-toolbar > .mdv-button svg {
  inline-size: 15px;
  block-size: 15px;
  flex: 0 0 15px;
}
/* Keep both variants equally legible: outline contrast should not fade. */
.mdv-app .mdv-page-head > .mdv-button.mdv-action-compact.mdv-button--outline {
  border-color: #d4d4d8;
}
.mdv-picker-pagination{display:flex;gap:12px;align-items:center;justify-content:center;margin-top:12px;font-size:12px;color:var(--mdv-muted)}
.mdv-picker-pagination button{border:1px solid var(--mdv-line);background:var(--mdv-paper);color:var(--mdv-ink);border-radius:999px;padding:7px 12px;font:inherit;font-weight:600;cursor:pointer}
.mdv-picker-pagination button:hover:not(:disabled){background:var(--mdv-soft)}
.mdv-picker-pagination button:disabled{opacity:.4;cursor:default}
