
/* Bounded teaching workspaces; retain Aurora tokens, controls and motion. */
#content .attendance-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:14px;margin:18px 0}
#content .attendance-type-card{min-width:0;padding:16px;border:1px solid var(--linea-border,rgba(140,180,215,.24));border-radius:14px;background:rgba(100,150,200,.045)}
#content .attendance-type-card h3{font-size:1rem;margin:0}
#content .attendance-type-card .split{gap:12px;align-items:start}
#content .attendance-status-bar{display:flex;height:10px;overflow:hidden;border-radius:8px;background:rgba(130,155,180,.12);margin:12px 0}
#content .attendance-status-bar>span{width:var(--share,0%);flex:none}
#content .attendance-status-bar>.present{background:#39b998}
#content .attendance-status-bar>.absent{background:#df718c}
#content .attendance-status-bar>.excused{background:#73acdf}
#content .attendance-status-bar>.notified{background:#d0ac65}
#content .attendance-status-bar>.unmarked{background:#748398}
#content .attendance-type-counts{display:grid;gap:6px;margin:12px 0 0}
#content .attendance-type-counts>div{display:flex;justify-content:space-between;gap:10px}
#content .attendance-type-counts dt{font-size:.8125rem;color:var(--linea-text-secondary)}
#content .attendance-type-counts dd{margin:0;font-variant-numeric:tabular-nums;font-size:.875rem}
#content .analytics-page .group-student-identity{display:grid;gap:6px;min-width:13.75rem;max-width:18rem}
#content .analytics-page .group-student-role:empty{display:none}
#content .analytics-page .group-student-role>.role-pill{margin:0;max-width:100%;white-space:normal;line-height:1.3}
#content .group-parameters{display:grid;gap:18px;margin-top:18px;min-width:0}
#content .group-context-bar>.field,#content .group-context-bar select{min-width:0;max-width:100%}

#content .group-work-switcher>div:first-child{min-width:0;max-width:55ch}
#content .group-work-switcher>div:first-child>span{line-height:1.5}
#content .teaching-person-detail{min-width:0}
#content .teaching-person-detail>.field{margin:14px 0}
#content .teaching-person-detail [data-detail-selection]{line-height:1.5}
#content .teaching-person-detail .table-wrap{max-width:100%}
#content .teaching-person-detail td{vertical-align:top}
#content .teaching-person-detail input[type=checkbox]{min-width:20px;min-height:20px}
#content .schedule-candidate-hint{display:block;max-width:58ch;line-height:1.5;margin:8px 0 12px}
@media(max-width:600px){
 #content .attendance-type-grid{grid-template-columns:minmax(0,1fr)}
 #content .teaching-person-detail .quick-actions{align-items:stretch}
 #content .teaching-person-detail .quick-actions>.field{flex-basis:100%;min-width:0}
}

/* Shared numbering inserts a 28px track and 8px gap before the name. */
#content .analytics-page .group-student-role{margin-inline-start:36px;max-width:calc(100% - 36px)}

@media(max-width:600px){
 #content .teaching-department-resolver>.split{flex-wrap:wrap}
 #content .teaching-department-resolver>.split>div:first-child{flex-basis:100%}
 #content .teaching-department-resolver>.split>.quick-actions{width:100%}
}

/* Each date explains its own lesson type; colour remains supplementary. */
#content .journal-session-head>.journal-session-kind{display:block;font-size:.8125rem;font-weight:600;line-height:1.4;white-space:normal;color:var(--linea-text-secondary);min-height:2.3em}
#content .teaching-section-spacing{margin-top:12px}

/* Tracker setup is hosted in modalLayer, outside the content workspace. */
.modal .tracker-setup-submit{margin-top:12px}

/* Keep the selector and its explanation in one column, beside navigation. */
#content .group-context-bar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:10px 16px;align-items:end}
#content .group-context-bar>.field{grid-column:1;grid-row:1;width:100%;margin:0}
#content .group-context-bar select{width:100%}
#content .group-course-scope{grid-column:1;grid-row:2;margin:0;align-self:start}
#content .group-context-bar>.group-view-switch{grid-column:2;grid-row:1 / span 2;min-width:0;justify-self:end;align-self:center}
@media(max-width:1100px){
 #content .group-context-bar{grid-template-columns:minmax(0,1fr)}
 #content .group-context-bar>.field,#content .group-course-scope,#content .group-context-bar>.group-view-switch{grid-column:1;grid-row:auto}
 #content .group-context-bar>.group-view-switch{justify-self:start;width:100%}
}

/* Totals precede lesson-type cards; the lesson grid has no summary orphan. */
#content .attendance-type-card[data-attendance-type=total]{margin-top:14px}
#content .attendance-type-card[data-attendance-type=total] .attendance-type-counts{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
#content .attendance-type-card[data-attendance-type=total] .attendance-type-counts>div{display:grid;gap:4px;align-content:start}
#content .attendance-type-card[data-attendance-type=total] dd{font-size:1rem;font-weight:700}
#content .attendance-type-grid.attendance-types-4{grid-template-columns:repeat(2,minmax(0,1fr))}
#content .analytics-plan-grid,#content .analytics-module-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
#content .tracker-matrix .sticky-summary small{font-size:.8125rem;line-height:1.4;white-space:normal}
.modal .tracker-scope-submit{margin-top:14px}
@media(max-width:900px){#content .attendance-type-card[data-attendance-type=total] .attendance-type-counts{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){
 #content .attendance-type-card[data-attendance-type=total] .attendance-type-counts{grid-template-columns:repeat(2,minmax(0,1fr))}
 #content .attendance-type-grid.attendance-types-4{grid-template-columns:minmax(0,1fr)}
}

/* Diagnostics is rendered inside the owner content pane; keep prior spacing CSP-safe. */
#content .diagnostics-toolbar{gap:10px;flex-wrap:wrap;margin:14px 0}
#content .diagnostics-query-field{flex:2;min-width:180px}
#content .diagnostics-type-field{flex:1;min-width:160px}

.practice-next-step{margin:16px 0;padding:16px 18px;border:1px solid var(--linea-border,rgba(140,180,215,.24));border-left:3px solid #73acdf;border-radius:12px;background:rgba(100,150,200,.045)}
.practice-next-step strong{display:block;font-size:16px;line-height:1.4}
.practice-next-step p{margin:8px 0 0;line-height:1.55}
.practice-campaign-status-help{margin:12px 0 18px;max-width:78ch}
@media(max-width:600px){.practice-next-step{padding:14px}.practice-gradebook-workspace .practice-gradebook-actions .btn{white-space:normal;min-height:42px}}

/* Whole group surface: separate sections without changing Aurora or table facts. */
#content #groupWorkspacePane>.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}
#content #groupWorkspacePane>.grid>.card{min-width:0}
#content .group-activity-summary{margin-top:20px;padding-top:16px;border-top:1px solid var(--linea-border-default,rgba(140,180,215,.24))}
#content .group-quick-actions{flex-wrap:wrap;gap:10px}
#content .group-quick-actions>.btn{min-height:44px}
#content .group-course-title{display:block;margin-top:8px;font-size:.8125rem;line-height:1.5;color:var(--linea-text-secondary);overflow-wrap:anywhere;font-weight:500}
#content #groupAnalyticsBody{display:grid;gap:18px;min-width:0}
#content .analytics-toolbar{gap:12px;margin:16px 0}
#content .attendance-summary-view .attendance-status-bar{height:6px;margin:14px 0}
#content .attendance-summary-view .attendance-type-counts>div{min-width:0;align-items:start;padding:5px 0}
#content .attendance-summary-view dt{display:flex;gap:8px;align-items:start;line-height:1.5}
#content .attendance-summary-view dt:before{content:"";width:7px;height:7px;border-radius:50%;flex:none;margin-top:6px;background:#748398}
#content .attendance-summary-view .present dt:before{background:#39b998}
#content .attendance-summary-view .absent dt:before{background:#df718c}
#content .attendance-summary-view .excused dt:before{background:#73acdf}
#content .attendance-summary-view .notified dt:before{background:#d0ac65}
#content .attendance-summary-view dd{font-size:.9375rem;font-weight:700;font-variant-numeric:tabular-nums}
#content .journal-legend{gap:7px;flex-wrap:wrap;margin:12px 0}
#content .journal-legend>.legend{font-size:.8125rem;line-height:1.4;padding:5px 8px}
#content .roster-export-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
#content .roster-export-actions>.btn{min-height:40px}
@media(max-width:1000px){#content #groupWorkspacePane>.grid{grid-template-columns:minmax(0,1fr)}#content #groupWorkspacePane>.grid>.card{grid-column:1}}
@media(max-width:600px){
 #content #groupWorkspacePane .card>.split:has(>.roster-export-actions){flex-wrap:wrap;gap:14px}
 #content .roster-export-actions{width:100%}
}

#content #groupAnalyticsBody .attendance-summary-view+.table-wrap{margin-top:18px}

/* One status palette across journal marks, analytics segments and their labels. */
#content .attendance-status-bar>.present,#content .attendance-summary-view .present dt:before{background:var(--linea-status-success-fg)}
#content .attendance-status-bar>.absent,#content .attendance-summary-view .absent dt:before{background:var(--linea-status-danger-fg)}
#content .attendance-status-bar>.excused,#content .attendance-summary-view .excused dt:before{background:var(--linea-status-warning-fg)}
#content .attendance-status-bar>.notified,#content .attendance-summary-view .notified dt:before{background:var(--linea-status-info-fg)}
#content .attendance-status-bar>.unmarked,#content .attendance-summary-view .unmarked dt:before{background:var(--linea-status-neutral-fg)}

/* Video group follow-up: keep the journal a readable, scrollable work table. */
#content #journalTable .journal-wrap{border:1px solid var(--linea-border-default);border-radius:12px;min-height:0;max-height:min(65vh,640px)}
#content #journalTable .journal-table{border-collapse:separate;border-spacing:0}
#content #journalTable .journal-table th,#content #journalTable .journal-table td{padding:10px 12px;border-bottom:1px solid var(--linea-border-default);vertical-align:middle}
#content #journalTable .journal-table tbody tr:last-child td{border-bottom:0}
#content #journalTable .journal-table .sticky-name{min-width:14rem;max-width:18rem}
#content #journalTable .journal-table tbody tr:hover td{background-color:var(--linea-surface-active)}
#content #journalTable .journal-session-head{display:grid;gap:8px;min-width:116px;text-align:center}
#content #journalTable .journal-session-head>strong{font-size:.9375rem;font-variant-numeric:tabular-nums;line-height:1.4}
#content #journalTable .journal-session-head>.journal-session-kind{font-size:.75rem;min-height:2.8em;line-height:1.4}
#content #journalTable .journal-session-head>.mini-action{min-height:36px;font-size:.75rem;padding:6px 8px}
#content #journalTable .journal-cell-btn{display:grid;place-items:center;min-height:44px;min-width:44px;font-size:1rem;line-height:1.3;border:1px solid transparent;border-radius:9px}
#content #journalTable .journal-cell-btn.present{color:var(--linea-status-success-fg);background:var(--linea-status-success-bg);border-color:var(--linea-status-success-border)}
#content #journalTable .journal-cell-btn.absent{color:var(--linea-status-danger-fg);background:var(--linea-status-danger-bg);border-color:var(--linea-status-danger-border)}
#content #journalTable .journal-cell-btn.excused{color:var(--linea-status-warning-fg);background:var(--linea-status-warning-bg);border-color:var(--linea-status-warning-border)}
#content #journalTable .journal-cell-btn.notified{color:var(--linea-status-info-fg);background:var(--linea-status-info-bg);border-color:var(--linea-status-info-border)}
#content #journalTable .journal-cell-btn:not(.present):not(.absent):not(.excused):not(.notified){color:var(--linea-text-muted)}
#content #journalTable .journal-summary-cell{min-width:150px;white-space:normal;text-align:start}
#content #journalTable .journal-summary-cell>strong{font-size:1rem;line-height:1.4;font-variant-numeric:tabular-nums}
#content #journalTable .journal-summary-cell>small{font-size:.75rem;line-height:1.6;margin-top:6px}
#content #journalTable .attendance-footer-note{display:grid;gap:6px;margin-top:14px;max-width:85ch;line-height:1.55}
#content #journalTable .attendance-footer-note>span{font-size:.8125rem;color:var(--linea-text-secondary)}
#content #journalTable .journal-wrap:focus-visible,#content #journalTable .journal-cell-btn:focus-visible{outline:2px solid var(--linea-border-accent);outline-offset:2px}

/* Progress status is a phrase, with symbol and date on their own tracks. */
#content .tracker-matrix th{min-width:150px;padding:12px}
#content .tracker-matrix .tracker-col-title{font-size:.8125rem;line-height:1.45;color:var(--linea-text-secondary)}
#content .tracker-matrix .tracker-col-code{font-size:.8125rem;line-height:1.4;margin-bottom:5px;color:var(--linea-text-primary)}
#content .tracker-matrix td{padding:10px 12px;vertical-align:middle}
#content .tracker-matrix .matrix-status{display:grid;grid-template-columns:22px minmax(0,1fr);align-content:center;justify-items:start;column-gap:8px;row-gap:5px;width:100%;min-width:126px;min-height:64px;padding:10px;text-align:start}
#content .tracker-matrix .matrix-status>b{grid-column:1;grid-row:1;align-self:center;justify-self:center;font-size:1rem;line-height:1.4}
#content .tracker-matrix .matrix-status>span{grid-column:2;grid-row:1;font-size:.8125rem;line-height:1.45;white-space:normal;overflow-wrap:anywhere}
#content .tracker-matrix .matrix-status>.tracker-cell-date{grid-column:2;font-size:.75rem;line-height:1.4;color:var(--linea-text-muted)}
#content .tracker-matrix .matrix-status:disabled{opacity:1;cursor:default}
#content .tracker-matrix .matrix-status:focus-visible{outline:2px solid var(--linea-border-accent);outline-offset:3px}
#content .tracker-matrix .sticky-summary>strong{font-size:1rem;font-variant-numeric:tabular-nums;line-height:1.5}
#content .tracker-matrix .sticky-name>.role-pill{display:flex;width:fit-content;max-width:calc(100% - 36px);white-space:normal;line-height:1.4}
@media(max-width:600px){
 #content #journalTable .journal-wrap{max-height:65vh}
 #content #journalTable .journal-table th,#content #journalTable .journal-table td{padding:8px}
 #content #journalTable .journal-table .sticky-name{min-width:13.75rem;max-width:13.75rem}
 #content #journalTable .journal-session-head>.mini-action{min-height:44px}
 #content .tracker-matrix .sticky-summary{position:static}
 #content .tracker-matrix .sticky-name{min-width:13.75rem;max-width:15rem}
}

#content .tracker-shared-scope{margin:12px 0;max-width:65ch}
#content .tracker-shared-scope summary{cursor:pointer;color:var(--linea-text-secondary);font-size:.8125rem;line-height:1.5;padding:6px 0}
#content .tracker-shared-scope p{margin:8px 0 0;line-height:1.5}
#content .tracker-export-note{flex-basis:100%;max-width:45ch;line-height:1.5}
#content .work-export-note{max-width:45ch;line-height:1.5}
#content .tracker-head .quick-actions>.btn{min-height:44px;white-space:normal}

#content .tracker-head.simplified{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
#content .tracker-head.simplified>div{min-width:0}
#content .tracker-head.simplified .tracker-scope-note{display:block;width:fit-content;max-width:100%}
#content .tracker-head.simplified .quick-actions{justify-content:flex-start;flex-wrap:wrap;gap:8px}
#content .tracker-head.simplified .tracker-export-note{order:1}

/* A tall mobile context must scroll away instead of covering the active work. */
@media(max-width:600px){#content .group-context-bar{position:static}}

#content .group-work-switcher>div:first-child>span{white-space:normal;overflow-wrap:anywhere}


/* #954 — dense, readable attendance workspace. UI-only, no academic data changes. */
#content:has(#groupWorkspacePane .attendance-workspace)>.group-workspace-head{
  min-height:0;padding:4px 0 6px;margin:0 0 8px;gap:6px
}
#content:has(#groupWorkspacePane .attendance-workspace)>.group-workspace-head .teaching-section-spacing{
  display:none
}
#content:has(#groupWorkspacePane .attendance-workspace)>.group-workspace-head h1{
  font-size:clamp(1.35rem,2vw,1.8rem);margin:2px 0 3px;line-height:1.2
}
#content:has(#groupWorkspacePane .attendance-workspace)>.group-workspace-head p{
  margin:0;font-size:.78rem
}
#content:has(#groupWorkspacePane .attendance-workspace)>.group-context-bar{
  padding:8px 10px;margin-bottom:8px;gap:8px;align-items:center;flex-wrap:wrap;border-radius:12px;
  background:color-mix(in srgb,var(--linea-surface-elevated) 94%,transparent);
  border:1px solid var(--linea-border-default)
}
#content:has(#groupWorkspacePane .attendance-workspace)>.group-context-bar>.field{
  flex:1 1 370px;min-width:min(270px,100%);margin:0;font-size:.75rem
}
#content:has(#groupWorkspacePane .attendance-workspace)>.group-context-bar select{
  min-height:36px;padding-block:5px
}
#content:has(#groupWorkspacePane .attendance-workspace)>.group-context-bar .group-course-title{display:none}
#content:has(#groupWorkspacePane .attendance-workspace)>.group-context-bar .group-course-scope{
  display:block;font-size:.72rem;line-height:1.25;margin:0;max-width:70ch
}
#content:has(#groupWorkspacePane .attendance-workspace)>.group-context-bar .group-view-switch{
  flex:2 1 auto;justify-content:flex-end;gap:4px
}
#content:has(#groupWorkspacePane .attendance-workspace)>.group-context-bar .group-view-switch button{
  min-height:36px;padding:6px 9px;font-size:.8rem
}
#content .attendance-workspace{
  padding:12px 14px;min-width:0
}
#content .attendance-workspace>.attendance-title{
  align-items:center;gap:12px
}
#content .attendance-workspace .attendance-title h2{
  font-size:1.05rem;line-height:1.3;margin:0
}
#content .attendance-workspace .attendance-focus-context{display:none}
#content .attendance-workspace.is-focus-mode .attendance-focus-context{
  display:block;font-size:.76rem;color:var(--linea-text-secondary);line-height:1.3;max-width:74ch;overflow-wrap:anywhere
}
#content .attendance-workspace .attendance-help{
  display:inline-block;margin-top:4px;font-size:.78rem;color:var(--linea-text-secondary)
}
#content .attendance-workspace .attendance-help summary{
  cursor:pointer;color:var(--linea-text-secondary);font-size:.78rem
}
#content .attendance-workspace .attendance-help p{
  margin:6px 0 0;max-width:80ch;line-height:1.45
}
#content .attendance-workspace .attendance-toolbar{
  margin:6px 0;gap:8px;align-items:end
}
#content .attendance-workspace .attendance-toolbar .field{margin:0}
#content .attendance-workspace .attendance-toolbar select{min-height:35px;padding-block:5px}
#content .attendance-focus-toggle{min-height:36px;flex:none;white-space:nowrap}
#content #journalTable .journal-legend{margin:7px 0 8px;gap:6px}
#content #journalTable .journal-legend>.legend{
  padding:4px 9px;border:1px solid var(--linea-border-default);font-size:.76rem;line-height:1.2
}
#content #journalTable .journal-legend>.present{background:var(--linea-status-success-bg);color:var(--linea-status-success-fg);border-color:var(--linea-status-success-border)}
#content #journalTable .journal-legend>.absent{background:var(--linea-status-danger-bg);color:var(--linea-status-danger-fg);border-color:var(--linea-status-danger-border)}
#content #journalTable .journal-legend>.excused{background:var(--linea-status-warning-bg);color:var(--linea-status-warning-fg);border-color:var(--linea-status-warning-border)}
#content #journalTable .journal-legend>.notified{background:var(--linea-status-info-bg);color:var(--linea-status-info-fg);border-color:var(--linea-status-info-border)}
#content #journalTable .journal-legend>.unmarked{background:var(--linea-status-neutral-bg);color:var(--linea-status-neutral-fg)}
#content #journalTable .journal-wrap{
  max-height:min(73dvh,760px);min-height:min(230px,40dvh)
}
#content #journalTable .journal-table th,#content #journalTable .journal-table td{
  padding:5px 7px
}
#content #journalTable .journal-table .sticky-name{min-width:12.5rem;max-width:15rem}
#content #journalTable .journal-session-head{gap:4px;min-width:98px}
#content #journalTable .journal-session-head>strong{font-size:.8rem;line-height:1.22}
#content #journalTable .journal-session-head>.journal-session-kind{
  font-size:.69rem;line-height:1.22;min-height:2.45em
}
#content #journalTable .journal-session-head>.mini-action{
  min-height:29px;padding:4px 5px;font-size:.7rem;line-height:1.2
}
#content #journalTable .journal-cell-btn{
  min-height:36px;min-width:44px;line-height:1.2;padding:5px
}
#content #journalTable .journal-table tbody .sticky-name .journal-person-name strong{font-size:.8rem;line-height:1.15}
#content #journalTable .journal-table tbody .sticky-name .journal-person-name span{font-size:.71rem;line-height:1.2}
/* Keep the summary column two lines, not a three/four-line row height driver. */
#content #journalTable .journal-summary-cell{min-width:228px;max-width:245px;white-space:nowrap}
#content #journalTable .journal-summary-cell>strong{font-size:.88rem;line-height:1.2}
#content #journalTable .journal-summary-cell>small{display:block;white-space:nowrap;font-size:.69rem;line-height:1.2;margin-top:2px}
#content #journalTable .attendance-footer-note{
  margin-top:7px;padding:7px 10px;max-width:90ch;font-size:.75rem
}

/* Maximize the existing journal; never duplicate its data or editor. */
#content .attendance-workspace.is-focus-mode{
  position:fixed;inset:8px;z-index:95;display:flex;flex-direction:column;
  height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);overflow:hidden;
  box-shadow:0 24px 90px rgba(0,0,0,.55);
  background:var(--linea-surface-elevated);border:1px solid var(--linea-border-default)
}
#content .attendance-workspace.is-focus-mode #journalTable{
  flex:1;display:flex;flex-direction:column;min-height:0
}
#content .attendance-workspace.is-focus-mode #journalTable .journal-wrap{
  flex:1;min-height:0;max-height:none
}
#content .attendance-workspace.is-focus-mode #journalTable .attendance-footer-note{display:none}

/* Viewport-aware editor: also usable at 200% zoom, in bottom rows and with keyboard. */
body .attendance-popover{
  box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;
  color:var(--linea-text-primary);background:var(--linea-surface-elevated);
  border-color:var(--linea-border-default);padding:12px;
  box-shadow:0 22px 65px rgba(0,0,0,.42)
}
body .attendance-popover.is-viewport-sheet{
  border:2px solid var(--linea-border-accent);box-shadow:0 16px 90px rgba(0,0,0,.58)
}
body .attendance-popover-title{display:flex;align-items:flex-start;gap:10px;justify-content:space-between;color:var(--linea-text-primary)}
body .attendance-popover-title small{color:var(--linea-text-secondary)}
body .attendance-popover-dismiss{flex:none;min-width:34px;min-height:34px}
body .attendance-popover .attendance-choice{
  min-height:36px;background:var(--linea-surface-active);color:var(--linea-text-primary);border:1px solid var(--linea-border-default)
}
body .attendance-popover .attendance-choice:hover,body .attendance-popover .attendance-choice.active{
  border-color:var(--linea-border-accent);background:var(--linea-surface-hover)
}
body .attendance-popover .attendance-choice.present b{color:var(--linea-status-success-fg)}
body .attendance-popover .attendance-choice.absent b{color:var(--linea-status-danger-fg)}
body .attendance-popover .attendance-choice.excused b{color:var(--linea-status-warning-fg)}
body .attendance-popover .attendance-choice.notified b{color:var(--linea-status-info-fg)}
body .attendance-popover .attendance-choice.unmarked b{color:var(--linea-status-neutral-fg)}
body .attendance-popover-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}
body .attendance-popover-error{font-size:.8rem;color:var(--linea-status-danger-fg);line-height:1.4}
body .attendance-popover :focus-visible{outline:2px solid var(--linea-border-accent);outline-offset:2px}

/* Polished, proportional donut charts: no perspective skew or misleading 3D tilt. */
#content .attendance-summary-view .attendance-summary-header{align-items:center;justify-content:space-between}
#content .attendance-summary-view .attendance-summary-header-rate{font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--linea-text-secondary);font-weight:700;white-space:nowrap}
#content .attendance-summary-view .attendance-ring-spectrum{height:5px;margin:10px 0;opacity:.88}
#content .attendance-summary-view .attendance-donut-layout{
  display:grid;grid-template-columns:minmax(142px,184px) minmax(0,1fr);align-items:center;gap:18px;margin-top:12px
}
#content .attendance-summary-view .attendance-ring{
  width:100%;aspect-ratio:1;border-radius:50%;position:relative;display:grid;place-items:center;
  background:var(--attendance-ring);isolation:isolate;
  box-shadow:0 8px 0 -3px rgba(25,45,70,.45),0 14px 28px rgba(0,0,0,.19),inset 0 2px 9px rgba(255,255,255,.28)
}
#content .attendance-summary-view .attendance-ring:before{
  content:"";position:absolute;inset:3px;border-radius:50%;
  background:var(--attendance-ring);filter:brightness(.65);opacity:.23;transform:translateY(5px);z-index:0
}
#content .attendance-summary-view .attendance-ring:after{
  content:"";position:absolute;inset:21%;border-radius:50%;z-index:1;
  background:var(--linea-surface-elevated);box-shadow:inset 0 4px 13px rgba(0,0,0,.27),0 0 0 1px var(--linea-border-default)
}
#content .attendance-summary-view .attendance-ring-center{
  position:relative;z-index:2;display:grid;gap:3px;text-align:center;justify-items:center
}
#content .attendance-summary-view .attendance-ring-center strong{
  font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.1;font-variant-numeric:tabular-nums;color:var(--linea-text-primary)
}
#content .attendance-summary-view .attendance-ring-center span{
  font-size:.68rem;color:var(--linea-text-secondary);max-width:72px;line-height:1.3
}
#content .attendance-summary-view .attendance-ring-details{min-width:0}
#content .attendance-summary-view .attendance-ring-details>p{margin:0 0 9px}
#content .attendance-summary-view .attendance-ring-details>.attendance-type-counts{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 14px
}
#content .attendance-summary-view .attendance-ring-details .attendance-type-counts>div{
  min-width:0;display:flex;align-items:baseline;justify-content:space-between;gap:6px
}
#content .attendance-summary-view .attendance-ring-details .attendance-type-counts dt{
  min-width:0;font-size:.76rem;line-height:1.35
}
#content .attendance-summary-view .attendance-ring-details .attendance-type-counts dd{
  flex:none;margin:0;font-size:.88rem;font-variant-numeric:tabular-nums
}
@media(max-width:1100px){
  #content:has(#groupWorkspacePane .attendance-workspace)>.group-context-bar .group-view-switch{justify-content:start}
}
@media(max-width:750px){
  #content:has(#groupWorkspacePane .attendance-workspace)>.group-context-bar .group-view-switch{
    flex:0 0 100%;display:flex;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start
  }
  #content .attendance-workspace{padding:10px}
  #content .attendance-workspace .attendance-title{display:flex;align-items:center}
  #content #journalTable .journal-table .sticky-name{min-width:11rem;max-width:11rem}
  #content #journalTable .journal-session-head>.mini-action{min-height:40px}
  #content #journalTable .journal-wrap{max-height:68dvh}
  #content .attendance-summary-view .attendance-donut-layout{grid-template-columns:1fr;justify-items:center}
  #content .attendance-summary-view .attendance-ring{width:min(190px,70vw)}
  #content .attendance-summary-view .attendance-ring-details{width:100%}
}
@media(max-width:390px){
  #content .attendance-focus-toggle{font-size:.71rem;padding:5px 7px}
  #content .attendance-summary-view .attendance-ring-details>.attendance-type-counts{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  #content .attendance-summary-view .attendance-ring{animation:none;transition:none}
}
