/* Shared MDI presentation; bundled @mdi/font 7.4.47, no CDN. */
.mdi { display: inline-block; flex-shrink: 0; font-size: 1.2em; line-height: 1; vertical-align: -.125em; color: inherit; }
.mdi::before { line-height: 1; }
button .mdi, a .mdi, summary .mdi { pointer-events: none; }
.page-title-action .mdi, .kv-v3-visit-icon .mdi, .kv-v3-edit-button .mdi, .theme-toggle .mdi { font-size: 20px; }
.ui-status-green { color: #008a36; }
.ui-status-yellow { color: #f2c400; }
.ui-status-red { color: #df2028; }
.ui-status-gray { color: #c4c4c4; }
[data-theme="dark"] .ui-status-green { color: #39d353; }
[data-theme="dark"] .ui-status-yellow { color: #ffdf00; }
[data-theme="dark"] .ui-status-red { color: #ff4545; }
[data-theme="dark"] .ui-status-gray { color: #d4d4d4; }
.nav-chevron .mdi { font-size: 18px; }
.week-stock-header { list-style: none; }
.week-stock-header::-webkit-details-marker { display: none; }
.week-stock-header::marker { content: ''; }
.week-stock-header::before { display: inline-block; font-size: 1.2em; line-height: 1; margin-inline-end: .25em; }
.kv-dropdown > summary::after, .kv-mobile-group > summary::after { content: none; }
/* Preserve navigation layout while keeping labels and icons aligned. */
:is(.central-main-nav, .mobile-nav-menu) a .mdi,
:is(.central-main-nav, .mobile-nav-menu) button .mdi { width: 1.25em; margin-inline-end: .2em; }
.kv-card-add .mdi, .kc-edit .mdi, .attachment-delete .mdi { font-size: 20px; }
.kv-week-star .mdi { font-size: 1em; }

/* Replace native disclosure triangles with one consistent MDI chevron. */
summary { list-style: none; }
summary::-webkit-details-marker { display: none; }
summary::marker { content: ''; }
summary:not(.header-link):not(.mobile-nav-button):not(.week-stock-header)::before {
    content: "\F0142"; font-family: "Material Design Icons";
    display: inline-block; line-height: 1; margin-inline-end: .25em; vertical-align: -.1em;
}
details[open] > summary:not(.header-link):not(.mobile-nav-button):not(.week-stock-header)::before {
    content: "\F0140";
}

.tour-map-user-marker .mdi { font-size: 36px; color: #1976d2; line-height: 41px; margin-left: -5px; }

/* Clearly separated traffic-light colors, including at narrow list font sizes. */
.mdi:is(.ui-status-green, .ui-status-yellow, .ui-status-red, .ui-status-gray) {
    font-size: 18px;
}
.mdi:is(.ui-status-green, .ui-status-yellow, .ui-status-red, .ui-status-gray)::before {
    -webkit-text-stroke: .65px rgb(0 0 0 / 45%);
}
[data-theme="dark"] .mdi:is(.ui-status-green, .ui-status-yellow, .ui-status-red, .ui-status-gray)::before {
    -webkit-text-stroke: .65px rgb(255 255 255 / 40%);
}

/* Navigation and icon actions share one frameless presentation in both themes. */
:is(.page-title-action, .kv-v3-visit-icon, .kv-v3-edit-button, .kv-card-add,
    .kc-edit, .theme-toggle, .mobile-nav-button, .tour-map-week-nav a,
    #tour-map-calendar, .appointment-close, .attachment-delete) {
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}
:is(.page-title-action, .kv-v3-visit-icon, .kv-v3-edit-button, .kv-card-add,
    .kc-edit, .theme-toggle, .mobile-nav-button, .tour-map-week-nav a,
    #tour-map-calendar, .appointment-close, .attachment-delete):hover {
    background: rgb(128 128 128 / 12%) !important;
}
:is(.page-title-action, .kv-v3-visit-icon, .kv-v3-edit-button, .kv-card-add,
    .kc-edit, .theme-toggle, .mobile-nav-button, .tour-map-week-nav a,
    #tour-map-calendar, .appointment-close, .attachment-delete):focus-visible {
    outline: 3px solid #60a5fa;
    outline-offset: 2px;
}
