:root{color-scheme:light dark}body{background:var(--bg,#f3f6fa)}.desktop-stage{display:block;max-width:850px;margin:auto;padding:0}.phone{width:100%;max-width:none;min-height:100dvh;height:auto;border:0;border-radius:0;overflow:visible;box-shadow:none}.topbar{position:sticky;top:0;z-index:20}.content{min-height:60vh;padding-bottom:calc(110px + env(safe-area-inset-bottom))}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,850px);padding-bottom:calc(10px + env(safe-area-inset-bottom));z-index:30}.role-switch{max-width:155px;font-size:14px}.list-row{width:100%;text-align:left;background:none;color:inherit;border:0;border-bottom:1px solid var(--line,#e2e8f0)}.field input,.field textarea,.field select{width:100%;font:inherit;color:inherit;box-sizing:border-box}.field textarea{min-height:100px}.profile-field{padding:12px 0;border-bottom:1px solid var(--line,#e2e8f0);overflow-wrap:anywhere}.profile-field strong{display:block;margin-bottom:5px}.card p{white-space:pre-wrap;overflow-wrap:anywhere}.tabs{flex-wrap:wrap}.lesson-body{font-size:17px;line-height:1.65;white-space:pre-wrap}.back-row{margin-bottom:14px}.status-box{padding:24px;font-size:16px}.error-box{border-left:4px solid #a92f35}.empty{padding:24px}.choice{display:block;text-align:left;width:100%;padding:16px;margin:8px 0;border:1px solid #aabac8;border-radius:12px;background:transparent;color:inherit;font-size:16px}.choice.selected{border:2px solid #156b9b;background:#156b9b15}.progress-track{height:6px;background:#e1e7ed;margin:16px 0}.progress-track>div{height:100%;background:#15738a}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:10px;text-align:left;border-bottom:1px solid #ccd4dd}.control-row{display:flex;gap:10px;flex-wrap:wrap}.control-row>*{flex:1;min-width:120px}button{min-height:44px}button:disabled{opacity:.5;cursor:wait}.brand-sub{max-width:180px}.search-result{margin-top:12px}.selected-context{font-size:14px;color:var(--muted,#60758a)}.chat-list{display:grid;gap:12px;margin:14px 0}.chat-turn{display:grid;gap:8px}.chat-user,.chat-assistant{padding:14px;border-radius:16px}.chat-user{margin-left:10%;background:rgba(132,74,255,.16)}.chat-assistant{margin-right:6%;background:var(--card,#fff)}.chat-user p,.chat-assistant p{white-space:pre-wrap;margin:.45rem 0 0}.safety-note{border-left:4px solid #8b5cf6}@media(prefers-color-scheme:dark){body{--bg:#101c29;--card:#182b3b;--text:#e6edf4;--muted:#a8b8c8;--line:#344b60;color:var(--text)}.phone,.topbar,.bottom-nav,.card,.field input,.field textarea,.field select{background:#182b3b;color:#e6edf4}.role-switch,.date-pill,.tab,.secondary{background:#253d51;color:#e6edf4}.hero-card,.academy-hero{background:#183951}.list-row strong,.page-head h2,.section-title h3{color:#e6edf4}}

/* V19 final mobile workspace and weekly scheduling. */
.topbar{background:linear-gradient(180deg,rgba(255,255,255,.99),rgba(247,251,252,.97));box-shadow:0 6px 20px rgba(16,42,67,.06)}
.role-switch{font-weight:750;border-color:rgba(23,107,135,.2);background:var(--teal-soft,#e6f4f3);color:var(--navy,#102a43)}
.bottom-nav{grid-template-columns:repeat(var(--nav-count,6),1fr);overflow-x:auto;scrollbar-width:none}
.bottom-nav::-webkit-scrollbar{display:none}
.nav-item{min-width:58px}
.calendar-week{padding:14px;overflow:hidden}
.calendar-toolbar{display:grid;grid-template-columns:46px 1fr 46px;align-items:center;gap:8px;margin-bottom:12px;text-align:center}
.calendar-toolbar button{min-width:46px;padding:8px;font-size:1.35rem}
.calendar-toolbar div{display:grid;gap:3px}
.calendar-toolbar span{font-size:.78rem;color:var(--muted,#607181)}
.week-grid{display:grid;grid-template-columns:repeat(7,minmax(82px,1fr));gap:7px;overflow-x:auto;padding:2px 1px 8px;scroll-snap-type:x proximity}
.week-day{min-height:132px;border:1px solid var(--line,#dbe5eb);border-radius:14px;background:var(--soft,#f4f8fa);padding:8px;scroll-snap-align:start}
.week-day header{display:flex;align-items:center;justify-content:space-between;color:var(--muted,#607181);font-size:.72rem;margin-bottom:8px}
.week-day header strong{display:grid;place-items:center;width:27px;height:27px;border-radius:9px;color:var(--navy,#102a43);font-size:.8rem}
.week-day.today{border-color:var(--blue,#176b87);box-shadow:inset 0 0 0 1px var(--blue,#176b87)}
.week-day.today header strong{background:var(--blue,#176b87);color:white}
.week-events{display:grid;gap:6px}
.week-event{display:grid;gap:2px;padding:7px;border-radius:10px;background:white;border-left:3px solid var(--cyan,#2ea3b0);font-size:.7rem}
.week-event.booked{border-left-color:var(--success,#18735d);background:var(--success-soft,#e7f5ef)}
.week-event time{font-weight:850;color:var(--navy,#102a43)}
.week-event span,.week-event small{color:var(--muted,#607181)}
.week-empty{color:#9aa9b5;text-align:center;padding-top:18px}
.preview-note{display:grid;gap:4px;margin-bottom:15px;padding:12px 14px;border-radius:15px;background:#fff7df;border:1px solid #eed99d;color:#6f5311}
.preview-note span{font-size:.78rem;line-height:1.38}
@media(max-width:430px){.content{padding-left:14px;padding-right:14px}.brand-title{font-size:.96rem}.role-switch{max-width:148px}.bottom-nav{justify-content:start}.week-grid{grid-template-columns:repeat(7,88px)}}
@media(prefers-color-scheme:dark){.topbar{background:linear-gradient(180deg,#182b3b,#142636)}.week-day{background:#203647}.week-event{background:#172b3a}.week-event.booked{background:#173b35}.week-day header strong,.week-event time{color:#e6edf4}.preview-note{background:#443a1f;border-color:#6c5b2c;color:#f4df9c}}

/* V20 calm clinical workspace: today first, dense schedule, five primary actions. */
:root{--accent:#20bcb5;--accent-soft:#e8f8f6;--ink-strong:#102b46;--calendar-line:#e8eef2}
body{background:#eef4f6}
.desktop-stage{max-width:760px}
.phone{background:linear-gradient(180deg,#fbfdfd 0,#f4f8f9 100%)}
.topbar{padding:13px 18px 12px;background:rgba(255,255,255,.94);border-bottom:1px solid rgba(16,43,70,.08);box-shadow:none;backdrop-filter:blur(20px)}
.brand-mark{border-radius:13px;background:linear-gradient(145deg,#123c58,#147d8d);box-shadow:0 7px 18px rgba(19,102,119,.18)}
.role-switch{border:0;border-radius:13px;background:var(--accent-soft,#e8f8f6);box-shadow:inset 0 0 0 1px rgba(32,188,181,.2)}
.content{padding:20px 18px calc(105px + env(safe-area-inset-bottom))}
.page-head{margin-bottom:14px}.page-head h2{font-size:1.65rem;letter-spacing:-.035em}.eyebrow{text-transform:none;letter-spacing:0;color:#71808e;font-size:.8rem}
.card{border-color:rgba(16,43,70,.09);border-radius:20px;box-shadow:0 8px 24px rgba(16,43,70,.055)}
.bottom-nav{width:min(100%,760px);grid-template-columns:repeat(5,1fr)!important;padding:8px 7px calc(8px + env(safe-area-inset-bottom));border-top:1px solid rgba(16,43,70,.08);box-shadow:0 -8px 24px rgba(16,43,70,.05)}
.nav-item{min-width:0;font-size:.68rem}.nav-item.active{color:#159b98}.nav-item.active .nav-icon{background:var(--accent-soft);color:#159b98}
.view-switch{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;padding:4px;margin-bottom:12px;border-radius:14px;background:#edf1f3}
.view-switch .secondary,.view-switch button{min-height:38px;padding:7px 4px;border:0;border-radius:11px;background:transparent;color:#526270;font-size:.78rem}
.view-switch .active{background:white;color:var(--ink-strong);box-shadow:0 2px 9px rgba(16,43,70,.1);font-weight:850}
.date-navigator{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:8px;margin:6px 0 8px;text-align:center;text-transform:capitalize}
.date-navigator strong{font-size:.88rem;color:var(--ink-strong)}
.round-control{width:42px;min-height:42px;padding:0;border:1px solid var(--calendar-line);border-radius:50%;background:white;color:var(--ink-strong);font-size:1.35rem}
.today-chip{display:block;margin:0 auto 12px;min-height:34px;padding:6px 15px;border:0;border-radius:999px;background:var(--accent-soft);color:#117c7a;font-weight:800}
.day-agenda{margin-top:12px;border:1px solid var(--calendar-line);border-radius:19px;background:white;overflow:hidden}
.hour-row{display:grid;grid-template-columns:55px 1fr;min-height:58px;border-bottom:1px solid var(--calendar-line)}
.hour-row:last-child{border-bottom:0}.hour-row>time{padding:11px 8px;color:#8b98a2;font-size:.72rem;text-align:center;border-right:1px solid var(--calendar-line)}
.hour-row>div{padding:5px;min-width:0}
.schedule-event{position:relative;display:grid;grid-template-columns:64px 1fr auto;gap:10px;align-items:center;margin:3px 0;padding:10px 9px;border-radius:13px;background:#dff4f0;border-left:4px solid #28af9c;color:var(--ink-strong)}
.schedule-event.type-break{background:#fff2dc;border-color:#e7a945}.schedule-event.type-day_off{background:#f0edf8;border-color:#8b75c8}.schedule-event.type-personal{background:#e9effa;border-color:#6c8fc6}.schedule-event.type-slot{background:#e9f6fc;border-color:#47a6ca}.schedule-event.type-request{background:#e9f7ee;border-color:#50aa75}
.event-time{display:grid;gap:2px;font-size:.74rem}.event-time span,.event-copy small,.event-copy span{color:#657783;font-size:.68rem}.event-copy{display:grid;gap:2px;min-width:0}.event-copy strong{overflow:hidden;text-overflow:ellipsis}.event-menu{width:32px;min-height:32px;border:0;border-radius:10px;background:rgba(255,255,255,.65);color:#64727d;font-size:1.2rem}
.week-board{display:grid;grid-template-columns:repeat(7,minmax(118px,1fr));gap:5px;overflow-x:auto;padding:5px 1px 12px;scroll-snap-type:x mandatory}
.week-column{min-height:450px;padding:5px;border-right:1px solid var(--calendar-line);background:white;scroll-snap-align:start}.week-column.today{background:#f0fbfa}.week-column>i{display:block;text-align:center;color:#b0bbc3;padding-top:20px}
.week-date{width:100%;min-height:52px;border:0;background:transparent;display:grid;place-items:center;color:#6c7b87}.week-date span{font-size:.68rem}.week-date strong{font-size:1rem;color:var(--ink-strong)}
.week-column.today .week-date strong{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#17384f;color:white}.week-column .schedule-event{display:block;padding:8px}.week-column .event-time{margin-bottom:4px}.week-column .event-menu{display:none}
.month-board{padding:12px 6px;border:1px solid var(--calendar-line);border-radius:19px;background:white}.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,1fr)}.month-weekdays span{padding:7px 0;text-align:center;color:#85939d;font-size:.7rem}
.month-day{position:relative;aspect-ratio:1;border:0;background:transparent;border-radius:50%;color:var(--ink-strong)}.month-day.muted{opacity:.28}.month-day.today{background:#17384f;color:white}.month-day span{position:absolute;right:2px;bottom:1px;min-width:17px;height:17px;display:grid;place-items:center;border-radius:9px;background:var(--accent);color:white;font-size:.58rem}
.agenda-list h3{margin:20px 2px 8px;text-transform:capitalize;font-size:.88rem}.agenda-list .schedule-event{margin-bottom:7px}
.create-panel{margin-top:16px}.create-panel>summary{list-style:none;display:grid;place-items:center;min-height:50px;border-radius:16px;background:#17384f;color:white;font-weight:850;cursor:pointer}.create-panel[open]>summary{margin-bottom:10px}.create-panel .card{margin-top:0}
.planner-list{display:grid;gap:9px;margin:12px 0}.planner-item{display:grid;grid-template-columns:34px 1fr auto;gap:11px;align-items:center;padding:14px;border:1px solid var(--calendar-line);border-radius:17px;background:white;box-shadow:0 5px 18px rgba(16,43,70,.045)}.planner-item.done{opacity:.58}.planner-item.done strong{text-decoration:line-through}.planner-item>div{display:grid;gap:4px}.planner-item span{color:#72818c;font-size:.78rem}.planner-check{width:30px;min-height:30px;border:2px solid #b9c7ce;border-radius:9px;background:white;color:white;font-weight:900}.planner-item.done .planner-check{background:#25a68e;border-color:#25a68e}.planner-check:disabled{opacity:1;border-radius:50%;border-color:#47a6ca;background:#e9f6fc}
.today-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.today-summary>div{display:grid;gap:4px;padding:15px;border-radius:18px;background:white;border:1px solid var(--calendar-line)}.today-summary small{color:#72818c}.today-summary strong{font-size:1.2rem;color:var(--ink-strong)}
.diary-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:14px}.diary-tile{display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;text-align:left;padding:13px;border:1px solid var(--calendar-line);border-radius:17px;background:white;color:var(--ink-strong)}.diary-tile>span{grid-row:1/3;width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--accent-soft);color:#159b98}.diary-tile strong{font-size:.82rem}.diary-tile small{font-size:.68rem;color:#7b8993}.diary-tile.active{border-color:#20bcb5;box-shadow:inset 0 0 0 1px #20bcb5}
.insight-card{margin:12px 0;padding:16px;border-radius:18px;background:linear-gradient(135deg,#123b57,#176b78);color:white}.insight-card p{margin:7px 0 0;color:rgba(255,255,255,.78);line-height:1.45;font-size:.84rem}
.upload-card{display:grid;grid-template-columns:48px 1fr;gap:11px;align-items:start;margin-bottom:12px}.upload-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:var(--accent-soft);color:#159b98}.upload-card>input,.upload-card>.control-row,.upload-card>button{grid-column:1/-1}.upload-card input[type=file]{width:100%;padding:11px;border:1px dashed #9fc9c7;border-radius:13px;background:#f3fbfa}
@media(max-width:430px){.content{padding-left:12px;padding-right:12px}.topbar{padding-left:13px;padding-right:13px}.page-head h2{font-size:1.48rem}.week-board{grid-template-columns:repeat(7,108px)}.schedule-event{grid-template-columns:58px 1fr auto}.diary-grid{gap:7px}.diary-tile{padding:11px 9px}}
@media(prefers-color-scheme:dark){body{background:#0f1d28}.phone{background:#132531}.view-switch,.month-board,.day-agenda,.week-column,.planner-item,.diary-tile,.today-summary>div{background:#182b3b}.view-switch .active{background:#284052}.schedule-event{color:#dce9ef}.date-navigator strong,.week-date strong,.planner-item strong,.diary-tile{color:#e6edf4}.month-day{color:#dce9ef}.hour-row,.month-board,.day-agenda,.planner-item,.diary-tile{border-color:#344b60}}

/* V20: рабочий день и единая визуальная иерархия */
.hero-kicker{display:block;margin-bottom:6px;color:var(--blue);font-size:.76rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.workday-hero,.patient-next{position:relative;overflow:hidden;background:linear-gradient(145deg,#fff 0%,#edf8f7 100%);border-color:rgba(12,113,132,.2)}
.workday-hero:after,.patient-next:after{content:"";position:absolute;right:-42px;top:-46px;width:132px;height:132px;border-radius:50%;background:rgba(22,158,175,.08);pointer-events:none}
.today-schedule{display:grid;gap:9px;margin-bottom:16px}
.today-schedule .schedule-event{margin:0;box-shadow:0 7px 20px rgba(11,45,59,.055)}
.section-title>button{border:0;background:transparent;color:var(--blue);font-size:.82rem;font-weight:800;padding:7px 0}
.patient-next .primary{position:relative;z-index:1}
@media(max-width:420px){.workday-hero,.patient-next{padding:17px}.today-schedule .schedule-event{grid-template-columns:58px 1fr auto}}


/* V20.1 mobile calendar polish */
.planner-view-switch{grid-template-columns:repeat(3,1fr)}
.week-board{-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#b8d5d7 transparent}
.week-board::-webkit-scrollbar{height:5px}
.week-board::-webkit-scrollbar-thumb{border-radius:999px;background:#b8d5d7}
@media(prefers-color-scheme:dark){
  .workday-hero,.patient-next{background:linear-gradient(145deg,#193243 0%,#173b3d 100%);border-color:rgba(68,210,199,.24)}
  .workday-hero:after,.patient-next:after{background:rgba(55,207,195,.08)}
  .schedule-event{color:#eaf4f5}
  .schedule-event.type-appointment{background:#19443e;border-color:#39b9a5}
  .schedule-event.type-break{background:#49391f;border-color:#dda94a}
  .schedule-event.type-day_off{background:#36304d;border-color:#9c89dc}
  .schedule-event.type-personal{background:#263a55;border-color:#739bd2}
  .schedule-event.type-slot{background:#1c4050;border-color:#53b5dc}
  .schedule-event.type-request{background:#204535;border-color:#61bd84}
  .event-time span,.event-copy small,.event-copy span{color:#b9cbd1}
  .event-menu{background:rgba(8,25,35,.3);color:#d9e8eb}
  .round-control{background:#203647;border-color:#40576a;color:#e6edf4}
  .planner-check:disabled{background:#1c4050;border-color:#53b5dc}
}


/* V20.2 patient specialists and consultations */
.specialist-line{display:grid;grid-template-columns:38px 1fr;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--calendar-line)}
.specialist-line:last-child{border-bottom:0}
.specialist-line>span{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--accent-soft);color:#159b98}
.consultation-list,.slot-list{display:grid;gap:9px;margin-bottom:17px}
.consultation-card{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px;border:1px solid var(--calendar-line);border-radius:17px;background:white}
.consultation-card>div{display:grid;gap:3px}.consultation-card small,.consultation-card span{color:#72818c;font-size:.74rem}
.meeting-link{display:grid;place-items:center;min-height:40px;padding:0 13px;border-radius:12px;background:#17384f;color:white;text-decoration:none;font-size:.78rem;font-weight:850}
.slot-card{border:1px solid var(--calendar-line);border-radius:17px;background:white;overflow:hidden}
.slot-card>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:12px 14px;cursor:pointer}
.slot-card>summary::-webkit-details-marker{display:none}
.slot-card>summary>span{display:grid;gap:3px}.slot-card>summary>span:last-child{color:#72818c;font-size:.74rem;text-align:right}
.slot-card>summary small{color:#72818c;font-size:.72rem}
.slot-card form{padding:0 14px 14px;border-top:1px solid var(--calendar-line)}
@media(prefers-color-scheme:dark){
  .consultation-card,.slot-card{background:#182b3b;border-color:#344b60}
  .specialist-line{border-color:#344b60}
  .meeting-link{background:#2a8e98}
  .slot-card form{border-color:#344b60}
}


/* V20.3 locked consultations */
.locked-row{cursor:default;opacity:.72!important}
.locked-row .icon-box{filter:grayscale(.45)}
.lock-badge{display:grid;place-items:center;width:31px;height:31px;border-radius:10px;background:#eef2f4;font-size:.9rem}
.locked-feature{text-align:center;padding:28px 20px}
.locked-feature-icon{width:58px;height:58px;display:grid;place-items:center;margin:0 auto 14px;border-radius:18px;background:#eef2f4;font-size:1.65rem}
.locked-feature h3{margin:0 0 7px;color:var(--ink-strong)}
.locked-feature p{margin:0 0 18px;color:#72818c}
@media(prefers-color-scheme:dark){
  .lock-badge,.locked-feature-icon{background:#263b4b}
  .locked-feature h3{color:#e6edf4}
}


/* V20.4 connected specialist cards */
.specialist-list{display:grid;gap:10px;margin-bottom:18px}
.specialist-card{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:start;padding:16px;border:1px solid var(--calendar-line);border-radius:20px;background:white;box-shadow:0 7px 22px rgba(16,43,70,.05)}
.specialist-avatar{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:var(--accent-soft);color:#159b98}
.specialist-copy{min-width:0}.specialist-copy h3{margin:7px 0 3px;color:var(--ink-strong);font-size:1rem}.specialist-copy>strong{display:block;color:#4f6572;font-size:.8rem}.specialist-copy p{margin:5px 0 0;color:#72818c;font-size:.76rem;line-height:1.4}.specialist-copy .specialist-about{display:-webkit-box;overflow:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.specialist-contact{align-self:center;min-height:38px;padding:8px 12px}
.locked-feature-compact{display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:center;text-align:left;padding:16px}
.locked-feature-compact .locked-feature-icon{width:48px;height:48px;margin:0;border-radius:15px;font-size:1.25rem}
.locked-feature-compact h3{margin:0 0 4px}.locked-feature-compact p{margin:0}
@media(max-width:430px){.specialist-card{grid-template-columns:44px 1fr}.specialist-avatar{width:44px;height:44px}.specialist-contact{grid-column:2;width:100%}}
@media(prefers-color-scheme:dark){.specialist-card{background:#182b3b;border-color:#344b60}.specialist-copy h3{color:#e6edf4}.specialist-copy>strong{color:#c3d2d8}}


/* V20.7 patient workspace and record lifecycle */
.patient-hub-grid{display:grid;gap:8px;margin-top:16px;padding:8px;border:1px solid var(--calendar-line);border-radius:20px;background:white}
.patient-hub-grid .list-row:last-child{border-bottom:0}
.planner-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
.planner-summary>div{display:grid;gap:3px;padding:15px;border:1px solid var(--calendar-line);border-radius:17px;background:linear-gradient(145deg,#f6fbfb,#fff)}
.planner-summary small{color:#72818c;font-size:.74rem}.planner-summary strong{color:var(--ink-strong);font-size:1.35rem}
.planner-separation{margin-top:18px;border-style:dashed}.planner-separation p{color:#72818c}
.preview-diary-form{display:grid;gap:4px}.preview-diary-form>p{margin-top:-4px;color:#72818c}
.patient-create-panel{margin:0 0 18px}.patient-create-panel>summary{font-weight:850}
.upload-inline{padding:14px;border:1px dashed #9abfc7;border-radius:16px;background:#f7fbfb}.upload-inline>p{margin:5px 0 12px;color:#72818c;font-size:.79rem;line-height:1.45}
.archive-panel{margin-top:22px;border-color:#e4c6bd}.archive-panel>summary{cursor:pointer;font-weight:800}.archive-panel>p{color:#72818c}
.danger-zone{margin-top:12px;padding:14px;border-radius:15px;background:#fff3ef;color:#713426}.danger-zone p{color:#865348}
.empty-inline{margin:0;padding:16px;text-align:center;color:#72818c}
@media(prefers-color-scheme:dark){
 .patient-hub-grid{background:#182b3b;border-color:#344b60}
 .planner-summary>div{background:#182b3b;border-color:#344b60}
 .planner-summary strong{color:#e6edf4}
 .upload-inline{background:#172b36;border-color:#3f6870}
 .danger-zone{background:#3d2925;color:#ffd9cf}.danger-zone p{color:#edb9aa}
}


/* V20.8 selectable weekly timetable */
.week-timetable-wrap{overflow:auto;margin:12px -4px 6px;padding:0 4px 8px;scrollbar-width:thin}
.week-timetable{display:grid;grid-template-columns:54px repeat(7,minmax(82px,1fr));min-width:660px;border:1px solid var(--calendar-line);border-radius:18px;overflow:hidden;background:white}
.week-time-head,.week-day-head,.week-time-label,.week-time-slot{min-height:44px;border:0;border-right:1px solid var(--calendar-line);border-bottom:1px solid var(--calendar-line)}
.week-day-head{display:grid;place-items:center;background:#f4f8f9;color:#526773}.week-day-head span{font-size:.68rem;text-transform:uppercase}.week-day-head strong{font-size:.95rem}.week-day-head.today{background:var(--accent-soft);color:#087f7b}
.week-time-label{display:grid;place-items:center;background:#f8fafb;color:#7c8b94;font-size:.68rem}
.week-time-slot{display:grid;place-items:center;padding:3px;background:#fff;color:#a1b0b7;font-size:1rem}.week-time-slot.free{cursor:pointer}.week-time-slot.free:active{background:var(--accent-soft);color:#087f7b}.week-time-slot.occupied{align-items:stretch;background:#f7fbfb}
.week-mini-event{display:flex;align-items:center;min-width:0;padding:4px 5px;border-left:3px solid #159b98;border-radius:5px;background:#e9f7f6;color:#294a53;font-size:.62rem;line-height:1.15}.week-mini-event b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-tip,.form-hint{color:#72818c;font-size:.76rem;line-height:1.45}
.check-field{display:flex;align-items:center;gap:10px;margin:10px 0;padding:12px;border:1px solid var(--calendar-line);border-radius:14px}.check-field input{width:20px;height:20px}.check-field span{font-weight:700;color:var(--ink-strong)}
@media(prefers-color-scheme:dark){
 .week-timetable{background:#182b3b;border-color:#344b60}
 .week-time-head,.week-day-head,.week-time-label,.week-time-slot{border-color:#344b60}
 .week-day-head,.week-time-label{background:#203545;color:#bac8cf}
 .week-time-slot{background:#182b3b}.week-time-slot.occupied{background:#1d3440}
 .week-mini-event{background:#214a4c;color:#d8f3f1}
 .check-field{border-color:#344b60}.check-field span{color:#e6edf4}
}


/* V20.9 OpenSCI role workspaces and patient learning path */
.workspace-grid,.patient-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}
.workspace-grid .list-row,.patient-hub-grid .list-row{height:100%;min-height:112px;align-items:flex-start;border:1px solid color-mix(in srgb,var(--line,#d7e0e8) 82%,transparent);border-radius:20px;background:var(--card,#fff);padding:16px;box-shadow:0 9px 28px rgba(15,42,67,.06)}
.workspace-grid .list-row .chevron,.patient-hub-grid .list-row .chevron{align-self:center}
.role-test-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0 24px}
.role-test-grid button{appearance:none;text-align:left;border:1px solid rgba(18,108,133,.2);border-radius:20px;background:linear-gradient(145deg,#fff,#eef8f8);color:var(--text,#102a43);padding:18px;min-height:116px;box-shadow:0 10px 30px rgba(15,42,67,.07)}
.role-test-grid strong,.role-test-grid span{display:block}.role-test-grid strong{font-size:17px;margin-bottom:8px}.role-test-grid span{font-size:13px;line-height:1.45;color:var(--muted,#66788a)}
.knowledge-intro{position:relative;overflow:hidden;border-radius:26px;padding:24px;margin-bottom:22px;color:#fff;background:linear-gradient(135deg,#0d5267 0%,#147e83 58%,#75b9a4 100%);box-shadow:0 18px 40px rgba(13,82,103,.2)}
.knowledge-intro:after{content:"";position:absolute;width:170px;height:170px;border-radius:50%;right:-58px;bottom:-90px;background:rgba(255,255,255,.14)}
.knowledge-intro h3{font-size:25px;line-height:1.12;margin:8px 0}.knowledge-intro p{max-width:560px;margin:0;line-height:1.55;color:rgba(255,255,255,.9)}
.learning-path{position:relative}.learning-path:before{content:"";position:absolute;left:21px;top:28px;bottom:30px;width:2px;background:linear-gradient(#13808c,#c9e2dd)}
.learning-group{position:relative;margin:0 0 22px}.learning-step{position:relative;display:flex;gap:14px;align-items:flex-start;margin-bottom:10px}
.learning-step>span{position:relative;z-index:1;display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border-radius:15px;background:#126c85;color:white;font-weight:800;box-shadow:0 8px 18px rgba(18,108,133,.2)}
.learning-step h3{margin:2px 0 4px;font-size:18px}.learning-step p{margin:0;color:var(--muted,#66788a);font-size:13px;line-height:1.4}
.knowledge-slide{position:relative;min-height:260px;border-radius:26px;padding:42px 24px 28px;background:linear-gradient(150deg,var(--card,#fff),#edf7f5);border:1px solid rgba(18,108,133,.14);box-shadow:0 16px 38px rgba(15,42,67,.09);font-size:17px;line-height:1.7}
.knowledge-slide .slide-number{position:absolute;top:16px;right:18px;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#126c85;color:#fff;font-weight:800}
.knowledge-progress{margin:0 0 14px}.admin-hero{background:linear-gradient(140deg,#102a43,#126c85);color:#fff}.admin-hero p{color:rgba(255,255,255,.84)}
@media(max-width:620px){.role-test-grid{grid-template-columns:1fr}.role-test-grid button{min-height:88px}.workspace-grid,.patient-hub-grid{grid-template-columns:1fr}.workspace-grid .list-row,.patient-hub-grid .list-row{min-height:88px}.knowledge-slide{min-height:220px;padding:42px 20px 24px}}


/* V20.10 visual completion audit */
.program-preview-list{display:grid;gap:11px;margin:14px 0}
.program-preview-card{display:grid;grid-template-columns:44px 1fr;gap:13px;align-items:start;padding:17px;border:1px solid var(--calendar-line,#dce7e8);border-radius:20px;background:var(--card,#fff);box-shadow:0 9px 26px rgba(15,42,67,.06)}
.program-preview-card small{display:block;color:var(--muted,#6b7c88);font-weight:750;margin-bottom:4px}.program-preview-card h3{margin:0 0 5px;font-size:16px}.program-preview-card p{margin:0;color:var(--muted,#6b7c88);font-size:13px;line-height:1.45}
.task-state{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--accent-soft,#e8f7f5);color:#087f7b;font-weight:850}.task-state.done{background:#e8f7ef;color:#17804b}
.bottom-nav{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid rgba(16,42,67,.07)}
.nav-item:focus-visible,.list-row:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(18,108,133,.3);outline-offset:2px}
.field input,.field select,.field textarea{min-height:48px;border-radius:14px;transition:border-color .16s ease,box-shadow .16s ease}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#168b91;box-shadow:0 0 0 4px rgba(22,139,145,.1)}
.page-head{margin-bottom:16px}.page-head .eyebrow:empty{display:none}.page-head h2{letter-spacing:-.025em}
.card:last-child,.program-preview-list:last-child{margin-bottom:8px}
@media(max-width:390px){.brand-title{font-size:15px}.brand-sub{font-size:11px}.role-switch{max-width:128px;font-size:12px}.bottom-nav{gap:0}.nav-item{min-width:55px;padding-left:3px;padding-right:3px}.nav-item>span:last-child{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(prefers-color-scheme:dark){.knowledge-intro,.admin-hero{background:linear-gradient(140deg,#0b3548,#126a70)}.knowledge-slide,.program-preview-card,.role-test-grid button,.workspace-grid .list-row,.patient-hub-grid .list-row{background:#182b3b;color:#e6edf4;border-color:#344b60}.learning-step h3,.program-preview-card h3,.role-test-grid strong{color:#e6edf4}.role-test-grid span,.program-preview-card p,.program-preview-card small{color:#a8b8c8}}


/* V20.11 compact Academy and mobile record navigation */
.tabs{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding:2px 1px 8px;margin-left:-1px;scrollbar-width:none;scroll-snap-type:x proximity}
.tabs::-webkit-scrollbar{display:none}.tabs>button{flex:0 0 auto;scroll-snap-align:start;white-space:nowrap}
.academy-dashboard{overflow:hidden;border-radius:25px;padding:22px;margin-bottom:14px;color:#fff;background:linear-gradient(140deg,#103b55 0%,#126d7a 62%,#55a998 100%);box-shadow:0 16px 38px rgba(15,71,87,.2)}
.academy-dashboard h3{margin:6px 0;font-size:22px;line-height:1.18;color:#fff}.academy-dashboard p{margin:0;color:rgba(255,255,255,.8)}
.academy-dashboard .progress-track{background:rgba(255,255,255,.18);margin:15px 0 0}.academy-dashboard .progress-track>div{background:#fff;border-radius:999px}
.academy-dashboard .academy-inventory{margin-top:18px}.academy-dashboard .academy-inventory span{border-color:rgba(255,255,255,.15);background:rgba(255,255,255,.1);color:rgba(255,255,255,.76)}.academy-dashboard .academy-inventory strong{color:#fff}
.academy-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 22px}.academy-actions .list-row{min-height:92px;border:1px solid var(--calendar-line,#dce7e8);border-radius:18px;background:var(--card,#fff);padding:13px}
.academy-search{display:grid!important;grid-template-columns:1fr!important;gap:7px;margin:8px 0 14px}.academy-search>span{font-size:13px;font-weight:750;color:var(--muted,#66788a)}
.academy-course-list{display:grid;gap:10px}.academy-module-card{overflow:hidden;border:1px solid var(--calendar-line,#dce7e8);border-radius:20px;background:var(--card,#fff);box-shadow:0 8px 24px rgba(15,42,67,.05)}
.academy-module-card>summary{list-style:none;display:grid;grid-template-columns:46px 1fr 28px;gap:12px;align-items:center;min-height:84px;padding:14px;cursor:pointer}.academy-module-card>summary::-webkit-details-marker{display:none}
.academy-module-index{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#eaf5f5;color:#126c85;font-weight:850}.academy-module-card.completed .academy-module-index{background:#e7f6ed;color:#17804b}.academy-module-card.current{border-color:#31a7a1;box-shadow:0 10px 28px rgba(22,139,145,.12)}
.academy-module-card summary small{display:block;color:#188b88;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.academy-module-card summary h3{margin:3px 0;font-size:15px;line-height:1.25}.academy-module-card summary p{margin:0;color:var(--muted,#6b7c88);font-size:12px}
.academy-module-chevron{color:#6f828d;font-size:22px;transition:transform .18s}.academy-module-card[open] .academy-module-chevron{transform:rotate(180deg)}
.academy-module-body{padding:0 14px 16px 72px;border-top:1px solid var(--calendar-line,#dce7e8)}.academy-module-body>p{color:var(--muted,#66788a);font-size:13px;line-height:1.5}
.academy-lesson-list{margin-bottom:12px}.academy-lesson-list .list-row{padding-left:0;padding-right:0}.search-count,.lesson-counter{color:var(--muted,#66788a);font-size:13px;font-weight:700}.lesson-counter{text-align:center;margin:10px 0}.academy-lesson-slide{min-height:300px}
@media(max-width:520px){.academy-actions{grid-template-columns:1fr}.academy-dashboard .academy-inventory{grid-template-columns:repeat(2,1fr)}.academy-module-body{padding-left:14px}.academy-module-card>summary{grid-template-columns:44px 1fr 24px}.academy-lesson-slide{min-height:250px}}
@media(prefers-color-scheme:dark){.academy-module-card,.academy-actions .list-row{background:#182b3b;border-color:#344b60}.academy-module-card summary h3{color:#e6edf4}.academy-module-index{background:#203f4c}.academy-module-body{border-color:#344b60}.academy-dashboard{background:linear-gradient(140deg,#0d3145,#105e68)}}


/* V20.12 specialist patient workspace */
.patient-tools-title{margin-top:24px}.patient-workspace-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}
.patient-workspace-grid .list-row{height:100%;min-height:104px;align-items:flex-start;padding:15px;border:1px solid var(--calendar-line,#dce7e8);border-radius:18px;background:var(--card,#fff);box-shadow:0 8px 24px rgba(15,42,67,.05)}
.patient-workspace-grid .icon-box{margin-top:1px}.patient-workspace-grid .chevron{align-self:center}
.clinical-record-list{display:grid;gap:10px}.clinical-record{display:grid;grid-template-columns:44px 1fr;gap:13px;align-items:start;padding:17px;border:1px solid var(--calendar-line,#dce7e8);border-radius:19px;background:var(--card,#fff);box-shadow:0 8px 24px rgba(15,42,67,.05)}
.clinical-record .record-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;color:#126c85;background:var(--accent-soft,#e8f7f5)}
.clinical-record h3{margin:7px 0 5px;font-size:16px;line-height:1.35}.clinical-record p{margin:4px 0;color:var(--muted,#66788a);font-size:13px;line-height:1.45}.clinical-record small{color:var(--muted,#66788a);font-size:12px}
.record-type{display:inline-flex;color:#126c85;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.goal-record{border-left:4px solid #38a678}.observation-record{border-left:4px solid #2c8aa0}.connection-record{border-left:4px solid #7d6fc2}
@media(max-width:480px){.patient-workspace-grid{grid-template-columns:1fr}.patient-workspace-grid .list-row{min-height:84px}}
@media(prefers-color-scheme:dark){.patient-workspace-grid .list-row,.clinical-record{background:#182b3b;border-color:#344b60}.clinical-record h3{color:#e6edf4}.clinical-record .record-icon{background:#203f4c}}


/* V20.13 patient knowledge, mobility and caregiver contour */
.knowledge-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:14px 0 18px}
.knowledge-filter{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:78px;padding:13px 14px;text-align:left;border:1px solid var(--calendar-line,#dce7e8);border-radius:17px;background:var(--card,#fff);color:var(--text,#102a43);box-shadow:0 7px 20px rgba(15,42,67,.04)}
.knowledge-filter:first-child{grid-column:1/-1}.knowledge-filter strong{font-size:14px;line-height:1.2}.knowledge-filter span{color:var(--muted,#66788a);font-size:11px;line-height:1.35}
.knowledge-filter.active{border-color:#168b91;background:linear-gradient(145deg,#eaf8f6,#f5fbfb);box-shadow:0 9px 24px rgba(22,139,145,.12)}.knowledge-filter.active strong{color:#106e78}
.knowledge-results{margin-top:12px}.personal-context-card{margin-bottom:15px}
.walking-hero{background:linear-gradient(140deg,#103b55,#167d82 64%,#65ad94)}
.walking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.walking-card{position:relative;overflow:hidden;min-height:180px;padding:18px;border:1px solid var(--calendar-line,#dce7e8);border-radius:21px;background:var(--card,#fff);box-shadow:0 9px 26px rgba(15,42,67,.06)}
.walking-card>span{display:grid;place-items:center;width:37px;height:37px;border-radius:13px;background:var(--accent-soft,#e8f7f5);color:#126c85;font-size:12px;font-weight:850}.walking-card h3{margin:20px 0 7px;font-size:17px;line-height:1.25}.walking-card p{margin:0;color:var(--muted,#66788a);font-size:13px;line-height:1.5}
@media(max-width:430px){.knowledge-filter-grid,.walking-grid{grid-template-columns:1fr}.knowledge-filter:first-child{grid-column:auto}.walking-card{min-height:150px}}
@media(prefers-color-scheme:dark){.knowledge-filter,.walking-card{background:#182b3b;border-color:#344b60;color:#e6edf4}.knowledge-filter.active{background:#153a43;border-color:#2ca4a0}.knowledge-filter.active strong,.walking-card h3{color:#e6edf4}.walking-card>span{background:#203f4c}}


/* V20.15 administrator test-mode clarity */
.admin-test-ribbon{position:sticky;top:0;z-index:12;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-8px -2px 14px;padding:10px 12px;border:1px solid rgba(22,139,145,.24);border-radius:15px;background:rgba(235,249,247,.96);box-shadow:0 8px 24px rgba(15,42,67,.08);backdrop-filter:blur(12px)}
.admin-test-ribbon div{display:flex;flex-direction:column;gap:2px}.admin-test-ribbon strong{font-size:12px;color:#106e78}.admin-test-ribbon span{font-size:10px;color:var(--muted,#66788a)}
.ribbon-action{min-height:38px;padding:8px 10px;border-radius:12px;border:0;background:#126c85;color:#fff;font-size:11px;font-weight:800;white-space:nowrap}
@media(max-width:390px){.admin-test-ribbon{align-items:flex-start}.ribbon-action{white-space:normal;max-width:112px}}
@media(prefers-color-scheme:dark){.admin-test-ribbon{background:rgba(21,58,67,.96);border-color:#2c8d91}.admin-test-ribbon strong{color:#78d4ce}}


/* V20.17 specialist rehabilitation workspace */
.capture-card{display:grid;grid-template-columns:46px 1fr;gap:12px;align-items:start;border-left:4px solid #2c8aa0}.capture-card .capture-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--accent-soft,#e8f7f5);color:#126c85}.capture-card h3{margin:2px 0 5px}.capture-card p{margin:0 0 13px;color:var(--muted,#66788a);font-size:13px;line-height:1.45}.capture-card .wide{grid-column:1/-1}
@media(prefers-color-scheme:dark){.capture-card .capture-icon{background:#203f4c}}


/* V20.18 safety route */
.emergency-hero{background:linear-gradient(140deg,#6f2530,#aa3f45 62%,#d66a54)}
.safety-grid{display:grid;gap:10px;margin:14px 0}.safety-action-card{padding:18px;border:1px solid var(--calendar-line,#dce7e8);border-radius:21px;background:var(--card,#fff);box-shadow:0 8px 24px rgba(15,42,67,.05)}
.safety-action-card>span{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.safety-action-card.urgent>span{background:#fde8e8;color:#a62f38}.safety-action-card.attention>span{background:#fff2d5;color:#855d08}.safety-action-card h3{margin:12px 0 7px}.safety-action-card p{margin:0 0 10px;color:var(--muted,#66788a);font-size:13px;line-height:1.5}.safety-action-card strong{font-size:13px;line-height:1.45}
@media(prefers-color-scheme:dark){.safety-action-card{background:#182b3b;border-color:#344b60}.safety-action-card h3,.safety-action-card strong{color:#e6edf4}.safety-action-card.urgent>span{background:#472b31;color:#ffb5b9}.safety-action-card.attention>span{background:#493d23;color:#ffd978}}


/* V20.19 practical patient and caregiver memos */
.memos-hero{padding:21px;margin-bottom:14px;border-radius:24px;color:#fff;background:linear-gradient(140deg,#163d57,#257d87 62%,#70aa8f);box-shadow:0 14px 34px rgba(15,71,87,.16)}
.memos-hero h3{margin:7px 0;font-size:21px;line-height:1.2;color:#fff}.memos-hero p{margin:0;color:rgba(255,255,255,.82);line-height:1.5}.memo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}
.memo-grid .list-row{height:100%;min-height:116px;align-items:flex-start;padding:15px;border:1px solid var(--calendar-line,#dce7e8);border-radius:19px;background:var(--card,#fff);box-shadow:0 8px 22px rgba(15,42,67,.05)}.memo-grid .chevron{align-self:center}
@media(max-width:450px){.memo-grid{grid-template-columns:1fr}.memo-grid .list-row{min-height:88px}}
@media(prefers-color-scheme:dark){.memo-grid .list-row{background:#182b3b;border-color:#344b60}.memos-hero{background:linear-gradient(140deg,#102f43,#17646c)}}


/* V20.20 diary daily summary */
.diary-insight-card{padding:18px;margin:12px 0;border:1px solid rgba(22,139,145,.18);border-radius:22px;background:linear-gradient(145deg,#eef9f7,#fff);box-shadow:0 9px 24px rgba(15,42,67,.05)}
.diary-insight-card .section-head{margin:0 0 13px}.diary-insight-card h3{font-size:15px}.diary-insight-card>p{margin:12px 0 0;color:var(--muted,#66788a);font-size:11px;line-height:1.45}
.diary-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.diary-metrics>div{display:flex;flex-direction:column;gap:3px;padding:12px;border-radius:15px;background:rgba(255,255,255,.72)}.diary-metrics small,.diary-metrics span{color:var(--muted,#66788a);font-size:10px}.diary-metrics strong{font-size:17px}.diary-metrics em{font-size:10px;font-style:normal;font-weight:650}
@media(prefers-color-scheme:dark){.diary-insight-card{background:linear-gradient(145deg,#153a43,#182b3b);border-color:#2c777a}.diary-metrics>div{background:rgba(16,42,55,.72)}}


/* V20.21 patient onboarding and profile readiness */
.onboarding-card{padding:18px;margin-bottom:14px;border:1px solid rgba(22,139,145,.22);border-radius:22px;background:linear-gradient(145deg,#eff9f7,#fff);box-shadow:0 10px 28px rgba(15,42,67,.06)}.onboarding-card .section-head{margin:0 0 10px}.onboarding-card .section-head>strong{font-size:20px;color:#126c85}.onboarding-card>p{color:var(--muted,#66788a);font-size:13px;line-height:1.5}.onboarding-steps{display:grid;gap:6px;margin:12px 0}.onboarding-steps span{position:relative;padding:9px 10px 9px 32px;border-radius:12px;background:rgba(255,255,255,.7);font-size:12px;font-weight:700}.onboarding-steps span:before{content:'○';position:absolute;left:11px;color:#81919b}.onboarding-steps span.done:before{content:'✓';color:#17804b}.onboarding-steps span.done{color:#176c4b}.profile-ready{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding:12px 14px;border:1px solid rgba(56,166,120,.22);border-radius:17px;background:#edf8f2}.profile-ready>div{display:flex;flex:1;flex-direction:column}.profile-ready strong{font-size:13px}.profile-ready small{color:var(--muted,#66788a);font-size:10px}
@media(prefers-color-scheme:dark){.onboarding-card{background:linear-gradient(145deg,#153a43,#182b3b);border-color:#2c777a}.onboarding-steps span{background:rgba(16,42,55,.7)}.profile-ready{background:#183d32;border-color:#2d7455}.profile-ready strong{color:#e6edf4}}


/* V20.22 lesson comprehension check */
.lesson-check{display:grid;gap:8px;border-color:rgba(22,139,145,.22)}.lesson-check h3{margin:3px 0 8px;font-size:16px}.lesson-check button{min-height:50px;padding:11px 13px;text-align:left;border:1px solid var(--calendar-line,#dce7e8);border-radius:14px;background:var(--card,#fff);color:var(--text,#102a43);font-size:13px;font-weight:700}.lesson-check button.selected.correct{border-color:#38a678;background:#e8f7ef;color:#176c4b}.lesson-check button.selected.wrong{border-color:#c65a64;background:#fdeced;color:#9b3039}.lesson-check p{margin:5px 0 0;font-size:12px;font-weight:700}.check-success{color:#17804b}.check-error{color:#a62f38}
@media(prefers-color-scheme:dark){.lesson-check button{background:#182b3b;border-color:#344b60;color:#e6edf4}.lesson-check button.selected.correct{background:#183d32}.lesson-check button.selected.wrong{background:#472b31}}


/* V20.23 release diagnostics */
.version-stamp{margin:-4px 0 12px;color:var(--muted,#66788a);font-size:11px;font-weight:750;text-align:center}.diagnostic-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.diagnostic-summary>div{display:flex;flex-direction:column;gap:4px;padding:17px;border-radius:18px;background:linear-gradient(145deg,#103b55,#177b80);color:#fff}.diagnostic-summary small{font-size:10px;opacity:.76}.diagnostic-summary strong{font-size:20px}.diagnostic-list{display:grid;gap:8px;margin-bottom:14px}.diagnostic-row{display:grid;grid-template-columns:36px 1fr;gap:11px;align-items:center;padding:13px 14px;border:1px solid var(--calendar-line,#dce7e8);border-radius:16px;background:var(--card,#fff)}.diagnostic-row>span{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;font-weight:900}.diagnostic-row>span.ok{background:#e7f6ed;color:#17804b}.diagnostic-row>span.warn{background:#fff0dc;color:#a06414}.diagnostic-row div{display:flex;flex-direction:column;gap:2px}.diagnostic-row strong{font-size:13px}.diagnostic-row small{color:var(--muted,#66788a);font-size:10px}
@media(prefers-color-scheme:dark){.diagnostic-row{background:#182b3b;border-color:#344b60}.diagnostic-row strong{color:#e6edf4}.diagnostic-row>span.ok{background:#183d32}.diagnostic-row>span.warn{background:#493d23}}


/* V20.24 iPhone interaction audit */
html,body,.app-shell,.desktop-stage{max-width:100%;overflow-x:hidden}button,[data-action]{touch-action:manipulation;-webkit-tap-highlight-color:rgba(22,139,145,.12)}button{min-height:44px}.nav-item{min-height:52px}.content h1,.content h2,.content h3,.content p,.grow strong,.grow span{overflow-wrap:anywhere}.card,.hero-card,.knowledge-slide{max-width:100%;box-sizing:border-box}.field textarea{min-height:150px;resize:vertical}.tabs,.view-switch{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.card,.section-title,.page-head{scroll-margin-top:92px}
@media(max-width:390px){.content{padding-left:14px;padding-right:14px}.button-row>button{flex:1 1 120px}.hero-card,.knowledge-intro,.memos-hero,.academy-dashboard{padding:18px}.role-switch{max-width:120px}}


/* V20.26 touch-first specialist calendar and session lifecycle */
.day-empty-slot{width:100%;min-height:44px;border:1px dashed #b8cbd3;border-radius:11px;background:transparent;color:#6b7d88;text-align:left;padding:8px 12px;font-weight:750}
.day-empty-slot span{display:inline-grid;place-items:center;width:24px;height:24px;margin-right:7px;border-radius:8px;background:#e3f4f3;color:#168e87}
.touch-agenda .hour-row{min-height:54px}.touch-agenda .schedule-event{cursor:pointer}
.schedule-event.status-needs_report,.week-mini-event.status-needs_report{background:#fff0d9;border-color:#e49b34}
.schedule-event.status-documented,.week-mini-event.status-documented{background:#dff4e8;border-color:#2ca56f}
.schedule-event.status-elapsed,.week-mini-event.status-elapsed{background:#edf0f2;border-color:#8a98a2;opacity:.78}
.week-mini-event{border-top:0;border-right:0;border-bottom:0;width:100%;font-family:inherit;text-align:left}
.session-form-head,.session-detail-head,.section-head{display:flex;justify-content:space-between;gap:12px;align-items:center}
.time-pill{padding:7px 10px;border-radius:999px;background:#e5f4f4;color:#146b72;font-size:.74rem;font-weight:850;white-space:nowrap}
.session-create-card{border-top:4px solid #25a99b}.session-create-card h3{margin:2px 0}
.session-detail{margin:12px 0;padding:18px;border-radius:22px;background:linear-gradient(145deg,#17384f,#126c85);color:white;box-shadow:0 14px 34px rgba(16,43,70,.18)}
.session-detail.status-needs_report{background:linear-gradient(145deg,#8d5c17,#c38329)}.session-detail.status-documented{background:linear-gradient(145deg,#176a50,#279172)}
.session-detail .badge{background:rgba(255,255,255,.18);color:white}.session-detail p{color:rgba(255,255,255,.82)}
.session-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.session-facts>div{display:grid;gap:4px;padding:12px;border-radius:15px;background:rgba(255,255,255,.12)}.session-facts small{opacity:.75}.session-facts strong{font-size:.92rem}
.session-detail .secondary{display:inline-grid;place-items:center;text-decoration:none;background:white;color:#17384f}
.session-report-form{border:1px solid rgba(18,108,133,.2);box-shadow:0 12px 32px rgba(16,43,70,.07)}
.share-panel{margin:14px 0;padding:17px;border-radius:20px;background:#eef8f7;border:1px solid #c6e5e2}.share-panel h3{margin:0 0 5px}.share-panel p{margin:0 0 12px;color:#647782}.share-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.share-grid button{width:100%}
@media(max-width:520px){.session-form-head{align-items:flex-start}.session-facts{grid-template-columns:1fr}.share-grid{grid-template-columns:1fr 1fr}.day-empty-slot{font-size:.76rem}.touch-agenda .hour-row{grid-template-columns:52px 1fr}}
@media(prefers-color-scheme:dark){.day-empty-slot{border-color:#476071;color:#bed0d8}.day-empty-slot span{background:#214a4c;color:#d8f3f1}.session-report-form,.share-panel{background:#1b3040;border-color:#365264}.share-panel p{color:#b5c4cc}}

/* V20.27 duration-aware calendar */
.touch-agenda .hour-row{height:54px;min-height:54px}
.touch-agenda .hour-row.has-event,.touch-agenda .hour-row.covered-slot{overflow:visible}
.touch-agenda .hour-row.has-event>div{position:relative;z-index:4}
.touch-agenda .hour-row.covered-slot>div{padding:0;pointer-events:none}
.touch-agenda .schedule-event.timeline-event{height:calc(var(--event-slots,1) * 54px - 10px);min-height:44px;margin:3px 0;align-items:flex-start;overflow:hidden;box-shadow:0 8px 22px rgba(15,42,67,.12)}
.occupied-continuation{display:block;height:100%;visibility:hidden}
@media(max-width:430px){.touch-agenda .schedule-event.timeline-event{grid-template-columns:58px 1fr auto}}

/* V20.28 status-card contrast in Telegram dark mode */
.schedule-event.status-needs_report,.schedule-event.status-documented,.schedule-event.status-elapsed{color:#17384f}
.schedule-event.status-needs_report .event-time span,.schedule-event.status-needs_report .event-copy small,.schedule-event.status-needs_report .event-copy span,.schedule-event.status-documented .event-time span,.schedule-event.status-documented .event-copy small,.schedule-event.status-documented .event-copy span,.schedule-event.status-elapsed .event-time span,.schedule-event.status-elapsed .event-copy small,.schedule-event.status-elapsed .event-copy span{color:#536b78}

/* V20.29 quarter-hour calendar and patient calendar */
.quarter-hour-agenda .hour-row{height:38px;min-height:38px}.quarter-hour-agenda .hour-row>time{padding:8px 5px;font-size:.65rem}.quarter-hour-agenda .hour-row:nth-child(4n+1)>time{font-weight:850;color:#526b79}
.quarter-hour-agenda .day-empty-slot.compact{min-height:28px;padding:2px 9px;font-size:.69rem}.quarter-hour-agenda .day-empty-slot.compact span{width:20px;height:20px;margin-right:5px}
.quarter-hour-agenda .timeline-event{height:calc(var(--event-slots,1) * 38px - 8px)}.quarter-hour-agenda .timeline-event.very-short{grid-template-columns:46px 1fr auto;gap:5px;padding:3px 7px;min-height:30px}.quarter-hour-agenda .timeline-event.very-short .event-copy small,.quarter-hour-agenda .timeline-event.very-short .event-time span{display:none}
.planner-agenda .hour-row.has-event,.planner-agenda .hour-row.covered-slot{overflow:visible}.planner-agenda .hour-row.has-event>div{position:relative;z-index:4}.planner-agenda .hour-row.covered-slot>div{padding:0;pointer-events:none}
.planner-time-event{position:relative;display:grid;grid-template-columns:34px 1fr 32px;gap:8px;align-items:start;margin:2px 0;padding:7px;border-radius:12px;background:#e6f5f3;border-left:4px solid #1a9b91;color:#17384f;overflow:hidden;box-shadow:0 7px 18px rgba(15,42,67,.1)}
.planner-time-event.done{opacity:.65;background:#edf0f2;border-color:#82939e}.planner-time-event.done strong{text-decoration:line-through}.planner-time-event strong,.planner-time-event span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.planner-time-event span{font-size:.68rem;color:#58707d}.planner-time-event.very-short{padding:3px 6px;align-items:center}.planner-time-event.very-short span{display:none}.planner-time-event .planner-check{width:27px;height:27px}.planner-create-panel{margin-top:14px}


/* V20.30 inline service picker */
.service-field{display:grid;gap:7px;margin:12px 0}.field-caption{font-size:.82rem;font-weight:800;color:var(--muted,#607181)}
.service-select-trigger{width:100%;display:grid;grid-template-columns:42px 1fr 24px;align-items:center;gap:11px;padding:10px 12px;border:1px solid #cfe0e6;border-radius:16px;background:#f4faf9;color:var(--ink-strong,#102b46);text-align:left}
.service-select-trigger small,.service-select-trigger strong{display:block}.service-select-trigger small{font-size:.68rem;color:#6b7f8c;margin-bottom:2px}.service-select-trigger strong{font-size:.9rem}
.service-select-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#dff5f2;color:#168d86;font-size:1.3rem;font-weight:900}
.price-compact{margin-top:6px}.calendar-more{margin:10px 0;border:1px solid #d7e4e9;border-radius:15px;overflow:hidden}.calendar-more>summary{padding:12px 14px;cursor:pointer;font-weight:800;color:#476273}.calendar-more>div{padding:0 12px 12px}.calendar-more textarea{min-height:72px}.calendar-save{margin-top:10px}
.service-picker-overlay{position:fixed;inset:0;z-index:80;display:flex;align-items:flex-end;justify-content:center;padding:14px;background:rgba(7,24,38,.54);backdrop-filter:blur(3px)}
.service-picker-overlay[hidden]{display:none}.service-picker-sheet{width:min(100%,730px);max-height:min(82dvh,690px);overflow:auto;padding:18px;border-radius:24px 24px 18px 18px;background:#fff;box-shadow:0 -18px 50px rgba(7,24,38,.25)}
.service-picker-sheet header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.service-picker-sheet h3{margin:3px 0 0;color:#102b46}.sheet-close{width:42px;min-width:42px;height:42px;padding:0;border:0;border-radius:50%;background:#edf5f6;color:#17384f;font-size:1.65rem}
.service-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.service-choice{display:grid;grid-template-columns:36px 1fr;align-items:center;gap:8px;min-height:62px;padding:9px;border:1px solid #d5e3e8;border-radius:15px;background:#f7fafb;color:#17384f;text-align:left}
.service-choice span{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#e5f5f3;color:#13877f;font-size:.67rem;font-weight:900}.service-choice strong{font-size:.77rem;line-height:1.2}.service-choice.selected{border-color:#20aaa2;background:#e9f8f6;box-shadow:inset 0 0 0 1px #20aaa2}
.service-custom-choice{grid-column:1/-1}.custom-service-box{margin-top:12px;padding:12px;border-radius:16px;background:#eef7f7}.custom-service-box .field{margin:0 0 9px}.sheet-open{overflow:hidden}
@media(max-width:420px){.calendar-time-row{display:grid;grid-template-columns:1fr 1fr}.calendar-time-row>*{min-width:0}.service-picker-overlay{padding:8px}.service-picker-sheet{padding:15px}.service-choice{min-height:58px}.service-choice strong{font-size:.73rem}}
@media(prefers-color-scheme:dark){.service-select-trigger{background:#203746;border-color:#365666;color:#e8f1f4}.service-select-trigger small{color:#a9bdc7}.service-select-icon{background:#204f4d;color:#9ee3dd}.calendar-more{border-color:#385365}.calendar-more>summary{color:#bdd0d8}.service-picker-sheet{background:#172b3a}.service-picker-sheet h3,.service-choice{color:#e8f1f4}.sheet-close{background:#263f50;color:#e8f1f4}.service-choice{background:#203746;border-color:#385565}.service-choice.selected{background:#194441;border-color:#35b9b0}.custom-service-box{background:#203746}}


/* V20.31 shared OpenSCI motion card */
.opensci-motion{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,42%);align-items:center;min-height:112px;margin:0 0 14px;padding:17px 18px;overflow:hidden;border:1px solid rgba(39,171,164,.22);border-radius:23px;background:linear-gradient(135deg,#12364b 0%,#145d69 58%,#188591 100%);color:#fff;box-shadow:0 14px 34px rgba(16,62,78,.16)}
.opensci-motion::after{content:"";position:absolute;right:-45px;bottom:-70px;width:180px;height:180px;border-radius:50%;background:rgba(126,231,221,.12)}
.motion-copy{position:relative;z-index:2;display:grid;gap:4px}.motion-copy .hero-kicker{color:#75dfd5}.motion-copy strong{font-size:1rem;line-height:1.2}.motion-copy small{max-width:330px;color:rgba(236,249,250,.76);font-size:.73rem;line-height:1.35}
.motion-visual{position:relative;z-index:2;width:100%;height:82px;overflow:visible}.motion-halo,.motion-path{fill:none;stroke-linecap:round}.motion-halo{stroke:rgba(122,225,215,.16);stroke-width:16}.motion-path{stroke:url(#motionGlow);stroke-width:3;stroke-dasharray:9 11;animation:opensci-flow 4.2s linear infinite}
.motion-nodes circle{fill:#dffaf7;stroke:#3cc5ba;stroke-width:3;transform-box:fill-box;transform-origin:center;animation:opensci-node 3.2s ease-in-out infinite}.motion-nodes circle:nth-child(2){animation-delay:.35s}.motion-nodes circle:nth-child(3){animation-delay:.7s}.motion-nodes circle:nth-child(4){animation-delay:1.05s}.motion-nodes circle:nth-child(5){animation-delay:1.4s}
.motion-pulse{fill:rgba(126,231,221,.2);stroke:#9cf1e8;stroke-width:2;transform-box:fill-box;transform-origin:center;animation:opensci-pulse 2.4s ease-in-out infinite}
.opensci-motion.role-patient{background:linear-gradient(135deg,#12364b,#146a70 62%,#22a69b)}.opensci-motion.role-family{background:linear-gradient(135deg,#15384d,#26637b 62%,#398899)}.opensci-motion.role-admin{background:linear-gradient(135deg,#162f4a,#294c70 62%,#376b8e)}
@keyframes opensci-flow{to{stroke-dashoffset:-40}}@keyframes opensci-node{0%,100%{transform:scale(.92);opacity:.7}50%{transform:scale(1.18);opacity:1}}@keyframes opensci-pulse{0%,100%{transform:scale(.72);opacity:.35}50%{transform:scale(1.35);opacity:.9}}
@media(max-width:430px){.opensci-motion{grid-template-columns:minmax(0,1fr) 132px;min-height:102px;padding:14px}.motion-copy small{font-size:.68rem}.motion-visual{height:70px}}
@media(prefers-reduced-motion:reduce){.motion-path,.motion-nodes circle,.motion-pulse{animation:none}.motion-path{stroke-dasharray:none}.motion-pulse{opacity:.55}}
@media(prefers-color-scheme:dark){.opensci-motion{border-color:rgba(91,215,204,.32);box-shadow:0 14px 32px rgba(0,0,0,.2)}}


/* V20.32 AI workspace, source routing and motion refinements */
.motion-path{filter:drop-shadow(0 0 5px rgba(105,235,223,.72))}.motion-halo{animation:opensci-breathe 4.8s ease-in-out infinite}
@keyframes opensci-breathe{0%,100%{opacity:.45;stroke-width:13}50%{opacity:1;stroke-width:18}}
.ai-pulse-card{position:relative;display:grid;grid-template-columns:78px 1fr;align-items:center;gap:14px;margin-bottom:14px;padding:16px 17px;overflow:hidden;border-radius:22px;background:linear-gradient(135deg,#112f48,#155f70 58%,#1c9895);color:#fff;box-shadow:0 13px 30px rgba(17,65,81,.16)}
.ai-pulse-card::after{content:"";position:absolute;right:-40px;top:-65px;width:155px;height:155px;border-radius:50%;border:22px solid rgba(125,231,221,.08)}
.ai-pulse-card h3{margin:2px 0 4px;color:#fff;font-size:1.05rem}.ai-pulse-card p{margin:0;color:rgba(237,250,250,.78);font-size:.76rem;line-height:1.4}.ai-pulse-card .hero-kicker{color:#79e2d8}
.ai-orb{position:relative;display:grid;place-items:center;width:68px;height:68px;border-radius:50%;background:radial-gradient(circle,#c7fbf6 0 8%,#41d3c6 9% 16%,rgba(55,202,191,.14) 17% 48%,rgba(255,255,255,.07) 49%);box-shadow:0 0 0 1px rgba(150,240,231,.28),0 0 26px rgba(70,217,205,.25)}
.ai-orb::before,.ai-orb::after{content:"";position:absolute;inset:8px;border:1px solid rgba(183,248,242,.48);border-radius:48% 52% 45% 55%;animation:ai-orbit 7s linear infinite}.ai-orb::after{inset:17px;animation-direction:reverse;animation-duration:4.6s}
.ai-orb span,.ai-orb i,.ai-orb b{position:absolute;width:7px;height:7px;border-radius:50%;background:#d9fffb;box-shadow:0 0 10px #78e5dc}.ai-orb span{left:7px;top:29px;animation:ai-node 2.2s ease-in-out infinite}.ai-orb i{right:11px;top:13px;animation:ai-node 2.2s .5s ease-in-out infinite}.ai-orb b{right:7px;bottom:17px;animation:ai-node 2.2s 1s ease-in-out infinite}
@keyframes ai-orbit{to{transform:rotate(360deg)}}@keyframes ai-node{0%,100%{transform:scale(.72);opacity:.45}50%{transform:scale(1.28);opacity:1}}
.ai-context-select{display:grid;gap:6px;margin-bottom:12px;padding:12px 14px;border:1px solid #d9e5e9;border-radius:17px;background:#f7fafb;color:#17384f;font-weight:800}.ai-context-select small{color:#718591;font-size:.7rem;font-weight:500;line-height:1.35}
.ai-source-strip{display:flex;gap:7px;overflow-x:auto;margin:8px -2px 13px;padding:2px 2px 6px;scrollbar-width:none}.ai-source-strip::-webkit-scrollbar{display:none}.source-pill{display:inline-flex;align-items:center;gap:6px;min-width:max-content;padding:8px 10px;border-radius:999px;font-size:.7rem;font-weight:850}.source-pill.opensci{background:#e4f7f4;color:#117a73}.source-pill.web{background:#e7f0fb;color:#285f91}.source-pill.private{background:#f0ebfb;color:#6b4b98}.source-pill.web i{width:7px;height:7px;border-radius:50%;background:#3488c5;box-shadow:0 0 0 0 rgba(52,136,197,.45);animation:web-live 2s infinite}
@keyframes web-live{70%{box-shadow:0 0 0 7px rgba(52,136,197,0)}100%{box-shadow:0 0 0 0 rgba(52,136,197,0)}}
.ai-modes{margin:0 0 12px;border:1px solid #d9e5e9;border-radius:16px;background:#f8fbfc}.ai-modes>summary{padding:11px 13px;color:#496473;font-size:.76rem;font-weight:800;cursor:pointer}.ai-modes .ai-mode-grid{padding:0 10px 10px}.ai-modes .card{margin:0;padding:13px}.ai-modes h3{font-size:.84rem;margin:7px 0 3px}.ai-modes p{font-size:.72rem;line-height:1.4;margin:0}
.chat-assistant p{line-height:1.52}.chat-assistant a{color:#087e94;text-decoration:underline;text-decoration-thickness:1px;overflow-wrap:anywhere}.ai-suggestions{display:flex;gap:8px;overflow-x:auto;margin:0 0 12px;padding:1px 1px 5px;scrollbar-width:none}.ai-suggestion{min-width:max-content;min-height:38px;padding:8px 11px;border:1px solid #cfe2e6;border-radius:999px;background:#f4faf9;color:#176c70;font:inherit;font-size:.72rem;font-weight:800}
.ai-dialog-shell{display:flex;flex-direction:column;height:min(68dvh,720px);min-height:470px;margin:14px 0 6px;border:1px solid rgba(27,151,145,.22);border-radius:24px;overflow:hidden;background:var(--card,#fff);box-shadow:0 10px 28px rgba(16,57,73,.12)}.ai-dialog-toolbar{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:8px 12px;border-bottom:1px solid rgba(27,151,145,.16);background:var(--card,#fff)}.ai-dialog-toolbar strong{font-size:.88rem}.ai-dialog-toolbar button{min-height:34px;padding:6px 10px;border:1px solid #cfe2e6;border-radius:999px;background:#eff9f8;color:#126f78;font:inherit;font-size:.72rem;font-weight:800}.ai-chat-window{position:relative;flex:1;min-height:0;margin:0}.ai-chat-window .chat-list{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin:0;padding:16px 14px 20px;box-sizing:border-box;scrollbar-width:thin;scroll-behavior:smooth}.ai-suggestions{flex:0 0 auto;padding:0 12px 8px}.ai-compose,.card.ai-compose{position:relative;left:auto;bottom:auto;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) 54px;align-items:end;gap:9px;width:100%;margin:0;padding:12px;border:0;border-top:1px solid rgba(27,151,145,.18);border-radius:0;box-sizing:border-box;box-shadow:0 -8px 22px rgba(16,57,73,.06);background:var(--card,#fff);transform:none;backdrop-filter:none}.ai-compose-field{display:block;min-width:0;margin:0}.ai-compose-label{display:block;position:static;width:auto;height:auto;margin:0 0 5px;overflow:visible;clip:auto;white-space:normal;font-size:.9rem;color:var(--os-muted)}.ai-compose textarea{display:block;width:100%;height:48px;min-height:48px;max-height:104px;padding:12px 13px;border:1px solid #d5e1e6;border-radius:14px;box-sizing:border-box;resize:none;overflow-y:auto;background:#f7fafb;color:var(--os-ink);line-height:1.35}.ai-compose .selected-context{grid-column:1/-1;margin:0;font-size:.82rem}.ai-compose .inline-voice{display:grid;grid-column:2;grid-row:1;place-items:center;width:54px;height:48px;min-height:48px;margin:0;padding:0;border-radius:14px}.ai-compose .ai-send{display:flex;grid-column:1/-1;align-items:center;justify-content:center;gap:7px;width:100%;height:50px;min-height:50px;margin:0;padding:0 14px;border-radius:14px}.ai-compose.is-thinking{border-color:#32bcb2}.thinking-dots{display:inline-flex;gap:4px}.thinking-dots i{width:6px;height:6px;border-radius:50%;background:currentColor;animation:thinking-bounce 1.1s ease-in-out infinite}.thinking-dots i:nth-child(2){animation-delay:.16s}.thinking-dots i:nth-child(3){animation-delay:.32s}@keyframes thinking-bounce{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-5px);opacity:1}}.ai-jump-latest{position:absolute;right:14px;bottom:14px;z-index:4;width:42px;height:42px;min-height:42px;padding:0;border:1px solid rgba(255,255,255,.45);border-radius:50%;background:#0c6570;color:#fff;font-size:1.35rem;line-height:1;box-shadow:0 8px 20px rgba(10,53,66,.25);opacity:0;pointer-events:none;transform:translateY(8px);transition:.18s ease}.ai-jump-latest.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}body.ai-chat-open{overflow:hidden}.ai-dialog-shell.is-expanded{position:fixed;z-index:70;inset:max(8px,env(safe-area-inset-top)) 8px calc(82px + env(safe-area-inset-bottom)) 8px;width:auto;height:auto;min-height:0;max-height:none;margin:0;border-radius:22px;box-shadow:0 24px 70px rgba(4,28,40,.35)}.ai-dialog-shell.is-expanded .ai-dialog-toolbar{padding-top:10px}.ai-dialog-shell.is-expanded .ai-chat-window .chat-list{padding-bottom:28px}@media(max-width:430px){.ai-dialog-shell{height:min(66dvh,660px);min-height:450px}.ai-compose{grid-template-columns:minmax(0,1fr) 54px}.ai-send-label{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}}
.toast.visible{animation:toast-arrive .28s ease-out,toast-soft-pulse 1.8s .3s ease-in-out}@keyframes toast-arrive{from{transform:translate(-50%,10px);opacity:0}to{transform:translate(-50%,0);opacity:1}}@keyframes toast-soft-pulse{50%{box-shadow:0 8px 30px rgba(26,170,160,.28)}}
@media(max-width:390px){.ai-pulse-card{grid-template-columns:62px 1fr;padding:14px}.ai-orb{width:56px;height:56px}.ai-pulse-card p{font-size:.7rem}}
@media(prefers-reduced-motion:reduce){.motion-halo,.ai-orb::before,.ai-orb::after,.ai-orb span,.ai-orb i,.ai-orb b,.source-pill.web i,.thinking-dots i,.toast.visible{animation:none}}
@media(prefers-color-scheme:dark){.content>.page-head h2,.content>.page-head .eyebrow,.content>.ai-context-select{color:#17384f}.ai-context-select{background:#f7fafb;border-color:#d8e5e9}.ai-modes{background:#1b3040;border-color:#365264}.ai-modes>summary{color:#bfd0d8}.ai-suggestion{background:#203b49;border-color:#376071;color:#a7e8e1}.chat-assistant a{color:#77ded7}}


/* V20.33 calm functional motion */
.hour-row{position:relative}
.now-line{position:absolute;z-index:8;left:48px;right:0;top:var(--now-within,50%);height:2px;border-radius:999px;background:linear-gradient(90deg,#08a9a2,#58d7c8);box-shadow:0 0 10px rgba(15,174,164,.38);pointer-events:none;animation:now-line-arrive .55s ease-out both}
.now-line::after{content:"";position:absolute;left:0;top:50%;width:8px;height:8px;border-radius:50%;background:#08a9a2;transform:translate(-50%,-50%);box-shadow:0 0 0 4px rgba(8,169,162,.14)}
.now-line b{position:absolute;left:-47px;top:50%;transform:translateY(-50%);padding:1px 3px;border-radius:5px;background:#087f7b;color:#fff;font-size:.56rem;line-height:1.25;font-variant-numeric:tabular-nums}
.diary-chart-motion polyline{stroke-dasharray:1;stroke-dashoffset:1;animation:diary-line-draw 1.05s cubic-bezier(.22,.8,.31,1) forwards}
.diary-chart-point{opacity:0;transform-box:fill-box;transform-origin:center;animation:diary-point-in .36s ease-out .72s forwards}
.lesson-card-enter{animation:lesson-card-enter .32s cubic-bezier(.22,.8,.31,1) both}
@keyframes now-line-arrive{from{opacity:0;transform:scaleX(.72);transform-origin:left}to{opacity:1;transform:scaleX(1);transform-origin:left}}
@keyframes diary-line-draw{to{stroke-dashoffset:0}}
@keyframes diary-point-in{from{opacity:0;transform:scale(.45)}to{opacity:1;transform:scale(1)}}
@keyframes lesson-card-enter{from{opacity:0;transform:translateY(10px) scale(.992)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-color-scheme:dark){.now-line b{background:#35c7bd;color:#092d35}.now-line{box-shadow:0 0 12px rgba(53,199,189,.48)}}
@media(prefers-reduced-motion:reduce){.now-line,.diary-chart-motion polyline,.diary-chart-point,.lesson-card-enter{animation:none}.diary-chart-motion polyline{stroke-dashoffset:0}.diary-chart-point{opacity:1}}


/* V20.34 Telegram dark-theme clarity pass */
@media(prefers-color-scheme:dark){
 :root{--surface:#182b3b;--canvas:#0f1c28;--soft:#203545;--teal-soft:#1c4144;--ink:#e6edf4;--ink-strong:#e6edf4;--muted:#a8b8c8;--line:#344b60;--calendar-line:#344b60;--accent-soft:#1c4144}
 html,body{background:#0f1c28;color:#e6edf4}
 .phone,.content{background:linear-gradient(180deg,#122230 0,#0f1c28 100%);color:#e6edf4}
 .topbar{background:rgba(20,38,54,.96);border-color:#30485a}
 .bottom-nav{background:rgba(20,38,54,.97);border-color:#30485a;box-shadow:0 -8px 24px rgba(0,0,0,.18)}
 .brand-title,.page-head h2,.section-title h3,h2,h3,.date-navigator strong,.list-row strong,.card strong,.diary-tile strong{color:#eef5f8}
 .brand-sub,.eyebrow,.card p,.field-caption,.calendar-tip,.form-hint,.selected-context{color:#a8b8c8}
 .role-switch,.field input,.field textarea,.field select,.date-pill{background:#203545;color:#eef5f8;border-color:#3a556a}
 .card,.day-agenda,.month-board,.week-column,.week-timetable,.planner-item,.diary-tile,.knowledge-slide,.chat-assistant{background:#182b3b;color:#e6edf4;border-color:#344b60}
 .hour-row,.hour-row>time,.week-column,.month-board,.month-day,.week-time-head,.week-day-head,.week-time-label,.week-time-slot{border-color:#344b60}
 .hour-row>div,.week-time-slot{background:#182b3b}.hour-row>time,.week-time-label{background:#152735;color:#93a8b5}
 .day-empty-slot{background:#1a3341;border-color:#456176;color:#c1d2da}.day-empty-slot span{background:#215052;color:#a8e7e1}
 .view-switch{background:#142634}.view-switch .secondary,.view-switch button{color:#9fb2bd}.view-switch .active{background:#294457;color:#f2f7f9;box-shadow:0 2px 9px rgba(0,0,0,.2)}
 .round-control,.today-chip,.secondary{background:#203d4b;color:#dcebed;border-color:#385466}
 .nav-item{color:#8398a6}.nav-item.active{color:#35c7bd}.nav-item.active .nav-icon{background:#1d4748;color:#66ddd4}
 .diary-insight-card{background:linear-gradient(145deg,#153a43,#182b3b);border-color:#2c777a}.diary-metrics>div{background:rgba(12,31,43,.66)}
 .knowledge-filter,.walking-card,.program-preview-card,.workspace-grid .list-row,.patient-hub-grid .list-row,.academy-module-card,.academy-actions .list-row{background:#182b3b;color:#e6edf4;border-color:#344b60}
 .knowledge-filter.active{background:#173c43;border-color:#35aaa5}.knowledge-filter span,.walking-card p,.program-preview-card p,.program-preview-card small{color:#a8b8c8}
 .service-select-trigger,.service-choice,.custom-service-box{background:#203746;color:#e8f1f4;border-color:#385565}
 .create-panel>summary{background:#21445a;color:#fff}
 .preview-note{background:#40371e;color:#f4df9c;border-color:#6c5b2c}
}


/* V20.35 interaction motion and dark specificity fix */
.page-head{animation:surface-rise .3s cubic-bezier(.22,.8,.31,1) both}
.schedule-event,.planner-time-event{animation:calendar-card-in .34s cubic-bezier(.22,.8,.31,1) both}
.calendar-create-panel[open] .session-create-card,.planner-create-panel[open] .card{animation:form-unfold .34s cubic-bezier(.22,.8,.31,1) both;transform-origin:top}
.service-picker-overlay:not([hidden]) .service-picker-sheet{animation:sheet-up .3s cubic-bezier(.22,.8,.31,1) both}
.progress-track>div{transform-origin:left;animation:progress-grow .72s cubic-bezier(.22,.8,.31,1) both}
.knowledge-results .list-row,.academy-course-list .academy-module-card{animation:list-rise .32s cubic-bezier(.22,.8,.31,1) both}
.knowledge-results .list-row:nth-child(2),.academy-course-list .academy-module-card:nth-child(2){animation-delay:.035s}
.knowledge-results .list-row:nth-child(3),.academy-course-list .academy-module-card:nth-child(3){animation-delay:.07s}
.knowledge-results .list-row:nth-child(4),.academy-course-list .academy-module-card:nth-child(4){animation-delay:.105s}
.knowledge-results .list-row:nth-child(n+5),.academy-course-list .academy-module-card:nth-child(n+5){animation-delay:.14s}
.planner-time-event.done .planner-check,.planner-item.done .planner-check{animation:complete-pop .4s cubic-bezier(.2,.9,.35,1.35) both}
.nav-item.active .nav-icon{animation:nav-settle .3s ease-out both}
button:active:not(:disabled),.schedule-event[tabindex]:active{transform:scale(.982)}
@keyframes surface-rise{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes calendar-card-in{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:translateX(0)}}
@keyframes form-unfold{from{opacity:0;transform:translateY(-8px) scaleY(.985)}to{opacity:1;transform:translateY(0) scaleY(1)}}
@keyframes sheet-up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes progress-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes list-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes complete-pop{0%{transform:scale(.72)}65%{transform:scale(1.16)}100%{transform:scale(1)}}
@keyframes nav-settle{from{transform:translateY(3px);opacity:.65}to{transform:translateY(0);opacity:1}}
@media(prefers-color-scheme:dark){
 .content>.page-head h2{color:#eef5f8}
 .content>.page-head .eyebrow{color:#a8b8c8}
 .content>.ai-context-select{background:#203545;color:#eef5f8;border-color:#3a556a}
}
@media(prefers-reduced-motion:reduce){
 .page-head,.schedule-event,.planner-time-event,.calendar-create-panel[open] .session-create-card,.planner-create-panel[open] .card,.service-picker-overlay:not([hidden]) .service-picker-sheet,.progress-track>div,.knowledge-results .list-row,.academy-course-list .academy-module-card,.planner-time-event.done .planner-check,.planner-item.done .planner-check,.nav-item.active .nav-icon{animation:none}
 button:active:not(:disabled),.schedule-event[tabindex]:active{transform:none}
}


/* V20.37 progressive AI answer */
.ai-typing{min-height:1.5em}
.typing-caret{display:inline-block;width:2px;height:1em;margin-left:3px;vertical-align:-.12em;border-radius:2px;background:#18a7a0;animation:ai-caret-blink .72s steps(1,end) infinite}
.ai-about{margin:10px 0 14px}
.ai-about .safety-note{margin:10px 0 0}
@keyframes ai-caret-blink{50%{opacity:0}}
@media(prefers-reduced-motion:reduce){.typing-caret{display:none;animation:none}}

/* OpenSCI V21 — unified calm workspace */
:root{
 --os-bg:#f3f7f8;--os-surface:#fff;--os-soft:#eaf4f4;--os-ink:#123047;
 --os-muted:#647b8a;--os-line:#d9e5e8;--os-teal:#149c99;--os-teal-dark:#08736f;
 --os-danger:#a33f45;--os-warning:#ad7118;--os-radius:18px;--os-shadow:0 10px 30px rgba(25,61,75,.08)
}
.content{background:var(--os-bg);color:var(--os-ink)}
.content>.card,.content>.day-agenda,.content>.month-board,.content>.week-board,.content>.week-timetable-wrap,.content>.knowledge-intro,.content>.visit-summary{background:var(--os-surface);color:var(--os-ink);border-color:var(--os-line);box-shadow:var(--os-shadow)}
.page-head{margin-bottom:14px}.page-head h2{font-size:clamp(1.65rem,7vw,2.15rem);letter-spacing:-.035em}.page-head .eyebrow{font-size:.8rem;color:var(--os-muted)}
.card,.list-row{border-radius:var(--os-radius)}
.list-row{min-height:62px;padding:12px 14px}.list-row .icon-box{width:38px;height:38px}.list-row span{line-height:1.3}
.evolution-ribbon{position:relative;z-index:7;min-height:56px;margin:0 0 12px;padding:9px 11px;border-radius:15px;box-shadow:none}
.evolution-ribbon>div strong{font-size:.78rem}.evolution-ribbon>div span{font-size:.68rem}.evolution-ribbon .ribbon-action{min-height:40px;padding:8px 12px;font-size:.75rem}
.opensci-motion{min-height:104px;margin-bottom:14px}.opensci-motion .motion-copy strong{font-size:1.02rem}

/* Loading, offline and empty */
.skeleton-page{display:grid;gap:12px;padding:8px 0}.skeleton-page i{display:block;height:72px;border-radius:18px;background:linear-gradient(100deg,#e5edef 20%,#f8fbfb 40%,#e5edef 60%);background-size:220% 100%;animation:skeleton-sweep 1.15s linear infinite}.skeleton-page i:first-child{height:34px;width:62%}.skeleton-page i:nth-child(2){height:132px}.skeleton-page i:nth-child(4){height:92px}
.offline-strip{padding:10px 13px;margin-bottom:12px;border-radius:14px;background:#fff3d9;color:#6f4b12;border:1px solid #eed29c;font-size:.78rem;line-height:1.35}
.calm-empty{padding:20px;border:1px dashed #bfcfd3;border-radius:20px;background:rgba(255,255,255,.7);text-align:center}.calm-empty.compact{padding:15px}.calm-empty h3{margin:0 0 6px;color:var(--os-ink)}.calm-empty p{margin:0 0 12px;color:var(--os-muted)}
@keyframes skeleton-sweep{to{background-position:-220% 0}}

/* Today: check-in, focus and compact timeline */
.checkin-card,.focus-card,.progress-overview,.visit-summary{border:1px solid var(--os-line);border-radius:22px;background:var(--os-surface);box-shadow:var(--os-shadow)}
.checkin-card{display:grid;gap:14px;padding:18px;margin-bottom:14px}.checkin-card h3{margin:4px 0;font-size:1.3rem}.checkin-card p{margin:0;color:var(--os-muted)}
.checkin-options{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.checkin-options button{display:grid;justify-items:center;gap:5px;min-width:0;padding:10px 4px;border:1px solid var(--os-line);border-radius:15px;background:#f8fbfb;color:var(--os-ink);font-size:.68rem}.checkin-options button span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--os-soft);color:var(--os-teal-dark);font-weight:900}
.checkin-compact{display:flex;align-items:center;gap:10px;padding:11px 13px;margin-bottom:13px;border:1px solid var(--os-line);border-radius:16px;background:var(--os-surface);animation:checkin-fold .32s ease-out}.checkin-compact div{display:grid;flex:1}.checkin-compact small{color:var(--os-muted)}.checkin-compact strong{color:var(--os-ink)}.status-dot{width:10px;height:10px;border-radius:50%;background:var(--os-teal)}.status-tired .status-dot{background:var(--os-warning)}.status-attention .status-dot{background:var(--os-danger)}
.text-button{min-height:40px;padding:6px 9px;border:0;background:transparent;color:var(--os-teal-dark)}
.focus-card{padding:18px;margin-bottom:15px;background:linear-gradient(145deg,#0d4554,#126a72);color:#fff}.focus-card h3{margin:5px 0;font-size:1.45rem;color:#fff}.focus-card p{margin:0 0 8px;color:#d8eeee}.focus-card .source-badge{background:rgba(255,255,255,.13);color:#e9ffff}.focus-card .primary{margin-top:14px;background:#fff;color:#123047}
.source-badge{display:inline-flex;width:max-content;margin-top:5px;padding:4px 8px;border-radius:999px;background:var(--os-soft);color:var(--os-teal-dark);font-size:.65rem;font-weight:750}
.day-timeline{position:relative;display:grid;margin:6px 0 17px}.timeline-row{display:grid;grid-template-columns:46px 14px 1fr auto;gap:8px;min-height:66px}.timeline-row time{padding-top:4px;color:var(--os-muted);font-size:.73rem;font-variant-numeric:tabular-nums}.timeline-row>i{position:relative;width:2px;background:#cfe0e3}.timeline-row>i:before{content:"";position:absolute;left:50%;top:5px;width:9px;height:9px;border-radius:50%;background:var(--os-teal);border:3px solid var(--os-bg);transform:translateX(-50%)}.timeline-row>div{display:grid;align-content:start;padding:2px 0 13px}.timeline-row strong{font-size:.9rem;color:var(--os-ink)}.timeline-row>div>span:not(.source-badge){font-size:.7rem;color:var(--os-muted)}.timeline-row.done{opacity:.58}.timeline-row.done strong{text-decoration:line-through}.next-marker{align-self:start;padding:4px 7px;border-radius:999px;background:#dff3f1;color:var(--os-teal-dark);font-size:.62rem;font-weight:800}
.today-shortcuts{display:grid;gap:8px}.quick-command-grid,.plan-primary-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:15px}.quick-command-grid button,.plan-primary-actions button{min-width:0}
.cockpit-metrics,.trend-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.cockpit-metrics button,.trend-grid>div{display:grid;gap:1px;padding:12px 8px;border:1px solid var(--os-line);border-radius:16px;background:var(--os-surface);text-align:left;color:var(--os-ink)}.cockpit-metrics small,.trend-grid small{color:var(--os-muted);font-size:.62rem}.cockpit-metrics strong,.trend-grid strong{font-size:1.3rem}.cockpit-metrics span{font-size:.62rem;color:var(--os-muted)}
.compact-schedule .schedule-event{min-height:68px}
@keyframes checkin-fold{from{opacity:.2;transform:scale(.97)}to{opacity:1;transform:scale(1)}}

/* Patient plan */
.plan-tabs{position:sticky;top:6px;z-index:8;margin-bottom:14px;background:rgba(239,246,247,.94);backdrop-filter:blur(12px)}
.progress-overview{display:grid;grid-template-columns:92px 1fr;align-items:center;gap:14px;padding:18px;margin-bottom:12px}.progress-overview h3{margin:3px 0;color:var(--os-ink)}.progress-overview p{margin:0;color:var(--os-muted)}
.progress-ring{display:grid;place-items:center;width:84px;height:84px;border-radius:50%;background:conic-gradient(var(--os-teal) calc(var(--progress)*1%),#dfe9eb 0);position:relative}.progress-ring:before{content:"";position:absolute;inset:8px;border-radius:50%;background:#fff}.progress-ring strong{position:relative;color:var(--os-ink)}

/* Calendar: free space stays free */
.calendar-topline{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center;margin-bottom:10px}.calendar-topline .view-switch{margin:0;overflow:auto}.calendar-topline .view-switch button{padding:8px 9px;white-space:nowrap;font-size:.7rem}.calendar-topline .today-chip{min-height:40px}
.evolution-agenda{padding:0;overflow:visible;border-radius:18px}.evolution-agenda .hour-row{grid-template-columns:43px 1fr;min-height:27px;border-bottom:0}.evolution-agenda .hour-row:nth-child(2n){border-bottom:1px solid #edf2f3}.evolution-agenda .hour-row>time{padding:4px 5px;background:transparent;border-right:1px solid var(--os-line);font-size:.58rem;color:var(--os-muted)}.evolution-agenda .hour-row>div{min-height:27px;background:transparent}.free-time-cell{display:block;width:100%;height:100%;min-height:27px;padding:0;border:0;background:transparent}.free-time-cell:active{background:var(--os-soft)}.evolution-agenda .schedule-event{z-index:3;min-height:calc(var(--event-slots,4)*27px - 4px);margin:2px 5px;padding:8px 10px;border-radius:13px;box-shadow:0 4px 12px rgba(22,63,75,.1)}.evolution-agenda .schedule-event .event-time{min-width:53px}.evolution-agenda .schedule-event .event-copy small{font-size:.58rem}.evolution-agenda .schedule-event .event-copy strong{font-size:.76rem}.calendar-add-button{position:fixed;z-index:24;right:max(20px,calc((100vw - 480px)/2 + 20px));bottom:calc(91px + env(safe-area-inset-bottom));width:54px;height:54px;border:0;border-radius:50%;background:var(--os-teal);color:#fff;font-size:1.8rem;box-shadow:0 10px 24px rgba(20,156,153,.3)}

/* Appointment and AI action bottom sheets */
.sheet-backdrop,.action-layer{position:fixed;z-index:80;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:12px;background:rgba(7,27,39,.52);backdrop-filter:blur(3px);animation:fade-in .2s ease-out}.appointment-sheet,.action-sheet{width:min(100%,470px);max-height:min(86vh,780px);overflow:auto;padding:18px;border-radius:26px 26px 18px 18px;background:#fff;color:var(--os-ink);box-shadow:0 -18px 50px rgba(7,27,39,.22);animation:sheet-up .3s cubic-bezier(.2,.8,.3,1)}.appointment-sheet>header,.action-sheet>header,.visit-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.appointment-sheet h3,.action-sheet h3,.visit-title h3{margin:3px 0 0;color:var(--os-ink)}.appointment-sheet .sheet-close,.action-sheet .sheet-close{width:44px;min-width:44px;height:44px;padding:0;border-radius:50%;border:1px solid var(--os-line);background:#f4f8f8;color:var(--os-ink);font-size:1.4rem}.event-kind-switch{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:14px 0}.event-kind-switch input{position:absolute;opacity:0}.event-kind-switch span{display:grid;place-items:center;min-height:42px;padding:6px 3px;border:1px solid var(--os-line);border-radius:12px;font-size:.65rem}.event-kind-switch input:checked+span{background:var(--os-teal-dark);border-color:var(--os-teal-dark);color:#fff}.compact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.appointment-sheet .field{margin-bottom:9px}.appointment-sheet .field input,.appointment-sheet .field select,.appointment-sheet .field textarea,.action-sheet .field textarea{background:#f7fafb;color:var(--os-ink);border-color:var(--os-line)}.sheet-more{margin:4px 0 10px}.sheet-more summary{min-height:44px;padding:11px;color:var(--os-teal-dark);font-weight:750}.sticky-save{position:sticky;bottom:0;box-shadow:0 -8px 16px #fff}
.voice-listen{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin:6px 0 10px;border:1px solid #aad6d4;border-radius:15px;background:var(--os-soft);color:var(--os-teal-dark)}.voice-listen.listening{background:#d5f3f0;animation:voice-pulse 1s ease-in-out infinite}.voice-listen.unavailable{color:var(--os-muted)}.transcript-note{font-size:.72rem;color:var(--os-muted)}.action-preview{display:grid;gap:7px;margin:15px 0}.action-preview>div{display:grid;grid-template-columns:96px 1fr;gap:10px;padding:10px;border-radius:13px;background:#f3f7f8}.action-preview small{color:var(--os-muted)}.action-preview strong{color:var(--os-ink);overflow-wrap:anywhere}
.voice-command-sheet{overflow:hidden}.voice-mode-note{display:grid;grid-template-columns:12px 1fr;gap:2px 9px;margin:14px 0;padding:12px;border-radius:15px;background:#eef9f8}.voice-mode-note .voice-status-dot{grid-row:1/3;align-self:center;width:11px;height:11px;border-radius:50%;background:#18a69e;box-shadow:0 0 0 5px rgba(24,166,158,.12)}.voice-mode-note strong{font-size:.82rem}.voice-mode-note small{color:var(--os-muted);line-height:1.35}.voice-transcript-field>span{display:block;margin-bottom:6px;font-size:.74rem;font-weight:800;color:var(--os-muted)}.voice-transcript-field textarea{min-height:150px;max-height:34dvh;resize:vertical;line-height:1.45}.voice-command-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch;margin-top:10px}.voice-command-controls .voice-listen{min-height:50px;margin:0}.voice-command-controls .voice-send{min-height:50px;padding:10px 14px;white-space:nowrap}.voice-bars{display:flex;align-items:center;gap:2px;height:18px}.voice-bars i{display:block;width:3px;height:7px;border-radius:4px;background:currentColor}.voice-bars i:nth-child(2),.voice-bars i:nth-child(4){height:14px}.voice-listen.listening .voice-bars i{animation:voice-bars .75s ease-in-out infinite alternate}.voice-listen.listening .voice-bars i:nth-child(2){animation-delay:.15s}.voice-listen.listening .voice-bars i:nth-child(3){animation-delay:.3s}.voice-listen.listening .voice-bars i:nth-child(4){animation-delay:.45s}@keyframes voice-bars{to{height:18px}}@media(max-width:370px){.voice-command-controls{grid-template-columns:1fr}.voice-command-controls .voice-send{width:100%}}
.voice-fab{position:fixed;z-index:23;right:max(14px,calc((100vw - 480px)/2 + 14px));bottom:calc(92px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:7px;min-height:46px;padding:10px 13px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:#0c5963;color:#fff;box-shadow:0 10px 24px rgba(10,53,66,.24)}.voice-fab span{font-size:.7rem;font-weight:800}.voice-fab:active{transform:scale(.97)}body:has(input:focus,textarea:focus,select:focus) .voice-fab{display:none}.inline-voice{margin:0 0 8px}.ai-compose .inline-voice{margin:0}
@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes voice-pulse{50%{box-shadow:0 0 0 7px rgba(20,156,153,.12)}}

/* Visit card */
.visit-summary{padding:17px;margin-bottom:14px}.visit-title h3{font-size:1.35rem}.visit-menu{position:relative}.visit-menu>summary{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#f2f6f7;list-style:none;font-weight:900}.visit-menu>summary::-webkit-details-marker{display:none}.visit-menu>div{position:absolute;right:0;top:48px;z-index:6;display:grid;gap:5px;width:170px;padding:8px;border:1px solid var(--os-line);border-radius:14px;background:#fff;box-shadow:var(--os-shadow)}.visit-facts{display:grid;gap:1px;margin:14px 0}.visit-facts>div{display:grid;grid-template-columns:82px 1fr auto;gap:8px;padding:10px 0;border-bottom:1px solid #edf2f3}.visit-facts small,.visit-facts span{color:var(--os-muted);font-size:.68rem}.visit-facts strong{color:var(--os-ink);font-size:.82rem}.visit-secondary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.session-report-form textarea{min-height:96px}.session-report-form .section-head{align-items:center}

/* AI as actions and learning navigation */
.ai-action-start{margin:12px 0}.ai-action-start>div{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:8px}.ai-action-start button{min-height:48px;padding:9px;border:1px solid #cfe1e3;border-radius:14px;background:#f7fbfb;color:var(--os-ink);font-size:.73rem;text-align:left}.ai-about{margin-bottom:10px}.ai-source-strip{display:none}.chat-assistant{background:#fff;color:var(--os-ink);border:1px solid var(--os-line)}
.learning-dashboard{display:grid;gap:12px;margin:13px 0}.continue-card{padding:17px;border-radius:20px;background:linear-gradient(145deg,#0f5560,#168381);color:#fff}.continue-card h3{margin:4px 0;color:#fff}.continue-card p{color:#dbf1ef}.continue-card .primary{background:#fff;color:var(--os-ink)}.learning-group{padding:14px;border:1px solid var(--os-line);border-radius:18px;background:#fff}.learning-group>h3{margin:0 0 8px;color:var(--os-ink)}.learning-group .list-row{box-shadow:none;border-radius:12px}.quiet-row{margin:0;color:var(--os-muted);font-size:.78rem}.patient-context-ai{margin-top:10px}

/* Accessibility and small screens */
button,a,summary,input,select,textarea{touch-action:manipulation}.voice-fab,.calendar-add-button,.sheet-close{min-width:44px;min-height:44px}
@media(max-width:480px){.appointment-sheet .compact-grid:has([name="start_at"]){grid-template-columns:minmax(0,1fr)}}
@media(max-width:370px){.compact-grid{grid-template-columns:1fr}.event-kind-switch{grid-template-columns:1fr 1fr}.cockpit-metrics,.trend-grid{grid-template-columns:1fr 1fr}.checkin-options{grid-template-columns:1fr}.checkin-options button{grid-template-columns:30px 1fr;justify-items:start;align-items:center}.progress-overview{grid-template-columns:1fr}.voice-fab span{display:none}.voice-fab{width:48px;padding:10px}}
@media(prefers-color-scheme:dark){
 .content{background:var(--os-bg);color:var(--os-ink)}
 .content>.page-head h2,.content>.page-head .eyebrow,.content>.ai-context-select{color:var(--os-ink)}
 .content>.card,.content>.day-agenda,.content>.month-board,.content>.week-board,.content>.week-timetable-wrap,.content>.knowledge-intro,.content>.visit-summary,.checkin-card,.checkin-compact,.progress-overview,.cockpit-metrics button,.trend-grid>div,.learning-group,.chat-assistant{background:var(--os-surface);color:var(--os-ink);border-color:var(--os-line)}
 .content .field input,.content .field textarea,.content .field select,.content .date-pill,.content .ai-context-select{background:#f7fafb;color:var(--os-ink);border-color:var(--os-line)}
 .content .card p,.content .selected-context,.content .calendar-tip{color:var(--os-muted)}
 .content .list-row strong,.content .section-title h3,.content h2,.content h3{color:var(--os-ink)}
}
@media(prefers-reduced-motion:reduce){.skeleton-page i,.checkin-compact,.sheet-backdrop,.action-layer,.appointment-sheet,.action-sheet,.voice-listen.listening{animation:none}.timeline-row,.focus-card{scroll-behavior:auto}}
@media print{.topbar,.bottom-nav,.voice-fab,.visit-menu,.visit-secondary,.admin-test-ribbon,.page-head>button{display:none!important}.content{padding:0;background:#fff}.session-report-form{display:block;box-shadow:none}.phone{max-width:none;box-shadow:none}}

/* V21.1 voice intake and explicit day/night themes */
.welcome-intake{padding:18px}.welcome-intake h3{margin:5px 0 7px}.welcome-intake p{margin:0 0 13px;color:var(--os-muted)}
.intake-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.intake-actions .primary:nth-child(1){grid-column:1/-1}
.voice-draft-note{display:grid;gap:3px;margin-bottom:14px;padding:13px;border:1px solid #8bcfca;border-radius:15px;background:#e8f7f5;color:#17484e}.voice-draft-note span{font-size:.75rem}
.theme-settings{margin-top:14px}.theme-settings p{color:var(--os-muted)}.theme-choice{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.theme-choice button{min-width:0;padding:9px 5px;border:1px solid var(--os-line);background:var(--os-soft);color:var(--os-ink);font-size:.68rem}.theme-choice button.active{background:var(--os-teal-dark);border-color:var(--os-teal-dark);color:#fff}

html[data-theme="dark"]{
 color-scheme:dark;--os-bg:#050607;--os-surface:#101418;--os-soft:#182126;--os-ink:#f2f5f6;
 --os-muted:#a8b2b8;--os-line:#29343a;--os-teal:#36c5bf;--os-teal-dark:#68d9d4;
 --os-danger:#ff8d94;--os-warning:#efbd6b;--os-shadow:0 10px 30px rgba(0,0,0,.3)
}
html[data-theme="dark"] body,html[data-theme="dark"] .desktop-stage,html[data-theme="dark"] .phone,html[data-theme="dark"] .content{background:#050607!important;color:var(--os-ink)!important}
html[data-theme="dark"] .topbar,html[data-theme="dark"] .bottom-nav{background:#090d10!important;border-color:var(--os-line)!important}
html[data-theme="dark"] .brand-title,html[data-theme="dark"] .role-switch,html[data-theme="dark"] .nav-item.active,html[data-theme="dark"] h1,html[data-theme="dark"] h2,html[data-theme="dark"] h3,html[data-theme="dark"] strong{color:var(--os-ink)}
html[data-theme="dark"] .role-switch,html[data-theme="dark"] input,html[data-theme="dark"] textarea,html[data-theme="dark"] select,html[data-theme="dark"] .date-pill,html[data-theme="dark"] .ai-context-select{background:#151c21!important;color:#f4f7f8!important;border-color:#34434b!important}
html[data-theme="dark"] .card,html[data-theme="dark"] .list-row,html[data-theme="dark"] .hero-card,html[data-theme="dark"] .day-agenda,html[data-theme="dark"] .month-board,html[data-theme="dark"] .week-board,html[data-theme="dark"] .week-timetable-wrap,html[data-theme="dark"] .knowledge-intro,html[data-theme="dark"] .visit-summary,html[data-theme="dark"] .checkin-card,html[data-theme="dark"] .checkin-compact,html[data-theme="dark"] .progress-overview,html[data-theme="dark"] .learning-group,html[data-theme="dark"] .chat-assistant,html[data-theme="dark"] .calm-empty{background:var(--os-surface)!important;color:var(--os-ink)!important;border-color:var(--os-line)!important;box-shadow:none}
html[data-theme="dark"] .list-row,html[data-theme="dark"] .ai-action-start button,html[data-theme="dark"] .checkin-options button,html[data-theme="dark"] .cockpit-metrics button,html[data-theme="dark"] .trend-grid>div,html[data-theme="dark"] .action-preview>div{background:#12191e!important;color:var(--os-ink)!important;border-color:var(--os-line)!important}
html[data-theme="dark"] .appointment-sheet,html[data-theme="dark"] .action-sheet{background:#0d1216!important;color:var(--os-ink)!important}
html[data-theme="dark"] .sheet-close,html[data-theme="dark"] .visit-menu>summary,html[data-theme="dark"] .visit-menu>div{background:#171f24!important;color:var(--os-ink)!important;border-color:var(--os-line)!important}
html[data-theme="dark"] .sticky-save{box-shadow:0 -8px 16px #0d1216}
html[data-theme="dark"] .plan-tabs{background:rgba(5,6,7,.92)}
html[data-theme="dark"] .progress-ring:before{background:var(--os-surface)}
html[data-theme="dark"] .voice-draft-note{background:#102827;color:#dff9f6;border-color:#2f827d}
html[data-theme="dark"] .offline-strip{background:#2c2111;color:#f6d89a;border-color:#5f4924}
html[data-theme="dark"] .focus-card,html[data-theme="dark"] .continue-card{background:linear-gradient(145deg,#0c343a,#10585a)!important}
html[data-theme="dark"] .content p,html[data-theme="dark"] .content small,html[data-theme="dark"] .content .eyebrow,html[data-theme="dark"] .transcript-note{color:var(--os-muted)}

@media(prefers-color-scheme:dark){
 html[data-theme="auto"]{color-scheme:dark;--os-bg:#050607;--os-surface:#101418;--os-soft:#182126;--os-ink:#f2f5f6;--os-muted:#a8b2b8;--os-line:#29343a;--os-teal:#36c5bf;--os-teal-dark:#68d9d4;--os-shadow:0 10px 30px rgba(0,0,0,.3)}
 html[data-theme="auto"] body,html[data-theme="auto"] .desktop-stage,html[data-theme="auto"] .phone,html[data-theme="auto"] .content{background:#050607!important;color:var(--os-ink)!important}
 html[data-theme="auto"] .topbar,html[data-theme="auto"] .bottom-nav{background:#090d10!important;border-color:var(--os-line)!important}
 html[data-theme="auto"] .card,html[data-theme="auto"] .list-row,html[data-theme="auto"] .hero-card,html[data-theme="auto"] .day-agenda,html[data-theme="auto"] .month-board,html[data-theme="auto"] .week-board,html[data-theme="auto"] .week-timetable-wrap,html[data-theme="auto"] .knowledge-intro,html[data-theme="auto"] .visit-summary,html[data-theme="auto"] .checkin-card,html[data-theme="auto"] .checkin-compact,html[data-theme="auto"] .progress-overview,html[data-theme="auto"] .learning-group,html[data-theme="auto"] .chat-assistant,html[data-theme="auto"] .calm-empty{background:var(--os-surface)!important;color:var(--os-ink)!important;border-color:var(--os-line)!important;box-shadow:none}
 html[data-theme="auto"] input,html[data-theme="auto"] textarea,html[data-theme="auto"] select,html[data-theme="auto"] .role-switch,html[data-theme="auto"] .date-pill,html[data-theme="auto"] .ai-context-select{background:#151c21!important;color:#f4f7f8!important;border-color:#34434b!important}
 html[data-theme="auto"] .appointment-sheet,html[data-theme="auto"] .action-sheet{background:#0d1216!important;color:var(--os-ink)!important}
 html[data-theme="auto"] .list-row,html[data-theme="auto"] .ai-action-start button,html[data-theme="auto"] .checkin-options button,html[data-theme="auto"] .cockpit-metrics button,html[data-theme="auto"] .trend-grid>div,html[data-theme="auto"] .action-preview>div{background:#12191e!important;color:var(--os-ink)!important;border-color:var(--os-line)!important}
 html[data-theme="auto"] .plan-tabs{background:rgba(5,6,7,.92)}html[data-theme="auto"] .progress-ring:before{background:var(--os-surface)}
}
@media(max-width:370px){.intake-actions{grid-template-columns:1fr}.intake-actions .primary{grid-column:auto}}


/* V21.4: full-width weekly calendar, quiet 30-minute rhythm and protected test access. */
.week-timetable-wrap{overflow-x:hidden;margin-left:0;margin-right:0;padding-left:0;padding-right:0}
.week-timetable{grid-template-columns:38px repeat(7,minmax(0,1fr));min-width:0;width:100%;border-radius:14px}
.week-time-head,.week-day-head{min-height:40px}
.week-time-label,.week-time-slot{min-height:14px}
.week-time-label{font-size:.56rem;overflow:visible;white-space:nowrap}
.week-time-label.quarter-hour,.week-time-slot.quarter-hour{border-bottom-color:transparent}
.week-time-slot{padding:0;font-size:0;color:transparent}
.week-time-slot.free::after{content:"";width:100%;height:100%}
.week-time-slot.free:active{background:var(--accent-soft)}
.week-mini-event{min-height:12px;padding:1px;border-left-width:2px;font-size:0}
.week-mini-event::after{content:"";width:5px;height:5px;margin:auto;border-radius:50%;background:#159b98}
.week-day-head span{font-size:.56rem}.week-day-head strong{font-size:.78rem}
@media(min-width:520px){.week-timetable{grid-template-columns:46px repeat(7,minmax(0,1fr))}.week-time-label,.week-time-slot{min-height:16px}.week-mini-event{font-size:.55rem}.week-mini-event::after{display:none}}
.test-access-layer{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:20px;background:rgba(4,18,28,.58);backdrop-filter:blur(8px)}
.test-access-dialog{width:min(100%,420px);padding:22px;border-radius:24px;background:var(--os-surface,#fff);color:var(--os-ink,#102b46);box-shadow:0 24px 70px rgba(0,0,0,.28)}
.test-access-dialog h3{margin:6px 0 8px}.test-access-dialog p{margin:0 0 14px;color:var(--os-muted,#667884);line-height:1.45}
.test-access-error{display:block;min-height:20px;color:#b3263e;font-weight:700}
.conclusion-document{display:none}
@media print{
 body *{visibility:hidden!important}
 .conclusion-document,.conclusion-document *{visibility:visible!important}
 .conclusion-document{display:block;position:absolute;inset:0;width:100%;padding:16mm 18mm;color:#172b36;background:#fff;font-family:Arial,sans-serif}
 .conclusion-document header{padding-bottom:8mm;border-bottom:2px solid #146b78}.conclusion-document header span{color:#146b78;font-weight:800;letter-spacing:.12em}.conclusion-document h1{margin:3mm 0 1mm;font-size:20pt}.conclusion-document header p{margin:0;color:#60717a}
 .conclusion-meta{display:grid;grid-template-columns:1fr 1fr;gap:8mm;margin:8mm 0}.conclusion-meta div{display:grid;gap:1mm}.conclusion-meta small{color:#60717a}.conclusion-document section{margin:0 0 5mm;break-inside:avoid}.conclusion-document h2{margin:0 0 1.5mm;font-size:10pt;color:#146b78;text-transform:uppercase;letter-spacing:.04em}.conclusion-document section p{margin:0;white-space:pre-wrap;line-height:1.45}
 .conclusion-document footer{display:flex;justify-content:space-between;margin-top:10mm;padding-top:4mm;border-top:1px solid #aab8bd;font-size:9pt;color:#52666d}
}


/* V21.5: patient planner parity and true-duration events in the weekly grid. */
.week-timetable{--week-slot-height:14px}
.week-time-label,.week-time-slot{height:var(--week-slot-height);min-height:var(--week-slot-height)}
.week-time-slot{position:relative;overflow:visible}
.week-time-slot.occupied{z-index:4;align-items:stretch}
.week-time-slot.continuation{z-index:1;background:transparent;pointer-events:none}
.week-event-stack{position:absolute;z-index:6;top:1px;left:1px;right:1px;height:calc(var(--event-slots,1) * var(--week-slot-height) - 2px);display:flex;gap:1px}
.week-event-stack .week-mini-event{position:relative;flex:1;height:100%;min-width:0;padding:3px;border-radius:5px;overflow:hidden;align-content:start;justify-items:start;text-align:left;font-size:.52rem;line-height:1.12;box-shadow:0 2px 8px rgba(13,82,103,.16)}
.week-event-stack .week-mini-event time,.week-event-stack .week-mini-event b,.week-event-stack .week-mini-event small{display:block;max-width:100%;overflow:hidden}
.week-event-stack .week-mini-event .week-event-time{margin:0 0 2px;font-size:.49rem;line-height:1.05;font-weight:900;white-space:nowrap;color:#087b78}
.week-event-stack .week-mini-event b{font-size:.54rem;line-height:1.12;white-space:normal}
.week-event-stack .week-mini-event small{margin-top:2px;font-size:.46rem;line-height:1.15;color:inherit;opacity:.78;white-space:normal}
.week-event-stack .week-mini-event.is-short{display:grid;place-items:center;padding:0;font-size:0}
.week-event-stack .week-mini-event.is-short time,.week-event-stack .week-mini-event.is-short b,.week-event-stack .week-mini-event.is-short small{display:none}
.week-event-stack .week-mini-event.is-long::after{display:none}
.week-event-stack .week-mini-event.is-short::after{display:block;content:"";width:5px;height:5px;margin:auto;border-radius:50%;background:#159b98}
.week-event-stack .week-mini-event.type-appointment{background:#dff4f0;border-left-color:#20a897;color:#173f45}
.week-event-stack .week-mini-event.type-personal{background:#e9effa;border-left-color:#6c8fc6;color:#203957}
.week-event-stack .week-mini-event.type-break{background:#fff2dc;border-left-color:#e7a945;color:#6b4a13}
.week-event-stack .week-mini-event.type-day_off{background:#f0edf8;border-left-color:#8b75c8;color:#493f6d}
.planner-week-timetable+.calendar-tip{margin-top:7px}
@media(min-width:520px){.week-timetable{--week-slot-height:16px}.week-event-stack .week-mini-event b{font-size:.6rem}.week-event-stack .week-mini-event small{font-size:.52rem}}


/* V21.6: compact header, continuous navigation, calendar gestures and accessible brand motion. */
.topbar{transition:min-height .2s ease,padding .2s ease,background-color .2s ease,box-shadow .2s ease}
.topbar .brand-mark,.topbar .brand-title,.topbar .brand-sub,.topbar .role-switch{transition:all .2s ease}
.topbar.is-collapsed{padding-top:7px;padding-bottom:7px;background:rgba(255,255,255,.97);box-shadow:0 5px 18px rgba(16,43,70,.08)}
.topbar.is-collapsed .brand-mark{width:34px;height:34px;border-radius:10px;font-size:.78rem}
.topbar.is-collapsed .brand-title{font-size:.82rem;white-space:nowrap}
.topbar.is-collapsed .brand-sub{display:none}
.topbar.is-collapsed .role-switch{min-height:38px;padding-top:6px;padding-bottom:6px;font-size:.72rem}
.content.route-pending{opacity:.64;filter:saturate(.82);pointer-events:none;transition:opacity .16s ease,filter .16s ease}
.screen-forward-enter{animation:screen-forward .23s cubic-bezier(.22,.8,.31,1) both}
.screen-back-enter{animation:screen-back .21s cubic-bezier(.22,.8,.31,1) both}
.screen-fade-enter{animation:screen-fade .18s ease-out both}
@keyframes screen-forward{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}
@keyframes screen-back{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}
@keyframes screen-fade{from{opacity:.35}to{opacity:1}}
@keyframes nav-settle{0%{transform:scale(1);opacity:.72}55%{transform:scale(1.08);opacity:1}100%{transform:scale(1);opacity:1}}
.nav-item .nav-icon{transform-origin:center}
.week-timetable-wrap{touch-action:pan-y;overscroll-behavior-x:contain}
.motion-path,.motion-nodes circle,.motion-pulse,.motion-halo{animation-iteration-count:2}
html[data-theme="dark"] .topbar.is-collapsed{background:rgba(9,13,16,.97)}
@media(prefers-color-scheme:dark){html[data-theme="auto"] .topbar.is-collapsed{background:rgba(9,13,16,.97)}}
@media(prefers-reduced-motion:reduce){
 .screen-forward-enter,.screen-back-enter,.screen-fade-enter{animation:none}
 .content.route-pending{transition:none;filter:none}
 .topbar,.topbar .brand-mark,.topbar .brand-title,.topbar .brand-sub,.topbar .role-switch{transition:none}
}


/* V21.7: Academy-first hierarchy, paid access and content studio. */
.academy-primary-hero,.academy-studio-hero,.academy-paywall{border-radius:28px;padding:22px;margin-bottom:18px;background:linear-gradient(135deg,#0f3e58,#167e89);color:#fff;box-shadow:0 16px 36px rgba(16,72,87,.18)}
.academy-primary-hero{display:grid;gap:16px}.academy-primary-hero h3,.academy-studio-hero h3,.academy-paywall h3{margin:5px 0 8px;font-size:1.52rem;color:#fff}.academy-primary-hero p,.academy-studio-hero p,.academy-paywall p{margin:0;color:rgba(255,255,255,.82)}
.academy-primary-hero .academy-kicker,.academy-studio-hero .academy-kicker,.academy-paywall .academy-kicker{color:#83ece4}.academy-primary-hero .primary,.academy-studio-hero .primary{background:#fff;color:#0f5366}
.paywall-lock{margin:18px 0 14px;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.12);font-weight:800}
.free-sci-guide{display:grid;gap:10px}.free-sci-guide article{padding:17px 18px;border-radius:20px;background:#fff;border:1px solid #d7e7ea}.free-sci-guide h3{margin:0 0 7px;font-size:1rem}.free-sci-guide p{margin:0;color:#58717d}
.academy-studio-form,.academy-ai-create{padding:19px}.or-divider{text-align:center;color:#7b8f98;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin:3px 0}
.academy-media-library{display:grid;gap:10px}.academy-media-library .card{margin:0}.academy-slide-media{display:grid;gap:12px;margin-top:18px}.academy-media{margin:0}.academy-media img,.academy-media video{display:block;width:100%;max-height:380px;object-fit:contain;border-radius:18px;background:#e8f3f5}.academy-media figcaption{padding:8px 2px 0;color:#58717d;font-size:.82rem}
.academy-media-link{display:flex;gap:11px;align-items:center;padding:14px;border-radius:17px;background:#e6f5f3;color:#12596d;text-decoration:none}.academy-media-link span{display:grid;gap:2px}.academy-media-link small{color:#68808a}.media-error{padding:12px;border-radius:14px;background:#fff4e7;color:#9a5a1b}
html[data-theme="dark"] .free-sci-guide article,html[data-theme="dark"] .academy-media img,html[data-theme="dark"] .academy-media video{background:#0d1b20;border-color:#244047}
@media(min-width:700px){.academy-primary-hero{grid-template-columns:1fr auto;align-items:center}.free-sci-guide{grid-template-columns:repeat(3,1fr)}}


/* V21.8: compact language switch shared by every role. */
.language-switch{appearance:none;-webkit-appearance:none;width:54px;min-width:54px;max-width:54px;height:42px;padding:0 5px;border:1px solid #c8dfe2;border-radius:14px;background:#eef8f7;color:#12344a;font-size:.72rem;font-weight:800;text-align:center;text-overflow:clip}
.language-switch:focus{outline:2px solid #45bdb5;outline-offset:2px}.language-switch:disabled{opacity:.55}
.topbar.is-collapsed .language-switch{height:36px;border-radius:12px}
html[data-theme="dark"] .language-switch{background:#102329;border-color:#29474e;color:#f4f8f7}
@media(max-width:370px){.language-switch{width:46px;min-width:46px}.role-switch{max-width:132px}}

/* V16.46.0: readable full-week calendar and opt-in answer narration. */
.readable-week .week-event-stack{display:block}
.readable-week .week-mini-event.is-readable{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:3px 2px;font-size:.52rem;line-height:1.05}
.readable-week .week-mini-event.is-readable::after{display:none}
.readable-week .week-mini-event .week-event-time{display:block;width:100%;margin:0 0 2px;font-size:.52rem;line-height:1;font-weight:950;letter-spacing:-.02em;white-space:nowrap;text-align:left;color:#087b78}
.readable-week .week-mini-event b{display:block;width:100%;max-height:2.25em;font-size:.5rem;line-height:1.08;white-space:normal;overflow:hidden;text-align:left;overflow-wrap:normal;word-break:normal;text-overflow:clip}
.readable-week .week-mini-event small{display:block;width:100%;margin-top:2px;font-size:.43rem;line-height:1;white-space:nowrap;text-align:left;opacity:.72}
.ai-speak{float:right;display:inline-flex;align-items:center;gap:5px;margin:0 0 5px 8px;padding:5px 8px;border:1px solid var(--os-line,#cfe0e4);border-radius:999px;background:var(--accent-soft,#e7f7f5);color:#087b78;font:800 .68rem/1 inherit}
.ai-speak svg{width:15px;height:15px}
@media(max-width:430px){.readable-week{grid-template-columns:38px repeat(7,minmax(0,1fr))}.readable-week .week-day-head span{font-size:.52rem}.readable-week .week-day-head strong{font-size:.76rem}.readable-week .week-mini-event .week-event-time{font-size:.5rem}.readable-week .week-mini-event b{font-size:.48rem}.readable-week .week-mini-event small{font-size:.42rem}}

/* Keep the AI conversation inside the visible iOS/Telegram viewport when the keyboard opens. */
body.ai-keyboard-open{overflow:hidden}
body.ai-keyboard-open .bottom-nav,body.ai-keyboard-open .voice-fab{visibility:hidden}
.ai-dialog-shell.is-keyboard-open{position:fixed;z-index:100;top:calc(var(--ai-vv-top,0px) + 8px);right:8px;bottom:auto;left:8px;width:auto;height:calc(var(--ai-vv-height,100dvh) - 16px);min-height:0;max-height:none;margin:0;border-radius:18px;box-shadow:0 24px 70px rgba(4,28,40,.35)}
.ai-dialog-shell.is-keyboard-open .ai-chat-window .chat-list{padding-bottom:18px}


/* V16.46.29 — single in-flow AI chat; legacy fixed viewport overlays retired. */
body.ai-chat-open,body.ai-keyboard-open,body.ai-composing{overflow:auto!important}
body.ai-keyboard-open .bottom-nav,body.ai-keyboard-open .voice-fab{display:flex!important;visibility:visible!important}
body:not(.ai-fullscreen) .ai-dialog-shell.is-expanded,body:not(.ai-fullscreen) .ai-dialog-shell.is-keyboard-open,body.ai-keyboard-open:not(.ai-fullscreen) .ai-dialog-shell{position:relative!important;inset:auto!important;top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;width:100%!important;height:min(78dvh,820px)!important;min-height:520px!important;max-height:none!important;margin:14px 0 6px!important;border-radius:24px!important}
body.ai-composing .ai-dialog-shell{scroll-margin-top:12px}
body.ai-composing .ai-chat-window .chat-list{padding-bottom:20px}
.document-map-card{border-left:4px solid #149d99}.document-map-card>p{color:var(--muted,#60758a)}.document-map-list{display:grid;gap:12px}.document-map-fact{padding:14px;border:1px solid var(--line,#dbe5eb);border-radius:16px;background:color-mix(in srgb,var(--card,#fff) 94%,#27aaa2 6%)}.document-map-fact>div{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.document-map-fact strong{display:block;margin-top:10px}.document-map-fact p{margin:.45rem 0}.document-map-fact blockquote{margin:.6rem 0 0;padding:10px 12px;border-left:3px solid #27aaa2;background:rgba(39,170,162,.08);border-radius:8px;color:var(--muted,#60758a)}
