/* Public, old-fashioned notebook presentation. Music Library fields updated in v1.4. */
.ltl-nb-content { max-width:100%; font-size:14px; }
.ltl-nb-content a, .ltl-nb-content a:visited { color:#0000ee; text-decoration:underline; }
.ltl-nb-toolbar { margin:0 0 17px !important; }
.ltl-nb-notice { margin-bottom:14px; border:1px solid #cccccc; padding:8px 10px; }

/* Give the Calendar room to use all the content space in the Notebook theme. */
body.ltl-nb-calendar-page .notebook-content { max-width:none; }

/* Desktop: calendar and detail area 75%, event list 25%. */
.ltl-nb-calendar-layout { display:grid; grid-template-columns:minmax(0,3fr) minmax(0,1fr); align-items:start; gap:24px; }
.ltl-nb-calendar-primary { min-width:0; }
.ltl-nb-calendar-box { width:100%; min-width:0; }
.ltl-nb-month-controls { display:flex; align-items:center; justify-content:space-between; margin:0 0 12px; }
.ltl-nb-month-controls strong { font-size:18px; }
.ltl-nb-month-controls a { display:inline-block; padding:0 8px; font-size:23px; line-height:1.25; }
.ltl-nb-month-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); border:1px solid #cccccc; border-right:0; border-bottom:0; }
.ltl-nb-month-grid > span { min-width:0; border-right:1px solid #dddddd; border-bottom:1px solid #dddddd; }
.ltl-nb-month-grid .ltl-nb-weekday { padding:7px 2px; background:#f1f1f1; text-align:center; font-weight:bold; font-size:12px; }
.ltl-nb-month-grid .ltl-nb-blank { background:#fafafa; }
.ltl-nb-month-grid .ltl-nb-day { min-height:112px; display:block; padding:6px; font-size:13px; overflow-wrap:anywhere; }
.ltl-nb-day.is-today { background:#f2f2f2; }
.ltl-nb-day.is-today .ltl-nb-day-number { font-weight:bold; }
.ltl-nb-day.has-event { background:#f8faff; }
.ltl-nb-day-number { display:block; margin:0 0 7px; }
.ltl-nb-day-events { display:block; }
.ltl-nb-calendar-event-name { display:block; margin:0 0 5px; font-size:12px; line-height:1.3; }
.ltl-nb-preview-link[aria-current="true"] { font-weight:bold; }

.ltl-nb-event-preview { margin-top:20px; border-top:1px solid #cccccc; padding-top:17px; scroll-margin-top:18px; min-height:100px; }
.ltl-nb-event-preview .ltl-nb-event-details h2 { margin:0 0 8px; font-size:20px; }
.ltl-nb-event-date { margin:0 0 13px !important; }
.ltl-nb-event-notes { white-space:normal; margin-bottom:15px; }
.ltl-nb-event-actions { margin:14px 0 !important; }
.ltl-nb-preview-placeholder { color:#666666; }
.ltl-nb-event-single .ltl-nb-event-details h2 { margin:18px 0 9px; }
.ltl-nb-event-single .ltl-nb-event-details { max-width:680px; }

.ltl-nb-event-list { min-width:0; }
.ltl-nb-event-list h2 { font-size:17px; margin:0 0 12px; }
.ltl-nb-date-group { border-bottom:1px solid #d8d8d8; margin-bottom:14px; padding-bottom:9px; scroll-margin-top:15px; }
.ltl-nb-date-group h3 { font-size:14px; margin:0 0 6px; }
.ltl-nb-event { margin:0 0 10px; }
.ltl-nb-event .ltl-nb-small { margin:2px 0 0; }
.ltl-nb-mobile-event-link { display:none; }
.ltl-nb-small { color:#666666; font-size:12px; margin:6px 0; }

/* Existing Notebook add/edit/login/music forms are preserved. */
.ltl-nb-form { max-width:560px; }
.ltl-nb-form label { display:block; font-weight:bold; margin:17px 0 5px; }
.ltl-nb-form input[type="text"], .ltl-nb-form input[type="date"], .ltl-nb-form input[type="time"], .ltl-nb-form input[type="url"], .ltl-nb-form textarea { display:block; width:100%; max-width:100%; font-family:inherit; font-size:14px; padding:7px; border:1px solid #999999; background:white; color:#111111; border-radius:0; }
.ltl-nb-form-row { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.ltl-nb-form button, .ltl-nb-delete-form button, .ltl-nb-content #wp-submit { background:#eeeeee; color:#111111; border:1px solid #999999; border-radius:0; padding:7px 13px; cursor:pointer; font-size:14px; }
.ltl-nb-delete-form { max-width:560px; padding-top:13px; margin-top:25px; border-top:1px solid #dddddd; font-size:13px; }
.ltl-nb-delete-form label { font-weight:normal; }
.ltl-nb-login-form { max-width:350px; }
.ltl-nb-login-form input[type="text"], .ltl-nb-login-form input[type="password"] { display:block; width:100%; padding:7px; font-size:14px; border:1px solid #999999; background:#ffffff; color:#111111; border-radius:0; }
.ltl-nb-login-form label.ltl-nb-remember { display:inline; font-weight:normal; margin:0; }
.ltl-nb-login-form label.ltl-nb-remember input { vertical-align:middle; }
.ltl-nb-table-scroll { max-width:100%; overflow-x:auto; }
.ltl-nb-music-app table { font-size:13px; }

/* Narrow screens: compact calendar, chronological events below; no preview panel. */
@media (max-width:1100px) {
    .ltl-nb-calendar-layout { grid-template-columns:minmax(0,1fr); gap:22px; }
    .ltl-nb-calendar-box { width:min(100%,340px); }
    .ltl-nb-month-controls { margin-bottom:8px; }
    .ltl-nb-month-controls strong { font-size:14px; }
    .ltl-nb-month-controls a { font-size:20px; }
    .ltl-nb-month-grid .ltl-nb-weekday { padding:5px 0; font-size:11px; }
    .ltl-nb-month-grid .ltl-nb-day, .ltl-nb-month-grid .ltl-nb-blank { min-height:38px; text-align:center; }
    .ltl-nb-month-grid .ltl-nb-day { padding:8px 1px; font-size:12px; }
    .ltl-nb-day-number { margin:0; }
    .ltl-nb-day-events { display:none; }
    .ltl-nb-event-preview { display:none; }
    .ltl-nb-desktop-event-link { display:none; }
    .ltl-nb-mobile-event-link { display:inline; }
    .ltl-nb-date-group { max-width:620px; }
}
@media (max-width:540px) {
    .ltl-nb-form-row { grid-template-columns:1fr; gap:0; }
}

/* v1.3 — Calendar notes: distinct red style, always shown before events. */
.ltl-nb-day.has-note { background:#fffafa; }
.ltl-nb-calendar-entry-name { display:block; margin:0 0 5px; font-size:12px; line-height:1.3; overflow-wrap:anywhere; }
.ltl-nb-content a.ltl-nb-calendar-note-name,
.ltl-nb-content a.ltl-nb-calendar-note-name:visited { display:block; color:#a00000; background:#fbe4e4; border:1px solid #ebc6c6; padding:3px 4px; text-decoration:underline; }
.ltl-nb-content a.ltl-nb-calendar-note-name:hover { background:#f7d3d3; }
.ltl-nb-note-details { border-left:3px solid #c62828; background:#fff5f5; padding:13px; overflow-wrap:anywhere; }
.ltl-nb-event-preview .ltl-nb-note-details h2,
.ltl-nb-event-single .ltl-nb-note-details h2 { color:#9d0000; }
.ltl-nb-note-list-entry { background:#fbe4e4; border:1px solid #ebc6c6; padding:7px; overflow-wrap:anywhere; }
.ltl-nb-content a.ltl-nb-note-list-link,
.ltl-nb-content a.ltl-nb-note-list-link:visited { color:#a00000; }
.ltl-nb-mobile-note { display:none; }
.ltl-nb-day-indicators { display:none; }

@media (max-width:1100px) {
    .ltl-nb-month-grid .ltl-nb-day { min-height:41px; padding:5px 1px 4px; }
    .ltl-nb-day-indicators { display:flex; flex-wrap:wrap; justify-content:center; gap:3px; margin-top:4px; }
    .ltl-nb-indicator-note, .ltl-nb-indicator-event { width:10px; height:4px; display:inline-block; border-radius:2px; }
    .ltl-nb-indicator-note { background:#bf2020; }
    .ltl-nb-indicator-event { background:#0000ee; }
    .ltl-nb-note-list-entry { background:transparent; border:0; padding:0; }
    .ltl-nb-mobile-note { display:block; background:#fbe4e4; border:1px solid #ebc6c6; padding:9px; }
    .ltl-nb-content a.ltl-nb-mobile-note-link,
    .ltl-nb-content a.ltl-nb-mobile-note-link:visited { color:#a00000; font-weight:bold; }
    .ltl-nb-mobile-note-text { margin:6px 0; overflow-wrap:anywhere; }
    .ltl-nb-mobile-note-actions { font-size:12px; margin-top:7px; }
}

/* v1.4 — Music Library: keep song columns legible and notes readable. */
.ltl-nb-music-app table { width:100%; border-collapse:collapse; }
.ltl-nb-music-app table th, .ltl-nb-music-app table td { padding:7px 9px; vertical-align:top; text-align:left; border:1px solid #d6d6d6; }
.ltl-nb-music-app table th { background:#f2f2f2; }
.ltl-nb-music-app table td:nth-child(3), .ltl-nb-music-app table td:nth-child(4) { white-space:nowrap; }
.ltl-nb-music-app table td:nth-child(6) { min-width:130px; max-width:320px; overflow-wrap:anywhere; white-space:pre-wrap; }
.ltl-nb-music-app .ltl-nb-form p.ltl-nb-small { margin:5px 0 0; }

/* v1.5 — Song title opens a preview; video is loaded only when Play is clicked. */
.ltl-nb-music-mobile { display:none; }
.ltl-nb-content a.ltl-nb-song-preview-link[aria-current="true"] { font-weight:bold; }
.ltl-nb-song-preview { border-top:1px solid #cccccc; padding-top:16px; margin-top:18px; scroll-margin-top:16px; }
.ltl-nb-song-details { max-width:700px; overflow-wrap:anywhere; }
.ltl-nb-song-details h2 { margin:0 0 9px; font-size:20px; }
.ltl-nb-song-meta { margin:0 0 14px !important; line-height:1.6; }
.ltl-nb-song-video { width:100%; max-width:640px; aspect-ratio:16 / 9; background:#111111; margin:11px 0; position:relative; }
.ltl-nb-song-video iframe { width:100%; height:100%; border:0; display:block; }
.ltl-nb-video-play { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; width:100%; height:100%; cursor:pointer; border:1px solid #777777; background-color:#111111; background-position:center; background-size:cover; color:#ffffff; font:inherit; text-shadow:0 1px 3px #000000; }
.ltl-nb-video-play:hover .ltl-nb-video-play-icon,
.ltl-nb-video-play:focus-visible .ltl-nb-video-play-icon { background:#cc0000; }
.ltl-nb-video-play-icon { display:flex; align-items:center; justify-content:center; background:#e62117; border-radius:12px; padding:7px 19px; font-size:26px; line-height:1.25; color:white; text-shadow:none; }
.ltl-nb-video-play-caption { font-size:13px; font-weight:bold; }
.ltl-nb-song-source { margin:7px 0 13px !important; }
.ltl-nb-song-notes p { margin:4px 0 12px; white-space:pre-wrap; }
.ltl-nb-song-actions { margin:12px 0 0 !important; }

@media (max-width:760px) {
    .ltl-nb-music-desktop { display:none; }
    .ltl-nb-music-mobile { display:block; }
    .ltl-nb-song-mobile-item { border-top:1px solid #d6d6d6; }
    .ltl-nb-song-mobile-item:last-child { border-bottom:1px solid #d6d6d6; }
    .ltl-nb-song-mobile-item > summary { padding:11px 4px; cursor:pointer; color:#0000ee; text-decoration:underline; }
    .ltl-nb-song-mobile-item > summary .ltl-nb-small { display:block; text-decoration:none; color:#555555; margin:2px 0 0; }
    .ltl-nb-song-mobile-details { padding:11px 9px 15px; border-top:1px solid #e2e2e2; }
    .ltl-nb-song-mobile-details .ltl-nb-song-details h2 { font-size:18px; }
    .ltl-nb-song-video { max-width:100%; }
}


/* v1.6 — The calendar and music pages share the same 75:25 notebook frame.
   Desktop keeps full information in its preview area. Narrow screens expose
   exactly the same fields/actions in a single-column expandable list. */
body.ltl-nb-music-page .notebook-content { max-width:none; }
.ltl-nb-calendar-layout,
.ltl-nb-music-layout {
    display:grid;
    grid-template-columns:minmax(0,3fr) minmax(0,1fr);
    gap:20px;
    align-items:start;
    width:100%;
}
.ltl-nb-calendar-primary,
.ltl-nb-music-primary { min-width:0; }
.ltl-nb-music-primary .ltl-nb-table-scroll { max-width:100%; }
.ltl-nb-calendar-box,
.ltl-nb-music-primary,
.ltl-nb-side-panel { min-width:0; }
.ltl-nb-calendar-box .ltl-nb-month-grid,
.ltl-nb-music-primary .ltl-nb-table-scroll,
.ltl-nb-side-panel { border:1px solid #c6c6c6; }
.ltl-nb-music-primary .ltl-nb-table-scroll { overflow-x:auto; }
.ltl-nb-music-primary table { margin:0; table-layout:fixed; min-width:440px; }
.ltl-nb-music-primary table th:first-child { width:34%; }
.ltl-nb-music-primary table th:nth-child(2) { width:30%; }
.ltl-nb-music-primary table th:nth-child(3) { width:13%; }
.ltl-nb-music-primary table th:nth-child(4) { width:23%; }
.ltl-nb-music-primary table td { overflow-wrap:anywhere; }
.ltl-nb-side-panel { padding:12px; overflow-wrap:anywhere; }
.ltl-nb-side-panel > h2 { margin:0 0 12px; font-size:17px; }
.ltl-nb-song-preview { margin:0; border-top:1px solid #c6c6c6; scroll-margin-top:15px; }
.ltl-nb-song-preview .ltl-nb-song-details h2 { font-size:17px; margin:0 0 10px; }
.ltl-nb-song-preview .ltl-nb-song-meta { font-size:13px; line-height:1.65; }
.ltl-nb-song-preview .ltl-nb-song-video { max-width:100%; }
.ltl-nb-source-url { display:block; font-size:11px; margin-top:5px; overflow-wrap:anywhere; color:#555; }
.ltl-nb-event-preview { border:1px solid #c6c6c6; padding:12px; margin-top:18px; }
.ltl-nb-calendar-mobile-item { display:none; }
.ltl-nb-event-list .ltl-nb-entry { margin-bottom:8px; }
.ltl-nb-note-list-entry { border:1px solid #ebc6c6; }
.ltl-nb-calendar-app .ltl-nb-day { min-height:105px; }
.ltl-nb-calendar-app .ltl-nb-event-list h3 { margin:10px 0 6px; }
.ltl-nb-calendar-app .ltl-nb-date-group:first-of-type h3 { margin-top:0; }
.ltl-nb-music-app .ltl-nb-song-details { width:100%; }

/* Both sections change to the same single-column pattern at the same width. */
@media (max-width:1100px) {
    .ltl-nb-calendar-layout { display:flex; flex-direction:column; gap:17px; }
    .ltl-nb-calendar-primary { width:100%; }
    .ltl-nb-calendar-box { width:min(100%,340px); }
    .ltl-nb-event-list { width:100%; max-width:680px; }
    .ltl-nb-calendar-app .ltl-nb-day { min-height:41px; }
    .ltl-nb-calendar-mobile-item { display:block; border:1px solid #d6d6d6; margin:0 0 8px; background:#fff; }
    .ltl-nb-calendar-mobile-item > summary { cursor:pointer; padding:10px; color:#0000ee; text-decoration:underline; }
    .ltl-nb-calendar-mobile-item > summary .ltl-nb-small { display:block; color:#666; text-decoration:none; margin:3px 0 0; }
    .ltl-nb-calendar-mobile-details { padding:11px; border-top:1px solid #dedede; color:#111; }
    .ltl-nb-calendar-mobile-details .ltl-nb-event-details h2 { margin:0 0 8px; font-size:17px; }
    .ltl-nb-calendar-mobile-item.is-note { background:#fff5f5; border-color:#e5bcbc; }
    .ltl-nb-calendar-mobile-item.is-note > summary { color:#a00000; font-weight:600; }
    .ltl-nb-calendar-mobile-item.is-note .ltl-nb-note-details { padding:0 0 0 9px; }
    .ltl-nb-calendar-mobile-item .ltl-nb-event-notes { overflow-wrap:anywhere; }
    .ltl-nb-calendar-app .ltl-nb-desktop-event-link,
    .ltl-nb-calendar-app .ltl-nb-desktop-time { display:none !important; }
    .ltl-nb-calendar-app .ltl-nb-note-list-entry { background:transparent; border:0; padding:0; }
    .ltl-nb-calendar-app .ltl-nb-event-preview { display:none; }
    .ltl-nb-calendar-app .ltl-nb-event-list { border:0; padding:0; }
    .ltl-nb-calendar-app .ltl-nb-date-group { max-width:680px; }
    .ltl-nb-calendar-app .ltl-nb-date-group h3 { margin:0 0 9px; }
    .ltl-nb-music-layout { display:none; }
    .ltl-nb-music-mobile { display:block; width:100%; max-width:680px; }
    .ltl-nb-song-mobile-item { border:1px solid #d6d6d6; margin:0 0 8px; }
    .ltl-nb-song-mobile-item > summary { padding:10px; cursor:pointer; color:#0000ee; text-decoration:underline; }
    .ltl-nb-song-mobile-item > summary .ltl-nb-small { display:block; color:#666; text-decoration:none; margin:3px 0 0; }
    .ltl-nb-song-mobile-details { padding:11px; border-top:1px solid #dedede; }
    .ltl-nb-song-mobile-details .ltl-nb-song-details h2 { margin:0 0 8px; font-size:17px; }
    .ltl-nb-song-mobile-details .ltl-nb-song-meta { line-height:1.8; }
    .ltl-nb-song-video { max-width:100%; }
}

/* v1.7 — Friday Announcements. Same old-school 75/25 frame as Calendar/Music. */
body.ltl-nb-announcements-page .notebook-content { max-width:none; }
.ltl-nb-ann-layout { display:grid; grid-template-columns:minmax(0,3fr) minmax(0,1fr); gap:20px; align-items:start; }
.ltl-nb-ann-primary { min-width:0; }
.ltl-nb-ann-friday-nav { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:0 0 16px; flex-wrap:wrap; }
.ltl-nb-ann-friday-nav strong { font-size:15px; color:#111; }
.ltl-nb-ann-friday-nav .is-disabled { color:#888; }
.ltl-nb-ann-current, .ltl-nb-ann-scheduled { border:1px solid #c6c6c6; padding:14px; margin:0 0 18px; }
.ltl-nb-ann-current > h2, .ltl-nb-ann-scheduled > h2 { font-size:17px; margin:0 0 8px; }
.ltl-nb-ann-entry { border-bottom:1px solid #ddd; padding:12px 0; }
.ltl-nb-ann-entry:last-child { border-bottom:0; }
.ltl-nb-ann-entry header { display:flex; align-items:start; justify-content:space-between; gap:10px; }
.ltl-nb-ann-entry h3 { margin:0 0 7px; font-size:15px; color:#111; overflow-wrap:anywhere; }
.ltl-nb-ann-body { white-space:normal; overflow-wrap:anywhere; font-size:14px; line-height:1.6; }
.ltl-nb-ann-entry .ltl-nb-small { margin:8px 0 0; }
.ltl-nb-ann-move { display:flex; gap:8px; align-items:center; flex-shrink:0; flex-wrap:wrap; }
.ltl-nb-ann-move form { display:inline; margin:0; }
.ltl-nb-ann-move button { border:0; padding:0; cursor:pointer; font:inherit; background:none; color:#0000ee; text-decoration:underline; font-size:12px; }
.ltl-nb-ann-move a { font-size:12px; }
.ltl-nb-ann-scroll { height:218px; overflow-y:auto; border:1px solid #d5d5d5; padding:7px 11px; overscroll-behavior:contain; }
.ltl-nb-ann-scroll:focus-visible { outline:2px solid #0000ee; outline-offset:2px; }
.ltl-nb-ann-future-entry { border-bottom:1px solid #e1e1e1; padding:9px 0; }
.ltl-nb-ann-future-entry:last-child { border:0; }
.ltl-nb-ann-future-entry summary { cursor:pointer; color:#0000ee; text-decoration:underline; }
.ltl-nb-ann-future-entry p { overflow-wrap:anywhere; margin:6px 0 !important; }
.ltl-nb-ann-calendar { padding:12px; border:1px solid #c6c6c6; min-width:0; }
.ltl-nb-ann-calendar h2 { margin:0 0 8px; font-size:17px; }
.ltl-nb-ann-calendar h3 { font-size:13px; margin:15px 0 5px; padding-top:7px; border-top:1px solid #ddd; }
.ltl-nb-ann-cal-item { margin:0 0 9px; overflow-wrap:anywhere; }
.ltl-nb-ann-cal-item summary { color:#0000ee; text-decoration:underline; cursor:pointer; font-size:13px; }
.ltl-nb-ann-cal-item.is-note { background:#fff2f2; padding:5px; }
.ltl-nb-ann-cal-item.is-note summary { color:#a00000; }
.ltl-nb-ann-cal-detail { font-size:12px; padding:7px 1px; }
.ltl-nb-ann-cal-detail h2 { font-size:14px; margin:3px 0 6px; }
.ltl-nb-ann-cal-detail .ltl-nb-event-actions { font-size:12px; }
.ltl-nb-ann-cal-item > a { display:block; margin-bottom:8px; font-size:12px; }
.ltl-nb-ann-calendar p:last-child { margin-bottom:0; }
.ltl-nb-ann-calendar-fields { max-width:560px; margin:22px 0 16px; padding:12px; border:1px solid #c6c6c6; }
.ltl-nb-ann-calendar-fields legend { font-weight:bold; padding:0 5px; }
.ltl-nb-form label.ltl-nb-inline-check { display:block; font-weight:normal; margin:5px 0 10px; }
.ltl-nb-ann-calendar-fields input[type="checkbox"] { vertical-align:middle; margin-right:4px; }
.ltl-nb-form .ltl-nb-schedule select { display:block; width:100%; background:#fff; color:#111; border:1px solid #999; border-radius:0; padding:7px; font:inherit; }
.ltl-nb-schedule .ltl-nb-small { margin:7px 0 !important; }
[data-ltl-ann-calendar-options][hidden], [data-ltl-ann-end][hidden] { display:none !important; }
@media (max-width:1100px) {
    .ltl-nb-ann-layout { display:flex; flex-direction:column; gap:0; }
    .ltl-nb-ann-primary, .ltl-nb-ann-calendar { width:100%; max-width:680px; }
    .ltl-nb-ann-current, .ltl-nb-ann-scheduled { width:100%; }
    .ltl-nb-ann-friday-nav { justify-content:space-between; }
    .ltl-nb-ann-friday-nav strong { order:-1; width:100%; text-align:center; }
    .ltl-nb-ann-move { gap:6px; }
}
@media (max-width:540px) {
    .ltl-nb-ann-entry header { display:block; }
    .ltl-nb-ann-entry h3 { margin-bottom:8px; }
    .ltl-nb-ann-move { margin-bottom:8px; }
}

/* v1.8 — Three independent calendar kinds: red No Service, orange Notes, blue Events. */
.ltl-nb-day.has-note:not(.has-no-service) { background:#fff9ee; }
.ltl-nb-day.has-no-service { background:#fff2f2; }
.ltl-nb-content a.ltl-nb-calendar-note-name,
.ltl-nb-content a.ltl-nb-calendar-note-name:visited { color:#914500; background:#fff0d9; border-color:#edc891; }
.ltl-nb-content a.ltl-nb-calendar-note-name:hover { background:#ffe4bb; }
.ltl-nb-content a.ltl-nb-calendar-no-service-name,
.ltl-nb-content a.ltl-nb-calendar-no-service-name:visited { display:block; color:#980000; background:#fce1e1; border:1px solid #e8b6b6; padding:3px 4px; text-decoration:underline; }
.ltl-nb-content a.ltl-nb-calendar-no-service-name:hover { background:#f7d1d1; }
.ltl-nb-note-details { border-left-color:#d88712; background:#fff7e8; }
.ltl-nb-event-preview .ltl-nb-note-details h2,
.ltl-nb-event-single .ltl-nb-note-details h2 { color:#955000; }
.ltl-nb-no-service-details { border-left:3px solid #be1818; background:#fff0f0; padding:13px; overflow-wrap:anywhere; }
.ltl-nb-event-preview .ltl-nb-no-service-details h2,
.ltl-nb-event-single .ltl-nb-no-service-details h2 { color:#950000; }
.ltl-nb-note-list-entry { background:#fff0d9; border-color:#edc891; }
.ltl-nb-content a.ltl-nb-note-list-link,
.ltl-nb-content a.ltl-nb-note-list-link:visited { color:#914500; }
.ltl-nb-no-service-list-entry { background:#fce1e1; border:1px solid #e8b6b6; padding:7px; overflow-wrap:anywhere; }
.ltl-nb-content a.ltl-nb-no-service-list-link,
.ltl-nb-content a.ltl-nb-no-service-list-link:visited { color:#980000; }
.ltl-nb-no-service-hint, .ltl-nb-ann-no-service { background:#fff0f0; border:1px solid #e7b0b0; padding:12px; }
.ltl-nb-no-service-hint strong, .ltl-nb-ann-no-service strong { color:#980000; }
.ltl-nb-ann-no-service p { margin:7px 0 0; }
.ltl-nb-ann-cal-item.is-note { background:#fff2df; }
.ltl-nb-ann-cal-item.is-note summary { color:#914500; }
.ltl-nb-ann-cal-item.is-no-service { background:#ffe6e6; padding:5px; }
.ltl-nb-ann-cal-item.is-no-service summary { color:#980000; font-weight:bold; }
@media (max-width:1100px) {
    .ltl-nb-indicator-note { background:#d78200; }
    .ltl-nb-indicator-no-service { width:10px; height:4px; display:inline-block; background:#b91c1c; border-radius:2px; }
    .ltl-nb-calendar-mobile-item.is-note { background:#fff7e8; border-color:#ecc98d; }
    .ltl-nb-calendar-mobile-item.is-note > summary { color:#914500; }
    .ltl-nb-calendar-mobile-item.is-no-service { background:#fff0f0; border-color:#e8b6b6; }
    .ltl-nb-calendar-mobile-item.is-no-service > summary { color:#980000; font-weight:bold; }
    .ltl-nb-calendar-mobile-item.is-no-service .ltl-nb-no-service-details { padding:0 0 0 9px; }
    .ltl-nb-calendar-app .ltl-nb-no-service-list-entry { background:transparent; border:0; padding:0; }
}

/* v1.8.3: matching calendar previews, fixed title field and obvious navigation. */
.ltl-nb-form input.ltl-nb-fixed-title[readonly] { background:#f0f0f0; color:#333; cursor:default; }
.ltl-nb-content a.ltl-nb-nav-button,
.ltl-nb-content a.ltl-nb-nav-button:visited,
.ltl-nb-content .ltl-nb-nav-button.is-disabled {
    display:inline-flex; align-items:center; justify-content:center; gap:5px;
    padding:7px 11px; min-height:36px; border:1px solid #888;
    background:#f5f5f5; color:#0000bb; text-decoration:none;
    font-size:13px; font-weight:600; line-height:1.25; white-space:nowrap;
}
.ltl-nb-content a.ltl-nb-nav-button:hover { background:#e4ecff; border-color:#0000bb; text-decoration:underline; }
.ltl-nb-content a.ltl-nb-nav-button:focus-visible { outline:2px solid #0000bb; outline-offset:2px; }
.ltl-nb-content .ltl-nb-nav-button.is-disabled { background:#f5f5f5; border-color:#d3d3d3; color:#999; cursor:default; }
.ltl-nb-month-controls { gap:8px; }
.ltl-nb-month-controls strong { text-align:center; }
.ltl-nb-month-controls a.ltl-nb-nav-button { font-size:13px; line-height:1.25; }
.ltl-nb-ann-calendar-link { margin:0 0 10px !important; font-size:13px; }
/* Calendar previews use the same expandable structure for all three types. */
.ltl-nb-ann-cal-item { border:1px solid #d5d5d5; background:#f8faff; padding:6px 8px; }
.ltl-nb-ann-cal-item.is-note { background:#fff7e8; border-color:#ecc98d; padding:6px 8px; }
.ltl-nb-ann-cal-item.is-no-service { background:#fff0f0; border-color:#e8b6b6; padding:6px 8px; }
.ltl-nb-ann-cal-item.is-event summary { color:#0000ee; }
.ltl-nb-ann-cal-detail { padding:8px 0 3px; }
.ltl-nb-ann-cal-detail .ltl-nb-event-details { padding:9px 8px; margin:0; background:rgba(255,255,255,.7); border-left:3px solid #1748b5; }
.ltl-nb-ann-cal-detail .ltl-nb-event-details.ltl-nb-note-details { border-left-color:#d88712; }
.ltl-nb-ann-cal-detail .ltl-nb-event-details.ltl-nb-no-service-details { border-left-color:#be1818; }
.ltl-nb-ann-cal-detail .ltl-nb-event-details h2 { margin:0 0 7px; font-size:14px; overflow-wrap:anywhere; }
.ltl-nb-ann-cal-detail .ltl-nb-event-date { margin:0 0 8px !important; }
.ltl-nb-ann-cal-detail .ltl-nb-event-actions { margin:10px 0 0 !important; }
.ltl-nb-ann-item-view { margin:8px 0 0 !important; font-size:12px; }
@media (max-width:1100px) {
    .ltl-nb-month-controls a.ltl-nb-nav-button { font-size:12px; min-height:34px; padding:6px 7px; }
    .ltl-nb-ann-friday-nav a.ltl-nb-nav-button,
    .ltl-nb-ann-friday-nav .ltl-nb-nav-button.is-disabled { font-size:12px; padding:7px 8px; }
}
@media (max-width:420px) {
    .ltl-nb-month-controls { gap:4px; }
    .ltl-nb-month-controls strong { font-size:12px; }
    .ltl-nb-month-controls a.ltl-nb-nav-button { padding:5px 6px; }
}

/* v1.8.4 — Music preview uses deliberate rows; no run-on metadata/wrapped labels. */
.ltl-nb-music-app .ltl-nb-song-preview > h2,
.ltl-nb-music-app .ltl-nb-song-mobile-preview-title {
    text-align:center;
    font-size:17px;
    line-height:1.3;
    margin:0 0 16px;
    color:#111111;
    font-weight:700;
}
.ltl-nb-music-app .ltl-nb-song-primary-fields,
.ltl-nb-music-app .ltl-nb-song-secondary-fields {
    display:grid;
    row-gap:8px;
    min-width:0;
}
.ltl-nb-music-app .ltl-nb-song-primary-fields { margin:0 0 16px; }
.ltl-nb-music-app .ltl-nb-song-secondary-fields {
    margin:0 0 16px;
    row-gap:6px;
}
.ltl-nb-music-app .ltl-nb-song-field {
    display:grid;
    grid-template-columns:max-content minmax(0,1fr);
    column-gap:5px;
    align-items:start;
    min-width:0;
    line-height:1.45;
    overflow-wrap:normal;
}
.ltl-nb-music-app .ltl-nb-song-field > strong {
    white-space:nowrap;
    font-weight:700;
}
.ltl-nb-music-app .ltl-nb-song-field > span {
    min-width:0;
    overflow-wrap:anywhere;
}
.ltl-nb-music-app .ltl-nb-song-primary-fields .ltl-nb-song-field {
    font-size:15px;
    color:#111111;
}
.ltl-nb-music-app .ltl-nb-song-secondary-fields .ltl-nb-song-field {
    font-size:12px;
    color:#333333;
}
.ltl-nb-music-app .ltl-nb-song-mobile-preview-title { margin-bottom:14px; }
/* If even label + value cannot fit side by side, use an intentional second line. */
@container (max-width:165px) {
    .ltl-nb-music-app .ltl-nb-song-field { grid-template-columns:minmax(0,1fr); }
}
.ltl-nb-music-app #ltl-nb-song-preview-body,
.ltl-nb-music-app .ltl-nb-song-mobile-details { container-type:inline-size; }

/* v1.8.5 — Consistent Notebook page pattern across Calendar, Music Library,
   and Announcements. Each page's WordPress H1 is followed by description,
   Tools, then a matching 75/25 panel grid. */
body.ltl-nb-calendar-page .notebook-content,
body.ltl-nb-music-page .notebook-content,
body.ltl-nb-announcements-page .notebook-content { max-width:none; }
.ltl-nb-calendar-app .ltl-nb-page-description,
.ltl-nb-music-app .ltl-nb-page-description,
.ltl-nb-ann-app .ltl-nb-page-description { margin:0 0 8px; }
.ltl-nb-calendar-app .ltl-nb-toolbar,
.ltl-nb-music-app .ltl-nb-toolbar,
.ltl-nb-ann-app .ltl-nb-toolbar { margin:0 0 18px !important; }
.ltl-nb-calendar-layout,
.ltl-nb-music-layout,
.ltl-nb-ann-layout {
  display:grid; grid-template-columns:minmax(0,3fr) minmax(0,1fr);
  gap:20px; align-items:start; width:100%;
}
.ltl-nb-calendar-primary, .ltl-nb-music-primary, .ltl-nb-ann-primary,
.ltl-nb-event-list, .ltl-nb-song-preview, .ltl-nb-ann-calendar { min-width:0; }
.ltl-nb-main-panel,
.ltl-nb-calendar-app .ltl-nb-event-list,
.ltl-nb-music-app .ltl-nb-song-preview,
.ltl-nb-ann-app .ltl-nb-ann-calendar {
  border:1px solid #c6c6c6; background:#fff; padding:12px;
  margin:0; min-width:0; width:100%;
}
.ltl-nb-main-panel { box-sizing:border-box; }
.ltl-nb-music-primary .ltl-nb-table-scroll { border:0; width:100%; }
.ltl-nb-music-primary table { margin:0; }
.ltl-nb-calendar-box { width:100%; }
.ltl-nb-calendar-app .ltl-nb-event-preview {
  border:0; border-top:1px solid #ddd; padding:14px 0 0; margin:16px 0 0;
}
.ltl-nb-calendar-app .ltl-nb-event-list > h2,
.ltl-nb-music-app .ltl-nb-song-preview > h2,
.ltl-nb-ann-app .ltl-nb-ann-calendar > h2 {
  text-align:center; text-transform:uppercase; font-size:17px;
  margin:0 0 14px; padding:0; line-height:1.35; font-weight:700;
}
.ltl-nb-ann-app .ltl-nb-ann-primary { display:block; }
.ltl-nb-ann-app .ltl-nb-ann-friday-nav {
  margin:0 0 18px; padding:0 0 15px; border-bottom:1px solid #ddd;
}
.ltl-nb-ann-app .ltl-nb-ann-current,
.ltl-nb-ann-app .ltl-nb-ann-scheduled { border:0; background:none; padding:0; margin:0; }
.ltl-nb-ann-app .ltl-nb-ann-current { padding-bottom:19px; }
.ltl-nb-ann-app .ltl-nb-ann-scheduled {
  border-top:1px solid #ddd; padding-top:17px;
}
.ltl-nb-ann-app .ltl-nb-ann-current > h2,
.ltl-nb-ann-app .ltl-nb-ann-scheduled > h2 { margin:0 0 8px; }
.ltl-nb-ann-app .ltl-nb-ann-calendar-date { margin:5px 0 8px !important; font-size:13px; }
.ltl-nb-ann-app .ltl-nb-ann-calendar-date strong { font-weight:700; }
.ltl-nb-ann-app .ltl-nb-ann-entry .ltl-nb-small,
.ltl-nb-ann-app .ltl-nb-ann-future-entry .ltl-nb-small { line-height:1.5; }
.ltl-nb-ann-app .ltl-nb-ann-scroll { max-height:218px; }
@media (max-width:1100px) {
  .ltl-nb-calendar-layout,.ltl-nb-music-layout,.ltl-nb-ann-layout {
    display:flex; flex-direction:column; gap:16px;
  }
  .ltl-nb-calendar-primary,.ltl-nb-ann-primary,
  .ltl-nb-event-list,.ltl-nb-ann-calendar { width:100%; max-width:none; }
  .ltl-nb-calendar-box { width:min(100%,340px); }
  .ltl-nb-calendar-app .ltl-nb-event-list { border:1px solid #c6c6c6; padding:12px; }
  .ltl-nb-ann-app .ltl-nb-ann-friday-nav { margin:0 0 18px; }
  .ltl-nb-ann-app .ltl-nb-ann-calendar { max-width:none; }
}
@media (max-width:540px) {
  .ltl-nb-ann-app .ltl-nb-ann-friday-nav { gap:8px; }
  .ltl-nb-ann-app .ltl-nb-ann-friday-nav strong { width:100%; order:-1; }
  .ltl-nb-content .ltl-nb-nav-button { white-space:normal; text-align:center; }
}

/* v1.8.7: Scheduled No Service entries display the full heading and note. */
.ltl-nb-ann-app .ltl-nb-ann-future-entry.is-no-service h3 {
    margin:0 0 7px;
    font-size:15px;
    color:#111;
    overflow-wrap:anywhere;
}
.ltl-nb-ann-app .ltl-nb-ann-future-entry.is-no-service .ltl-nb-ann-body {
    white-space:normal;
    overflow-wrap:anywhere;
}

/* v1.8.8 — Mobile-first consistency: the compact calendar is centered within
   the full-width main panel at smaller viewports; desktop uses the full panel.
   No duplicate music table/preview is rendered on phones or tablets. */
@media (min-width:1101px) {
    .ltl-nb-calendar-app .ltl-nb-calendar-box {
        width:100%;
        max-width:none;
        margin-inline:0;
    }
    .ltl-nb-music-app .ltl-nb-music-mobile { display:none; }
}
@media (max-width:1100px) {
    .ltl-nb-calendar-app .ltl-nb-calendar-box {
        width:min(100%,340px);
        margin-inline:auto;
    }
    /* The earlier shared frame rule was overriding the mobile hide rule.
       Hide the *entire* desktop song table + right preview in mobile view. */
    .ltl-nb-music-app .ltl-nb-music-layout { display:none; }
    .ltl-nb-music-app .ltl-nb-music-mobile {
        display:block;
        width:100%;
        max-width:none;
        box-sizing:border-box;
        border:1px solid #c6c6c6;
        padding:10px 12px;
        background:#fff;
    }
    .ltl-nb-music-app .ltl-nb-song-mobile-item {
        margin:0;
        border:0;
        border-bottom:1px solid #d6d6d6;
        background:#fff;
    }
    .ltl-nb-music-app .ltl-nb-song-mobile-item:last-child { border-bottom:0; }
    .ltl-nb-music-app .ltl-nb-song-mobile-item > summary { padding:12px 4px; }
    .ltl-nb-music-app .ltl-nb-song-mobile-item[open] > summary { font-weight:600; }
    .ltl-nb-music-app .ltl-nb-song-mobile-details { padding:12px 5px 16px; }
}

/* v1.9 — Meetings: familiar 75/25 notebook frame; private journal fetched only
   after an authorized WordPress session check. */
body.ltl-nb-meetings-page .notebook-content { max-width:none; }
.ltl-nb-meetings-app .ltl-nb-page-description { margin:0 0 8px; }
.ltl-nb-meetings-app .ltl-nb-toolbar { margin:0 0 18px !important; }
.ltl-nb-meetings-layout { display:grid; grid-template-columns:minmax(0,3fr) minmax(0,1fr); gap:20px; align-items:start; width:100%; }
.ltl-nb-meetings-main, .ltl-nb-meetings-side { border:1px solid #c6c6c6; background:#fff; padding:12px; min-width:0; width:100%; box-sizing:border-box; }
.ltl-nb-meetings-side > h2 { font-size:17px; line-height:1.35; text-align:center; margin:0 0 14px; text-transform:uppercase; }
.ltl-nb-meeting-future { padding:12px 0; border-bottom:1px solid #ddd; }
.ltl-nb-meeting-future:first-of-type { padding-top:0; }
.ltl-nb-meeting-future:last-child { border-bottom:0; }
.ltl-nb-meeting-future p { margin:0 0 7px; line-height:1.45; }
.ltl-nb-meeting-tabs { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:8px; padding:0 0 13px; border-bottom:1px solid #ddd; }
.ltl-nb-meeting-tabs button { font:inherit; font-size:12px; cursor:pointer; }
.ltl-nb-meeting-tabs > .ltl-nb-nav-button { padding:8px 10px; border:1px solid #888; color:#0000ee; background:#f6f6f6; text-decoration:none; white-space:nowrap; border-radius:2px; }
.ltl-nb-meeting-tabs button[disabled] { color:#777; opacity:.55; cursor:default; }
.ltl-nb-meeting-tabs > .ltl-nb-nav-button.is-active { background:#e8eefc; border-color:#3254a6; color:#16378d; font-weight:700; }
.ltl-nb-meeting-tab-dates { display:flex; flex-wrap:wrap; justify-content:center; gap:5px; min-width:0; }
.ltl-nb-meeting-date-tab { color:#0000ee; background:#fff; border:1px solid #bbb; border-radius:2px; padding:7px 9px; white-space:nowrap; }
.ltl-nb-meeting-date-tab.is-active { background:#e8eefc; border-color:#3b5aa0; color:#111; font-weight:700; }
.ltl-nb-meetings-journal { padding:17px 2px 5px; min-height:160px; overflow-wrap:anywhere; }
.ltl-nb-meeting-journal h2, .ltl-nb-meeting-editor h2 { margin:0 0 6px; font-size:19px; }
.ltl-nb-meeting-date { color:#555; font-size:13px; margin:0 0 19px !important; }
.ltl-nb-meeting-journal section { padding:13px 0 14px; border-top:1px solid #e0e0e0; }
.ltl-nb-meeting-journal section h3 { font-size:14px; font-weight:700; margin:0 0 10px; }
.ltl-nb-meeting-prose { line-height:1.55; }
.ltl-nb-meeting-prose p { margin:0 0 8px; white-space:pre-wrap; }
.ltl-nb-meeting-empty { color:#777; font-size:13px; }
.ltl-nb-meeting-chips { display:flex; flex-wrap:wrap; align-items:start; gap:7px; }
.ltl-nb-meeting-chip { display:inline-flex; white-space:nowrap; align-items:center; border:1px solid #bbb; background:#f3f3f3; padding:5px 10px; border-radius:4px; color:#111; font-size:13px; }
.ltl-nb-meeting-edit-link,.ltl-nb-meeting-back,.ltl-nb-meeting-recent,.ltl-nb-meeting-attendees-edit { background:none; border:0; color:#0000ee; text-decoration:underline; cursor:pointer; font:inherit; padding:0; }
.ltl-nb-meeting-journal-actions { margin:10px 0 0 !important; }
.ltl-nb-meeting-editor { overflow-wrap:anywhere; }
.ltl-nb-meeting-editor .ltl-nb-form { max-width:none; }
.ltl-nb-meeting-attendees-input textarea { margin-bottom:8px; }
.ltl-nb-meeting-attendees-input[hidden], .ltl-nb-meeting-attendees-display[hidden], .ltl-nb-meetings-recent[hidden] { display:none!important; }
.ltl-nb-meeting-attendees-display { padding:10px 0; }
.ltl-nb-meeting-attendees-edit { margin-top:9px; }
.ltl-nb-meeting-attendees-done { margin:0 0 8px; }
.ltl-nb-meeting-delete { border-top:1px solid #ddd; margin-top:20px; padding-top:14px; }
.ltl-nb-meetings-recent { margin:12px 0 0; text-align:right; }
.ltl-nb-calendar-meeting-name { display:block; margin-bottom:5px; font-size:12px; }
.ltl-nb-indicator-meeting { width:10px; height:4px; background:#555; display:inline-block; border-radius:2px; }
@media (max-width:1100px) {
    .ltl-nb-meetings-layout { display:flex; flex-direction:column; gap:16px; }
    .ltl-nb-meetings-side { order:-1; }
    .ltl-nb-meetings-main, .ltl-nb-meetings-side { max-width:none; }
}
@media (max-width:450px) {
    .ltl-nb-meeting-tabs { gap:4px; }
    .ltl-nb-meeting-tabs > .ltl-nb-nav-button { font-size:11px; padding:7px 5px; }
    .ltl-nb-meeting-date-tab { font-size:11px; padding:7px 5px; }
    .ltl-nb-meeting-tab-dates { gap:3px; }
    .ltl-nb-meetings-journal { padding-top:13px; }
}
