/* Academic extensions inherit the same Material 3 roles as the app shell. */
.academic-view,.academic-view *{box-sizing:border-box}
.academic-view{--academic-blue:var(--md-sys-color-primary);--academic-light:var(--md-sys-color-primary-container);--academic-text:var(--md-sys-color-on-surface);--academic-muted:var(--md-sys-color-on-surface-variant);--academic-border:var(--md-sys-color-outline-variant);display:grid;gap:20px;padding:4px 0 24px;color:var(--academic-text);font:inherit;min-width:0;overflow-wrap:anywhere}
.academic-view h2{font:var(--md-sys-typescale-title-large)}.academic-view h3{font:var(--md-sys-typescale-title-medium)}.academic-view p{margin:0}
.academic-muted{color:var(--academic-muted);font:var(--md-sys-typescale-body-medium)}.academic-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.academic-row>*{min-width:0}.academic-between{justify-content:space-between}.academic-stack{display:grid;gap:14px;min-width:0}
.academic-card{display:grid;gap:14px;padding:18px;border:1px solid var(--academic-border);border-radius:var(--md-sys-shape-corner-large);background:var(--paper);min-width:0;overflow-wrap:anywhere}
.academic-view button,.academic-link{min-height:44px;max-width:100%;border-radius:var(--md-sys-shape-corner-full);border:1px solid var(--md-sys-color-outline);background:var(--paper);color:var(--deep);padding:11px 18px;cursor:pointer;font:var(--md-sys-typescale-label-large);text-decoration:none;text-align:center;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:normal;overflow-wrap:anywhere;transition:box-shadow var(--md-sys-motion-duration-short) var(--md-sys-motion-easing-standard)}
.academic-view button:disabled{opacity:.55;cursor:not-allowed}.academic-view .academic-primary{background:var(--academic-blue);color:var(--md-sys-color-on-primary);border-color:transparent}.academic-view .academic-danger{color:var(--md-sys-color-on-error-container);background:var(--md-sys-color-error-container);border-color:var(--md-sys-color-error)}
.academic-view label{display:grid;gap:8px;font:var(--md-sys-typescale-label-large);min-width:0}.academic-view input:not([type=checkbox]):not([type=radio]),.academic-view select,.academic-view textarea{width:100%;min-width:0;min-height:52px;border:1px solid var(--md-sys-color-outline);border-radius:var(--md-sys-shape-corner-small);background:var(--paper);color:var(--academic-text);padding:13px 14px;font:inherit;font-size:max(16px,1rem)}
.academic-view select{appearance:none;-webkit-appearance:none;white-space:normal;text-overflow:ellipsis;padding-right:38px;background-image:linear-gradient(45deg,transparent 50%,var(--deep) 50%),linear-gradient(135deg,var(--deep) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.academic-view textarea{resize:vertical;min-height:96px}.academic-view input[type=checkbox],.academic-view input[type=radio]{width:22px;height:22px;flex:none}
.academic-tag{display:inline-flex;align-items:center;border-radius:var(--md-sys-shape-corner-small);padding:6px 10px;background:var(--academic-light);color:var(--deep);font:var(--md-sys-typescale-label-medium);max-width:100%;overflow-wrap:anywhere}.academic-tag-green{color:var(--md-sys-color-on-secondary-container);background:var(--md-sys-color-secondary-container)}
.academic-error,.academic-ok{border-radius:var(--md-sys-shape-corner-medium);padding:14px 16px;font:var(--md-sys-typescale-body-medium)}.academic-error{color:var(--md-sys-color-on-error-container);background:var(--md-sys-color-error-container);border:1px solid var(--md-sys-color-error)}.academic-ok{color:var(--md-sys-color-on-secondary-container);background:var(--md-sys-color-secondary-container)}.academic-notice:empty{display:none}
.academic-empty{text-align:center;padding:28px 18px;border:1px solid var(--academic-border);border-radius:var(--md-sys-shape-corner-extra-large);background:var(--paper);display:grid;gap:14px}

/* Date selection: compact seven-column grid, generous vertical touch targets. */
.academic-calendar-panel{background:var(--paper);border:1px solid var(--academic-border);border-radius:var(--md-sys-shape-corner-extra-large);padding:16px 10px;display:grid;gap:14px;min-width:0;max-width:100%}.academic-calendar-panel>.academic-row{padding:0 6px}.academic-calendar-panel>.academic-row button{width:44px;min-width:44px;padding:0;border:0;border-radius:50%;background:var(--md-sys-color-surface-container);color:var(--deep);font-size:1.25rem}
.academic-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;text-align:center}.academic-calendar span,.academic-calendar button{min-height:44px;min-width:0;padding:0;display:grid;place-items:center;font:var(--md-sys-typescale-label-medium);border:0;border-radius:var(--md-sys-shape-corner-full);color:var(--academic-text);position:relative}.academic-calendar .academic-day-event::after{content:'';position:absolute;bottom:3px;width:4px;height:4px;border-radius:50%;background:var(--md-sys-color-secondary)}.academic-calendar .academic-today{background:var(--academic-light);color:var(--deep);box-shadow:inset 0 0 0 1px var(--academic-blue)}.academic-calendar [aria-pressed=true]{background:var(--academic-blue);color:var(--md-sys-color-on-primary)}.academic-calendar [aria-pressed=true]::after{background:var(--md-sys-color-on-primary)}.academic-calendar .academic-weekday{font:var(--md-sys-typescale-label-medium);color:var(--academic-muted);min-height:32px}.academic-selected-date{font:var(--md-sys-typescale-label-large);padding:8px 6px 0}.academic-agenda-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
.academic-session-card{display:flex;align-items:flex-start;gap:14px}.academic-session-time{display:grid;gap:6px;min-width:48px;flex-shrink:0;text-align:center;color:var(--deep);padding-top:3px}.academic-session-time strong{font:var(--md-sys-typescale-title-medium)}.academic-session-time small{color:var(--academic-muted);font:var(--md-sys-typescale-body-small)}.academic-session-body{display:grid;gap:12px;border-left:1px solid var(--academic-border);padding-left:14px;flex:1;min-width:0}.academic-session-body>.academic-row button{padding:10px 14px;font:var(--md-sys-typescale-label-medium);background:var(--academic-light);color:var(--deep);border-color:transparent}.academic-view .academic-confirm{color:var(--md-sys-color-on-secondary-container);background:var(--md-sys-color-secondary-container)}

/* Academic forms, files, groups and conversations. */
.academic-form{display:grid;gap:20px;background:var(--paper);border:1px solid var(--academic-border);border-radius:var(--md-sys-shape-corner-large);padding:18px;min-width:0;max-width:100%}.academic-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));gap:16px}.academic-files{display:grid;gap:12px}.academic-file{display:flex;flex-wrap:wrap;gap:10px;align-items:center;min-width:0}.academic-file>div{flex:1 1 120px;min-width:0;overflow-wrap:anywhere}.academic-file button{flex-shrink:0}
.academic-message{max-width:90%;background:var(--md-sys-color-surface-container);color:var(--academic-text);border-radius:16px 16px 16px 4px;padding:12px 16px;display:grid;gap:6px;overflow-wrap:anywhere;white-space:pre-wrap;font:var(--md-sys-typescale-body-medium)}.academic-message.own{justify-self:end;background:var(--academic-light);color:var(--deep);border-radius:16px 16px 4px 16px}.academic-message small{font:var(--md-sys-typescale-body-small);color:inherit}.academic-chat{display:grid;gap:12px}.academic-composer{display:flex;flex-wrap:wrap;gap:10px;align-items:end}.academic-composer label{flex:1 1 160px}.academic-composer textarea{min-height:52px;height:52px}.academic-composer button{flex:0 0 auto}
.academic-review-stars{color:var(--md-sys-color-on-tertiary-container);font-weight:700}.academic-tabs{display:flex;gap:8px;flex-wrap:wrap}.academic-tabs [aria-pressed=true]{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container);border-color:var(--md-sys-color-secondary)}.academic-view hr{width:100%;border:0;border-top:1px solid var(--academic-border)}.academic-loading{padding:24px;color:var(--academic-muted);text-align:center}.academic-view details summary{min-height:44px;cursor:pointer;display:flex;align-items:center;font:var(--md-sys-typescale-label-large);color:var(--deep)}.academic-view details[open] summary{margin-bottom:14px}.academic-view img{max-width:100%;height:auto}

/* Notifications share the list surface; unread state has both tint and dot. */
.academic-notification-list{display:grid;border-radius:var(--md-sys-shape-corner-large);border:1px solid var(--academic-border);min-width:0;max-width:100%}.academic-notification-list button{display:flex;align-items:flex-start;gap:12px;text-align:left;padding:18px;border:0;border-bottom:1px solid var(--academic-border);border-radius:0;color:var(--academic-text);font:var(--md-sys-typescale-body-medium)}.academic-notification-list button:first-child{border-radius:16px 16px 0 0}.academic-notification-list button:last-child{border-bottom:0;border-radius:0 0 16px 16px}.academic-notification-list button:only-child{border-radius:16px}.academic-notification-list .unread{background:var(--md-sys-color-surface-container-low)}.academic-notification-icon{display:grid;place-items:center;flex:0 0 40px;height:40px;border-radius:var(--md-sys-shape-corner-medium);background:var(--academic-light);color:var(--deep)}.academic-notification-body{display:grid;gap:6px;flex:1;min-width:0;overflow-wrap:anywhere}.academic-notification-dot{width:9px;height:9px;border-radius:50%;background:var(--academic-blue);margin-top:6px;flex:none}.academic-notification-heading{color:var(--academic-muted);font:var(--md-sys-typescale-label-medium)!important;letter-spacing:.04em}.academic-group-symbol{width:80px;height:80px;justify-self:center;display:grid;place-items:center;border:1px solid var(--academic-border);border-radius:var(--md-sys-shape-corner-extra-large);background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}
@media(max-width:360px){.academic-card,.academic-form{padding:14px}.academic-view button{padding:10px 14px}.academic-calendar button{padding:0}.academic-session-card{gap:8px}.academic-session-body{padding-left:8px}.academic-notification-list button{gap:8px;padding:14px}}
@media(forced-colors:active){.academic-calendar [aria-pressed=true],.academic-tabs [aria-pressed=true]{outline:2px solid Highlight;outline-offset:-2px}}
