/* V-next inherits the approved AttendTrack components in style.css.
   Adapters below cover new workflow content and the native dialog wrapper;
   they do not replace shell, page, card, typography or navigation geometry. */
.vn-button:disabled { opacity: .5; cursor: default; }
.vn-client-picker { min-width: 0; position: relative; }
.vn-picked { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.vn-picked:empty { display: none; }
.vn-client-chip { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; border: 1px solid #5B676D; border-radius: 999px; padding: 3px 8px; color: #FFFFF0; background: #2A3033; text-transform: none; }
.vn-client-chip span { overflow-wrap: anywhere; }
.vn-client-chip button { border: 0; border-radius: 12px; background: transparent; box-shadow: none !important; color: #FFFFF0; min-width: 44px; min-height: 44px; font: inherit; font-size: 20px; cursor: pointer; }
.vn-client-results { position: absolute; z-index: 10; top: 100%; left: 0; right: 0; max-height: 220px; overflow-y: auto; margin-top: 6px; border: 1px solid #5B676D; border-radius: 10px; padding: 4px; background: #1F262A; }
.vn-client-results button { display: block; width: 100%; text-align: left; padding: 8px 12px; min-height: 44px; border: 0; border-radius: 10px; background: transparent; color: #FFFFF0; font: inherit; font-size: 13px; font-weight: 500 !important; line-height: 1.4; letter-spacing: 0; text-transform: none; white-space: normal; overflow-wrap: anywhere; cursor: pointer; }
.vn-client-results button:is(.is-active,[aria-selected=true]) { background: #2A3033; outline: 1px solid #B8874F; }
.vn-picker-hint { display: block; color: #FFFFF0; opacity: .65; margin-top: 6px; text-transform: none; }
.vn-button:focus-visible { outline: 2px solid #FFFFF0 !important; outline-offset: 2px; }
body.dark-theme .app :is(#home-screen,#students-screen,#classes-screen,#reports-screen,#previous-sessions-screen).app-screen button.vn-button.is-positive,
body.dark-theme #vn-dialog button.vn-button.is-positive { border-color: #6FAF8A !important; background: #26352F !important; background-image: none !important; color: #FFFFF0 !important; }
body.dark-theme .app :is(#home-screen,#students-screen,#classes-screen,#reports-screen,#previous-sessions-screen).app-screen button.vn-button.is-destructive,
body.dark-theme #vn-dialog button.vn-button.is-destructive { border-color: #D47777 !important; background: #39292B !important; background-image: none !important; color: #FFFFF0 !important; }
body.dark-theme .app :is(#home-screen,#students-screen,#classes-screen,#reports-screen,#previous-sessions-screen).app-screen button.vn-button.is-attention,
body.dark-theme #vn-dialog button.vn-button.is-attention { border-color: #D4A35F !important; background: #3A3225 !important; background-image: none !important; color: #FFFFF0 !important; }
.vn-global-status { position: fixed; z-index: 20000; pointer-events: none; left: 12px; right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); max-width: 808px; margin: auto; padding: 12px 16px; border: 1px solid #5B676D; border-radius: 12px; background: #2A3033; color: #FFFFF0; font-size: 13px; }
.vn-global-status:not(:has(span:not(:empty))) { display: none; }
.vn-global-status span + span:not(:empty) { margin-left: 12px; }
.vn-date-picker { display: block; margin: 10px 0 16px; font-size: 9px; color: rgba(255,255,240,.62); }
.vn-date-picker input { width: 100%; min-width: 0; box-sizing: border-box; margin-top: 6px; color-scheme: dark; }
#vn-current-session form { display: grid; gap: 14px; min-width: 0; }
#vn-current-session .v2-note-button { justify-self: center; }
#vn-current-session .vn-session-actions { display: grid; gap: 8px; }
#vn-current-session .vn-charge-choice { grid-column: 1 / -1; }
#vn-current-session .v2-save-feedback:is(.is-pending,.vn-feedback) { color: #D4A35F; }
.vn-home-actions { margin-top: 12px; }
.vn-home-actions button { width: 100%; }
#v2-student-detail-card > .v2-assigned-classes-block > button { margin-top: 10px; }
#v2-student-detail-card .v2-detail-info-grid strong { white-space: normal; overflow-wrap: anywhere; }
.v2-student-back-button, .v2-class-back-button { display: none !important; }
#vn-dialog { width: min(440px, calc(100vw - 36px)); max-height: calc(100dvh - 36px); overflow: auto; padding: 0; border: 0; background: transparent !important; color: #FFFFF0; font-family: Montserrat, sans-serif; }
#vn-dialog::backdrop { background: rgba(7,10,11,.88); }
#vn-dialog .v2-session-modal-panel { width: 100%; box-sizing: border-box; background: #1F262A; background-image: none; box-shadow: none; border-color: #5B676D; }
#vn-dialog label.vn-field { display: block; }
#vn-dialog label .v2-modal-select { display: block; margin-top: 8px; }
#vn-dialog .v2-modal-select { border-color: #5B676D !important; background: #2A3033 !important; background-image: none !important; box-shadow: none !important; }
#vn-dialog .v2-modal-select:focus { border-color: #B8874F !important; }
#vn-dialog .v2-modal-cancel { border-color: #5B676D !important; background: #2A3033 !important; color: #FFFFF0 !important; }
#vn-dialog input, #vn-dialog select, #vn-dialog textarea { max-width: 100%; box-sizing: border-box; font-family: inherit; font-size: 16px !important; color-scheme: dark; }
#vn-dialog textarea { min-height: 72px; padding: 12px !important; resize: vertical; }
#vn-dialog details { margin-top: 16px; }
#vn-dialog summary { cursor: pointer; font-size: 12px; line-height: 1.5; padding: 10px 0; }
#vn-dialog fieldset.vn-field { border: 0; margin: 16px 0 0; padding: 0; min-width: 0; }
#vn-dialog legend { font-size: 10px; font-weight: 900; color: rgba(255,255,240,.72); }
#vn-dialog .vn-two { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
#vn-dialog .vn-checks { max-height: 210px; overflow: auto; }
#vn-dialog .vn-checks label, #vn-dialog .vn-checkbox, #vn-dialog .vn-player label { display: flex; align-items: center; gap: 8px; min-height: 44px; margin: 0 !important; color: #FFFFF0 !important; font-size: 13px !important; font-weight: 600 !important; line-height: 1.4 !important; letter-spacing: 0 !important; text-transform: none !important; }
#vn-dialog input[type=checkbox] { width: 20px !important; height: 20px !important; min-height: 20px !important; padding: 0 !important; margin: 0 !important; accent-color: #B8874F; }
#vn-dialog .vn-player { margin-top: 16px; display: grid; gap: 10px; font-size: 13px; }
#vn-dialog [data-allocation] { min-width: 0; }
#vn-dialog [data-allocation] .vn-field { display: block; }
#vn-dialog .vn-feedback { color: #D4A35F; margin-top: 12px; }
#vn-dialog .vn-feedback:empty, #vn-current-session .vn-feedback:empty { display: none; }
#vn-dialog .v2-session-modal-panel > p:not(.v2-modal-eyebrow):not(.vn-feedback) { margin: 0 0 16px; color: rgba(255,255,240,.66); font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
#vn-dialog h2, #vn-dialog strong, #vn-dialog label { overflow-wrap: anywhere; }
body.dark-theme #vn-dialog button.vn-button.is-neutral { border-color: #5B676D !important; background: #2A3033 !important; background-image: none !important; color: #FFFFF0 !important; box-shadow: none !important; }
#vn-dialog .v2-session-action-button { width: fit-content !important; min-height: 44px !important; margin: 0 0 4px !important; padding: 0 14px !important; font-size: 11px !important; }
#vn-dialog .vn-slot + .vn-slot { margin-top: 16px; }
#students-screen #v2-student-detail-card .feature01-package-body > .v2-student-package-actions { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
#students-screen #v2-student-detail-card .feature01-package-body .v2-student-package-adjust { min-height: 44px !important; }
.feature01-package-body > details > summary { box-sizing: border-box; min-height: 44px; padding: 12px 0; color: rgba(255,255,240,.66); font-size: 11px; line-height: 1.5; cursor: pointer; }
#home-screen .v2-attention-needed-card { min-height: 80px !important; padding: 14px 16px !important; }
#home-screen .v2-attention-needed-card strong { font-size: 14px; }
#previous-sessions-screen .v2-previous-header > div > p { margin: 0 0 8px; color: #B8874F; font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
#previous-sessions-screen .v2-previous-header > div > span { display: block; margin-top: 8px; color: rgba(255,255,240,.66); font-size: 13px; line-height: 1.5; }
#previous-sessions-screen .v2-previous-session-list { margin-top: 16px; }
#v2-student-detail-card .v2-detail-title-block h3, #v2-class-detail-card .v2-detail-title-block h3, #vn-current-session h2, .vn-report-row .v2-report-row-title { overflow-wrap: anywhere; }
.vn-report-facts, .vn-report-accounting { grid-column: 1 / -1; font-size: 11px; line-height: 1.5; color: rgba(255,255,240,.66); }
.vn-report-accounting p { margin: 4px 0; }
#reports-screen .vn-report-row > button { justify-self: end; }
.vn-attention-item { min-width: 0; }
.vn-attention-item h3 { margin: 0; font-size: 15px; }
.vn-attention-item p { margin: 0; font-size: 12px; line-height: 1.5; color: rgba(255,255,240,.66); }
.vn-attention-item button { width: 100%; }
#vn-dialog [hidden], #vn-current-session [hidden], #reports-screen [hidden] { display: none !important; }
@media (max-width:760px) {
  #students-screen .v2-student-back-button, #classes-screen .v2-class-back-button { display: inline-flex !important; }
}
@media (max-width:520px) {
  #vn-current-session .v2-status-select { font-size: 16px !important; width: 100% !important; min-width: 0; }
  .vn-date-picker input { font-size: 16px !important; }
  #reports-screen :is(select,input) { font-size: 16px !important; }
}
@media (max-width:420px) {
  #vn-dialog .vn-two:has(input[type=date]) { grid-template-columns: minmax(0,1fr); gap: 0; }
}
/* Existing desktop rail uses time/name/arrow rows; the detail panel carries
   duration and format. Avoid an implicit grid cell from the retired meta row. */
@media (min-width:561px) { #home-screen .v2-session-card .v2-session-meta { display: none !important; } }
/* Factual state belongs in the existing rail, including cancelled/undated work. */
.vn-session-state { display: block; margin-top: 3px; font-size: 10px; font-weight: 500; line-height: 1.25; white-space: normal; color: rgba(255,255,240,.68); }
#home-screen .v2-session-compact-code { white-space: normal !important; }
/* The old postpose control had an attention treatment. New actions inherit
   its geometry and use their established suite meaning. */
body.dark-theme .app :is(#home-screen,#students-screen,#classes-screen,#reports-screen,#previous-sessions-screen):is(#home-screen,#students-screen,#classes-screen,#reports-screen,#previous-sessions-screen):is(#home-screen,#students-screen,#classes-screen,#reports-screen,#previous-sessions-screen) button.vn-button.is-neutral:not(.v2-filter-pill):not(.v2-report-type-button):not(.v2-report-period-button):not(.feature01-package-report) { border-color: #5B676D !important; background: #2A3033 !important; background-image: none !important; color: #FFFFF0 !important; box-shadow: none !important; }
body.dark-theme .app :is(#home-screen,#students-screen,#classes-screen,#reports-screen,#previous-sessions-screen):is(#home-screen,#students-screen,#classes-screen,#reports-screen,#previous-sessions-screen):is(#home-screen,#students-screen,#classes-screen,#reports-screen,#previous-sessions-screen) button.vn-button.is-destructive { border-color: #D47777 !important; background: #39292B !important; background-image: none !important; color: #FFFFF0 !important; }
/* Filter and report switches retain the approved active/inactive treatments. */
body.dark-theme .app #students-screen#students-screen#students-screen .v2-filter-pill,
body.dark-theme .app #classes-screen#classes-screen#classes-screen .v2-filter-pill { background: rgba(255,255,240,.035) !important; border-color: rgba(184,135,79,.22) !important; color: rgba(255,255,240,.62) !important; }
body.dark-theme .app #students-screen#students-screen#students-screen .v2-filter-pill.is-active,
body.dark-theme .app #classes-screen#classes-screen#classes-screen .v2-filter-pill.is-active { color: #B8874F !important; border-color: rgba(184,135,79,.54) !important; }
body.dark-theme .app #reports-screen#reports-screen#reports-screen :is(.v2-report-type-button,.v2-report-period-button) { background: transparent !important; }
#home-screen#home-screen#home-screen .vn-day-picker { display: block; width: 100%; min-height: 0; padding: 0 !important; margin: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; background-image: none !important; text-align: left !important; box-shadow: none !important; }
.v2-day-header { position: relative; }
.vn-date-picker-input { position: absolute; left: 0; bottom: 0; width: 1px !important; height: 1px !important; min-height: 0 !important; padding: 0 !important; border: 0 !important; opacity: 0; font-size: 16px !important; }
#home-screen#home-screen#home-screen .vn-day-picker { text-transform: none !important; }
#vn-dialog .vn-add-slot, #vn-dialog .vn-remove-slot { min-height: 42px; border: 1px solid #5B676D; border-radius: 12px; background: #2A3033; color: #FFFFF0; padding: 0 14px; font: inherit; font-size: 11px; }
#vn-dialog .vn-remove-slot { border-color: #D47777; background: #39292B; }
/* An available report action inherits the ordinary pointer; disabled is calm. */
[data-vn-action="share-report"]:not(:disabled) { cursor: pointer !important; }
[data-vn-action="share-report"]:disabled { cursor: default !important; opacity: .5; }
