.v2-nav { display: flex; flex-wrap: wrap; align-items: start; gap: .4rem; }
.v2-nav a, .v2-nav summary { display: block; padding: .65rem; color: white; text-decoration: none; border-radius: 7px; cursor: pointer; min-height: 44px; }
.v2-nav a:hover, .v2-nav summary:hover, .v2-nav [aria-current] { background: rgb(255 255 255 / 14%); }
.v2-nav details { position: relative; }
.v2-menu { position: absolute; z-index: 2; right: 0; min-width: 190px; padding: .5rem; background: #123660; border: 1px solid #819bb9; border-radius: 7px; }
.v2-menu span { display: block; padding: .35rem .65rem; overflow-wrap: anywhere; }
.v2-menu button { width: 100%; text-align: left; }
.v2-header button, .v2-header select { min-height: 44px; padding: .5rem; border: 1px solid #819bb9; border-radius: 7px; background: white; color: #123660; cursor: pointer; }
.v2-group { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; max-width: 100%; }
.v2-group select { max-width: 100%; }
.v2-people { display: grid; gap: 1rem; margin-top: 1rem; }
.v2-people summary, .v2-global summary { cursor: pointer; min-height: 44px; overflow-wrap: anywhere; }
.v2-people form, .v2-global form { margin-top: 1rem; }
.v2-global { margin-top: 1rem; }
.v2-global > details { margin: 1rem 0; }
.v2-admin-directory table { margin-top: 1rem; }
.v2-admin-directory td { overflow-wrap: anywhere; }
.v2-admin-port-picker, .v2-admin-access { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.v2-admin-port-picker select, .v2-admin-access select { max-width: 100%; }
.v2-admin-access input { max-width: 8rem; }
.v2-nav :focus-visible, .v2-header button:focus-visible, .v2-group select:focus-visible { outline: 3px solid #b9d7ff; outline-offset: 2px; }
.v2-appointments .calendar-section { overflow: visible; }
.v2-appointments .calendar-heading { min-width: 0; flex-wrap: wrap; }
.v2-appointments .calendar-heading h2 { flex: 1; }
.v2-calendar-scroll { max-width: 100%; overflow-x: auto; }
.v2-calendar-scroll:focus-visible { outline: 3px solid #165da7; outline-offset: 3px; }
.v2-calendar-help { display: none; }
@media (max-width: 720px) {
    .v2-appointments .calendar-heading { gap: .5rem; }
    .v2-appointments .calendar-heading h2 { flex-basis: 100%; order: -1; }
    .v2-calendar-help { display: block; color: #657086; }
}
@media (max-width: 700px) {
    .v2-nav { width: 100%; }
    .v2-menu { position: static; min-width: 0; }
    .v2-group { width: 100%; }
    .v2-group label { width: 100%; }
    .v2-group select { flex: 1; min-width: 0; }
}

.login-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-top: .25rem; }
.v2-contacts th:last-child { width: 22%; }
.v2-contacts th:nth-child(2), .v2-contacts td:nth-child(2) { min-width: 9rem; white-space: nowrap; }
.v2-contacts td[data-label="Ship"] { overflow-wrap: anywhere; }
.v2-contact-notes { min-width: 12rem; overflow-wrap: anywhere; }
.v2-deleted { background: #f3f4f6; }
.v2-contact-fields dd, .v2-conflict dd { overflow-wrap: anywhere; }
.v2-conflict { border: 2px solid #b77413; padding: 1rem; margin-top: 1rem; }
.v2-contacts .export-links { margin-top: 1rem; gap: .6rem; }
.v2-contacts .export-links small { flex-basis: 100%; color: #657086; }
.info-table .sort-indicator { display: inline-block; margin-left: .2rem; text-decoration: none; }
.v2-area-admin > .card { margin-bottom: 1.25rem; }
.v2-area-admin .v2-area-port { margin-bottom: 1.25rem; }
.v2-area-authority-form { display: grid; justify-items: start; gap: .75rem; }
.v2-area-authority-form select { min-width: 7rem; min-height: 42px; padding: .5rem .65rem; border: 1px solid #aeb8c7; border-radius: 7px; background: white; }
.live-map-page > .card { margin-block: 1.25rem; }
.v2-reference-add { margin: 1rem 0 1.25rem; }
.v2-account-details { display: grid; gap: 0; margin: 1rem 0 1.5rem; }
.v2-account-details > div { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: .75rem; padding: .75rem 0; border-bottom: 1px solid #e5eaf0; }
.v2-account-details dt { color: #657086; font-weight: 650; }
.v2-account-details dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.v2-account-actions { gap: .6rem; }
@media (max-width: 720px) {
    .v2-contact-notes { min-width: 0; }
    .v2-account-details > div { grid-template-columns: 1fr; gap: .2rem; }
    .info-table { overflow-x: auto; }
    .info-table table { display: table; min-width: 42rem; }
    .info-table thead { display: table-header-group; position: static; width: auto; height: auto; overflow: visible; clip: auto; }
    .info-table tbody { display: table-row-group; }
    .info-table tr { display: table-row; margin: 0; padding: 0; border: 0; border-radius: 0; }
    .info-table th, .info-table td { display: table-cell; padding: .65rem .75rem; border-bottom: 1px solid #e5eaf0; }
    .info-table td::before { content: none; }
}

/* Area editor: external CSS keeps the existing strict Content Security Policy. */
.boundary-map { height: 420px; min-height: 260px; background: #f1f5f9; }
.v2-vessel { border-top: 1px solid #dbe2ea; padding: 1rem 0; }
.v2-vessel h3 { display: flex; align-items: center; gap: .5rem; }
.v2-vessel small { display: block; }
.v2-vessel form { margin: .4rem 0; }
.v2-vessel select { max-width: 100%; }
.v2-map-filters summary { cursor: pointer; font-weight: 700; }
.reference-status { display: inline-flex; gap: .4rem; align-items: center; white-space: nowrap; }
.reference-country { padding: .8rem 0; border-top: 1px solid #dbe2ea; }

/* Compact expandable Blog; tables scroll within the post on narrow screens. */
.v2-blog .blog-body { white-space: normal; line-height: 1.45; overflow-wrap: anywhere; min-width: 0; }
.v2-blog .blog-body p, .v2-blog .blog-body ul, .v2-blog .blog-body ol { margin: .65rem 0; }
.v2-blog .blog-body li { margin: .15rem 0; }
.v2-blog .blog-table { max-width: 100%; overflow-x: auto; margin: .65rem 0; }
.v2-blog .blog-table table { width: 100%; }
.v2-blog .blog-table th, .v2-blog .blog-table td { min-width: 6rem; vertical-align: top; }
.v2-blog .blog-meta { line-height: 1.4; overflow-wrap: anywhere; }
.v2-blog pre { white-space: pre-wrap; overflow-wrap: anywhere; }
.v2-blog .blog-post summary { cursor: pointer; }
/* Retain real table columns/headers instead of the generic mobile record cards. */
.v2-blog .blog-table table { display: table; min-width: 20rem; border-collapse: collapse; }
.v2-blog .blog-table thead { display: table-header-group; position: static; width: auto; height: auto; overflow: visible; clip: auto; }
.v2-blog .blog-table tbody { display: table-row-group; }
.v2-blog .blog-table tr { display: table-row; margin: 0; padding: 0; border: 0; border-radius: 0; }
.v2-blog .blog-table th, .v2-blog .blog-table td { display: table-cell; padding: .65rem .75rem; border-bottom: 1px solid var(--border); }
.v2-blog .blog-table td::before { content: none; }
