.synthetic-banner{background:#fff3cf;color:#704d00;padding:6px 20px;text-align:center;font-size:13px}.compact-attention{margin-bottom:16px;padding:12px 18px}.compact-attention summary{cursor:pointer;font-weight:600}.compact-attention .calendar-action-row{padding:8px}.v22-filters,.workspace-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}.workspace-tabs a{padding:10px 14px;border-radius:8px;background:var(--surface,#fff)}.workspace-tabs .is-active{background:#143d59;color:#fff}.record-card{padding:18px;margin:12px 0}.record-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.record-card header{display:flex;justify-content:space-between;gap:12px}.record-card .record-text{max-height:240px;overflow:auto}.quick-record-dialog{position:fixed;inset:0 0 0 auto;margin:0;height:100dvh;max-height:none;width:min(650px,100vw);max-width:100vw;padding:0;border:0;box-shadow:-10px 0 40px #143d5933}.quick-record-dialog::backdrop{background:#143d5944}.quick-record-dialog iframe{width:100%;height:100%;border:0}.record-document{background:#fff}.record-document main{max-width:760px;margin:auto;padding:24px}.record-document textarea{width:100%;box-sizing:border-box;font:inherit;padding:12px;border:1px solid #c3d0d9;border-radius:8px;line-height:1.7}.record-heading{display:flex;justify-content:space-between;align-items:start}.record-heading h1{font-size:24px;margin:4px 0}.record-heading p{margin:6px 0}.record-savebar{display:flex;gap:10px;position:sticky;bottom:0;background:white;padding:16px 0}.optional-record,.attendance-record,.record-more,.previous-record{padding:14px 0}.attendance-record input{max-width:100px}.manage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}.candidate-row{display:grid;grid-template-columns:30px 1fr;gap:8px;padding:12px;border-bottom:1px solid #dde5ea}.candidate-row input{align-self:start}.calendar-event .record-link{display:block;margin-top:8px;font-weight:600;color:#144f73}.v22-selected{margin-top:16px;padding:18px}.v22-selected .calendar-event{display:inline-block;min-width:200px;margin:8px}.v22-day-todos{padding:8px;font-size:13px;background:#fff7df}.business-body{font-size:16px;margin:8px 0}.pagination{display:flex;gap:16px;justify-content:center;margin:20px}.record-document pre{white-space:pre-wrap}.delete-preview{border:2px solid #b97316;padding:18px;border-radius:10px}.delete-preview li{margin:12px 0} .v22-business-form{max-width:760px}
@media(max-width:760px){.primary-nav{display:flex!important;position:static;flex-wrap:nowrap;padding:4px;justify-content:space-around;width:100%;background:transparent}.primary-nav a{padding:7px!important}.nav-toggle{display:none}.header-inner{flex-wrap:wrap}.header-actions{display:none}.brand-copy small{display:none}.site-header .brand{margin:auto}.quick-record-dialog{width:100vw}.record-document main{padding:16px}.record-savebar{flex-direction:column}.workspace-tabs{gap:4px}.workspace-tabs a{font-size:13px;padding:9px}.calendar-toolbar-actions{display:none}.v22-selected{display:none}.record-card header{flex-direction:column}.v2-calendar-grid.view-day{display:block}.record-heading h1{font-size:21px}.page-main{padding-top:16px}.record-card{padding:14px}.site-footer{font-size:11px}}

.calendar-events{display:flex;flex-direction:column}.calendar-event{flex-shrink:0}
@media(max-width:760px){body{margin:0}.site-header{height:auto;min-height:108px}.header-inner{height:auto;min-height:108px;gap:8px;padding-top:8px;padding-bottom:4px}.primary-nav{flex-basis:100%;border:0}.synthetic-banner{position:relative}}

/* HF02-A: keep the title out of the icon grid track; scope to V2.2 attention. */
.compact-attention .calendar-action-row { grid-template-columns: 8px minmax(0, 1fr); align-items: start; }
.compact-attention .action-dot { margin-top: .4em; }
.compact-attention .calendar-action-copy { min-width: 0; }
.compact-attention .calendar-action-copy strong,
.compact-attention .calendar-action-copy small {
  white-space: normal;
  overflow-wrap: anywhere;
  overflow: visible;
  text-overflow: clip;
}

.delete-preview{min-width:0;overflow-wrap:anywhere}.cleanup-financial-context{padding:12px;background:#fff8e8;border-radius:8px}.cleanup-financial-context details{padding:6px 0}.cleanup-confirm{display:flex;align-items:flex-start;gap:10px}.cleanup-confirm input{flex:0 0 auto;margin-top:5px}.delete-preview ul{padding-left:22px}
.current-log-preview header div{min-width:0}.current-log-preview header span,.current-log-preview header strong{white-space:normal;overflow-wrap:anywhere}.current-log-preview header time{flex-shrink:0}.current-log-body{display:grid;gap:.6rem;margin-top:.6rem;min-width:0}.current-log-section{min-width:0}.current-log-section h3{font-size:.75rem;margin:0 0 .25rem;color:var(--ink-muted)}.current-log-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5;font-size:.8rem}.current-log-empty{margin:0;line-height:1.5}
.current-log-preview{max-height:min(60vh,24rem)}.view-day .current-log-preview{left:auto;right:.5rem}

/* Shared start-time rows keep each day chronological and simultaneous cards visible. */
.v2-calendar-grid.calendar-timeline{display:block;min-height:0}
.calendar-timeline-row{display:grid;grid-template-columns:52px repeat(7,minmax(0,1fr));align-items:stretch}
.view-day .calendar-timeline-row{grid-template-columns:56px minmax(0,1fr)}
.calendar-time-axis{padding:10px 5px;border-top:1px solid #e6edf2;color:#617a8c;font-size:11px;font-variant-numeric:tabular-nums;text-align:center;background:#f8fafc}
.calendar-timeline-cell{min-width:0;padding:5px;border-top:1px solid #e6edf2;border-left:1px solid #edf1f5}
.calendar-timeline-cell.is-today{background:#f4faf9}
.calendar-timeline-header .is-today{box-shadow:inset 0 3px #26848c}
.calendar-timeline-header .calendar-timeline-cell{padding:8px 5px}
.calendar-timeline-header .calendar-time-axis{padding-top:18px}
.calendar-timeline .calendar-day-header{display:flex;align-items:center;justify-content:space-between;min-height:30px;margin:0;gap:3px}
.calendar-timeline .calendar-day-header>a{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px}
.calendar-timeline .calendar-empty-slot{min-height:0;padding:5px 0;font-size:11px;opacity:1}
.view-week .calendar-timeline-cell:nth-last-child(-n+3) .session-hover-popover{left:auto;right:calc(100% + .45rem)}
.calendar-card-list{display:flex!important;flex-direction:column;gap:5px;overflow:visible!important}
.calendar-card-list .calendar-event{margin:0;min-width:0;border:1px solid #cbdfea;border-left:3px solid #4386a6;border-radius:7px;background:#eef6fc;color:#1c425b;padding:5px 7px;box-shadow:none;line-height:1.25}
.calendar-card-list .calendar-event-link,.calendar-card-list .blocked-event>a{display:grid;grid-template-columns:minmax(0,1fr);gap:1px;padding:0;min-width:0}
.calendar-card-list .calendar-event time{color:inherit;font-size:11px;opacity:1;font-variant-numeric:tabular-nums}
.calendar-card-list .calendar-event strong{font-size:12px;line-height:1.3;white-space:normal;overflow-wrap:anywhere;margin:0}
.calendar-card-list .calendar-event span,.calendar-card-list .calendar-event small{font-size:10px;line-height:1.3;overflow-wrap:anywhere}
.calendar-card-list a.calendar-event{display:grid;gap:1px}
.calendar-card-list .calendar-event .record-link{font-size:10px;padding:3px 0 0;margin:2px 0 0;border:0;line-height:1.3;width:fit-content}
.calendar-card-list .type-trial,.calendar-card-list .appointment-event{background:#f5f0fb;border-color:#dfd1ed;border-left-color:#9069ac;color:#563b70}
.calendar-card-list .status-completed{background:#edf7f1;border-color:#c8e0d2;border-left-color:#55916b;color:#305e44}
.calendar-card-list .blocked-event{background:#f0f2f5;border-color:#dce1e6;border-left-color:#7d8997;color:#566272}
.calendar-card-list .status-cancelled,.calendar-card-list .status-rescheduled{background:#f5f5f5;border-color:#ddd;border-left-color:#aaa;color:#69727a;opacity:1;text-decoration:none}
.calendar-card-list .status-cancelled time,.calendar-card-list .status-rescheduled time{text-decoration:line-through}
.calendar-card-list .has-conflict{outline:2px solid #c72e3d}
.calendar-card-list a.calendar-event:hover,.calendar-card-list .session-event:hover{box-shadow:0 3px 10px #143d591a}
.calendar-card-list .session-event:focus-visible{outline:2px solid #267c89;outline-offset:2px}
.view-day .calendar-timeline-cell{padding:6px 10px}
/* Same two-row card layout in day, week and month views. */
.calendar-card-list .calendar-event-link,.calendar-card-list a.appointment-event{display:flex;flex-direction:column;gap:3px}
.calendar-card-list .calendar-event .calendar-card-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px;min-width:0;overflow:visible;white-space:normal}
.calendar-card-list .calendar-card-row>strong,.calendar-card-list .calendar-card-row>span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-card-list .calendar-card-row>time,.calendar-card-list .calendar-card-row>small{flex:0 0 auto;white-space:nowrap}
.calendar-card-list .calendar-card-row>small{max-width:55%;overflow:hidden;text-overflow:ellipsis}
@media(max-width:760px){.calendar-timeline.view-week{min-width:980px}.view-day .calendar-timeline-row{grid-template-columns:43px minmax(0,1fr)}.view-day .calendar-timeline-cell{padding:5px}}

/* Actual wall-clock position: each hour is 72px, independent of card content. */
.calendar-timeline-header,.calendar-time-body{display:grid;grid-template-columns:52px repeat(7,minmax(0,1fr))}
.view-day .calendar-timeline-header,.view-day .calendar-time-body{grid-template-columns:56px minmax(0,1fr)}
.calendar-time-body{position:relative;margin:0 0 15px;background:repeating-linear-gradient(to bottom,#dce6ed 0,#dce6ed 1px,transparent 1px,transparent 36px,#edf2f6 36px,#edf2f6 37px,transparent 37px,transparent 72px)}
.calendar-hour-axis{position:relative;background:#f8fafc;border-right:1px solid #e3ebf1}
.calendar-hour-axis>time{position:absolute;left:0;width:100%;font-size:11px;line-height:16px;text-align:center;color:#617a8c;font-variant-numeric:tabular-nums;transform:translateY(-50%)}
.calendar-hour-axis>time:first-child{transform:none}
.calendar-time-column{position:relative;min-width:0;border-right:1px solid #edf1f5}
.calendar-time-column.is-today{background:#26848c08}
.calendar-positioned-event{position:absolute;box-sizing:border-box;padding:1px 3px;min-width:0;z-index:1}
.calendar-positioned-event>.calendar-event{height:100%;box-sizing:border-box;min-height:0}
.calendar-positioned-event:hover,.calendar-positioned-event:focus-within{z-index:70}
.calendar-positioned-event.is-short>.calendar-event{padding:1px 4px;overflow:hidden}
.calendar-positioned-event.is-short .calendar-event-link{min-height:100%}
.calendar-positioned-event.is-short:hover>.calendar-event,.calendar-positioned-event.is-short:focus-within>.calendar-event{height:auto;min-height:66px;overflow:visible;padding:5px 7px}
.view-week .calendar-time-column:nth-last-child(-n+3) .session-hover-popover{left:auto;right:calc(100% + .45rem)}
.calendar-card-list .business-event{background:#fff6df;border-color:#ead9aa;border-left-color:#b68627;color:#6c511e}
.legend-business{background:#b68627}
.calendar-timeline .v22-day-todos{margin:5px 0 0;padding:5px;background:#fff6df;border-left:3px solid #b68627;border-radius:4px;font-size:11px}
.calendar-timeline .v22-day-todos a{color:#6c511e}
@media(min-width:761px){.calendar-positioned-event.is-overlap:hover,.calendar-positioned-event.is-overlap:focus-within{min-width:190px}}
@media(max-width:760px){.view-day .calendar-timeline-header,.view-day .calendar-time-body{grid-template-columns:43px minmax(0,1fr)}.calendar-positioned-event .calendar-card-primary time{font-size:10px}}

/* WS01: local student/project workspace, no global navigation changes. */
/* Compact information cards; a separate thin bar retains the true duration. */
.calendar-week .page-main,.calendar-day .page-main{min-height:0;padding-bottom:10px}
.calendar-week .site-footer,.calendar-day .site-footer,.calendar-week .footer-inner,.calendar-day .footer-inner{min-height:40px}
.calendar-week .compact-attention,.calendar-day .compact-attention{margin-bottom:8px;padding:9px 14px}
.calendar-week .calendar-legend,.calendar-day .calendar-legend{margin-top:5px;padding:5px 10px;gap:12px;flex-wrap:wrap}
.calendar-week .calendar-footnote,.calendar-day .calendar-footnote{margin-top:4px;font-size:10px}
.calendar-fit{background:repeating-linear-gradient(to bottom,#dce6ed 0,#dce6ed 1px,transparent 1px,transparent var(--clock-half-hour),#edf2f6 var(--clock-half-hour),#edf2f6 calc(var(--clock-half-hour) + 1px),transparent calc(var(--clock-half-hour) + 1px),transparent var(--clock-hour))}
.calendar-fit .calendar-positioned-event{padding:0 3px 0 9px}
.calendar-fit .calendar-positioned-event::before{content:"";position:absolute;left:3px;top:0;width:3px;height:var(--duration-height);background:var(--duration-color);border-radius:3px;opacity:.65;pointer-events:none}
.calendar-fit .calendar-positioned-event>.calendar-event,
.calendar-fit .calendar-positioned-event.is-short>.calendar-event,
.calendar-fit .calendar-positioned-event.is-short:hover>.calendar-event,
.calendar-fit .calendar-positioned-event.is-short:focus-within>.calendar-event{height:auto;min-height:52px;padding:4px 6px;overflow:visible}
.calendar-fit .calendar-positioned-event .calendar-event-link{min-height:0}
.calendar-fit .calendar-positioned-event .record-link{white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;padding-top:1px;margin-top:1px}
.calendar-fit .calendar-positioned-event .calendar-card-row{gap:4px}
.calendar-fit .calendar-positioned-event .calendar-card-primary time{font-size:10px;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.calendar-fit .blocked-event time,.calendar-fit .legacy-event time{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-fit .calendar-positioned-event .calendar-cancellation-label{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-fit .blocked-event strong,.calendar-fit .legacy-event strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:760px){.calendar-week .footer-inner,.calendar-day .footer-inner{padding-block:7px}.calendar-week .calendar-legend,.calendar-day .calendar-legend{gap:6px 10px;font-size:10px}.calendar-fit .current-log-preview{display:none}}

.student-workspace { max-width: 1400px; margin-inline: auto; }
.student-workspace .ws-heading,.ws-student-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }
.student-workspace h1 { margin:0; }.ws-student h2,.ws-project h3 { margin:0; overflow-wrap:anywhere; }
.ws-search { display:flex; gap:10px; flex-wrap:wrap; margin-block:18px; }.ws-search input { flex:1; min-width:160px; padding:10px; border:1px solid #d6dee3; border-radius:8px; }.ws-search select { padding:10px; }
.ws-count { margin:18px 0; }.ws-student { margin-bottom:20px; padding:22px; }.ws-student-heading { margin-bottom:18px; }.ws-student-heading p { margin:6px 0 0; }
.ws-actions { display:flex; gap:10px 14px; align-items:center; flex-wrap:wrap; }.ws-actions a,.ws-actions button { overflow-wrap:anywhere; }
.ws-project { border-top:1px solid #e0e6ea; padding:18px 0; }.ws-project-title { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }.ws-project>p { margin:6px 0 12px; }
.ws-project-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:14px; }.ws-project-facts>div>span { color:#637681; font-size:12px; }.ws-project-facts p { margin:5px 0; overflow-wrap:anywhere; }.ws-project-facts small { display:block; color:#637681; margin-top:4px; }
.ws-history { border-top:1px solid #e0e6ea; padding-top:14px; }.ws-history summary,.ws-more summary { cursor:pointer; padding:8px 0; }.ws-history summary .badge { margin-left:10px; }.ws-history-project { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:14px 0; border-bottom:1px solid #edf0f2; overflow-wrap:anywhere; }.ws-history-project p { margin:5px 0; }
.ws-more>div { padding:12px; border:1px solid #dde5ea; border-radius:8px; display:flex; gap:14px; flex-wrap:wrap; background:#f5f8fa; }.ws-more:not([open])>div { display:none; }.ws-more form { margin:0; }.ws-empty { padding:24px 0; }.ws-pagination { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:16px; margin:24px 0; }
@media(max-width:900px) { .ws-project-facts { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:520px) { .ws-student { padding:16px; }.ws-project-facts { grid-template-columns:1fr; gap:9px; }.ws-history-project { align-items:flex-start; flex-direction:column; }.student-workspace .ws-heading { align-items:flex-start; }.ws-search input { min-width:0; flex-basis:100%; }.ws-actions .button { white-space:normal; }.ws-student-heading { align-items:flex-start; } }

/* Keep mobile save feedback below the two-row primary navigation. */
@media (max-width: 700px) { .message-stack { top: 120px; } }
