/* Reference layout, with the same glass material as Today and Calendar widgets. */
body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) { overflow: hidden; }
body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .dashboard { position: fixed; inset: 0; height: 100dvh; min-height: 0; display: block; overflow: clip; }
body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .tab-canvas { position: fixed; inset: 0; }
body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .map-hud,
body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .cog-dev,
body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) #nevaCanvasHost,
body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .neva-dock { display: none; }
.tab-panel:is([data-tab-panel="decisions"],[data-tab-panel="meetings"],[data-tab-panel="progress"],[data-tab-panel="unfinished"]) { padding: 0; align-items: stretch; justify-content: stretch; inset: calc(2% + 66px) 2.1% 3%; }
.tab-panel:is([data-tab-panel="decisions"],[data-tab-panel="meetings"],[data-tab-panel="progress"],[data-tab-panel="unfinished"]).is-active { pointer-events: auto; }
.np-page {
  --np-ink: #eeefef; --np-muted: #a3a9ac; --np-dim: #828b8f;
  --np-line: rgba(255,255,255,.12); --np-line-soft: rgba(255,255,255,.08);
  --np-widget-surface: var(--neura-widget-surface);
  --np-widget-blur: var(--neura-widget-blur);
  --np-widget-shadow: var(--neura-widget-shadow);
  --np-meeting: #78b5ff; --np-deadline: #ff8988; --np-focus: #87e6bf; --np-personal: #cba7f4;
  --np-fill: rgba(12,17,19,.68); --np-hover: rgba(217,232,239,.06);
  width: 100%; height: 100%; padding: clamp(20px, 1.8vw, 32px);
  display: flex; flex-direction: column; gap: 20px; min-width: 0; overflow: auto;
  background: var(--np-widget-surface);
  border: none; border-radius: 20px;
  backdrop-filter: var(--np-widget-blur);
  -webkit-backdrop-filter: var(--np-widget-blur);
  box-shadow: var(--np-widget-shadow);
  font-family: var(--font-sans); color: var(--np-ink); scrollbar-width: thin; scrollbar-color: #536067 transparent;
}
.np-page button, .np-page input, .np-page select, .np-page textarea { font: inherit; }
.np-page button { color: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.np-page button:focus-visible, .np-page input:focus-visible, .np-page select:focus-visible, .np-page textarea:focus-visible { outline: 2px solid var(--np-meeting); outline-offset: 3px; }
.np-icon { width: 19px; height: 19px; flex-shrink: 0; }
.np-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-shrink: 0; }
.np-eyebrow { font-size: 11px; letter-spacing: .22em; color: #b1b6b8; margin: 0 0 8px; }
.np-header h1 { font: 300 clamp(27px, 2.25vw, 40px)/1.18 var(--font-display); letter-spacing: -.045em; }
.np-subtitle { font-size: 13px; color: #b1b7ba; margin-top: 5px; letter-spacing: .012em; }
.np-header-actions { display: flex; align-items: center; gap: 26px; padding-top: 14px; }
.np-hint { display: flex; align-items: center; gap: 12px; color: var(--np-muted); font-size: 12px; }
.np-hint .np-icon { color: var(--np-dim); }
.np-button { display: inline-flex; justify-content: center; align-items: center; gap: 10px; min-height: 36px; padding: 8px 16px; border: 1px solid var(--np-line); border-radius: 10px; background: linear-gradient(150deg,#ffffff09,#ffffff02); font-size: 14px; white-space: nowrap; transition: background .16s; }
.np-button:hover, .np-icon-button:hover { background: var(--np-hover); }
.np-add-wrap { position: relative; }
.np-add-split { display: flex; border: 1px solid var(--np-line); border-radius: 11px; background: #ffffff05; }
.np-add-split .np-button { border: 0; background: none; min-height: 40px; }
.np-add-split .np-split-toggle { border-left: 1px solid var(--np-line-soft); border-radius: 0 10px 10px 0; padding: 8px 11px; }
.np-layout { display: grid; grid-template-columns: minmax(0, 2.12fr) minmax(305px, 1fr); gap: 18px; flex: 1; min-height: 0; }
.np-main { display: flex; flex-direction: column; gap: 15px; min-width: 0; min-height: 0; }
.np-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 11px; flex-shrink: 0; }
.np-type-meeting { --np-category: var(--np-meeting); }
.np-type-deadline { --np-category: var(--np-deadline); }
.np-type-focus { --np-category: var(--np-focus); }
.np-type-personal { --np-category: var(--np-personal); }
.np-stat { display: flex; align-items: center; gap: 13px; text-align: left; padding: clamp(10px,1vw,17px); min-height: 75px; }
.np-stat:hover, .np-stat.is-filtered { background: linear-gradient(145deg,rgba(55,60,58,.24),rgba(25,30,28,.2)); }
.np-stat.is-filtered { box-shadow: inset 0 0 0 1px var(--np-category), var(--np-widget-shadow); }
.np-stat-icon { width: 43px; height: 43px; display: grid; place-items: center; border-radius: 50%; background: #ffffff05; color: var(--np-category); flex-shrink: 0; }
.np-stat-icon .np-icon { width: 24px; height: 24px; }
.np-stat strong { display: block; font: 300 26px/1.2 var(--font-display); }
.np-stat-label { display: flex; gap: 9px; align-items: center; margin-top: 3px; font-size: 12px; color: var(--np-muted); white-space: nowrap; }
.np-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--np-category); flex-shrink: 0; box-shadow: inset 0 1px 1px #ffffff30; }
.np-calendar { padding: 17px 12px 0; display: flex; flex-direction: column; flex: 1; min-height: 345px; }
.np-calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 0 5px 14px; }
.np-month-nav, .np-calendar-controls { display: flex; align-items: center; gap: 9px; }
.np-month-nav h2 { margin-left: 7px; font-size: clamp(15px,1.2vw,21px); font-weight: 400; white-space: nowrap; letter-spacing: -.02em; }
.np-icon-button { width: 33px; height: 33px; border-radius: 8px; display: grid; place-items: center; background: #ffffff04; border: 1px solid var(--np-line-soft); }
.np-icon-button .np-icon { width: 17px; height: 17px; color: var(--np-muted); }
.np-segment { display: flex; border: 1px solid var(--np-line); border-radius: 10px; padding: 1px; }
.np-segment button { min-width: 65px; border: 1px solid transparent; border-radius: 8px; padding: 7px 12px; background: transparent; color: var(--np-muted); font-size: 11px; }
.np-segment button[aria-pressed="true"] { border-color: #b9d1dd2b; background: #c2d5df16; box-shadow: 0 1px 8px #0003; color: var(--np-ink); }
.np-today { margin-left: 7px; min-height: 32px; padding: 6px 18px; color: var(--np-muted); }
.np-calendar-scroll { flex: 1; display: flex; flex-direction: column; min-height: 0; }
.np-weekdays { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); flex-shrink: 0; }
.np-weekdays span { font-size: 11px; color: var(--np-muted); text-align: center; padding: 5px 0 12px; }
.np-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); grid-template-rows: repeat(var(--np-rows),minmax(57px,1fr)); flex: 1; border: 1px solid var(--np-line-soft); border-radius: 0 0 8px 8px; overflow: hidden; }
.np-day { position: relative; min-width: 0; display: flex; flex-direction: column; gap: 5px; border: 0; border-right: 1px solid var(--np-line-soft); border-bottom: 1px solid var(--np-line-soft); background: #00000010; padding: 9px 10px; text-align: left; transition: background .15s; }
.np-day:nth-child(7n) { border-right: 0; }
.np-day:nth-last-child(-n+7) { border-bottom: 0; }
.np-day:hover { background: #bcd1e210; }
.np-day.is-selected { background: radial-gradient(ellipse at 70% 0,#acdfff24,transparent),#719dbd17; border-radius: 11px; box-shadow: inset 0 0 0 1px #85b9e7a6, inset 0 0 22px #85b9e716; }
.np-day-number { display: flex; justify-content: space-between; align-items: center; width: 100%; font-size: 12px; margin-bottom: 3px; line-height: 1; color: #e6e9ea; }
.np-day.is-outside .np-day-number { color: #656e71; }
.np-today-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--np-meeting); box-shadow: 0 0 10px #78b5ffaa; }
.np-event { display: flex; align-items: center; gap: 7px; width: 100%; min-width: 0; color: #b4bdc2; font-size: clamp(9px,.68vw,12px); line-height: 1.25; }
.np-event > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.np-event .np-dot { width: 6px; height: 6px; }
.np-more { font-size: 10px; color: var(--np-meeting); }
.np-grid--week { grid-template-rows: minmax(220px,1fr); }
.np-grid--week .np-day { gap: 18px; }
.np-grid--week .np-event { align-items: flex-start; font-size: 11px; }
.np-grid--week .np-event > span { white-space: normal; }
.np-event small { display: block; color: var(--np-dim); font-size: 9px; margin-bottom: 6px; }
.np-calendar-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 19px 6px; flex-shrink: 0; }
.np-legend { display: flex; align-items: center; gap: 16px; }
.np-legend button { display: inline-flex; align-items: center; gap: 7px; background: none; border: 0; font-size: 10px; color: #b5bcc0; padding: 4px 0; }
.np-legend button.is-muted { opacity: .4; }
.np-calendar-footer p { font-size: 10px; color: var(--np-dim); }
.np-clear-filter { color: var(--np-meeting)!important; }
.np-sidebar { display: flex; flex-direction: column; gap: 14px; min-height: 0; }
.np-card { padding: 15px 17px 10px; min-width: 0; }
.np-stat, .np-calendar, .np-card {
  background: linear-gradient(145deg,rgba(255,255,255,.035),rgba(0,0,0,.08));
  border: none;
  border-radius: 20px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
.np-header h1:focus { outline: none; }
.np-daily-layout { display: grid; grid-template-columns: 185px minmax(0,1fr) minmax(235px,.55fr); gap: 25px; flex: 1; min-height: 0; }
.np-month-rail { border-right: 1px solid var(--np-line-soft); padding-right: 20px; }
.np-rail-heading { padding: 10px 0 14px; }
.np-year-nav { display: flex; align-items: center; justify-content: space-between; margin-top: 8px; }
.np-year-nav strong { font-size: 17px; font-weight: 400; }
.np-month-list { display: grid; gap: 3px; }
.np-month-list button { display: flex; align-items: center; gap: 12px; padding: 10px; min-height: 38px; border: 0; border-radius: 9px; background: transparent; text-align: left; font-size: 13px; color: #b7bec2; }
.np-month-list button:hover { background: var(--np-hover); }
.np-month-list .is-current { background: #ffffff0d; color: #f0f4f6; }
.np-month-index { color: #929ca2; font-size: 10px; }
.np-month-list .np-icon { margin-left: auto; width: 14px; height: 14px; }
.np-rail-note { color: #a3adb3; font-size: 11px; line-height: 1.7; margin-top: 20px; }
.np-daily-main { min-width: 0; padding: 12px 0; }
.np-daily-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.np-daily-toolbar h2 { font-size: 23px; font-weight: 400; letter-spacing: -.025em; }
.np-day-controls { display: flex; gap: 7px; align-items: center; }
.np-day-controls .np-icon-button, .np-year-nav .np-icon-button { width: 40px; height: 40px; }
.np-daily-summary { display: flex; flex-wrap: wrap; gap: 22px; margin: 25px 0 32px; padding-bottom: 20px; border-bottom: 1px solid var(--np-line-soft); color: #b7bec2; font-size: 12px; }
.np-daily-summary strong { color: #f0f4f6; font-size: 18px; font-weight: 400; margin-right: 4px; }
.np-timeline { display: grid; gap: 18px; }
.np-timeline-row { display: grid; grid-template-columns: 52px minmax(0,1fr); gap: 15px; }
.np-timeline-row > time { font-size: 13px; padding-top: 20px; color: #ecf0f2; }
.np-timeline-row > time small { display: block; font-size: 11px; margin-top: 8px; color: #9faab0; }
.np-day-event { position: relative; width: 100%; padding: 18px 20px; border: 1px solid var(--np-line-soft); border-left: 2px solid var(--np-category); border-radius: 0 13px 13px 0; background: #ffffff05; text-align: left; }
.np-day-event:hover { background: #ffffff0b; }
.np-event-category { display: flex; align-items: center; gap: 7px; font-size: 11px; color: #bcc5ca; }
.np-day-event > strong { display: block; font-weight: 400; font-size: 18px; margin: 10px 0; overflow-wrap: anywhere; }
.np-day-event p { color: #b7c0c5; font-size: 13px; line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; }
.np-edit-event { display: flex; align-items: center; gap: 6px; font-size: 11px; color: #9eabb3; margin-top: 16px; }
.np-edit-event .np-icon { width: 13px; height: 13px; }
.np-day-add { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; padding: 17px; margin-top: 22px; background: transparent; border: 1px dashed #ffffff28; border-radius: 12px;  font-size: 13px!important; }
.np-day-add:hover { background: var(--np-hover); }
.np-day-empty { text-align: center; padding: 55px 20px; }
.np-day-empty > .np-icon { width: 35px; height: 35px; color: var(--np-focus); margin-bottom: 18px; }
.np-day-empty h3 { font-size: 21px; font-weight: 300; }
.np-day-empty p { color: #b2bcc1; font-size: 13px; line-height: 1.8; margin-top: 12px; }
.np-daily-tasks { background: #ffffff04; border-radius: 16px; padding: 20px; align-self: start; }
.np-daily-tasks h2 { font-size: 17px; font-weight: 400; }
.np-daily-task-hint { color: #aab4bb; font-size: 12px; margin: 15px 0 24px; }
.np-day-task-list { display: grid; gap: 17px; }
.np-day-task-list .np-task-title { white-space: normal; font-size: 13px!important; }
.np-day-task-list .np-task-title small { display: block; font-size: 10px; color: #9aa7ae; margin-top: 4px; }
.np-day-task-list .np-task input { width: 18px; height: 18px; }
.np-daily-tasks .np-add-task { min-height: 44px; margin-top: 20px; }
.np-day-reflection { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--np-line-soft); color: #a7b3ba; }
.np-day-reflection p { font-size: 14px; font-weight: 300; line-height: 1.7; margin-top: 14px; }
@media (max-width:1150px) { .np-daily-layout { grid-template-columns: 155px minmax(0,1fr); gap: 20px; } .np-daily-tasks { grid-column: 2; } .np-month-rail { grid-row: span 2; } }
@media (max-width:700px) {
  .np-daily-layout { display: flex; flex-direction: column; }
  .np-month-rail { border-right: 0; padding-right: 0; border-bottom: 1px solid var(--np-line-soft); padding-bottom: 14px; }
  .np-rail-heading { display: flex; align-items: center; justify-content: space-between; padding: 0 0 10px; }
  .np-year-nav { gap: 12px; margin: 0; }
  .np-month-list { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 4px; }
  .np-month-list button { min-height: 44px; font-size: 12px; gap: 7px; padding: 8px; }
  .np-month-list .np-icon { display: none; }
  .np-rail-note { margin-top: 10px; }
  .np-daily-toolbar { flex-wrap: wrap; }
  .np-day-controls .np-icon-button { width: 44px; height: 44px; }
  .np-daily-summary { gap: 14px; }
  .np-day-event { padding: 16px 13px; }
  .np-timeline-row { gap: 10px; grid-template-columns: 43px minmax(0,1fr); }
  .np-daily-tasks { align-self: stretch; }
}
.np-card-header { display: flex; align-items: center; gap: 13px; margin-bottom: 10px; }
.np-card-icon { display: grid; place-items: center; width: 29px; height: 29px; border-radius: 8px; background: #ffffff08; flex-shrink: 0; }
.np-card-icon .np-icon { width: 20px; height: 20px; }
.np-card h2 { font-weight: 400; font-size: clamp(15px,1.17vw,21px); letter-spacing: -.025em; }
.np-count { margin-left: auto; color: var(--np-muted); font-size: 10px; white-space: nowrap; }
.np-tasks { display: flex; flex-direction: column; flex: 1; min-height: 170px; }
.np-tasks:nth-child(2) { flex: 1.18; min-height: 200px; }
.np-task-list { display: flex; flex-direction: column; gap: 5px; max-height: 310px; overflow-y: auto; scrollbar-width: thin; }
.np-task { display: flex; align-items: center; gap: 12px; min-height: 20px; }
.np-task input { appearance: none; width: 14px; height: 14px; border: 1px solid #8b969a; border-radius: 4px; background: #0a1419aa; flex-shrink: 0; cursor: pointer; }
.np-task input:checked { border-color: var(--np-focus); background: var(--np-focus); position: relative; }
.np-task input:checked::after { content: ''; display: block; width: 6px; height: 3px; border: solid #164738; border-width: 0 0 1.5px 1.5px; transform: rotate(-45deg); position: absolute; left: 3px; top: 3px; }
.np-task-title { border: 0; background: none; color: #d4d8da!important; font-size: 11px!important; text-align: left; flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.6; }
.np-task-title:hover { color: white!important; }
.np-task.is-done .np-task-title { text-decoration: line-through; color: #858f94!important; }
.np-task > span { font-size: 10px; color: var(--np-dim); white-space: nowrap; }
.np-add-task { display: flex; align-items: center; gap: 14px; border: 0; background: none; color: var(--np-muted)!important; font-size: 11px!important; padding: 9px 0 3px; width: 100%; text-align: left; margin-top: auto; }
.np-add-task .np-icon { width: 16px; height: 16px; }
.np-add-task:hover { color: var(--np-focus)!important; }
.np-upcoming { min-height: 125px; padding-bottom: 15px; }
.np-upcoming-row { display: flex; align-items: center; width: 100%; gap: 12px; background: none; border: 0; padding: 7px 0; text-align: left; font-size: 11px!important; }
.np-upcoming-row > span:first-child { width: 64px; flex-shrink: 0; color: #c0c7ca; }
.np-upcoming-title { display: flex; align-items: center; gap: 12px; flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.np-upcoming-row time { color: var(--np-dim); font-size: 10px; white-space: nowrap; }
.np-empty { padding: 14px 0; color: var(--np-muted); font-size: 12px; line-height: 1.7; }
.np-toast { position: fixed; bottom: 16px; left: 50%; transform: translateX(-50%); z-index: 9; display: flex; align-items: center; gap: 14px; max-width: 90%; padding: 12px 16px; border-radius: 12px; border: 1px solid var(--np-line); background: #182429; box-shadow: 0 6px 30px #0007; font-size: 12px; }
.np-toast button { background: none; border: 0; color: var(--np-focus); }
.np-toast .np-icon { width: 15px; height: 15px; }
.np-dialog { position: fixed; margin: auto; width: min(480px,calc(100vw - 32px)); max-height: calc(100dvh - 40px); padding: 0; border-radius: 20px; border: 1px solid #53636a; color: var(--np-ink); background: linear-gradient(130deg,#1d292e,#10191e); box-shadow: 0 40px 100px #000a; color-scheme: dark; }
.np-dialog::backdrop { background: #03090daf; backdrop-filter: blur(7px); }
.np-dialog-inner { padding: 26px; }
.np-dialog-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; }
.np-dialog-header h2 { font: 300 26px var(--font-display); }
.np-field { display: flex; flex-direction: column; gap: 8px; color: #c5d0d6; font-size: 12px; margin-bottom: 17px; position: relative; }
.np-field input, .np-field textarea, .np-field select { background: #080f1459; color: #eff5f8; border: 1px solid #ffffff20; border-radius: 9px; padding: 11px 12px; min-height: 43px; width: 100%; font-size: 13px; }
.np-field textarea { resize: vertical; }
.np-field input::placeholder, .np-field textarea::placeholder { color: #809198; }
.np-optional { position: absolute; right: 0; color: #8d9aa1; font-size: 10px; }
.np-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.np-form-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px; }
/* Primary and secondary buttons share the widget rules in styles.css. */
.np-delete { margin-right: auto; color: var(--np-deadline)!important; border: 0; background: none; font-size: 12px!important; }
.np-form-error { font-size: 12px; color: var(--np-deadline); }
.np-day-title { color: var(--np-muted); font-size: 14px; margin-bottom: 16px; }
.np-agenda { margin-bottom: 24px; display: flex; flex-direction: column; gap: 10px; }
.np-agenda-event { display: flex; align-items: center; gap: 15px; width: 100%; text-align: left; padding: 15px; border: 1px solid var(--np-line); border-radius: 12px; background: #ffffff04; }
.np-agenda-event > span { flex: 1; }
.np-agenda-event strong { display: block; font-size: 13px; font-weight: 400; }
.np-agenda-event small { display: block; color: var(--np-muted); font-size: 11px; margin-top: 6px; }
@media (min-width:1500px) {
  .np-page { gap: 20px; }
  .np-header { min-height: 78px; }
  .np-stat { min-height: 83px; }
  .np-calendar { padding-top: 18px; }
  .np-calendar-toolbar { padding-bottom: 18px; }
  .np-day { padding: 12px; gap: 7px; }
  .np-card { padding: 17px 20px 12px; }
  .np-task { min-height: 22px; }
  .np-task-title, .np-add-task, .np-upcoming-row { font-size: 12px!important; }
  .np-task > span, .np-count, .np-upcoming-row time { font-size: 11px; }
  .np-upcoming-row { padding: 9px 0; }
}
@media (max-width:1150px) {
  .np-hint { display: none; }
  .np-layout { grid-template-columns: minmax(0,1.8fr) minmax(280px,1fr); gap: 12px; }
  .np-page { padding: 20px; }
  .np-stat { gap: 8px; padding: 10px 8px; }
  .np-stat-icon { width: 31px; height: 31px; }
  .np-stat-label { font-size: 10px; gap: 5px; }
  .np-stat strong { font-size: 23px; }
  .np-month-nav { gap: 5px; }
  .np-month-nav h2 { font-size: 14px; margin-left: 3px; }
  .np-segment button { min-width: 48px; padding: 7px; }
  .np-today { padding: 6px 10px; margin-left: 0; }
  .np-legend { gap: 10px; }
  .np-calendar-footer p { display: none; }
  .np-upcoming-row { gap: 8px; }
  .np-upcoming-row > span:first-child { width: 51px; }
  .np-upcoming-title { gap: 7px; }
  .np-upcoming-row time { font-size: 9px; }
}
/* The legacy shell stacks its navigation below the canvas on narrow screens.
   Keep Planner's navigation reachable above its own scrolling page. */
@media (max-width:1100px) {
  body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) { overflow: hidden; }
  body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .dashboard { position: fixed; inset: 0; height: 100dvh; min-height: 0; display: block; overflow: clip; }
  body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .tab-canvas { position: fixed; inset: 0; }
  body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .map-workspace { display: none; }
  body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .world-bg { display: block; transform: none; }
  body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .control-nav { position: fixed; top: 12px; left: 14px; margin: 0; flex-wrap: nowrap; }
  body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .command-bar { position: fixed; top: 12px; right: 14px; margin: 0; }
}
@media (max-width:1000px) {
  body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .control-nav { width: calc(100% - 28px); justify-content: space-between; padding-inline: 18px; gap: 12px; }
  body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .command-bar { top: 70px; }
  .tab-panel:is([data-tab-panel="decisions"],[data-tab-panel="meetings"],[data-tab-panel="progress"],[data-tab-panel="unfinished"]) { top: 132px; }
}
@media (max-width:950px), (max-height:680px) {
  .np-layout { min-height: auto; }
  .np-main { min-height: 490px; }
  .np-sidebar { min-height: 490px; }
  .np-calendar { min-height: 400px; }
}
@media (max-width:850px) {
  .np-layout { grid-template-columns: 1fr; }
  .np-sidebar { display: grid; grid-template-columns: 1fr 1fr; min-height: auto; }
  .np-upcoming { grid-column: 1 / -1; }
  .np-header { gap: 12px; }
  .np-header h1 { font-size: 26px; }
  .np-subtitle { font-size: 11px; }
  .np-calendar-footer p { display: block; }
}
@media (max-width:560px) {
  .np-header-actions { flex-wrap: wrap; gap: 10px; }
  .tab-panel:is([data-tab-panel="decisions"],[data-tab-panel="meetings"],[data-tab-panel="progress"],[data-tab-panel="unfinished"]) { inset: 128px 10px 12px; }
  .np-page { padding: 18px 12px; border-radius: 20px; gap: 18px; }
  .np-header { flex-wrap: wrap; }
  .np-header h1 { font-size: 27px; }
  .np-header-actions { padding-top: 0; width: 100%; justify-content: flex-end; }
  .np-stats { grid-template-columns: 1fr 1fr; gap: 8px; }
  .np-stat { min-height: 67px; padding: 10px 12px; }
  .np-stat-label { font-size: 12px; }
  .np-calendar-toolbar { flex-wrap: wrap; gap: 13px; }
  .np-calendar-controls { width: 100%; justify-content: space-between; }
  .np-calendar { min-height: 490px; padding: 12px 7px 0; }
  .np-day { padding: 8px 3px; }
  .np-event { font-size: 9px; gap: 3px; }
  .np-event .np-dot { width: 4px; height: 4px; }
  .np-day-number { padding: 0 3px; }
  .np-grid { grid-template-rows: repeat(var(--np-rows),minmax(65px,1fr)); }
  .np-grid--week { grid-template-rows: minmax(300px,1fr); }
  .np-grid--week .np-event { font-size: 9px; }
  .np-calendar-footer { padding: 14px 3px; }
  .np-calendar-footer p { display: none; }
  .np-sidebar { grid-template-columns: 1fr; }
  .np-card { padding: 17px; }
  .np-task { min-height: 30px; }
  .np-task input { width: 18px; height: 18px; }
  .np-task input:checked::after { left: 4px; top: 5px; }
  .np-task-title { font-size: 12px!important; }
  .np-toast { width: calc(100% - 26px); }
  body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .control-nav { padding-inline: 12px; gap: 8px; }
  body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .nav-tabs { flex-wrap: nowrap; gap: 0; }
  body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .nav-tab { font-size: 8px; letter-spacing: .05em; text-indent: 0; padding-inline: 4px; }
  body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .logo-image { height: 12px; }
  body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .command-bar { width: calc(100% - 28px); left: 14px; }
  body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .cmd-actions { gap: 0; width: 100%; overflow-x: auto; scrollbar-width: none; padding: 0 4px; }
  body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .cmd-actions .icon-btn,
  body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .cmd-actions .search-toggle { width: 30px; min-width: 30px; flex: 0 0 30px; }
  body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .cmd-actions .search-field:not(.is-open) { width: 30px; min-width: 30px; }
  body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .cmd-actions .world-switch { padding-inline: 8px; }
  body:is([data-space="decisions"],[data-space="meetings"],[data-space="progress"],[data-space="unfinished"]) .world-switch__label { font-size: 8px; letter-spacing: .1em; }
}
@media (prefers-reduced-motion:reduce) {
  .np-page *, .np-page *::before, .np-page *::after { transition: none!important; animation: none!important; }
}
/* Let content determine the page's scroll height. Never squeeze card contents
   into the viewport or clip the last event inside a calendar cell. */
.np-layout { flex: 1 0 auto; min-height: min-content; align-items: start; gap: 22px; }
.np-main { min-height: auto; gap: 20px; }
.np-calendar { flex: 1 0 auto; min-height: auto; }
.np-calendar-scroll { flex: 1 0 auto; min-height: auto; }
.np-grid { flex: 1 0 auto; grid-template-rows: repeat(var(--np-rows),minmax(112px,auto)); }
.np-day { min-height: 112px; gap: 8px; padding: 12px 10px; }
.np-day > * { flex-shrink: 0; }
.np-day-number { margin-bottom: 5px; }
.np-event { min-height: 17px; line-height: 1.45; }
.np-grid--week { grid-template-rows: minmax(300px,auto); }
.np-sidebar { gap: 20px; min-height: auto; }
.np-tasks, .np-tasks:nth-child(2), .np-upcoming { flex: 0 0 auto; min-height: auto; padding: 20px; }
.np-card-header { flex-wrap: wrap; row-gap: 8px; margin-bottom: 17px; }
.np-task-list { gap: 8px; max-height: none; overflow: visible; }
.np-task { min-height: 30px; flex-shrink: 0; gap: 12px; }
.np-task-title { white-space: normal; overflow-wrap: anywhere; line-height: 1.6; }
.np-add-task { margin-top: 14px; min-height: 36px; }
.np-upcoming-row { min-height: 40px; padding: 10px 0; align-items: start; }
.np-upcoming-title { white-space: normal; overflow: visible; overflow-wrap: anywhere; line-height: 1.5; }
.np-upcoming-title .np-dot { margin-top: 5px; }
.np-upcoming-row time { padding-top: 2px; }
.np-daily-layout { flex: 1 0 auto; min-height: min-content; }
.np-day-task-list .np-task { padding: 10px 0; border-bottom: 1px solid var(--np-line-soft); }
.np-inline-editor { padding: 24px; margin-bottom: 28px; background: rgba(255,255,255,.045); border: 1px solid var(--np-line); border-radius: 16px; scroll-margin: 20px; color-scheme: dark; }
.np-inline-editor .np-dialog-header h2 { font-size: 24px; }
.np-inline-editor .np-field { margin-bottom: 18px; }
.np-inline-editor .np-form-actions { flex-wrap: wrap; }
/* Dropdown surfaces and rows reuse widget-search-dropdown/widget-search-item. */
.np-header { position: relative; z-index: 5; }
.np-add-menu.widget-search-dropdown { left: auto; right: 0; width: 230px; font-family: var(--font-display); font-weight: 300; }
.np-select { position: relative; display: flex; flex-direction: column; gap: 8px; min-width: 0; margin-bottom: 18px; color: #c5d0d6; font-size: 12px; }
.np-select-trigger { display: flex; align-items: center; justify-content: space-between; gap: 10px; text-align: left; background: #080f1459; color: #eff5f8; border: 1px solid #ffffff20; border-radius: 9px; padding: 11px 12px; min-height: 43px; width: 100%; font-family: var(--font-display)!important; font-size: 13px!important; }
.np-select-trigger svg, .np-option-check { width: 16px; height: 16px; flex-shrink: 0; }
.np-select-options.widget-search-dropdown { width: 100%; top: calc(100% + 7px); font-family: var(--font-display); font-weight: 300; }
.np-select-options--portal.widget-search-dropdown { position:fixed; z-index:130; margin:0; overflow-y:auto; background:var(--panel-glass); backdrop-filter:var(--panel-blur); -webkit-backdrop-filter:var(--panel-blur); border:0; border-radius:var(--panel-radius); box-shadow:var(--panel-highlight),var(--panel-shadow); color:var(--text-primary); }
.np-select-options--portal .widget-search-item { white-space:nowrap; color:var(--text-primary); }
.np-add-menu .widget-search-item, .np-select-options .widget-search-item { min-height: 42px; font-size: 13px; }
.np-option-check { margin-left: auto; }
.np-add-menu .widget-search-item:focus-visible { outline-offset: -2px; }
.np-page .np-icon-button { align-items: center; justify-content: center; border-radius: 0; }
.np-add-split { border: 0; background: none; border-radius: 7px; gap: 6px; }
.np-add-split .np-split-toggle { border-radius: 7px; }
.np-segment { border: 0; background: none; padding: 0; gap: 6px; }
.np-button, .np-day-add { font-family: var(--font-display); font-weight: 300; }
.np-day-add { border-style: solid; }
.np-main:focus-visible, .np-sidebar:focus-visible { outline: 2px solid var(--np-meeting); outline-offset: -2px; border-radius: 16px; }
@media (min-width:851px) {
  .np-page--calendar { overflow: hidden; }
  .np-page--calendar .np-layout { flex: 1 1 0; min-height: 0; overflow: hidden; align-items: stretch; }
  .np-page--calendar .np-main, .np-page--calendar .np-sidebar {
    min-height: 0; height: 100%; overflow-y: auto; overflow-x: hidden;
    overscroll-behavior-y: contain; scrollbar-width: thin;
    scrollbar-color: #6b747b66 transparent; scrollbar-gutter: stable;
    padding: 2px 6px 22px 2px;
  }
  .np-page--calendar .np-main > *, .np-page--calendar .np-sidebar > * { flex-shrink: 0; }
}
@media (max-width:560px) {
  .np-grid { grid-template-rows: repeat(var(--np-rows),minmax(108px,auto)); }
  .np-grid--week { grid-template-rows: minmax(300px,auto); }
  .np-day { min-height: 108px; padding: 10px 3px; gap: 8px; }
  .np-inline-editor { padding: 18px 14px; }
  .np-inline-editor .np-form-row { grid-template-columns: 1fr; gap: 0; }
  .np-upcoming-row { gap: 8px; }
  .np-upcoming-row > span:first-child { width: 48px; }
}

/* Meetings shares Planner's shell, controls, forms, icons and menu components. */
.nm-page.np-page { display: grid; grid-template-columns: minmax(260px,.95fr) minmax(360px,1.25fr) minmax(285px,1fr); gap: 18px; padding: 14px; overflow: hidden; }
.nm-page .np-card { padding: 24px 20px; min-width: 0; min-height: 0; overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; scrollbar-color: #6b747b66 transparent; overscroll-behavior: contain; }
.nm-page h1 { font: 300 34px/1.2 var(--font-display); letter-spacing: -.04em; margin: 14px 0 8px; }
.nm-page h2 { font-family: var(--font-display); }
.nm-page h3 { font-size: 18px; font-weight: 400; letter-spacing: -.02em; }
.nm-list-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.nm-list-header .np-eyebrow { margin: 0; }
.nm-list-header .np-button { font-size: 12px; padding: 9px 12px; gap: 6px; }
.nm-subtitle { color: var(--np-muted); font-size: 12px; line-height: 1.65; margin-top: 5px; }
.nm-search { display: flex; align-items: center; gap: 10px; padding: 10px 0; margin: 20px 0 12px; border-bottom: 1px solid var(--np-line-soft); color: var(--np-muted); }
.nm-search .np-icon { width: 15px; height: 15px; }
.nm-search input, .nm-ask input { min-width: 0; width: 100%; border: 0; background: transparent; color: var(--np-ink); padding: 5px; font-size: 12px; }
.nm-search input::placeholder, .nm-ask input::placeholder { color: #9da8ae; }
.nm-date-group { margin-top: 26px; }
.nm-date-group h2 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; font-size: 15px; font-weight: 500; padding: 0 5px 14px; }
.nm-date-group h2 span { color: var(--np-muted); font-size: 11px; font-weight: 400; }
.nm-meeting { display: flex; align-items: center; gap: 14px; width: 100%; padding: 19px 12px; text-align: left; border: 1px solid transparent; border-bottom-color: var(--np-line-soft); border-radius: 12px; background: transparent; }
.nm-meeting:hover { background: var(--np-hover); }
.nm-meeting.is-selected { background: #ffffff08; border-color: #ffffff38; box-shadow: inset 0 1px 0 #ffffff08; }
.nm-times { display: flex; flex-direction: column; gap: 10px; font-size: 12px; color: #b2bfc6; align-self: stretch; padding: 4px 14px 4px 0; border-right: 1px solid #ffffff20; }
.nm-meeting-body { flex: 1; min-width: 0; }
.nm-meeting-body > strong { display: block; font-size: 14px; font-weight: 400; line-height: 1.5; overflow-wrap: anywhere; }
.nm-meeting > .np-icon { width: 14px; height: 14px; }
.nm-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 9px 0; }
.nm-tags > span { padding: 3px 8px; border: 1px solid #ffffff20; border-radius: 20px; font-size: 10px; color: #bbc8cf; }
.nm-avatars { display: flex; align-items: center; gap: 3px; }
.nm-avatar { display: grid; place-items: center; flex-shrink: 0; width: 23px; height: 23px; border: 1px solid #ffffff35; border-radius: 50%; overflow: hidden; background: #2b3338; color: #d5dfe4; font: 400 9px var(--font-sans); }
.nm-avatar img { width: 100%; height: 100%; object-fit: cover; }
.nm-avatars small { margin-left: 4px; font-size: 10px; color: var(--np-muted); }
.nm-local-caption { display: block; color: #9ba8af; font-size: 10px; line-height: 1.7; margin-top: 22px; }
.nm-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.nm-detail-head h2 { font: 300 clamp(25px,2vw,36px)/1.2 var(--font-display); letter-spacing: -.04em; overflow-wrap: anywhere; }
.nm-detail-head h2:focus { outline: none; }
.nm-meta { display: flex; flex-wrap: wrap; gap: 7px; font-size: 11px; color: #b4c2ca; line-height: 1.8; margin: 12px 0 22px; }
.nm-tabs { padding-bottom: 18px!important; margin-bottom: 22px; border-bottom: 1px solid var(--np-line-soft)!important; }
.nm-tabs button { min-height: 38px; }
.nm-tabs button span { margin-left: 7px; opacity: .6; }
.nm-section-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 17px; }
.nm-section-head h2 { font-size: 27px; font-weight: 300; }
.nm-section-head > .np-button { flex-shrink: 0; font-size: 12px; padding: 9px 12px; gap: 6px; }
.nm-file-group { margin: 16px 0; border: 1px solid var(--np-line-soft); border-radius: 13px; overflow: hidden; }
.nm-group-toggle { display: flex; align-items: center; gap: 12px; width: 100%; padding: 15px 12px; border: 0; background: #ffffff03; text-align: left; font-size: 12px!important; }
.nm-group-toggle > span { flex: 1; }
.nm-group-toggle small { font-size: 10px; color: var(--np-muted); }
.nm-group-toggle > .np-icon:last-child { width: 14px; }
.nm-group-toggle[aria-expanded="false"] > .np-icon:last-child { transform: rotate(-90deg); }
.nm-file-row { display: flex; align-items: center; gap: 12px; padding: 14px 12px; width: 100%; border: 0; border-top: 1px solid var(--np-line-soft); background: transparent; text-align: left; }
.nm-file-row:hover { background: var(--np-hover); }
.nm-file-type { display: grid; place-items: center; width: 34px; height: 39px; flex-shrink: 0; border: 1px solid #ffffff25; border-radius: 5px; background: #ffffff07; font-size: 9px; letter-spacing: .04em; }
.nm-file-row > span:nth-child(2) { flex: 1; min-width: 0; }
.nm-file-row strong { display: block; font-size: 12px; font-weight: 400; overflow-wrap: anywhere; line-height: 1.5; }
.nm-file-row small { display: block; font-size: 10px; color: var(--np-muted); margin-top: 4px; }
.nm-file-row > .np-icon { width: 13px; }
.nm-file-empty { color: #9ca9b0; padding: 14px; font-size: 11px; line-height: 1.7; border-top: 1px solid var(--np-line-soft); }
.nm-file-preview { padding: 18px; margin-top: 20px; border: 1px solid var(--np-line); border-radius: 13px; }
.nm-file-preview h3 { overflow-wrap: anywhere; font-size: 16px; }
.nm-file-preview pre { white-space: pre-wrap; overflow-wrap: anywhere; font: 12px/1.9 var(--font-sans); color: #bdc9cf; max-height: 380px; overflow: auto; }
.nm-file-preview img, .nm-file-preview video, .nm-file-preview audio { width: 100%; max-height: 300px; object-fit: contain; }
.nm-detail-footer { border-top: 1px solid var(--np-line-soft); padding-top: 24px; margin-top: 28px; }
.nm-delete-confirm { display: flex; flex-wrap: wrap; gap: 10px; font-size: 12px; align-items: center; }
.nm-meeting-form { margin-top: 28px; }
.nm-hint { color: #aebbc2; font-size: 11px; line-height: 1.7; }
.nm-room-header { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; }
.nm-room-header h2 { font-size: 21px; font-weight: 400; }
.nm-room-status { margin-left: auto; color: #afc4bc; font-size: 10px; text-align: right; }
.nm-room-scene { padding: 28px 16px 20px; background: linear-gradient(145deg,#ffffff07,#ffffff01); border: 1px solid var(--np-line-soft); border-radius: 12px; text-align: center; }
.nm-room-avatars { justify-content: center; flex-wrap: wrap; gap: 7px; margin-bottom: 22px; }
.nm-room-avatars .nm-avatar { width: 36px; height: 36px; font-size: 11px; }
.nm-room-scene h3 { font-size: 20px; overflow-wrap: anywhere; }
.nm-room-scene p { font-size: 11px; line-height: 1.8; color: #b2c2cc; margin: 10px 0 18px; }
.nm-room-scene small { display: block; font-size: 10px; color: #9faeb6; line-height: 1.7; margin-top: 13px; }
.nm-participants { padding: 14px 0; font-size: 11px; color: var(--np-muted); }
.nm-participants summary { cursor: pointer; padding: 7px 0; }
.nm-participants > span { display: inline-block; padding: 7px 10px 0 0; }
.nm-agenda { padding: 22px 0; border-block: 1px solid var(--np-line-soft); margin-top: 5px; }
.nm-agenda .nm-section-head h3 { display: flex; gap: 10px; align-items: center; }
.nm-agenda .nm-section-head > span { color: var(--np-muted); font-size: 10px; }
.nm-agenda-row { display: flex; align-items: center; gap: 8px; padding: 11px 0; border-bottom: 1px solid var(--np-line-soft); }
.nm-agenda-row label { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; cursor: pointer; font-size: 12px; line-height: 1.6; }
.nm-agenda-row input { width: 16px; height: 16px; accent-color: #b7c6cd; flex-shrink: 0; }
.nm-agenda-row small { font-size: 10px; color: var(--np-muted); white-space: nowrap; }
.nm-agenda-row .np-icon-button { width: 25px; height: 30px; }
.nm-agenda-row .np-icon { width: 13px; height: 13px; }
.nm-agenda-row .is-done { text-decoration: line-through; color: var(--np-dim); }
.nm-agenda-form { margin-top: 20px; }
.nm-helper { margin-top: 26px; }
.nm-helper-title { display: flex; align-items: center; gap: 13px; }
.nm-helper-actions { display: flex; gap: 10px; flex-wrap: wrap; margin: 20px 0; }
.nm-helper-actions .np-button { flex: 1; font-size: 12px; padding: 10px; }
.nm-ask { display: flex; align-items: center; gap: 7px; border: 1px solid var(--np-line); border-radius: 10px; padding: 9px; }
.nm-answer { font-size: 12px; line-height: 1.8; color: #bdc9d0; margin-top: 17px; overflow-wrap: anywhere; }
.nm-empty { text-align: center; padding: 60px 15px; }
.nm-empty .np-icon { width: 40px; height: 40px; margin-bottom: 20px; }
.nm-empty p { color: var(--np-muted); margin: 18px 0; line-height: 1.8; font-size: 13px; }
.nm-page .np-form-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
.nm-page .np-form-actions { flex-wrap: wrap; }
.nm-page button:disabled { opacity: .4; cursor: default; }
@media (max-width:1250px) {
  .nm-page.np-page { grid-template-columns: minmax(240px,.8fr) minmax(0,1.3fr); overflow-y: auto; align-content: start; }
  .nm-page .np-card { overflow: visible; min-height: auto; }
  .nm-list { grid-column: 1; grid-row: 1 / 3; }
  .nm-detail, .nm-room { grid-column: 2; }
}
@media (max-width:760px) {
  .nm-page.np-page { display: flex; flex-direction: column; padding: 10px; gap: 16px; }
  .nm-page .np-card { flex-shrink: 0; padding: 22px 16px; }
  .nm-list { max-height: 390px; overflow-y: auto!important; }
  .nm-detail-head h2 { font-size: 29px; }
  .nm-section-head { flex-wrap: wrap; }
  .nm-page .np-form-row { grid-template-columns: 1fr; gap: 0; }
  .nm-file-preview { padding: 14px; }
}

/* Progress uses the same np-page, np-card, controls and glass dropdowns. */
.ng-page.np-page { gap: 20px; }
.ng-page > * { flex-shrink: 0; }
.ng-header { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.ng-header h1 { font: 300 clamp(26px,2.1vw,38px)/1.2 var(--font-display); letter-spacing: -.04em; }
.ng-header .np-button { flex-shrink: 0; }
.ng-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding-bottom: 4px; }
.ng-filters { display: flex; flex-wrap: wrap; gap: 12px; }
.ng-filters .np-select { min-width: 165px; margin: 0; }
.ng-data-note { max-width: 380px; color: #b5bfc5; font-size: 11px; line-height: 1.7; text-align: right; }
.ng-data-note span { display: block; font-size: 10px; color: #96a2aa; }
.ng-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.ng-stat.np-card { display: flex; align-items: center; gap: 18px; padding: 22px 18px; text-align: left; min-width: 0; border: 1px solid transparent; }
.ng-stat[aria-pressed="true"] { border-color: #ffffff32; }
.ng-stat:hover { background: var(--np-hover); }
.ng-stat-icon { width: 45px; height: 45px; border-radius: 50%; display: grid; place-items: center; background: #ffffff06; flex-shrink: 0; color: #d2dde3; }
.ng-stat-icon .np-icon { width: 23px; height: 23px; }
.ng-stat-label { display: block; font-size: 12px; color: #b7c1c7; }
.ng-stat strong { display: block; font: 300 30px/1.3 var(--font-display); margin: 3px 0; }
.ng-stat strong small { font-size: 15px; color: #acb7bd; }
.ng-stat-caption { display: block; font-size: 10px; color: #a6b2b9; line-height: 1.6; }
.ng-middle { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(300px,1fr); gap: 18px; }
.ng-page .np-card { padding: 23px; min-width: 0; }
.ng-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.ng-card-head .np-select { width: 150px; flex-shrink: 0; margin-bottom: 0; }
.ng-heading { display: flex; align-items: flex-start; gap: 14px; }
.ng-heading .np-card-icon { flex-shrink: 0; width: 36px; height: 36px; background: #ffffff05; border-radius: 50%; }
.ng-page .ng-heading h2 { font: 400 19px/1.35 var(--font-display); letter-spacing: -.015em; }
.ng-heading p { color: #aab6be; font-size: 11px; line-height: 1.7; margin-top: 4px; }
.ng-chart { margin-top: 18px; color: #d4e0e7; }
.ng-chart svg { display: block; width: 100%; min-height: 190px; max-height: 270px; overflow: visible; }
.ng-chart svg text { fill: #a8b5be; font: 11px var(--font-sans); }
.ng-gridline { stroke: #ffffff0b; stroke-width: 1; }
.ng-trend { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ng-baseline { fill: none; stroke: #c1d0db55; stroke-width: 1.5; stroke-dasharray: 5 6; }
.ng-point { fill: currentColor; stroke: #ffffff32; stroke-width: 5; }
.ng-chart g[role="button"] { cursor: pointer; outline: none; }
.ng-chart g[role="button"]:focus-visible .ng-point { stroke: #ffffff; stroke-width: 7; }
.ng-chart-info { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 8px 0 12px; color: #b1bdc5; font-size: 11px; }
.ng-chart-info strong { color: #e1e9ee; font-weight: 400; margin-left: 10px; }
.ng-chart-info small { margin-left: 10px; color: #99a6af; }
.ng-chart-key { display: flex; gap: 12px; color: #d4e0e7; }
.ng-chart-key > span { color: #9aa8b2; }
.ng-method { border-top: 1px solid var(--np-line-soft); padding-top: 12px; color: #a7b4bd; font-size: 10px; }
.ng-method summary { cursor: pointer; padding: 5px 0; }
.ng-method p { line-height: 1.8; margin-top: 10px; }
.ng-observations { list-style: none; padding: 0; display: grid; gap: 22px; margin: 28px 0; }
.ng-observations li { display: flex; gap: 13px; align-items: flex-start; color: #c0cbd2; font-size: 13px; line-height: 1.7; }
.ng-observations strong { font-weight: 400; color: #e0e8ed; }
.ng-bullet { display: grid; place-items: center; width: 25px; height: 25px; flex-shrink: 0; border: 1px solid #ffffff22; border-radius: 50%; font-size: 9px; color: #acbac4; }
.ng-working footer { border-top: 1px solid var(--np-line-soft); padding-top: 18px; }
.ng-working footer > p:last-child { font-size: 12px; line-height: 1.8; color: #afbdc7; }
.ng-bottom { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.ng-simple-list { display: grid; gap: 15px; list-style: none; padding: 0; margin: 24px 0 0; }
.ng-simple-list li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; font-size: 12px; color: #bac7cf; line-height: 1.6; }
.ng-simple-list strong { font-size: 11px; font-weight: 400; color: #e0e8ed; }
.ng-next-options { display: grid; gap: 8px; margin-top: 20px; }
.ng-next-options button { display: flex; align-items: center; gap: 12px; padding: 9px; min-height: 38px; text-align: left; background: none; border: 1px solid transparent; border-radius: 7px; font-size: 12px!important; }
.ng-next-options button:hover, .ng-next-options button[aria-pressed="true"] { background: #ffffff07; border-color: #ffffff14; }
.ng-next-options .np-icon { width: 16px; height: 16px; }
.ng-reflections { padding-left: 18px; margin: 24px 0 0; display: grid; gap: 15px; font-size: 12px; line-height: 1.7; color: #b6c3cc; }
.ng-reflections li::marker { color: #d4e0e7; }
.ng-intention { display: grid; grid-template-columns: 1.1fr 1.4fr auto; gap: 25px; align-items: center; }
.ng-intention > p { color: #b8c6cf; font-size: 12px; line-height: 1.8; }
.ng-intention > label { display: flex; align-items: center; gap: 10px; font-size: 12px; cursor: pointer; white-space: nowrap; padding: 12px 0; }
.ng-intention input { width: 18px; height: 18px; accent-color: #b9c9d5; }
.ng-history > summary { cursor: pointer; font: 400 16px var(--font-display); }
.ng-history > summary span { margin-left: 14px; font: 11px var(--font-sans); color: #a8b6c0; }
.ng-history-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 15px; margin: 20px 0; }
.ng-history-toolbar p { font-size: 12px; color: #aab9c3; }
.ng-history-scroll { max-height: 300px; overflow: auto; }
.ng-history table { width: 100%; border-collapse: collapse; font-size: 12px; text-align: left; }
.ng-history th, .ng-history td { padding: 12px 8px; border-bottom: 1px solid var(--np-line-soft); }
.ng-history th { color: #aab8c1; font-weight: 400; }
.ng-history td button { background: none; border: 0; text-decoration: underline; text-underline-offset: 4px; padding: 5px 0; }
.ng-empty { text-align: center; padding: 45px 15px; }
.ng-empty > .np-icon { width: 32px; height: 32px; opacity: .6; }
.ng-empty h3 { margin: 16px 0 12px; font: 300 23px var(--font-display); }
.ng-empty p { font-size: 12px; color: var(--np-muted); line-height: 1.8; margin-bottom: 20px; }
.ng-entry { margin-bottom: 0; }
.ng-entry-fields { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 14px; }
.ng-page button:disabled { opacity: .4; cursor: default; }
@media (max-width:1150px) {
  .ng-stats { grid-template-columns: 1fr 1fr; }
  .ng-toolbar { align-items: flex-start; flex-direction: column; gap: 12px; }
  .ng-data-note { text-align: left; max-width: none; }
  .ng-middle { grid-template-columns: 1.5fr 1fr; }
  .ng-card-head { flex-wrap: wrap; }
  .ng-bottom { grid-template-columns: 1fr 1fr; }
  .ng-bottom > :last-child { grid-column: 1 / -1; }
  .ng-intention { grid-template-columns: 1fr 1fr; }
  .ng-entry-fields { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .ng-header { align-items: flex-start; flex-wrap: wrap; }
  .ng-header h1 { font-size: 29px; }
  .ng-middle, .ng-bottom, .ng-intention { grid-template-columns: 1fr; }
  .ng-filters { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .ng-filters .np-select { min-width: 0; }
  .ng-filters .np-select:last-child { grid-column: 1 / -1; }
  .ng-stat.np-card { gap: 10px; padding: 17px 12px; flex-direction: column; align-items: flex-start; }
  .ng-stat-icon { width: 32px; height: 32px; }
  .ng-stat strong { font-size: 26px; }
  .ng-page .np-card { padding: 20px 16px; }
  .ng-entry-fields { grid-template-columns: 1fr 1fr; }
  .ng-entry-fields > :last-child { grid-column: 1 / -1; }
  .ng-intention { gap: 16px; }
  .ng-chart-info { flex-direction: column; }
}

/* Planner: one primary calendar, with details revealed on demand. */
.np-planner .np-header { gap: 16px; }
.np-planner .np-header-actions { padding-top: 0; gap: 12px; }
.np-planner .np-month-title { display: inline-flex; align-items: center; gap: 14px; padding: 0; border: 0; background: none; text-align: left; font: inherit; letter-spacing: inherit; }
.np-planner .np-month-title .np-icon { width: 20px; opacity: .6; }
.np-planner .np-task-total { font-size: 11px; opacity: .65; }
.np-planner .np-layout { grid-template-columns: minmax(0,1fr); }
.np-planner .np-layout--tasks { grid-template-columns: minmax(0,1fr) 310px; }
.np-planner .np-main { gap: 18px; }
.np-planner .np-calendar { background: none; box-shadow: none; border-radius: 0; padding: 0; }
.np-planner .np-calendar-toolbar { padding: 0 0 16px; }
.np-planner .np-range-label { font-size: 13px; color: var(--np-muted); }
.np-planner .np-grid { border-radius: 12px; }
.np-planner .np-day { background: transparent; min-height: 105px; gap: 5px; }
.np-planner .np-day:hover { background: #ffffff08; }
.np-planner .np-day.is-selected { background: #ffffff09; box-shadow: inset 0 0 0 1px #ffffff30; border-radius: 10px; }
.np-planner .np-event { font-size: 11px; }
.np-planner .np-calendar-footer { padding: 16px 3px 4px; }
.np-planner .np-calendar-footer p { display: block; }
.np-planner .np-sidebar { border-left: 1px solid var(--np-line-soft); padding-left: 20px; }
.np-planner .np-tasks { background: none; box-shadow: none; padding: 0 4px; }
.np-planner .np-tasks .np-card-header { justify-content: space-between; }
.np-planner .np-task-tabs button { flex: 1; }
.np-planner .np-task-progress { margin: 16px 0; font-size: 11px; color: var(--np-muted); }
.np-planner .np-task { min-height: 40px; }
.np-planner .np-task-title { font-size: 12px!important; }
.np-planner .np-month-picker { flex-shrink: 0; padding: 16px 0; border-block: 1px solid var(--np-line-soft); }
.np-planner .np-month-picker .np-year-nav { max-width: 190px; margin: 0 0 14px; }
.np-planner .np-month-choices { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 10px; }
.np-planner .np-month-choices button { padding-inline: 8px; }
.np-planner .np-month-choices [aria-pressed=true] { background: #ffffff14; }
.np-planner .np-daily-layout { grid-template-columns: minmax(0,1fr) 290px; gap: 32px; }
.np-planner .np-daily-tasks { background: none; border-radius: 0; border-left: 1px solid var(--np-line-soft); padding: 0 0 0 24px; }
.np-planner .np-day-event { background: none; border: 0; border-bottom: 1px solid var(--np-line-soft); border-radius: 0; padding: 12px 0 20px; }
.np-planner .np-day-event:hover { background: #ffffff04; }
.np-planner .np-edit-event { display: none; }
.np-planner .np-day-event strong { font-size: 17px; }
.np-planner .np-day-event p { margin-top: 7px; }
@media (max-width: 1000px) {
 .np-planner .np-layout--tasks { grid-template-columns: minmax(0,1fr) 260px; }
 .np-planner .np-daily-layout { grid-template-columns: minmax(0,1fr); }
 .np-planner .np-daily-tasks { border-left: 0; border-top: 1px solid var(--np-line-soft); padding: 24px 0 0; }
}
@media (max-width: 850px) {
 .np-planner .np-layout--tasks { grid-template-columns: minmax(0,1fr); }
 .np-planner .np-sidebar { display: block; border-left: 0; border-top: 1px solid var(--np-line-soft); padding: 24px 0 0; }
 .np-planner .np-month-choices { grid-template-columns: repeat(3,minmax(0,1fr)); }
 .np-planner .np-header { flex-wrap: wrap; }
 .np-planner .np-header-actions { width: 100%; justify-content: flex-start; }
}
@media (max-width: 560px) {
 .np-planner .np-day { padding: 10px 4px; min-height: 88px; }
 .np-planner .np-event { font-size: 9px; }
 .np-planner .np-calendar-controls { width: auto; }
 .np-planner .np-calendar-toolbar { gap: 10px; }
}

/* Minimal Meetings: a quiet index and one active workspace. */
.nm-page.np-page { grid-template-columns: 300px minmax(0,1fr); gap: 0; padding: 26px; }
.nm-page .np-card { background: none; box-shadow: none; border-radius: 0; padding: 0; }
.nm-page .nm-list { grid-column: 1; grid-row: auto; border-right: 1px solid var(--np-line-soft); padding-right: 24px; }
.nm-page .nm-detail { grid-column: 2; padding-left: 32px; }
.nm-page .nm-list-header { flex-wrap: wrap; }
.nm-page .nm-date-group h2 { font-size: 12px; gap: 4px; padding-bottom: 8px; }
.nm-page .nm-date-group h2 span { display: block; width: 100%; font-size: 10px; }
.nm-page .nm-meeting { padding: 15px 8px; gap: 10px; border-radius: 8px; }
.nm-page .nm-meeting.is-selected { border-color: transparent; background: #ffffff09; box-shadow: none; }
.nm-page .nm-meeting-body > strong { font-size: 13px; }
.nm-page .nm-times { border: 0; padding: 2px 0; font-size: 11px; gap: 5px; }
.nm-page .nm-times > span { opacity: .6; }
.nm-page .nm-tags { margin: 4px 0 0; }
.nm-page .nm-tags > span { padding: 0; border: 0; font-size: 10px; }
.nm-page .nm-detail-head h2 { font-size: clamp(25px,2.2vw,36px); }
.nm-page .nm-content-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--np-line-soft); margin-bottom: 24px; padding-bottom: 16px; }
.nm-page .nm-tabs { margin: 0; padding-bottom: 0!important; border-bottom: 0!important; }
.nm-page .nm-utilities { display: flex; gap: 8px; }
.nm-page .nm-utilities .np-button { padding: 8px 12px; font-size: 12px; min-height: 38px; }
.nm-page .nm-utilities [aria-pressed=true] { background: #ffffff14; }
.nm-page .nm-agenda { border: 0; margin: 0; padding: 0; }
.nm-page .nm-agenda-row { padding: 17px 0; }
.nm-page .nm-agenda-row label { font-size: 14px; }
.nm-page .nm-helper { margin: 0; max-width: 680px; }
.nm-page .nm-file-group { border: 0; border-bottom: 1px solid var(--np-line-soft); border-radius: 0; }
.nm-page .nm-group-toggle { background: none; padding-inline: 0; }
.nm-page .nm-file-row { padding-inline: 0; }
.nm-page .nm-file-row strong { font-size: 13px; }
.nm-page .nm-room-inline { max-width: 720px; }
.nm-page .nm-room-scene { background: none; border: 0; padding: 24px 0; }
.nm-page .nm-options { position: relative; flex-shrink: 0; }
.nm-page .nm-options summary { cursor: pointer; list-style: none; padding: 10px; min-width: 38px; text-align: center; border-radius: 7px; color: var(--np-muted); }
.nm-page .nm-options summary::-webkit-details-marker { display: none; }
.nm-page .nm-options summary:focus-visible { outline: 2px solid var(--np-meeting); }
.nm-page .nm-options .widget-search-dropdown { left: auto; right: 0; width: 180px; font-family: var(--font-display); }
.nm-page .nm-options:not([open]) .widget-search-dropdown { display: none; }
.nm-page .nm-notes textarea { min-height: 320px; background: #0000000a; }
@media (min-width:761px) {
 .nm-page.np-page { overflow: hidden; align-content: stretch; }
 .nm-page .np-card { overflow-y: auto; min-height: 0; }
}
@media (max-width:1000px) and (min-width:761px) {
 .nm-page.np-page { grid-template-columns: 240px minmax(0,1fr); padding: 20px; }
 .nm-page .nm-list { padding-right: 16px; }
 .nm-page .nm-detail { padding-left: 20px; }
}
@media (max-width:760px) {
 .nm-page.np-page { padding: 20px 16px; gap: 24px; overflow-y: auto; }
 .nm-page .nm-list { max-height: 290px; padding: 0 0 20px; border-right: 0; border-bottom: 1px solid var(--np-line-soft); }
 .nm-page .nm-detail { padding: 0; }
 .nm-page .nm-date-group { margin-top: 18px; }
 .nm-page .nm-search { margin-top: 12px; }
 .nm-page .nm-tabs button { min-width: 60px; padding-inline: 12px; }
}
.nm-page { color-scheme: dark; }
.nm-page .nm-options .widget-search-item { min-height: 42px; }
/* Clear meeting workspace and a full month overview share the widget material. */
.nm-page.np-page { grid-template-columns: 260px minmax(0,1fr) 250px; grid-template-rows: auto minmax(0,1fr); gap: 20px; padding: 24px; }
.nm-page-header { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-bottom: 4px; }
.nm-page-header h1 { font-size: clamp(23px,2.2vw,32px); font-weight: 400; margin: 7px 0 0; }
.nm-view-actions,.nm-board-toolbar,.nm-board-toolbar>div { display: flex; align-items: center; gap: 12px; }
.nm-page .np-card { border: 1px solid var(--np-line-soft); border-radius: 16px; padding: 20px; background: var(--np-card-surface, #ffffff03); }
.nm-page .nm-list { grid-column: 1; grid-row: 2; padding: 18px 12px; }
.nm-page .nm-list-header { padding: 0 6px; }
.nm-list-header h2,.nm-context h2 { font-size: 18px; font-weight: 400; margin: 0; }
.nm-page .nm-detail { grid-column: 2; grid-row: 2; padding: 24px; }
.nm-page .nm-detail:has(.nm-meeting-form),.nm-page .nm-detail:has(.nm-empty) { grid-column: 2 / -1; }
.nm-page .nm-meeting { padding: 16px 10px; margin-bottom: 8px; border: 1px solid transparent; }
.nm-page .nm-meeting.is-selected { border-color: var(--np-line); background: #ffffff09; }
.nm-page .nm-times { border-right: 1px solid var(--np-line-soft); padding-right: 10px; }
.nm-page .nm-meeting-body > strong { font-size: 14px; line-height: 1.5; }
.nm-page .nm-date-group h2 { font-size: 14px; }
.nm-page .nm-date-group h2 span { font-size: 11px; }
.nm-page .nm-content-toolbar { margin-top: 22px; }
.nm-page .nm-file-group { border: 1px solid var(--np-line-soft); border-radius: 12px; margin-bottom: 16px; padding: 0 14px; }
.nm-context { grid-column: 3; grid-row: 2; }
.nm-context header { display: flex; align-items: center; gap: 10px; }
.nm-context header svg { width: 20px; height: 20px; }
.nm-context h3 { font-size: 15px; font-weight: 500; line-height: 1.5; margin: 12px 0 8px; }
.nm-context p { font-size: 12px; color: var(--np-muted); line-height: 1.8; margin: 8px 0 16px; }
.nm-context .nm-context-status { margin: 24px 0 0; }
.nm-context .np-button { width: 100%; justify-content: center; }
.nm-context section { margin-top: 24px; padding-top: 12px; border-top: 1px solid var(--np-line-soft); }
.nm-context h3>span { color: var(--np-muted); margin-left: 8px; }
.nm-context-people { display: grid; gap: 10px; }
.nm-context-people>span { display: flex; gap: 10px; align-items: center; font-size: 12px; }
.nm-context-people .nm-avatar { width: 28px; height: 28px; margin: 0; font-size: 10px; }
.nm-page.nm-month-view { grid-template-columns: minmax(0,1fr); }
.nm-month-board { min-height: 0; overflow-y: auto; grid-column: 1 / -1; grid-row: 2; padding-right: 4px; }
.nm-board-toolbar { justify-content: space-between; padding: 0 0 20px; }
.nm-board-toolbar h2 { font-size: 21px; font-weight: 400; margin: 0 0 0 4px; }
.nm-month-total { color: var(--np-muted); font-size: 12px; }
.nm-board-weekdays,.nm-board-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); }
.nm-board-weekdays { padding: 8px 0 12px; font-size: 12px; color: var(--np-muted); text-align: center; }
.nm-board-grid { border-top: 1px solid var(--np-line); border-left: 1px solid var(--np-line); }
.nm-board-day { min-height: 64px; padding: 6px 8px; border-right: 1px solid var(--np-line); border-bottom: 1px solid var(--np-line); min-width: 0; }
.nm-board-day.is-outside { background: #00000008; }
.nm-board-day.is-outside>time { opacity: .4; }
.nm-board-day>time { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 26px; font-size: 12px; margin-bottom: 6px; border-radius: 50%; }
.nm-board-day>time[aria-current=date] { background: #ffffff18; outline: 1px solid var(--np-line); }
.nm-board-meeting { display: block; width: 100%; text-align: left; margin-top: 4px; padding: 4px 6px; border-radius: 6px; background: #ffffff09; border: 1px solid var(--np-line-soft); border-left: 2px solid var(--np-muted); min-height: 36px; }
.nm-board-meeting:hover { background: #ffffff14; }
.nm-board-meeting>span { display: block; font-size: 10px; color: var(--np-muted); }
.nm-board-meeting>strong { display: block; font-size: 12px; font-weight: 400; line-height: 1.45; overflow-wrap: anywhere; margin-top: 3px; }
@media(max-width:1199px) { .nm-page.np-page:not(.nm-month-view) { grid-template-columns: 240px minmax(0,1fr); } .nm-context { grid-column: 2; grid-row: 3; } .nm-page.np-page:not(.nm-month-view) { overflow-y: auto; grid-template-rows: auto minmax(420px,auto) auto; } .nm-page .nm-context { overflow: visible; } .nm-context-people { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media(max-width:760px) { .nm-page.np-page:not(.nm-month-view) { grid-template-columns: minmax(0,1fr); grid-template-rows: auto auto auto auto; } .nm-page-header { flex-wrap: wrap; gap: 16px; } .nm-view-actions { flex-wrap: wrap; width: 100%; justify-content: space-between; gap: 8px; } .nm-page .nm-list { grid-column: 1; grid-row: 2; max-height: 280px; } .nm-page .nm-detail,.nm-page .nm-detail:has(.nm-meeting-form),.nm-page .nm-detail:has(.nm-empty) { grid-column: 1; grid-row: 3; } .nm-page .nm-context { grid-column: 1; grid-row: 4; } .nm-page.nm-month-view { padding: 16px 8px; gap: 20px; } .nm-month-view .nm-page-header { padding-inline: 8px; } .nm-board-toolbar { flex-wrap: wrap; gap: 12px; } .nm-board-toolbar h2 { font-size: 17px; } .nm-board-day { padding: 6px 2px; min-height: 95px; } .nm-board-meeting { padding: 6px 3px; } .nm-board-meeting>span { font-size: 9px; overflow-wrap: anywhere; } .nm-board-meeting>strong { font-size: 10px; } .nm-board-weekdays { font-size: 10px; } .nm-context-people { grid-template-columns: repeat(2,minmax(0,1fr)); } }

/* Progress: a data-driven, pearl-glass bloom within the original Neura material. */
.ng-growth-layout { display: grid; grid-template-columns: minmax(0,2fr) minmax(0,1fr); gap: 18px; }
.ng-growth-side { display: grid; gap: 16px; align-content: start; }
.ng-growth-side .ng-working footer { display: none; }
.ng-growth-side .ng-observations { margin-top: 18px; gap: 14px; }
.ng-growth-side .ng-observations li { font-size: 12px; }
.ng-growth-side .ng-heading h2 { font-size: 17px; }
.ng-bloom-card { position: relative; overflow: hidden; display: flex; flex-direction: column; }
.ng-bloom-card .ng-card-head { flex-wrap: wrap; gap: 14px; }
.ng-growth-badge { font-size: 18px; padding: 10px 14px; border: 1px solid var(--np-line-soft); border-radius: 12px; }
.ng-growth-badge small { display: block; font-size: 10px; color: var(--np-muted); margin-top: 4px; }
.ng-bloom-stage { display: grid; grid-template-columns: minmax(0,1fr) 150px; align-items: center; flex: 1; min-height: 355px; }
.ng-bloom-art { position: relative; color: var(--np-text); min-width: 0; }
.ng-bloom-art svg { width: 100%; height: auto; display: block; overflow: visible; filter: drop-shadow(0 0 12px #ffffff12); }
.ng-growing-flower { transition: transform 900ms ease; }
.ng-bloom-before,.ng-bloom-now { position: absolute; font-size: 11px; text-align: center; }
.ng-bloom-before { left: 8%; bottom: 9%; color: var(--np-muted); }
.ng-bloom-now { right: 11%; bottom: 0; }
.ng-bloom-before small,.ng-bloom-now small { display: block; font-size: 10px; color: var(--np-muted); margin-top: 5px; }
.ng-growth-metrics { display: grid; gap: 24px; padding: 15px 0 15px 18px; border-left: 1px solid var(--np-line-soft); }
.ng-growth-metric>div { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 5px; font-size: 12px; }
.ng-growth-metric strong { font-size: 11px; font-weight: 400; color: var(--np-muted); }
.ng-growth-metric meter { appearance: none; display: block; width: 100%; height: 5px; background: #ffffff0e; border: 0; border-radius: 10px; margin: 10px 0 6px; }
.ng-growth-metric meter::-webkit-meter-bar { border: 0; background: #ffffff0e; height: 5px; border-radius: 10px; }
.ng-growth-metric meter::-webkit-meter-optimum-value { background: var(--np-muted); border-radius: 10px; }
.ng-growth-metric meter::-moz-meter-bar { background: var(--np-muted); border-radius: 10px; }
.ng-growth-metric small { font-size: 10px; color: var(--np-muted); }
.ng-bloom-caption { margin-top: 18px; text-align: center; border-top: 1px solid var(--np-line-soft); padding-top: 16px; }
.ng-bloom-caption p { font-size: 16px; font-style: italic; font-weight: 300; margin: 0 0 8px; }
.ng-bloom-caption>span { display: block; font-size: 10px; color: var(--np-muted); line-height: 1.7; }
.ng-bloom-caption button { margin-top: 14px; font-size: 11px; }
.ng-condition-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.ng-condition-tags span { font-size: 11px; border: 1px solid var(--np-line-soft); padding: 7px 10px; border-radius: 20px; color: var(--np-muted); }
.ng-trend-detail { scroll-margin-top: 20px; }
.ng-page .ng-next-options button[aria-pressed=true] { background: #ffffff0d; border-color: var(--np-line); }
@media(min-width:1500px) { .ng-bloom-stage { min-height: 400px; grid-template-columns: minmax(0,1fr) 185px; } }
@media(max-width:1100px) { .ng-growth-layout { grid-template-columns: minmax(0,1fr); } .ng-growth-side { grid-template-columns: repeat(2,minmax(0,1fr)); } .ng-conditions { grid-column: 1 / -1; } }
@media(max-width:560px) { .ng-growth-side { grid-template-columns: minmax(0,1fr); } .ng-bloom-stage { grid-template-columns: minmax(0,1fr); min-height: 0; } .ng-growth-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); border-left: 0; padding: 22px 0 0; gap: 18px; } .ng-bloom-art { margin-block: 16px 10px; } .ng-growth-badge { font-size: 15px; } }
@media(prefers-reduced-motion:reduce) { .ng-growing-flower { transition: none; } }

/* Generated glass botanical artwork; transparent pixels preserve Neura's material. */
.ng-generated-bloom { position: relative; width: 100%; aspect-ratio: 1.15; isolation: isolate; }
.ng-generated-bloom img { position: absolute; bottom: 4%; width: 76%; height: 100%; object-fit: contain; object-position: center bottom; transform-origin: 50% 96%; transition: transform 900ms ease, opacity 400ms ease; }
.ng-generated-previous { left: -14%; opacity: .24; filter: saturate(.65); z-index: 0; }
.ng-generated-current { right: -1%; z-index: 1; }
.ng-generated-current.is-awaiting { opacity: .16; }
.ng-bloom-art .ng-bloom-before { left: 3%; bottom: 0; }
.ng-bloom-art .ng-bloom-now { right: 7%; bottom: -2%; }
@media(prefers-reduced-motion:reduce) { .ng-generated-bloom img { transition: none; } }

/* Gentle ambient motion keeps the data scale independent from the breeze. */
.ng-generated-bloom .ng-generated-current { position: absolute; bottom: 4%; right: -1%; width: 76%; height: 100%; transform-origin: 50% 96%; transition: transform 900ms ease, opacity 400ms ease; overflow: visible; filter: none; }
.ng-wind-plant { transform-box: view-box; transform-origin: 56% 73.46648%; animation: ng-bloom-breeze 11s ease-in-out infinite; animation-play-state: paused; }
.ng-bloom-aura { position: absolute; pointer-events: none; left: 49%; top: 30%; width: 26%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(ellipse,rgba(255,220,153,.14),rgba(255,232,196,.035) 42%,transparent 70%); opacity: .5; animation: ng-bloom-breathe 6s ease-in-out infinite; animation-play-state: paused; z-index: 2; }
.ng-live-motes { position: absolute; inset: 0; pointer-events: none; z-index: 2; }
.ng-live-motes i { position: absolute; left: var(--mote-x); top: var(--mote-y); width: 2px; height: 2px; border-radius: 50%; background: #ffe4b5; box-shadow: 0 0 6px 1px #ffd68a66; opacity: 0; animation: ng-bloom-drift var(--mote-duration) ease-in-out var(--mote-delay) infinite; animation-play-state: paused; }
.ng-generated-bloom.is-living .ng-wind-plant,.ng-generated-bloom.is-living .ng-bloom-aura,.ng-generated-bloom.is-living .ng-live-motes i { animation-play-state: running; }
.ng-motion-toggle { position: absolute; right: 0; top: 4px; z-index: 3; opacity: .65; }
.ng-motion-toggle:hover,.ng-motion-toggle:focus-visible { opacity: 1; }
.ng-motion-toggle svg { width: 16px!important; height: 16px!important; fill: none; stroke: currentColor; stroke-width: 1.5; filter: none!important; }
@keyframes ng-bloom-breeze { 0%,100% { transform: skewX(-.3deg); } 18% { transform: skewX(1.5deg); } 31% { transform: skewX(.8deg); } 46% { transform: skewX(1.9deg); } 65% { transform: skewX(-.9deg); } 80% { transform: skewX(-.45deg); } 90% { transform: skewX(-.7deg); } }
@keyframes ng-bloom-breathe { 0%,100% { opacity: .3; scale: .94; } 50% { opacity: .8; scale: 1.06; } }
@keyframes ng-bloom-drift { 0% { opacity: 0; transform: translate(0,14px); } 25% { opacity: .55; } 65% { opacity: .3; } 100% { opacity: 0; transform: translate(12px,-26px); } }
body:not([data-space="progress"]) .ng-generated-bloom * { animation-play-state: paused!important; }
@media(prefers-reduced-motion:reduce) { .ng-wind-plant,.ng-bloom-aura,.ng-live-motes i { animation: none!important; } .ng-generated-bloom .ng-generated-current { transition: none; } .ng-live-motes,.ng-motion-toggle { display: none; } }

/* A self-contained night garden matches the reference within the Neura shell. */
.ng-page .ng-bloom-card { background: linear-gradient(180deg,rgba(3,10,15,.30),rgba(3,10,15,.06) 55%,rgba(2,8,12,.64)),url('../assets/progress/growth-pond-final.png') center bottom / cover no-repeat; border: 1px solid rgba(174,194,199,.23); border-radius: 18px; box-shadow: inset 0 1px 0 #ffffff06; padding: 22px 24px 18px; color: #e3e9ea; }
.ng-bloom-card .ng-heading p { max-width: 350px; color: #acbac2; }
.ng-bloom-card .ng-card-head { position: relative; z-index: 2; }
.ng-bloom-card .np-card-icon { background: #92d1b212; color: #a6debf; }
.ng-bloom-card .ng-growth-badge { background: #0d171d70; border-color: #9db8bd26; color: #b9e4cd; font-size: 19px; }
.ng-bloom-card .ng-bloom-stage { min-height: 400px; grid-template-columns: minmax(0,1fr) 165px; align-items: center; }
.ng-bloom-card .ng-bloom-art { align-self: stretch; display: flex; align-items: flex-end; padding-bottom: 4px; }
.ng-bloom-card .ng-generated-bloom { aspect-ratio: 1.04; }
.ng-bloom-card .ng-generated-previous { opacity: .22; }
.ng-bloom-card .ng-growth-metrics { padding: 12px 0 12px 42px; position: relative; gap: 24px; background: linear-gradient(90deg,transparent,#06101775); border-color: #adc8d325; }
.ng-bloom-card .ng-growth-metric { position: relative; --growth-accent: #a8d9bd; }
.ng-bloom-card .ng-growth-metric[data-metric=consistency] { --growth-accent: #9fc6e3; }
.ng-bloom-card .ng-growth-metric[data-metric=completion] { --growth-accent: #bfafe1; }
.ng-metric-emblem { position: absolute; left: -34px; top: 1px; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #d7e8e810; color: var(--growth-accent); }
.ng-metric-emblem .np-icon { width: 17px; height: 17px; }
.ng-bloom-card .ng-growth-metric meter::-webkit-meter-optimum-value { background: var(--growth-accent); box-shadow: 0 0 6px color-mix(in srgb,var(--growth-accent),transparent 50%); }
.ng-bloom-card .ng-growth-metric meter::-moz-meter-bar { background: var(--growth-accent); }
.ng-bloom-card .ng-growth-metric small,.ng-bloom-card .ng-growth-metric strong { color: #b5c4cb; }
.ng-bloom-card .ng-bloom-caption { border-top: 0; padding: 16px 0 0; margin-top: 8px; background: linear-gradient(180deg,transparent,#02080b36); }
.ng-bloom-card .ng-bloom-caption>span { letter-spacing: .22em; font-size: 9px; color: #a5b2bc; }
.ng-bloom-card .ng-bloom-caption p { font-size: 17px; color: #dde6e9; }
.ng-bloom-card .ng-bloom-before,.ng-bloom-card .ng-bloom-now { color: #d7e0e3; text-shadow: 0 2px 8px #000; }
.ng-bloom-card .ng-bloom-before small,.ng-bloom-card .ng-bloom-now small { color: #a9b7bf; }
.ng-bloom-card .ng-bloom-before { bottom: 4%; }
.ng-bloom-card .ng-bloom-now { bottom: 1%; }
.ng-bloom-card .ng-motion-toggle { top: 10px; }
@media(min-width:1500px) { .ng-bloom-card .ng-bloom-stage { min-height: 430px; } }
@media(max-width:560px) { .ng-page .ng-bloom-card { padding: 18px 14px; background-position: 45% center; } .ng-bloom-card .ng-bloom-stage { min-height: 0; grid-template-columns: minmax(0,1fr); } .ng-bloom-card .ng-growth-metrics { padding: 20px 0 12px 34px; gap: 20px 42px; background: #030b1080; border-top: 1px solid #ffffff12; } .ng-bloom-card .ng-generated-bloom { aspect-ratio: 1.04; } .ng-bloom-card .ng-bloom-art { min-height: 290px; } }



/* Water-only reflected light: the shore and rocky base stay anchored. */
.ng-bloom-card { isolation: isolate; }
.ng-bloom-card > .ng-card-head,.ng-bloom-card > .ng-bloom-stage,.ng-bloom-card > .ng-bloom-caption { position: relative; z-index: 1; }
.ng-water-life { position: absolute; inset: 73% 0 0; z-index: 0; pointer-events: none; overflow: hidden; border-radius: 0 0 18px 18px; mask-image: linear-gradient(transparent,#000 22%,#000 80%,transparent); }
.ng-water-sheen { position: absolute; inset: -10% -8%; background: repeating-linear-gradient(178deg,transparent 0 9px,rgba(181,211,221,.13) 10px,transparent 12px 23px),radial-gradient(ellipse at 52% 28%,rgba(243,210,140,.13),transparent 48%); opacity: .35; animation: ng-water-shimmer 9s ease-in-out infinite; animation-play-state: paused; }
.ng-water-ripple { position: absolute; left: 23%; top: 28%; width: 53%; height: 17%; border: 1px solid rgba(177,205,214,.2); border-radius: 50%; opacity: 0; animation: ng-water-ring 10s ease-out infinite; animation-play-state: paused; }
.ng-water-ripple-two { left: 16%; top: 43%; width: 40%; height: 13%; animation-delay: -3.5s; animation-duration: 12s; }
.ng-water-ripple-three { left: 49%; top: 20%; width: 29%; height: 11%; border-color: rgba(232,207,150,.17); animation-delay: -7s; animation-duration: 13s; }
.ng-scene-live .ng-water-life span { animation-play-state: running; }
@keyframes ng-water-shimmer { 0%,100% { transform: translate(-4px,0) scaleX(1); opacity: .28; } 45% { transform: translate(6px,3px) scaleX(1.035); opacity: .48; } 75% { transform: translate(1px,-1px) scaleX(1.015); opacity: .36; } }
@keyframes ng-water-ring { 0% { transform: scale(.62); opacity: 0; } 18% { opacity: .45; } 100% { transform: scale(1.5,1.25); opacity: 0; } }
body:not([data-space="progress"]) .ng-water-life span { animation-play-state: paused!important; }
@media(prefers-reduced-motion:reduce) { .ng-water-life { display: none; } }

/* Keep animation paint inside this card, following widget offscreen pausing. */
.ng-bloom-card { contain: layout paint; }
.ng-bloom-card.ng-scene-suspended .ng-wind-plant,
.ng-bloom-card.ng-scene-suspended .ng-bloom-aura,
.ng-bloom-card.ng-scene-suspended .ng-live-motes i,
.ng-bloom-card.ng-scene-suspended .ng-water-life span { animation-play-state: paused!important; }
.ng-scene-live:not(.ng-scene-suspended) .ng-wind-plant,
.ng-scene-live:not(.ng-scene-suspended) .ng-water-sheen { will-change: transform; }
@media(prefers-reduced-motion:reduce) { .ng-scene-live .ng-wind-plant,.ng-scene-live .ng-water-sheen { will-change: auto; } }

.ng-growth-main { min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.ng-growth-main > .ng-bloom-card { flex: 1; }
.ng-page .ng-growth-summary { margin: 0; padding: 20px 24px; border-top: 0; text-align: center; }
.ng-growth-summary > span { font-size: 9px; letter-spacing: .22em; }
.ng-growth-summary p { margin: 0 0 8px; font-size: 17px; }
.ng-growth-summary .np-button { margin-top: 14px; }

/* Move the actual pond texture, not just a barely visible light overlay. */
.ng-water-surface { position: absolute; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(180deg,rgba(3,10,15,.30),rgba(3,10,15,.06) 55%,rgba(2,8,12,.64)),url('../assets/progress/growth-pond-final.png') center bottom / cover no-repeat; clip-path: inset(73% 0 0); mask-image: linear-gradient(transparent 73%,#000 79%); transform-origin: 50% 88%; animation: ng-pond-flow 7s ease-in-out infinite; animation-play-state: paused; }
.ng-scene-live:not(.ng-scene-suspended) .ng-water-surface { animation-play-state: running; will-change: transform; }
.ng-water-life { z-index: 1; }
.ng-water-sheen { opacity: .65; }
@keyframes ng-pond-flow { 0%,100% { transform: translate3d(-5px,0,0) scale(1.035,1.015) skewX(-.8deg); } 32% { transform: translate3d(4px,2px,0) scale(1.055,1.025) skewX(.5deg); } 67% { transform: translate3d(7px,-1px,0) scale(1.025,1.01) skewX(.9deg); } }
@keyframes ng-water-shimmer { 0%,100% { transform: translate(-6px,0) scaleX(1); opacity: .4; } 45% { transform: translate(9px,4px) scaleX(1.055); opacity: .7; } 75% { transform: translate(2px,-2px) scaleX(1.02); opacity: .5; } }
body:not([data-space="progress"]) .ng-water-surface,.ng-scene-suspended .ng-water-surface { animation-play-state: paused!important; }
@media(prefers-reduced-motion:reduce) { .ng-water-surface { display: none; } }

/* Immersive Progress: one expansive garden, insights inside, metrics below. */
.ng-growth-layout { display: block; }
.ng-page .ng-immersive-scene { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,31%); grid-template-rows: auto minmax(0,1fr); column-gap: clamp(20px,3vw,52px); row-gap: 12px; min-height: max(620px,calc(100dvh - 180px)); padding: clamp(24px,3vw,46px); background-position: center bottom; }
.ng-immersive-scene > .ng-card-head { grid-column: 1 / -1; grid-row: 1; flex-wrap: nowrap; align-items: flex-start; }
.ng-immersive-scene .ng-heading h1 { font: 300 clamp(30px,3vw,48px)/1.12 var(--font-display); letter-spacing: -.035em; margin: 8px 0 10px; }
.ng-immersive-scene .ng-heading .np-eyebrow { font-size: 10px; margin: 0; letter-spacing: .22em; }
.ng-immersive-scene .ng-card-head > .ng-heading > .np-card-icon { display: none; }
.ng-immersive-scene .ng-card-head .ng-heading p { max-width: none; }
.ng-immersive-scene > .ng-bloom-stage { grid-column: 1; grid-row: 2; display: flex; flex-direction: column; min-height: 0; }
.ng-immersive-scene .ng-bloom-art { width: 100%; flex: 1; min-height: 340px; margin: 0; padding: 0; }
.ng-immersive-scene .ng-generated-bloom { height: 100%; min-height: 350px; aspect-ratio: auto; }
.ng-immersive-scene .ng-generated-current { width: 100%; right: 0; bottom: 0; height: 100%; transform-origin: 50% 96%; }
.ng-immersive-scene .ng-bloom-aura { left: 35%; top: 23%; }
.ng-immersive-scene .ng-bloom-now { right: 3%; bottom: 12%; }
.ng-immersive-scene .ng-growth-metrics { width: 100%; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 25px; padding: 18px 0 0; margin-top: 8px; border-left: 0; border-top: 1px solid #adc8d321; background: none; }
.ng-immersive-scene .ng-metric-emblem { display: none; }
.ng-immersive-scene .ng-growth-metric>div { flex-direction: column; gap: 5px; }
.ng-immersive-scene > .ng-growth-side { position: relative; z-index: 2; grid-column: 2; grid-row: 2; display: flex; flex-direction: column; gap: 18px; align-self: center; padding-block: 12px; }
.ng-immersive-scene .ng-growth-side > .np-card { padding: clamp(18px,1.7vw,28px); background: var(--neura-widget-surface); backdrop-filter: var(--neura-widget-blur); -webkit-backdrop-filter: var(--neura-widget-blur); border: 1px solid var(--np-line-soft); border-radius: 16px; }
.ng-immersive-scene .ng-growth-side .ng-heading { gap: 10px; }
.ng-immersive-scene .ng-growth-side h2 { font-size: clamp(16px,1.4vw,21px); }
.ng-immersive-scene .ng-growth-side .ng-observations { gap: 12px; margin-block: 18px 0; }
.ng-immersive-scene .ng-growth-side .ng-observations li { font-size: 12px; line-height: 1.7; }
.ng-immersive-scene .ng-next-options { margin-top: 14px; }
.ng-immersive-scene .ng-next-options button { font-size: 12px; min-height: 42px; }
.ng-page > .ng-toolbar { margin-top: 4px; }
.ng-page > .ng-conditions .ng-condition-tags { margin-top: 12px; }
@media(min-width:1600px) { .ng-immersive-scene .ng-generated-bloom { min-height: 450px; } }
@media(max-width:1000px) { .ng-page .ng-immersive-scene { grid-template-columns: minmax(0,1fr); min-height: 0; padding: 24px; } .ng-immersive-scene > .ng-card-head { grid-column: 1; flex-wrap: wrap; } .ng-immersive-scene > .ng-growth-side { grid-column: 1; grid-row: 3; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-self: auto; } .ng-immersive-scene .ng-generated-bloom { height: 400px; } }
@media(max-width:560px) { .ng-page .ng-immersive-scene { padding: 20px 14px; } .ng-immersive-scene > .ng-growth-side { grid-template-columns: minmax(0,1fr); } .ng-immersive-scene .ng-growth-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; } .ng-immersive-scene .ng-generated-bloom { height: 340px; min-height: 340px; } .ng-immersive-scene .ng-bloom-now { right: 0; bottom: 2%; } }
.nc-unified-calendar { height:100%; min-height:0; }
.nc-unified-calendar > .np-page { height:100%; }
.nc-unified-calendar > .np-page { scroll-padding-bottom:84px; }
.np-day { cursor:default; }
.np-day .np-calendar-day-open { display:flex; align-items:center; gap:6px; width:100%; min-height:28px; padding:0; border:0; background:transparent; color:inherit; text-align:left; font:inherit; cursor:pointer; }
.np-day button.np-event { width:100%; min-height:28px; padding:4px 3px; border:0; background:transparent; color:inherit; font-size:12px; text-align:left; cursor:pointer; border-radius:5px; }
.np-day button.np-event:hover,.np-day .np-calendar-day-open:hover { background:#ffffff0a; }
.np-day button:focus-visible { outline:2px solid var(--np-muted); outline-offset:1px; }
.np-day button.np-more { border:0; background:transparent; color:var(--np-muted); text-align:left; cursor:pointer; }
.np-type-task .np-dot { background:var(--np-muted); border-radius:2px; }
.nc-unified-calendar { min-width:0; width:100%; overflow:hidden; }
.nc-unified-calendar .np-header-actions { flex-wrap:wrap; min-width:0; gap:10px; }
@media(max-width:850px) { .nc-unified-calendar .np-header-actions { justify-content:flex-start; } .nc-unified-calendar .np-header-actions .np-button { min-width:0; } }
/* Unfinished: reference landscape, Neura typography and shared widget material. */
.nu-page { display:grid; grid-template-columns:minmax(0,3fr) minmax(290px,1fr); align-items:start; gap:24px; padding:clamp(18px,2vw,34px); background:none; backdrop-filter:none; -webkit-backdrop-filter:none; border:0; box-shadow:none; --nu-soft:#b0bfd2; }
.nu-main { min-width:0; }
.nu-hero { position:relative; min-height:330px; padding:22px 14px 0; isolation:isolate; }
.nu-hero:before { content:''; position:absolute; inset:-20px -16px -10px; z-index:-1; background:linear-gradient(90deg,#03091322,transparent),url('../assets/unfinished/night-loops.png') center 43%/cover; mask-image:linear-gradient(#000 82%,transparent); }
.nu-intro { width:47%; max-width:550px; }
.nu-intro .np-eyebrow { font-size:10px; letter-spacing:.27em; color:var(--nu-soft); }
.nu-intro h1 { font:300 clamp(32px,3vw,54px)/1.12 var(--font-display); letter-spacing:-.045em; margin:20px 0 16px; }
.nu-description { font-size:14px; line-height:1.75; color:var(--nu-soft); max-width:440px; }
.nu-art-note { position:absolute; left:49%; top:24%; font-size:8px; letter-spacing:.25em; line-height:1.8; color:var(--nu-soft); }
.nu-totals { display:flex; gap:0; width:58%; min-width:450px; margin-top:40px; padding-bottom:16px; }
.nu-totals>div { flex:1; border-left:1px solid #9dbbdf55; padding-left:20px; }
.nu-totals strong { display:block; font:300 30px/1.2 var(--font-display); }
.nu-totals span { display:block; font-size:12px; color:var(--nu-soft); margin-top:6px; }
.nu-board-tools { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:2px 0 12px; }
.nu-board-tools>span { font-size:9px; letter-spacing:.22em; color:var(--nu-soft); }
.nu-page .np-card { background:var(--neura-widget-surface); backdrop-filter:var(--neura-widget-blur); -webkit-backdrop-filter:var(--neura-widget-blur); box-shadow:var(--neura-widget-shadow); border:none; border-radius:20px; }
.nu-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.nu-column { padding:16px 12px 12px; min-height:260px; }
.nu-column>header { display:flex; gap:10px; align-items:center; padding:0 2px 15px; border-bottom:1px solid var(--np-line-soft); }
.nu-column h2 { font:400 clamp(14px,1.15vw,19px)/1.3 var(--font-display); margin:0; }
.nu-column .np-card-icon { width:32px; height:32px; }
.nu-count { margin-left:auto; font-size:12px; color:var(--nu-soft); }
.nu-item { display:flex; align-items:center; gap:2px; min-height:72px; border-bottom:1px solid var(--np-line-soft); }
.nu-item:last-child { border:0; }
.nu-item.is-selected { background:var(--np-hover); border-radius:8px; }
.nu-close { width:32px; min-width:32px; height:44px; display:grid; place-items:center; background:transparent; border:0; border-radius:8px; }
.nu-close>span { width:17px; height:17px; border:1px solid #adbed0; border-radius:50%; }
.nu-close:hover>span { background:#9ddbb94d; border-color:var(--np-focus); }
.nu-item-open { min-width:0; flex:1; display:flex; align-items:center; gap:8px; text-align:left; padding:14px 0; background:transparent; border:0; border-radius:8px; }
.nu-item-open>span:first-child { flex:1; min-width:0; }
.nu-item-open strong { display:block; font-size:12px; font-weight:400; line-height:1.5; overflow-wrap:anywhere; }
.nu-item-open small { display:block; color:var(--nu-soft); font-size:10px; margin-top:5px; }
.nu-item-open>.np-icon { width:13px; }
.nu-badge { white-space:nowrap; font-size:9px; color:var(--np-meeting); border-radius:20px; padding:5px 7px; background:#78b5ff0d; }
.nu-badge[data-status=today] { color:#efb4b1; background:#ff898810; }
.nu-badge[data-status=waiting] { color:#d6c09e; background:#c8a26712; }
.nu-empty { color:var(--nu-soft); padding:22px 6px; line-height:1.6; font-size:12px; }
.nu-relief { position:relative; display:flex; align-items:center; gap:22px; padding:22px 28px; margin-top:20px; overflow:hidden; min-height:130px; }
.nu-relief>div:first-child { flex:1; }
.nu-relief h2 { position:relative; z-index:1; font:300 23px/1.4 var(--font-display); }
.nu-wave { position:absolute; width:48%; left:0; bottom:0; height:60px; fill:none; stroke:#a5c6e0; stroke-width:1; opacity:.5; }
.nu-ring { flex:none; width:76px; height:76px; display:grid; place-items:center; border-radius:50%; background:conic-gradient(#a4c6df var(--closed),#a4c6df18 0); position:relative; }
.nu-ring:before { content:''; position:absolute; inset:6px; background:#07111e; border-radius:50%; }
.nu-ring>span { position:relative; font-size:18px; }
.nu-relief h3 { font-size:14px; font-weight:400; }
.nu-relief p { font-size:11px; color:var(--nu-soft); margin-top:7px; }
.nu-relief-note { font-size:8px; letter-spacing:.25em; line-height:1.8; color:var(--nu-soft); margin-left:auto; }
.nu-neva { min-width:0; min-height:100%; padding:22px; display:flex; flex-direction:column; }
.nu-neva-heading { display:flex; align-items:center; gap:10px; }
.nu-neva-heading strong { font-weight:400; font-size:16px; color:#c5bcf0; }
.nu-neva-heading>span:last-child { margin-left:auto; font-size:7px; letter-spacing:.15em; color:var(--nu-soft); }
.nu-orb { width:32px; height:32px; border-radius:50%; background:radial-gradient(ellipse at 34% 30%,#e2d8ff,#8c84d4 24%,#172740 60%,#070e19); box-shadow:0 0 15px #888bcc15,inset 0 0 0 1px #c5bcf033; }
.nu-suggestion { padding:35px 2px 24px; }
.nu-suggestion-label { font:italic 13px var(--font-display); color:var(--nu-soft); }
.nu-suggestion h2 { font:300 clamp(23px,1.8vw,31px)/1.4 var(--font-display); margin:14px 0 16px; }
.nu-suggestion>p:not(.nu-suggestion-label) { font-size:13px; line-height:1.85; color:var(--nu-soft); }
.nu-local-note { display:block; font-size:10px; line-height:1.6; color:var(--np-muted); margin-top:18px; }
.nu-quick { border-top:1px solid var(--np-line); padding-top:22px; }
.nu-quick>p { color:var(--nu-soft); font-size:12px; margin-bottom:14px; }
.nu-page .nu-quick-action { display:flex; width:100%; justify-content:flex-start; gap:16px; padding:16px; margin-bottom:12px; min-height:72px; text-align:left; }
.nu-quick-action>span { flex:1; font-size:13px; }
.nu-quick-action small { display:block; font-size:11px; margin-top:7px; color:var(--nu-soft); line-height:1.5; }
.nu-neva-landscape { flex:1; min-height:180px; text-align:center; padding:30px 8px 85px; margin:15px -22px -22px; border-radius:0 0 16px 16px; background:linear-gradient(#07111ef0,#07111e33),url('../assets/unfinished/night-loops.png') center bottom/cover; }
.nu-neva-landscape blockquote { font:italic 13px/1.85 var(--font-display); color:var(--nu-soft); margin:0; }
.nu-neva-landscape>span { display:block; font-size:9px; letter-spacing:.25em; color:var(--nu-soft); margin-top:16px; }
.nu-text-button { display:inline-flex; align-items:center; gap:8px; padding:10px 0; background:transparent; border:0; color:var(--nu-soft)!important; font-size:12px!important; text-decoration:underline; text-underline-offset:5px; }
.nu-footer { display:flex; justify-content:space-between; gap:15px; color:var(--nu-soft); padding:22px 0 0; font-size:10px; }
.nu-footer>span:last-child { letter-spacing:.15em; font-size:8px; }
.nu-editor { padding:24px 0; }
.nu-editor>header { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.nu-editor form,.nu-block-form { display:flex; flex-direction:column; gap:16px; }
.nu-editor .np-field,.nu-block-form .np-field { font-size:12px; }
.nu-editor .np-field input,.nu-editor .np-field textarea,.nu-block-form input { min-width:0; }
.nu-editor .np-form-actions { flex-wrap:wrap; margin-top:4px; }
.nu-block-form { padding-top:16px; }
.nu-closed { margin-top:18px; padding:20px; }
.nu-closed h2 { font:400 18px var(--font-display); margin-bottom:12px; }
.nu-closed>div { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 0; font-size:13px; }
@media(min-width:1700px) { .nu-hero { min-height:385px; } .nu-intro h1 { margin-top:28px; } .nu-description { font-size:16px; } .nu-item-open strong { font-size:14px; } .nu-item-open small { font-size:12px; } }
@media(max-width:1200px) { .nu-page { grid-template-columns:minmax(0,1fr); } .nu-neva { display:grid; grid-template-columns:1fr 1fr; column-gap:30px; } .nu-neva-heading { grid-column:1/-1; } .nu-suggestion { padding:24px 0; } .nu-neva-landscape { grid-column:1/-1; min-height:110px; padding-bottom:35px; } .nu-quick { padding-top:24px; margin-top:18px; } .nu-editor { grid-row:2/4; } }
@media(max-width:760px) { .nu-columns { grid-template-columns:1fr; } .nu-column { min-height:0; } .nu-item-open strong { font-size:14px; } .nu-item-open small { font-size:12px; } .nu-badge { font-size:11px; } .nu-intro { width:64%; } .nu-hero { min-height:330px; padding-inline:0; } .nu-hero:before { background-position:60% top; opacity:.7; } .nu-art-note { display:none; } .nu-totals { width:100%; min-width:0; margin-top:34px; } .nu-totals>div { padding-left:12px; } .nu-relief { flex-wrap:wrap; gap:18px; padding:20px; } .nu-relief>div:first-child { flex-basis:100%; } .nu-relief-note { display:none; } .nu-neva { display:flex; } .nu-footer { flex-wrap:wrap; } }
@media(max-width:480px) { .nu-intro { width:85%; } .nu-intro h1 { font-size:34px; } .nu-description { font-size:13px; } .nu-totals span { font-size:11px; } .nu-neva { padding:18px; } .nu-neva-landscape { margin-inline:-18px; margin-bottom:-18px; } }


.nu-hero:before { background-position:center top; }
.nu-item-open strong { font-size:13px; }
.nu-item-open small { font-size:11px; }
.nu-close { width:38px; min-width:38px; }
@media(max-width:760px) { .nu-hero:before { background-image:linear-gradient(90deg,rgba(3,9,18,.72),rgba(3,9,18,.12)),url('../assets/unfinished/night-loops.png'); } }

/* Keep the landscape behind the widgets, not an opaque surface between them.
   Material matches .today-widget and .calendar-widget exactly. */
.tab-panel[data-tab-panel="unfinished"] { background:none; border:0; border-radius:20px; overflow:hidden; }
.nu-hero:before { content:none; }
.nu-neva-landscape { border-radius:0 0 20px 20px; background:linear-gradient(180deg,transparent,#06101b33); }
.nu-column>header,.nu-item,.nu-quick { border-color:var(--border-softer); }

/* ImageGen banner artwork; the text and closure metric stay live. */
.nu-page .nu-relief {
  background:var(--neura-widget-surface),url('../assets/unfinished/closure-waves.png') center/100% 100% no-repeat;
  min-height:130px;
}
.nu-relief h2 { margin:0; }
.nu-relief-percent { display:block; margin:0 0 5px; font:400 28px/1.15 var(--font-sans); }
.nu-relief .nu-ring { background:conic-gradient(#a4c6df var(--closed),#20406388 0); }
.nu-relief .nu-ring:before { background:#06101e; }
@media(max-width:760px) { .nu-page .nu-relief { background-size:auto 100%; background-position:left bottom; } }
.nu-chosen>header { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.nu-chosen>header .np-eyebrow { margin:0; }
.nu-chosen h2 { overflow-wrap:anywhere; }
.nu-chosen-context { margin-bottom:16px; }
.nu-chosen-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.nu-chosen-actions .np-button { min-width:0; }
.nu-chosen .nu-next-step { padding:16px 0; margin-top:16px; border-block:1px solid var(--border-softer); }
.nu-next-step h3 { font-size:12px; font-weight:500; margin-bottom:8px; }
.nu-next-step p { font-size:13px; line-height:1.7; white-space:pre-wrap; color:var(--nu-soft); }
/* Progress v2: one continuous scrolling environment for ALL page content. */
.tab-panel[data-tab-panel="progress"] { inset:0; background:none; border:0; box-shadow:none; }
.ng-wallpaper-v2.np-page { display:block; padding:0; border:0; border-radius:0; background:#010507; box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none; }
.ng-world { --garden-width:max(100vw,1440px); min-height:100%; background-color:#010507; background-image:linear-gradient(rgba(1,5,7,.28),rgba(1,5,7,.28)),url('../assets/progress/growth-world-v3.png'); background-position:center,35% top; background-size:100% 100%,var(--garden-width) auto; background-repeat:no-repeat; }
.ng-wallpaper-v2 .ng-growth-layout { position:relative; isolation:isolate; }
.ng-wallpaper-v2.ng-page .ng-immersive-scene { height:calc(var(--garden-width) * .5); min-height:720px; padding:100px 4% 0; background:none; border:0; border-radius:0; box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none; overflow:visible; grid-template-rows:auto minmax(0,1fr); }
.ng-wallpaper-v2 .ng-immersive-scene .ng-bloom-art { min-height:0; }
.ng-wallpaper-v2 .ng-immersive-scene .ng-generated-bloom { height:100%; min-height:0; }
.ng-wallpaper-v2 .ng-immersive-scene .ng-generated-current { transform-origin:50% 100%; }
.ng-wallpaper-v2 .ng-immersive-scene .ng-growth-side > .np-card { border:0; border-radius:20px; box-shadow:var(--neura-widget-shadow); }
.ng-wallpaper-v2 .ng-root-discover { position:absolute; z-index:3; right:4%; bottom:5px; font-size:12px; display:flex; gap:16px; align-items:center; }
.ng-wallpaper-v2 .ng-bloom-now { bottom:20%; }
.ng-wallpaper-v2 .ng-water-life { inset:85% 0 0; }
.ng-root-depth { position:relative; height:calc(var(--garden-width) * .38); min-height:500px; scroll-margin-top:95px; }
.ng-root-story { position:absolute; top:30%; right:5%; width:27%; color:var(--np-ink); }
.ng-root-story .np-eyebrow { font-size:10px; letter-spacing:.24em; }
.ng-root-story h2 { font:300 clamp(28px,3vw,46px)/1.15 var(--font-display); letter-spacing:-.03em; margin:18px 0; }
.ng-root-story p:not(.np-eyebrow) { color:#b5c4cb; font-size:15px; line-height:1.9; }
.ng-below-scene { display:flex; flex-direction:column; gap:22px; padding:28px 4% 40px; }
.ng-below-scene > * { flex-shrink:0; }
.ng-below-scene > .ng-growth-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px; border:0; padding:22px; background:var(--neura-widget-surface); backdrop-filter:var(--neura-widget-blur); border-radius:20px; }
.ng-below-scene .ng-metric-emblem { display:none; }
.ng-below-scene .ng-growth-metric { min-width:0; }
@media(max-width:1000px) {
 .ng-world { --garden-width:1440px; background-position:center,calc(50% + 216px) top; }
 .ng-wallpaper-v2 .ng-growth-layout { display:grid; grid-template-columns:minmax(0,1fr); }
 .ng-wallpaper-v2.ng-page .ng-immersive-scene { display:contents; }
 .ng-wallpaper-v2 .ng-immersive-scene > .ng-card-head { grid-column:1; grid-row:1; height:260px; padding:140px 24px 0; align-items:start; gap:12px; }
 .ng-wallpaper-v2 .ng-immersive-scene > .ng-bloom-stage { grid-column:1; grid-row:2; height:460px; min-height:0; width:100%; }
 .ng-wallpaper-v2 .ng-immersive-scene .ng-generated-bloom { height:460px; min-height:0; }
 .ng-wallpaper-v2 .ng-immersive-scene .ng-generated-current { width:100%; }
 .ng-wallpaper-v2 .ng-root-depth { grid-column:1; grid-row:3; height:610px; }
 .ng-wallpaper-v2 .ng-immersive-scene > .ng-growth-side { grid-column:1; grid-row:4; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); padding:0; margin:18px; }
 .ng-wallpaper-v2 .ng-root-discover { position:relative; grid-column:1; grid-row:2; place-self:end center; bottom:0; right:auto; margin:0 0 8px; }
 .ng-wallpaper-v2 .ng-water-life { display:none; }
 .ng-root-story { right:4%; width:32%; }
 .ng-below-scene { padding-inline:18px; }
}
@media(max-width:560px) {
 .ng-wallpaper-v2 .ng-immersive-scene > .ng-card-head { padding-inline:18px; }
 .ng-wallpaper-v2 .ng-growth-badge { font-size:14px; padding:8px 12px; }
 .ng-wallpaper-v2 .ng-immersive-scene > .ng-growth-side { grid-template-columns:1fr; }
 .ng-root-story { top:auto; bottom:8%; left:18px; right:18px; width:auto; padding:18px; background:var(--neura-widget-surface); backdrop-filter:var(--neura-widget-blur); border-radius:20px; }
 .ng-root-story h2 { font-size:28px; margin:12px 0; }
 .ng-below-scene > .ng-growth-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
}

/* Keep the widget material consistent over the darker garden wallpaper. */
.ng-wallpaper-v2 .ng-growth-side > .np-card,
.ng-wallpaper-v2 .ng-below-scene .np-card,
.ng-wallpaper-v2 .ng-below-scene > .ng-growth-metrics {
 background:var(--neura-widget-surface);
 backdrop-filter:var(--neura-widget-blur);
 -webkit-backdrop-filter:var(--neura-widget-blur);
 box-shadow:var(--neura-widget-shadow);
 border:0;
 border-radius:20px;
}
.ng-wallpaper-v2 .ng-stat:hover { background:var(--np-hover); }
.ng-wallpaper-v2 .ng-stat[aria-pressed="true"] { box-shadow:var(--neura-widget-shadow),inset 0 0 0 1px var(--np-line); }

/* The roots explain the score: three selectable inputs feed one bloom. */
.ng-world { position:relative; }
.ng-world > .ng-toolbar { position:absolute; z-index:4; left:4%; top:214px; margin:0; align-items:center; gap:18px; }
.ng-world > .ng-toolbar .ng-data-note { font-size:11px; }
.ng-wallpaper-v2 .ng-growth-badge { min-width:160px; }
.ng-score-label { display:block; font-size:9px; letter-spacing:.18em; margin-bottom:8px; color:var(--np-muted); }
.ng-growth-badge > strong { display:block; font:300 36px/1.1 var(--font-display); margin-bottom:10px; }
.ng-growth-badge > strong > small { display:inline; font-size:15px; }
.ng-growth-badge > span:not(.ng-score-label) { font-size:15px; }
.ng-wallpaper-v2 .ng-connected-roots { height:auto; min-height:0; padding-bottom:24px; }
.ng-root-heading { position:absolute; z-index:2; top:30px; right:4%; width:54%; }
.ng-root-heading .np-eyebrow { font-size:10px; letter-spacing:.22em; }
.ng-root-heading h2 { font:300 clamp(23px,2.4vw,34px)/1.2 var(--font-display); margin:12px 0; text-wrap:balance; }
.ng-root-heading p:last-child { color:var(--np-muted); font-size:13px; line-height:1.7; }
.ng-root-map { position:relative; height:550px; }
.ng-root-links { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; overflow:visible; }
.ng-root-links path { fill:none; stroke:#b5c7c42e; stroke-width:1; vector-effect:non-scaling-stroke; }
.ng-root-links path.is-active { stroke:#b4dfc5aa; stroke-width:1.5; }
.ng-root-links circle { fill:#b4dfc5; }
.ng-wallpaper-v2 .ng-root-node { position:absolute; width:25%; display:flex; flex-direction:column; align-items:stretch; gap:10px; text-align:left; padding:20px; background:var(--neura-widget-surface); backdrop-filter:var(--neura-widget-blur); -webkit-backdrop-filter:var(--neura-widget-blur); border:0; border-radius:20px; box-shadow:var(--neura-widget-shadow); }
.ng-root-node.ng-root-focus { left:4%; top:135px; }
.ng-root-node.ng-root-completion { right:4%; top:155px; width:29%; }
.ng-root-node.ng-root-energy { right:4%; top:350px; width:29%; }
.ng-wallpaper-v2 .ng-root-node[aria-pressed=true] { box-shadow:var(--neura-widget-shadow),inset 0 0 0 1px #accabb66; }
.ng-wallpaper-v2 .ng-root-node:hover { background:var(--np-hover); }
.ng-root-name { display:flex; align-items:center; gap:9px; font-size:14px; }
.ng-root-weight { margin-left:auto; color:var(--np-muted); font-size:10px; }
.ng-root-node > strong { font:300 clamp(22px,2vw,30px)/1.2 var(--font-display); }
.ng-root-caption { color:var(--np-muted); font-size:12px; }
.ng-root-track { height:3px; border-radius:3px; background:#ffffff12; overflow:hidden; }
.ng-root-track i { display:block; height:100%; background:#b4cfbf; border-radius:3px; }
.ng-root-points { display:flex; justify-content:space-between; font-size:11px; color:var(--np-muted); }
.ng-wallpaper-v2 .ng-root-explanation { margin:0 4%; padding:24px; display:grid; grid-template-columns:1fr 1fr; gap:32px; background:var(--neura-widget-surface); backdrop-filter:var(--neura-widget-blur); -webkit-backdrop-filter:var(--neura-widget-blur); box-shadow:var(--neura-widget-shadow); border:0; border-radius:20px; }
.ng-root-explanation .np-eyebrow { font-size:10px; letter-spacing:.15em; }
.ng-root-explanation h3 { margin:12px 0; font:300 25px/1.2 var(--font-display); }
.ng-root-explanation p:not(.np-eyebrow),.ng-root-explanation small { font-size:13px; line-height:1.75; color:var(--np-muted); }
.ng-root-explanation small { display:block; margin-top:12px; color:#b4cfbf; }
.ng-root-context { margin:20px 4% 0; color:var(--np-muted); font-size:11px; line-height:1.7; }
@media(max-width:1000px) {
 .ng-world > .ng-toolbar { top:285px; left:24px; right:24px; gap:8px; }
 .ng-world > .ng-toolbar .ng-data-note { display:none; }
 .ng-wallpaper-v2 .ng-growth-badge { min-width:0; }
 .ng-growth-badge > strong { font-size:24px; }
 .ng-root-heading { right:4%; width:55%; }
 .ng-root-node.ng-root-focus { width:29%; }
 .ng-root-node.ng-root-completion,.ng-root-node.ng-root-energy { width:34%; }
 .ng-root-weight { display:none; }
 .ng-root-name { font-size:13px; }
}
@media(max-width:560px) {
 .ng-world > .ng-toolbar { top:298px; left:18px; right:18px; }
 .ng-world > .ng-toolbar .ng-filters { gap:8px; flex-wrap:nowrap; }
 .ng-world > .ng-toolbar .np-select-trigger { font-size:11px; }
 .ng-wallpaper-v2 .ng-immersive-scene > .ng-card-head { flex-wrap:nowrap; }
 .ng-wallpaper-v2 .ng-growth-badge { padding:10px; flex:0 0 98px; }
 .ng-score-label { font-size:8px; }
 .ng-root-heading { position:relative; top:auto; right:auto; width:auto; padding:220px 18px 18px; }
 .ng-root-heading h2 { font-size:26px; }
 .ng-root-map { height:auto; display:grid; gap:12px; padding:0 18px; }
 .ng-root-links { display:none; }
 .ng-wallpaper-v2 .ng-root-node { position:relative; top:auto; left:auto; right:auto; width:100%; padding:18px; }
 .ng-root-weight { display:block; }
 .ng-root-node > strong { font-size:26px; }
 .ng-wallpaper-v2 .ng-root-explanation { margin:18px 18px 0; padding:20px; grid-template-columns:1fr; gap:12px; }
 .ng-root-context { margin-inline:18px; }
}

@media(max-width:560px) {
 .ng-world > .ng-toolbar { display:block; top:280px; }
 .ng-world > .ng-toolbar .ng-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
 .ng-world > .ng-toolbar .ng-filters > * { width:100%; min-width:0; }
 .ng-world > .ng-toolbar .np-select-trigger { min-width:0; width:100%; }
 .ng-wallpaper-v2 .ng-bloom-now { right:10px; max-width:135px; font-size:10px; }
}
@media(max-width:560px) { .ng-world > .ng-toolbar .ng-filters > * { grid-column:auto; } }

/* Flow-based layout: every control and card reserves its own space. */
.ng-wallpaper-v2.ng-page .ng-immersive-scene {
 height:auto; min-height:0; padding:110px 4% 24px;
 grid-template-columns:minmax(0,1.8fr) minmax(300px,1fr);
 grid-template-rows:auto auto minmax(480px,auto) auto;
 gap:24px 36px;
}
.ng-wallpaper-v2 .ng-immersive-scene > .ng-card-head { grid-row:1; grid-column:1/-1; height:auto; min-width:0; }
.ng-wallpaper-v2 .ng-immersive-scene > .ng-toolbar { position:relative; grid-row:2; grid-column:1; inset:auto; margin:0; display:flex; flex-wrap:wrap; gap:12px; min-width:0; z-index:5; }
.ng-wallpaper-v2 .ng-immersive-scene > .ng-bloom-stage { grid-row:3; grid-column:1; height:auto; min-height:480px; }
.ng-wallpaper-v2 .ng-immersive-scene .ng-generated-bloom { height:480px; min-height:0; }
.ng-wallpaper-v2 .ng-immersive-scene > .ng-growth-side { grid-row:2/4; grid-column:2; align-self:start; padding:0; margin:0; gap:24px; }
.ng-wallpaper-v2 .ng-immersive-scene > .ng-root-discover { position:relative; inset:auto; grid-row:4; grid-column:1; justify-self:center; margin:0; }
.ng-wallpaper-v2 .ng-immersive-scene .ng-bloom-now { right:0; bottom:8%; max-width:150px; }
.ng-root-heading { position:relative; inset:auto; width:auto; margin:0 4% 20px 43%; padding-top:30px; }
.ng-root-map { height:auto; min-height:340px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:end; padding:150px 4% 24px; }
.ng-wallpaper-v2 .ng-root-node { position:relative; inset:auto; width:100%; height:100%; min-width:0; }
.ng-root-name { flex-wrap:wrap; }
.ng-root-links { height:160px; }
.ng-root-links path { stroke-dasharray:3 5; }
.ng-root-weight { white-space:nowrap; }
@media(max-width:1000px) {
 .ng-world { background-position:center,calc(50% + var(--garden-width) * .15) top; }
 .ng-wallpaper-v2.ng-page .ng-immersive-scene { display:contents; }
 .ng-wallpaper-v2 .ng-growth-layout { row-gap:20px; }
 .ng-wallpaper-v2 .ng-immersive-scene > .ng-card-head { grid-row:1; grid-column:1; padding:140px 24px 0; height:auto; align-items:start; }
 .ng-wallpaper-v2 .ng-immersive-scene > .ng-toolbar { grid-row:2; grid-column:1; margin:0 24px; }
 .ng-wallpaper-v2 .ng-immersive-scene > .ng-bloom-stage { grid-row:3; grid-column:1; min-height:460px; }
 .ng-wallpaper-v2 .ng-immersive-scene > .ng-root-discover { grid-row:4; grid-column:1; }
 .ng-wallpaper-v2 .ng-root-depth { grid-row:5; grid-column:1; }
 .ng-wallpaper-v2 .ng-immersive-scene > .ng-growth-side { grid-row:6; grid-column:1; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0 24px; }
 .ng-root-heading { margin:0 24px 20px; padding-top:180px; }
 .ng-root-map { padding:0 24px 24px; min-height:0; gap:16px; }
 .ng-root-links { display:none; }
 .ng-root-weight { display:block; }
}
@media(max-width:650px) {
 .ng-wallpaper-v2 .ng-immersive-scene > .ng-card-head { display:grid; grid-template-columns:minmax(0,1fr) 100px; padding-inline:18px; gap:16px; }
 .ng-wallpaper-v2 .ng-growth-badge { min-width:0; padding:12px; }
 .ng-wallpaper-v2 .ng-immersive-scene > .ng-toolbar { margin-inline:18px; display:block; }
 .ng-wallpaper-v2 .ng-toolbar .ng-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; width:100%; }
 .ng-wallpaper-v2 .ng-toolbar .ng-filters > * { grid-column:auto; width:100%; min-width:0; }
 .ng-wallpaper-v2 .ng-toolbar .np-select-trigger { width:100%; min-width:0; font-size:11px; }
 .ng-wallpaper-v2 .ng-toolbar .ng-data-note { margin-top:10px; }
 .ng-wallpaper-v2 .ng-immersive-scene > .ng-growth-side { grid-template-columns:1fr; margin-inline:18px; }
 .ng-root-map { grid-template-columns:1fr; padding-inline:18px; }
 .ng-root-heading { margin-inline:18px; }
 .ng-wallpaper-v2 .ng-root-explanation { grid-template-columns:1fr; gap:16px; }
}

/* Root annotations belong to the scene, with details inside the selected item. */
.ng-root-heading { margin-left:57%; }
.ng-root-map { position:relative; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr); grid-auto-rows:auto; align-items:start; min-height:390px; gap:16px 40px; padding:0 4% 24px; }
.ng-wallpaper-v2 .ng-root-node { grid-column:2; height:auto; width:100%; padding:18px 22px; gap:8px; }
.ng-root-node.ng-root-focus { grid-row:1; }
.ng-root-node.ng-root-completion { grid-row:2; }
.ng-root-node.ng-root-energy { grid-row:3; }
.ng-root-node > strong { font-size:24px; }
.ng-root-node .ng-root-caption { display:none; }
.ng-root-node .ng-root-track { height:2px; }
.ng-root-inline-detail { display:block; padding-top:10px; margin-top:3px; border-top:1px solid var(--np-line-soft); font-size:12px; line-height:1.7; color:var(--np-muted); }
.ng-root-inline-detail > span,.ng-root-inline-detail > small { display:block; margin-top:6px; }
.ng-root-inline-detail > small { color:#b4cfbf; }
.ng-root-links { inset:0; width:100%; height:100%; }
.ng-root-links path { stroke-dasharray:none; stroke:#b5c7c426; }
.ng-root-links g circle { fill:#b5c7c466; }
.ng-root-links g.is-active path { stroke:#b4dfc5aa; stroke-width:1.5; }
.ng-root-links g.is-active circle { fill:#b4dfc5; }
@media(max-width:1000px) {
 .ng-root-heading { margin:0 24px 20px; }
 .ng-root-map { display:grid; grid-template-columns:1fr; min-height:0; padding:0 24px 24px; }
 .ng-wallpaper-v2 .ng-root-node { grid-column:1; }
 .ng-root-links { display:none; }
}
@media(max-width:650px) { .ng-root-heading { margin-inline:18px; } .ng-root-map { padding-inline:18px; } }

/* Centered garden: one focal flower, compact roots, reflection cards below. */
.ng-centered-garden .ng-world { background-position:center,calc(50% + var(--garden-width) * .15) top; }
.ng-centered-garden .ng-growth-layout { display:block; }
.ng-centered-garden.ng-page .ng-immersive-scene { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:auto auto auto; padding:112px 5% 0; gap:24px; height:auto; min-height:0; }
.ng-centered-garden .ng-immersive-scene > .ng-card-head { grid-column:1; grid-row:1; padding:0; height:auto; display:block; }
.ng-centered-garden .ng-immersive-scene > .ng-toolbar { grid-column:2; grid-row:1; display:flex; flex-direction:column; align-items:flex-end; justify-content:center; margin:0; position:relative; inset:auto; gap:8px; }
.ng-centered-garden .ng-immersive-scene .ng-heading h1 { font-size:clamp(28px,3vw,44px); }
.ng-centered-garden .ng-immersive-scene > .ng-bloom-stage { grid-column:1/-1; grid-row:2; display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,540px) minmax(0,1fr); align-items:center; min-height:0; height:auto; gap:28px; }
.ng-centered-garden .ng-immersive-scene .ng-bloom-art { grid-column:2; height:520px; min-height:0; width:100%; }
.ng-centered-garden .ng-immersive-scene .ng-generated-bloom { height:520px; min-height:0; }
.ng-centered-garden .ng-growth-badge { grid-column:1; justify-self:end; width:180px; min-width:0; padding:0; background:none; border:0; box-shadow:none; text-align:right; }
.ng-centered-garden .ng-growth-badge > strong { font-size:64px; }
.ng-centered-garden .ng-score-label { letter-spacing:.2em; font-size:10px; }
.ng-centered-garden .ng-immersive-scene .ng-bloom-now { position:static; grid-column:3; max-width:190px; text-align:left; font-size:15px; line-height:1.6; }
.ng-centered-garden .ng-bloom-now small { font-size:12px; margin-top:8px; }
.ng-centered-garden .ng-immersive-scene > .ng-root-discover { grid-column:1/-1; grid-row:3; position:relative; inset:auto; margin:0 0 8px; justify-self:center; }
.ng-centered-garden .ng-motion-toggle { right:0; top:15px; }
.ng-centered-garden .ng-root-heading { position:relative; inset:auto; width:auto; margin:0; padding:30px 5% 0; }
.ng-centered-garden .ng-root-heading h2 { font-size:23px; margin:8px 0; }
.ng-centered-garden .ng-root-heading p:last-child { max-width:230px; font-size:12px; }
.ng-centered-garden .ng-root-map { display:grid; grid-template-columns:minmax(0,1fr) 240px minmax(0,1fr); grid-template-rows:minmax(190px,auto) auto; align-items:start; gap:16px 40px; max-width:1000px; width:90%; margin:0 auto; padding:0 0 20px; min-height:0; }
.ng-centered-garden .ng-root-node { position:relative; inset:auto; width:100%; max-width:270px; min-width:0; height:auto; padding:16px 20px; gap:8px; }
.ng-centered-garden .ng-root-focus { grid-column:1; grid-row:1; justify-self:end; }
.ng-centered-garden .ng-root-completion { grid-column:3; grid-row:1; justify-self:start; }
.ng-centered-garden .ng-root-energy { grid-column:2; grid-row:2; justify-self:center; }
.ng-centered-garden .ng-root-node > strong { font-size:24px; }
.ng-centered-garden .ng-root-weight { display:none; }
.ng-centered-garden .ng-root-context { text-align:center; margin:8px 5% 0; }
.ng-centered-garden .ng-below-scene { max-width:1320px; margin:0 auto; padding-top:36px; }
.ng-centered-garden .ng-below-scene > .ng-growth-side { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; padding:0; margin:0; }
.ng-centered-garden .ng-growth-side .ng-heading h2 { font-size:21px; }
.ng-centered-garden .ng-growth-side .ng-next-options { margin-top:18px; }
@media(max-width:1000px) {
 .ng-centered-garden.ng-page .ng-immersive-scene { padding-top:140px; }
 .ng-centered-garden .ng-immersive-scene > .ng-bloom-stage { grid-template-columns:minmax(0,1fr) minmax(260px,400px) minmax(0,1fr); gap:12px; }
 .ng-centered-garden .ng-growth-badge { width:auto; }
 .ng-centered-garden .ng-growth-badge > strong { font-size:42px; }
 .ng-centered-garden .ng-immersive-scene .ng-bloom-art,.ng-centered-garden .ng-immersive-scene .ng-generated-bloom { height:460px; }
 .ng-centered-garden .ng-root-map { grid-template-columns:minmax(0,1fr) 180px minmax(0,1fr); gap:16px; }
}
@media(max-width:700px) {
 .ng-centered-garden.ng-page .ng-immersive-scene { grid-template-columns:1fr; padding-inline:18px; gap:20px; }
 .ng-centered-garden .ng-immersive-scene > .ng-card-head { grid-column:1; grid-row:1; }
 .ng-centered-garden .ng-immersive-scene > .ng-toolbar { grid-column:1; grid-row:2; align-items:stretch; }
 .ng-centered-garden .ng-toolbar .ng-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
 .ng-centered-garden .ng-toolbar .ng-filters > * { grid-column:auto; min-width:0; width:100%; }
 .ng-centered-garden .ng-immersive-scene > .ng-bloom-stage { grid-column:1; grid-row:3; grid-template-columns:1fr 1fr; gap:0 16px; }
 .ng-centered-garden .ng-growth-badge { grid-column:1; grid-row:1; justify-self:start; text-align:left; }
 .ng-centered-garden .ng-immersive-scene .ng-bloom-now { grid-column:2; grid-row:1; justify-self:end; font-size:13px; }
 .ng-centered-garden .ng-immersive-scene .ng-bloom-art { grid-column:1/-1; grid-row:2; height:400px; }
 .ng-centered-garden .ng-immersive-scene .ng-generated-bloom { height:400px; }
 .ng-centered-garden .ng-immersive-scene > .ng-root-discover { grid-column:1; grid-row:4; }
 .ng-centered-garden .ng-root-heading { padding:200px 18px 20px; text-align:center; }
 .ng-centered-garden .ng-root-heading p:last-child { max-width:none; }
 .ng-centered-garden .ng-root-map { display:grid; grid-template-columns:1fr; grid-template-rows:auto; width:auto; margin:0 18px; gap:12px; }
 .ng-centered-garden .ng-root-node { grid-column:1; grid-row:auto; max-width:none; justify-self:stretch; }
 .ng-centered-garden .ng-below-scene > .ng-growth-side { grid-template-columns:1fr; }
}

.ng-centered-garden .ng-world { background-image:linear-gradient(rgba(1,5,7,.28),rgba(1,5,7,.28)),url('../assets/progress/growth-world-centered.png'); background-position:center,center top; background-size:100% 100%,100% calc(var(--garden-width) * 1.5); }
@media(max-width:700px) { .ng-centered-garden .ng-world { background-size:100% 100%,900px calc(var(--garden-width) * 1.5); } }

/* Content audit: clear labels, one score, no decorative copy or floating controls. */
.ng-centered-garden .ng-immersive-scene > .ng-card-head { display:flex; align-items:center; gap:32px; }
.ng-centered-garden .ng-immersive-scene .ng-heading h1 { margin:0; }
.ng-centered-garden .ng-growth-badge { width:auto; min-width:130px; text-align:left; padding-left:28px; border-left:1px solid var(--np-line-soft); justify-self:auto; }
.ng-centered-garden .ng-growth-badge > strong { font-size:36px; margin-bottom:5px; }
.ng-centered-garden .ng-growth-badge > span:not(.ng-score-label) { font-size:13px; }
.ng-centered-garden .ng-score-label { font-size:11px; letter-spacing:0; margin-bottom:6px; text-transform:none; }
.ng-centered-garden .ng-immersive-scene > .ng-toolbar { flex-direction:row; flex-wrap:wrap; align-content:center; align-items:end; justify-content:flex-end; gap:12px; }
.ng-centered-garden .ng-toolbar .ng-data-note { width:100%; text-align:right; margin:0; font-size:12px; }
.ng-centered-garden .ng-toolbar .ng-motion-toggle { position:static; display:inline-flex; align-items:center; gap:8px; width:auto; height:44px; min-width:44px; padding:10px 14px; margin:0; font-size:12px; }
.ng-centered-garden .ng-motion-toggle svg { width:16px; height:16px; }
.ng-centered-garden .ng-immersive-scene > .ng-bloom-stage { display:flex; justify-content:center; gap:0; }
.ng-centered-garden .ng-immersive-scene .ng-bloom-art { flex:0 1 580px; width:100%; height:440px; }
.ng-centered-garden .ng-immersive-scene .ng-generated-bloom { height:440px; }
.ng-centered-garden .ng-immersive-scene > .ng-root-discover { min-height:44px; }
.ng-centered-garden .ng-root-map { padding-top:76px; }
.ng-centered-garden .ng-root-points { font-size:12px; }
.ng-centered-garden .ng-below-scene { gap:24px; }
.ng-centered-garden .ng-growth-summary { padding:0; margin:0; background:none; border:0; box-shadow:none; backdrop-filter:none; text-align:center; }
.ng-centered-garden .ng-growth-summary .np-button { margin:0; min-height:44px; }
.ng-centered-garden .ng-inline-intention { display:block; border-top:1px solid var(--np-line-soft); margin-top:20px; padding:18px 0 0; }
.ng-inline-intention .np-card-icon { display:none; }
.ng-inline-intention h3 { font-size:15px; font-weight:400; line-height:1.5; margin:0; }
.ng-inline-intention > p { margin:8px 0 12px; font-size:13px; line-height:1.7; color:var(--np-muted); }
.ng-inline-intention label { display:flex; align-items:center; gap:10px; min-height:44px; font-size:13px; }
.ng-centered-garden .ng-trend-detail > .ng-card-head { flex-wrap:wrap; gap:16px; }
.ng-centered-garden .ng-trend-detail > .ng-card-head > .ng-heading { flex:1 1 250px; }
.ng-centered-garden :is(button,input,summary) { scroll-margin-block:140px 24px; }
@media(max-width:1100px) {
 .ng-centered-garden.ng-page .ng-immersive-scene { grid-template-columns:1fr; }
 .ng-centered-garden .ng-immersive-scene > .ng-card-head { grid-column:1; grid-row:1; justify-content:space-between; }
 .ng-centered-garden .ng-immersive-scene > .ng-toolbar { grid-column:1; grid-row:2; justify-content:flex-start; }
 .ng-centered-garden .ng-toolbar .ng-data-note { text-align:left; }
 .ng-centered-garden .ng-immersive-scene > .ng-bloom-stage { grid-column:1; grid-row:3; }
 .ng-centered-garden .ng-immersive-scene > .ng-root-discover { grid-column:1; grid-row:4; }
}
@media(max-width:700px) {
 .ng-centered-garden .ng-immersive-scene > .ng-card-head { display:flex; padding:0; gap:16px; }
 .ng-centered-garden .ng-growth-badge { min-width:105px; padding:0 0 0 16px; }
 .ng-centered-garden .ng-growth-badge > strong { font-size:30px; }
 .ng-centered-garden .ng-immersive-scene > .ng-toolbar { display:flex; align-items:end; }
 .ng-centered-garden .ng-toolbar .ng-filters { flex:1 1 100%; }
 .ng-centered-garden .ng-toolbar .ng-data-note { flex:1; width:auto; text-align:right; }
 .ng-centered-garden .ng-immersive-scene .ng-bloom-art,.ng-centered-garden .ng-immersive-scene .ng-generated-bloom { height:360px; }
 .ng-centered-garden .ng-root-map { padding-top:210px; }
}

.ng-centered-garden .ng-immersive-scene > .ng-bloom-stage { flex-direction:row; align-items:center; }
.ng-centered-garden .ng-immersive-scene .ng-bloom-art { flex:0 1 580px; width:580px; max-width:100%; height:440px; align-self:auto; }
.ng-centered-garden .ng-immersive-scene .ng-growth-badge { border-radius:0; box-shadow:none; }
.ng-centered-garden .ng-toolbar .ng-motion-toggle { opacity:1; color:var(--np-ink); }
@media(max-width:700px) { .ng-centered-garden .ng-immersive-scene .ng-bloom-art { height:360px; } }

/* Keep the score anchored to the page heading as one compact widget. */
.ng-centered-garden .ng-immersive-scene > .ng-card-head { flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:18px; }
.ng-centered-garden .ng-immersive-scene .ng-score-summary { display:flex; align-items:center; gap:24px; width:fit-content; max-width:100%; min-height:0; margin:0; padding:14px 18px; border:0; border-radius:20px; background:var(--neura-widget-surface); backdrop-filter:var(--neura-widget-blur); box-shadow:var(--neura-widget-shadow); }
.ng-score-main,.ng-score-change { display:flex; flex-direction:column; gap:4px; }
.ng-score-main > span,.ng-score-change > span { color:var(--np-muted); font-size:12px; line-height:1.5; }
.ng-score-main > strong { font-size:28px; line-height:1.2; font-weight:400; color:var(--np-ink); }
.ng-score-main small { font-size:14px; color:var(--np-muted); }
.ng-score-change > strong { color:#b4cfbf; font-size:16px; font-weight:400; line-height:1.5; }
.ng-centered-garden .ng-immersive-scene > .ng-toolbar { align-content:flex-start; padding-top:4px; }
@media(max-width:700px) { .ng-centered-garden .ng-immersive-scene .ng-score-summary { width:100%; justify-content:space-between; gap:16px; } }
.ng-centered-garden .ng-immersive-scene > .ng-bloom-stage { min-width:0; max-width:100%; }
@media(max-width:1100px) { .ng-centered-garden.ng-page .ng-immersive-scene { grid-template-columns:minmax(0,1fr); } }




/* A three-stop time rail, with the existing Neura controls beneath it. */
.ng-centered-garden .ng-immersive-scene > .ng-controls-toolbar { justify-content:flex-start; flex-direction:column; align-items:flex-end; align-content:initial; padding-top:0; }
.ng-time-lens { width:320px; max-width:100%; }
.ng-lens-caption { display:flex; justify-content:space-between; align-items:center; gap:12px; color:var(--np-muted); font-size:12px; line-height:1.5; }
.ng-lens-caption > span:last-child { font-size:11px; }
.ng-time-track { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:8px 0 16px; }
.ng-time-line { position:absolute; left:16.666%; right:16.666%; top:17px; height:1px; background:var(--np-line); pointer-events:none; }
.ng-time-track button { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:12px; padding:12px 6px 4px; min-height:70px; border:0; border-radius:10px; background:transparent; color:var(--np-muted); cursor:pointer; font:inherit; }
.ng-time-track button:hover { background:var(--np-hover); color:var(--np-ink); }
.ng-time-dot { position:relative; width:11px; height:11px; border:1px solid var(--np-muted); border-radius:50%; background:#131918; transition:background .18s,box-shadow .18s; }
.ng-time-track button[aria-pressed="true"] .ng-time-dot { background:#b4cfbf; border-color:#b4cfbf; box-shadow:0 0 0 5px #b4cfbf17,0 0 16px #b4cfbf35; }
.ng-time-number { display:flex; align-items:baseline; gap:5px; font-size:22px; font-weight:300; line-height:1.2; }
.ng-time-number small { font-size:11px; }
.ng-time-track button[aria-pressed="true"] { color:var(--np-ink); }
.ng-lens-actions { display:flex; gap:10px; }
.ng-lens-actions .np-button { min-height:44px; font-size:12px; padding:8px 12px; background:var(--neura-widget-surface); backdrop-filter:var(--neura-widget-blur); }
.ng-lens-compare { flex:1; }
.ng-lens-motion { min-width:85px; }
.ng-lens-actions svg { width:16px; height:16px; stroke:currentColor; stroke-width:1.4; fill:none; }
.ng-lens-compare[aria-pressed="true"] svg { color:#b4cfbf; }
.ng-lens-baseline { margin:8px 0 0; color:var(--np-muted); font-size:11px; line-height:1.5; }
.ng-time-lens button:focus-visible { outline:2px solid var(--np-ink); outline-offset:3px; }
@media(max-width:1100px) { .ng-centered-garden .ng-immersive-scene > .ng-controls-toolbar { align-items:flex-start; } }
@media(max-width:700px) { .ng-time-lens { width:100%; } }
@media(prefers-reduced-motion:reduce) { .ng-time-dot { transition:none; } }
/* Place the page context and controls around the bloom, not in a separate tall row. */
@media(min-width:1101px) {
 .ng-centered-garden.ng-page .ng-immersive-scene { grid-template-columns:minmax(250px,1fr) minmax(360px,580px) minmax(250px,1fr); grid-template-rows:auto auto; gap:12px 24px; padding-top:130px; align-items:center; }
 .ng-centered-garden .ng-immersive-scene > .ng-card-head { grid-column:1; grid-row:1; align-self:center; gap:24px; }
 .ng-centered-garden .ng-immersive-scene .ng-heading h1 { font-size:clamp(28px,2.5vw,40px); line-height:1.2; }
 .ng-centered-garden .ng-immersive-scene > .ng-controls-toolbar { grid-column:3; grid-row:1; align-self:center; align-items:flex-start; }
 .ng-centered-garden .ng-immersive-scene > .ng-bloom-stage { grid-column:2; grid-row:1; }
 .ng-centered-garden .ng-immersive-scene > .ng-root-discover { grid-column:2; grid-row:2; margin:0 0 8px; }
 .ng-centered-garden .ng-score-summary { flex-wrap:wrap; gap:12px 20px; }
}

/* Comparison reveals the baseline, rather than only changing a delta label. */
.ng-centered-garden .ng-immersive-scene .ng-score-summary { flex-wrap:wrap; }
.ng-score-baselines { flex:0 0 100%; display:grid; gap:8px; padding-top:12px; border-top:1px solid var(--np-line-soft); }
.ng-score-baselines > div { display:grid; grid-template-columns:53px minmax(50px,1fr) 24px; gap:10px; align-items:center; font-size:11px; color:var(--np-muted); }
.ng-score-baselines i { display:block; height:3px; background:var(--np-line-soft); border-radius:4px; overflow:hidden; }
.ng-score-baselines b { display:block; height:100%; background:var(--np-muted); }
.ng-score-baselines > div:last-child b { background:#b4cfbf; }
.ng-score-baselines strong { font-size:12px; font-weight:400; text-align:right; color:var(--np-ink); }
.ng-root-comparison { display:grid; gap:5px; padding:9px 0; border-bottom:1px solid var(--np-line-soft); font-size:11px; color:var(--np-muted); line-height:1.5; }
.ng-root-comparison strong { font-size:12px; color:var(--np-ink); font-weight:400; }
.ng-comparison-empty { display:block; font-size:11px; line-height:1.5; color:var(--np-muted); }

/* Milestone bloom: one editorial scene and an integrated progress panel. */
.ng-milestone-page.ng-page .ng-immersive-scene { display:grid; grid-template-columns:minmax(180px,.75fr) minmax(280px,1.25fr) minmax(350px,1fr); grid-template-rows:auto auto; align-items:start; padding:110px 4% 0; gap:16px 24px; }
.ng-milestone-page .ng-immersive-scene > .ng-card-head { grid-column:1; grid-row:1; align-self:start; margin-top:72px; }
.ng-milestone-page .ng-immersive-scene .ng-heading h1 { font-size:clamp(30px,3.1vw,50px); line-height:1.15; letter-spacing:-.035em; }
.ng-milestone-page .ng-immersive-scene .ng-heading p { font-size:16px; line-height:1.6; margin:20px 0 0; color:var(--np-muted); }
.ng-milestone-page .ng-immersive-scene > .ng-bloom-stage { grid-column:2; grid-row:1; align-self:end; position:relative; overflow:visible; }
.ng-milestone-page .ng-immersive-scene .ng-bloom-art,.ng-milestone-page .ng-immersive-scene .ng-generated-bloom { height:560px; }
.ng-milestone-page .ng-immersive-scene .ng-bloom-art { width:620px; max-width:none; flex:0 0 620px; }
.ng-milestone-page .ng-immersive-scene > .ng-root-discover { grid-column:1/3; grid-row:2; }
.ng-milestone-panel.np-card { grid-column:3; grid-row:1/3; position:relative; z-index:2; min-width:0; margin:0; padding:26px; border:0; border-radius:20px; background:var(--neura-widget-surface); backdrop-filter:var(--neura-widget-blur); box-shadow:var(--neura-widget-shadow); }
.ng-milestone-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.ng-milestone-top h2 { font-size:17px; font-weight:400; margin:0; }
.ng-milestone-top .np-segment { border:0; gap:4px; }
.ng-milestone-top .np-segment button { min-width:44px; min-height:44px; font-size:12px; padding:8px; }
.ng-milestone-score { display:flex; align-items:center; gap:22px; margin:26px 0 18px; }
.ng-milestone-score > strong { font-size:60px; font-weight:300; line-height:1; white-space:nowrap; }
.ng-milestone-score > strong small { font-size:22px; color:var(--np-muted); }
.ng-milestone-score > div { display:grid; gap:6px; border-left:1px solid var(--np-line); padding-left:22px; }
.ng-milestone-score > div strong { font-size:20px; font-weight:400; }
.ng-milestone-score > div span { font-size:12px; line-height:1.5; color:var(--np-muted); }
.ng-overall-meter { height:6px; border-radius:9px; background:var(--np-line-soft); overflow:hidden; }
.ng-overall-meter > span { display:block; height:100%; border-radius:inherit; background:#b4cfbf; transition:width .25s; }
.ng-milestone-data { font-size:11px; color:var(--np-muted); margin:10px 0 0; }
.ng-milestone-list { list-style:none; margin:24px 0; padding:24px 0 0; border-top:1px solid var(--np-line-soft); }
.ng-milestone-list li { position:relative; display:grid; grid-template-columns:32px 36px minmax(0,1fr); gap:16px; align-items:center; min-height:82px; color:var(--np-muted); }
.ng-milestone-list li:not(:last-child)::after { content:''; position:absolute; left:15px; top:57px; bottom:-25px; width:1px; background:var(--np-line); }
.ng-milestone-list li.is-reached:not(:last-child)::after { background:#cbbc8955; }
.ng-milestone-status { width:32px; height:32px; display:grid; place-items:center; border:1px dashed var(--np-muted); border-radius:50%; background:#0b100f; }
.is-reached .ng-milestone-status { background:#cbbc89; border-color:#cbbc89; color:#17201c; }
.ng-milestone-status svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.6; }
.ng-milestone-threshold { font-size:24px; font-weight:300; }
.ng-milestone-list h3 { font-size:15px; line-height:1.4; margin:0; font-weight:400; }
.ng-milestone-list p { margin:5px 0 0; font-size:12px; line-height:1.5; color:var(--np-muted); }
.ng-milestone-list .is-reached { color:var(--np-ink); }
.ng-milestone-footer { border-top:1px solid var(--np-line-soft); padding-top:16px; }
.ng-milestone-footer p { color:var(--np-muted); font-size:12px; line-height:1.5; margin:0 0 14px; }
.ng-milestone-footer > small { display:block; font-size:11px; margin-top:8px; color:var(--np-muted); }
.ng-bloom-milestone { position:absolute; z-index:2; right:0; top:20px; display:flex; align-items:center; gap:9px; padding:8px 12px; border:1px solid #cbbc8966; border-radius:24px; font-size:12px; color:#e1d3aa; background:#111914a6; }
.ng-bloom-milestone > span { width:7px; height:7px; border-radius:50%; background:#dfd0a2; box-shadow:0 0 12px #dfd0a255; }
.ng-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.ng-milestone-page .ng-root-map { grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:auto; width:60%; max-width:none; margin:0 0 0 5%; padding:80px 0 28px; gap:18px; }
.ng-milestone-page .ng-root-node { grid-column:auto; grid-row:auto; max-width:none; justify-self:stretch; padding:20px; }
.ng-milestone-page .ng-root-node > strong { font-size:23px; }
.ng-milestone-page .ng-world { background-position:center,calc(50% - 13vw) top; }
@media(max-width:1250px) and (min-width:1001px) { .ng-milestone-page.ng-page .ng-immersive-scene { grid-template-columns:minmax(160px,.7fr) minmax(230px,1.1fr) minmax(330px,1fr); gap:16px; } .ng-milestone-panel.np-card { padding:20px; } .ng-milestone-page .ng-immersive-scene .ng-bloom-art { flex-basis:480px; width:480px; } .ng-milestone-score > strong { font-size:48px; } }
@media(max-width:1000px) {
 .ng-milestone-page.ng-page .ng-immersive-scene { grid-template-columns:minmax(0,1fr); grid-template-rows:auto; padding:145px 24px 0; gap:24px; }
 .ng-milestone-page .ng-immersive-scene > .ng-card-head { grid-column:1; grid-row:1; margin:0; }
 .ng-milestone-page .ng-immersive-scene .ng-heading h1 { font-size:36px; }
 .ng-milestone-page .ng-immersive-scene > .ng-bloom-stage { grid-column:1; grid-row:2; }
 .ng-milestone-page .ng-immersive-scene .ng-bloom-art { max-width:100%; flex:0 1 580px; }
 .ng-milestone-page .ng-immersive-scene .ng-bloom-art,.ng-milestone-page .ng-immersive-scene .ng-generated-bloom { height:440px; }
 .ng-milestone-panel.np-card { grid-column:1; grid-row:4; width:100%; max-width:650px; justify-self:center; }
 .ng-milestone-page .ng-immersive-scene > .ng-root-discover { grid-column:1; grid-row:3; }
 .ng-milestone-page .ng-root-map { width:auto; margin:0 24px; padding-top:24px; }
 .ng-milestone-page .ng-world { background-position:center,center top; }
 .ng-bloom-milestone { right:12px; top:10px; }
}
@media(max-width:650px) {
 .ng-milestone-page.ng-page .ng-immersive-scene { padding-inline:18px; }
 .ng-milestone-panel.np-card { padding:20px; }
 .ng-milestone-top { flex-wrap:wrap; }
 .ng-milestone-score > strong { font-size:48px; }
 .ng-milestone-score { gap:16px; }
 .ng-milestone-score > div { padding-left:16px; }
 .ng-milestone-list li { gap:12px; }
 .ng-milestone-page .ng-root-map { grid-template-columns:minmax(0,1fr); margin:0 18px; }
 .ng-milestone-page .ng-root-node { grid-column:1; }
}
@media(prefers-reduced-motion:reduce) { .ng-overall-meter > span { transition:none; } }

.ng-milestone-page .ng-world { background-position:center,calc(50% + var(--garden-shift,0px)) top; }
.ng-milestone-list li { min-height:70px; }
.ng-milestone-list li:not(:last-child)::after { top:51px; bottom:-19px; }
.ng-milestone-list { margin-block:20px; padding-top:16px; }
.ng-milestone-score { margin-top:20px; }

/* Compact reference proportions: one scene, a secondary panel, nearby root cards. */
.ng-milestone-panel.np-card { padding:20px 22px; }
.ng-milestone-top h2 { font-size:15px; }
.ng-milestone-score { margin:16px 0 14px; gap:16px; }
.ng-milestone-score > strong { font-size:46px; }
.ng-milestone-score > strong small { font-size:18px; }
.ng-milestone-score > div { padding-left:16px; }
.ng-milestone-score > div strong { font-size:17px; }
.ng-milestone-list { margin:16px 0; padding-top:12px; }
.ng-milestone-list li { min-height:58px; grid-template-columns:26px 30px minmax(0,1fr); gap:12px; }
.ng-milestone-status { width:26px; height:26px; }
.ng-milestone-status svg { width:17px; height:17px; }
.ng-milestone-threshold { font-size:20px; }
.ng-milestone-list h3 { font-size:13px; }
.ng-milestone-list p { font-size:11px; margin-top:3px; }
.ng-milestone-list li:not(:last-child)::after { left:12px; top:42px; bottom:-16px; }
.ng-milestone-footer { padding-top:12px; }
.ng-milestone-footer p { margin-bottom:10px; }
.ng-milestone-page .ng-immersive-scene .ng-heading h1 { font-size:clamp(30px,2.5vw,40px); }
.ng-milestone-page .ng-immersive-scene .ng-heading p { font-size:14px; margin-top:16px; }
.ng-milestone-page .ng-card-head > .ng-root-discover { position:static; margin:4px 0 0; min-height:44px; font-size:12px; align-self:flex-start; }
.ng-milestone-page .ng-root-node { padding:16px; gap:7px; }
.ng-milestone-page .ng-root-node > strong { font-size:21px; }
.ng-milestone-page .ng-root-comparison { padding:7px 0; gap:3px; }
@media(min-width:1001px) {
 .ng-milestone-page.ng-page .ng-immersive-scene { grid-template-columns:minmax(180px,.8fr) minmax(300px,1.25fr) minmax(335px,.95fr); grid-template-rows:auto; padding:110px max(4%,calc((100vw - 1440px)/2)) 0; column-gap:24px; }
 .ng-milestone-panel.np-card { grid-column:3; grid-row:1; }
 .ng-milestone-page .ng-immersive-scene > .ng-card-head { margin-top:58px; gap:20px; }
 .ng-milestone-page .ng-immersive-scene > .ng-bloom-stage { align-self:end; }
 .ng-milestone-page .ng-immersive-scene .ng-bloom-art { flex:0 0 510px; width:510px; }
 .ng-milestone-page .ng-immersive-scene .ng-bloom-art,.ng-milestone-page .ng-immersive-scene .ng-generated-bloom { height:460px; }
 .ng-milestone-page .ng-root-map { padding-top:46px; width:min(60%,880px); margin-left:max(4%,calc((100vw - 1440px)/2)); gap:16px; }
 .ng-bloom-milestone { top:6px; right:0; font-size:11px; }
}
@media(max-width:1000px) { .ng-milestone-panel.np-card { grid-row:3; } }
@media(max-width:650px) {
 .ng-milestone-panel.np-card { padding:18px; }
 .ng-milestone-page .ng-immersive-scene .ng-bloom-art,.ng-milestone-page .ng-immersive-scene .ng-generated-bloom { height:360px; }
 .ng-milestone-page .ng-immersive-scene > .ng-card-head { gap:14px; }
 .ng-milestone-page .ng-immersive-scene .ng-heading h1 { font-size:32px; }
}
@media(min-width:1251px) {
 .ng-milestone-page .ng-immersive-scene > .ng-bloom-stage { transform:translateX(-80px); }
 .ng-milestone-page .ng-root-map { margin-left:calc(max(4%,(100vw - 1440px)/2) + 60px); padding-top:80px; }
}

/* Give the submerged root network its own visible space above the cards. */
.ng-milestone-page .ng-root-map { position:relative; padding-top:220px; }
.ng-root-branches { position:absolute; inset:0 0 auto; width:100%; height:220px; pointer-events:none; overflow:visible; }
.ng-root-branches path { fill:none; stroke:#cbbc8999; stroke-width:1.1; vector-effect:non-scaling-stroke; }
.ng-root-branches circle { fill:#dfd0a2; }
.ng-root-branches .is-selected path { stroke:#e1d3aa; stroke-width:1.5; }
.ng-milestone-page .ng-root-node { position:relative; z-index:1; }
@media(max-width:1000px) {
 .ng-milestone-page .ng-growth-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:0; padding-top:140px; }
 .ng-milestone-page.ng-page .ng-immersive-scene { display:contents; }
 .ng-milestone-page .ng-immersive-scene > .ng-card-head { grid-row:1; margin:0 24px 24px; }
 .ng-milestone-page .ng-immersive-scene > .ng-bloom-stage { grid-row:2; margin:0 24px; }
 .ng-milestone-page .ng-connected-roots { grid-column:1; grid-row:3; }
 .ng-milestone-panel.np-card { grid-row:4; width:calc(100% - 48px); margin:24px auto 0; }
 .ng-milestone-page .ng-root-map { padding-top:200px; }
 .ng-root-branches { height:200px; }
}
@media(max-width:650px) {
 .ng-milestone-page .ng-root-map { padding-top:210px; gap:14px; }
 .ng-root-branches { height:210px; }
 .ng-root-branches g:not(:first-child) { display:none; }
 .ng-milestone-page .ng-root-node:not(.ng-root-focus)::before { content:''; position:absolute; width:1px; height:14px; background:#cbbc8977; top:-15px; left:50%; }
 .ng-milestone-page .ng-immersive-scene > .ng-card-head { margin-inline:18px; }
 .ng-milestone-page .ng-immersive-scene > .ng-bloom-stage { margin-inline:18px; }
 .ng-milestone-panel.np-card { width:calc(100% - 36px); }
}
@media(max-width:1000px) { .ng-milestone-page .ng-immersive-scene > .ng-bloom-stage { width:calc(100% - 48px); min-width:0; } }
@media(max-width:650px) { .ng-milestone-page .ng-immersive-scene > .ng-bloom-stage { width:calc(100% - 36px); } }

/* Let organic branches finish at quiet, consistent metric surfaces. */
.ng-milestone-page .ng-root-map { padding-top:290px; }
.ng-root-branches { height:290px; }
.ng-root-branches path.ng-root-trunk { stroke:#c4a46f88; stroke-width:1.25; stroke-linecap:round; stroke-linejoin:round; }
.ng-root-branches path.ng-root-fibre { stroke:#b3976555; stroke-width:.65; stroke-linecap:round; }
.ng-root-branches .is-selected path.ng-root-trunk { stroke:#d5b980bb; stroke-width:1.4; }
.ng-milestone-page .ng-root-node.np-card { padding:18px; border:1px solid var(--np-line-soft); border-radius:16px; background:linear-gradient(145deg,rgba(16,22,22,.48),rgba(8,14,15,.38)); backdrop-filter:var(--neura-widget-blur); box-shadow:0 16px 40px #0003; gap:12px; outline:none; }
.ng-milestone-page .ng-root-node.np-card[aria-pressed="true"] { border-color:var(--np-line-soft); box-shadow:0 16px 40px #0003; background:linear-gradient(145deg,rgba(16,22,22,.48),rgba(8,14,15,.38)); }
.ng-milestone-page .ng-root-node.np-card:hover { border-color:var(--np-line); }
.ng-milestone-page .ng-root-node.np-card:focus-visible { outline:2px solid var(--np-ink); outline-offset:4px; }
.ng-milestone-page .ng-root-node .ng-root-name { font-size:13px; }
.ng-root-detail-hint { margin-left:auto; display:flex; align-items:center; gap:5px; color:var(--np-muted); font-size:10px; font-weight:400; }
.ng-milestone-page .ng-root-node > strong { font-size:23px; }
.ng-milestone-page .ng-root-node .ng-root-comparison { border:0; padding:0; gap:4px; font-size:11px; }
.ng-milestone-page .ng-root-node .ng-root-comparison strong { font-size:12px; }
.ng-root-inline-detail > strong { display:block; margin-bottom:8px; font-size:12px; font-weight:400; color:var(--np-ink); }
@media(max-width:1000px) { .ng-milestone-page .ng-root-map { padding-top:260px; } .ng-root-branches { height:260px; } }
@media(max-width:650px) { .ng-milestone-page .ng-root-node:not(.ng-root-focus)::before { display:none; } }

/* A compact, aligned landing for the three roots. */
@media(min-width:1001px) {
 .ng-milestone-page .ng-root-map { width:min(900px,84%); max-width:none; margin-left:clamp(4%,calc(var(--root-center-page) - 450px),calc(96% - 900px)); padding:300px 0 28px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:auto; gap:18px; align-items:start; }
 .ng-milestone-page .ng-root-node { grid-column:auto; grid-row:1; }
 .ng-milestone-page .ng-root-branches { height:300px; }
}
.ng-milestone-page .ng-root-detail-hint { font-size:12px; }
.ng-milestone-page .ng-root-node .ng-root-comparison { font-size:12px; }

/* The artwork already supplies the connections; avoid drawing a second root system. */
.ng-milestone-page .ng-root-branches { visibility:hidden; }

/* Root annotations belong to the scene rather than a second layer of cards. */
.ng-milestone-page .ng-root-node.np-card,
.ng-milestone-page .ng-root-node.np-card[aria-pressed="true"],
.ng-milestone-page .ng-root-node.np-card:hover {
 background:transparent; border:0; border-radius:0; box-shadow:none;
 backdrop-filter:none; -webkit-backdrop-filter:none;
 padding:22px 24px 20px; isolation:isolate;
}
.ng-milestone-page .ng-root-node.np-card::after {
 content:""; position:absolute; inset:-28px -36px; z-index:-1; pointer-events:none;
 background:radial-gradient(ellipse at 50% 48%,rgba(4,12,14,.86) 0%,rgba(4,12,14,.68) 38%,rgba(4,12,14,0) 73%);
}
.ng-milestone-page .ng-root-node.np-card::before {
 content:""; display:block; position:absolute; top:0; left:50%; width:5px; height:5px;
 border-radius:50%; background:#d5c396; box-shadow:0 0 12px 3px #ccb77d55;
}
.ng-milestone-page .ng-root-node .ng-root-name { color:var(--np-muted); font-size:14px; }
.ng-milestone-page .ng-root-node > strong { font-size:25px; color:var(--np-ink); }
.ng-milestone-page .ng-root-node .ng-root-track { height:1px; overflow:visible; background:linear-gradient(90deg,#d4c09133,transparent); }
.ng-milestone-page .ng-root-node .ng-root-track i { height:1px; background:linear-gradient(90deg,#d1bd88bb,#bcd6c5); box-shadow:0 0 7px #bcd6c544; }
.ng-milestone-page .ng-root-detail-hint { color:var(--np-ink); }
.ng-milestone-page .ng-root-node .ng-root-inline-detail { border-top:1px solid #c8b78b33; padding-top:14px; line-height:1.65; }
.ng-milestone-page .ng-root-branches { visibility:visible; opacity:.5; }
.ng-milestone-page .ng-root-branches path.ng-root-trunk { stroke:#d1b67799; stroke-width:.8; }
.ng-milestone-page .ng-root-branches path.ng-root-fibre { stroke:#b3976533; stroke-width:.5; }
.ng-milestone-page .ng-root-branches .is-selected path.ng-root-trunk { stroke:#dcc68fbb; stroke-width:1; }
@media(min-width:1001px) {
 .ng-milestone-page .ng-root-map { padding-top:280px; gap:28px; }
 .ng-milestone-page .ng-root-branches { height:280px; }
}
@media(max-width:650px) {
 .ng-milestone-page .ng-root-node.np-card { padding:20px 18px; }
 .ng-milestone-page .ng-root-node.np-card::after { inset:-12px -10px; }
 .ng-milestone-page .ng-root-node.np-card:not(.ng-root-focus)::before { display:none; }
 .ng-milestone-page .ng-root-map { gap:24px; }
}

/* Generated three-branch artwork provides the real visual anchors. */
.ng-milestone-page .ng-world { background-image:linear-gradient(rgba(1,5,7,.28),rgba(1,5,7,.28)),url('../assets/progress/growth-world-integrated-v4.png'); }
.ng-milestone-page .ng-root-node.np-card::before { display:none; }
.ng-milestone-page .ng-root-node.np-card::after { background:radial-gradient(ellipse,rgba(3,10,13,.45),transparent 72%); }
.ng-milestone-page .ng-root-node.np-card { padding:18px 24px 24px; }
.ng-milestone-page .ng-root-node .ng-root-name { color:var(--np-ink); }
.ng-milestone-page .ng-root-node .ng-root-track { margin-top:3px; }
@media(min-width:1001px) {
 .ng-milestone-page .ng-root-map { width:75%; margin-left:calc(var(--root-center-page) - 37.5%); padding-top:var(--root-label-offset,380px); gap:0; }
 .ng-milestone-page .ng-root-node { width:100%; max-width:300px; justify-self:center; }
}
@media(max-width:1000px) { .ng-milestone-page .ng-root-map { padding-top:var(--root-label-offset,340px); } }

/* Reference composition: bloom and compact roots share the left, summary spans the right. */
.ng-milestone-page .ng-root-node.np-card,
.ng-milestone-page .ng-root-node.np-card[aria-pressed="true"],
.ng-milestone-page .ng-root-node.np-card:hover {
 background:var(--neura-widget-surface); backdrop-filter:var(--neura-widget-blur);
 -webkit-backdrop-filter:var(--neura-widget-blur); border:1px solid var(--np-line-soft);
 border-radius:18px; box-shadow:var(--neura-widget-shadow); padding:16px 18px; gap:9px;
}
.ng-milestone-page .ng-root-node.np-card::after { display:none; }
.ng-milestone-page .ng-root-node > strong { font-size:23px; }
@media(min-width:1001px) {
 .ng-milestone-page .ng-growth-layout { display:grid; grid-template-columns:minmax(170px,.8fr) minmax(260px,1.25fr) minmax(330px,.95fr); grid-template-rows:auto auto; column-gap:24px; padding:100px 4% 24px; align-items:start; }
 .ng-milestone-page.ng-page .ng-immersive-scene { display:contents; }
 .ng-milestone-page .ng-immersive-scene > .ng-card-head { grid-column:1; grid-row:1; margin-top:55px; }
 .ng-milestone-page .ng-immersive-scene > .ng-bloom-stage { grid-column:2; grid-row:1; align-self:end; transform:none; width:100%; }
 .ng-milestone-page .ng-immersive-scene .ng-bloom-art,
 .ng-milestone-page .ng-immersive-scene .ng-generated-bloom { height:clamp(280px,calc(65vh - 260px),420px); }
 .ng-milestone-page .ng-immersive-scene .ng-bloom-art { width:470px; flex:0 1 470px; }
 .ng-milestone-page .ng-milestone-panel { grid-column:3; grid-row:1 / span 2; width:100%; min-width:0; }
 .ng-milestone-page .ng-connected-roots { grid-column:1 / span 2; grid-row:2; min-width:0; }
 .ng-milestone-page .ng-root-map { width:100%; margin:0; padding:var(--root-label-offset,180px) 0 0; gap:16px; }
 .ng-milestone-page .ng-root-node { max-width:none; }
 .ng-milestone-page .ng-root-detail-hint { font-size:11px; }
 .ng-milestone-page .ng-root-node .ng-root-name { font-size:13px; gap:7px; }
}
@media(min-width:1251px) {
 .ng-milestone-page .ng-immersive-scene > .ng-bloom-stage { transform:translateX(-140px); }
 .ng-milestone-page .ng-world { background-size:100% 100%,85% calc(var(--garden-width) * 1.5); }
 .ng-milestone-page .ng-root-map { width:calc(100% - 60px); margin-left:60px; }
}

/* Reference ratios: tall bloom, shallow roots, cards immediately below. */
@media(min-width:1001px) {
 .ng-milestone-page .ng-world { position:relative; isolation:isolate; background-image:none; }
 .ng-milestone-page .ng-world::before,
 .ng-milestone-page .ng-world::after { content:""; position:absolute; pointer-events:none; left:0; right:0; z-index:-1; background-repeat:no-repeat; background-image:linear-gradient(rgba(1,5,7,.28),rgba(1,5,7,.28)),url('../assets/progress/growth-world-integrated-v4.png'); }
 .ng-milestone-page .ng-world::before { top:0; height:var(--waterline); background-size:100% 100%,85% var(--above-water-height); background-position:center,calc(50% + var(--garden-shift)) top; }
 .ng-milestone-page .ng-world::after { top:var(--waterline); bottom:0; background-size:100% 100%,85% var(--below-water-height); background-position:center,calc(50% + var(--garden-shift)) var(--below-water-shift); }
 .ng-milestone-page .ng-immersive-scene .ng-bloom-art,
 .ng-milestone-page .ng-immersive-scene .ng-generated-bloom { height:clamp(400px,54vh,540px); }
 .ng-milestone-page .ng-immersive-scene .ng-bloom-art { width:620px; flex:0 0 620px; }
 .ng-milestone-page .ng-immersive-scene .ng-heading h1 { font-size:clamp(32px,3.2vw,50px); }
 .ng-milestone-page .ng-immersive-scene .ng-heading p { font-size:18px; }
 .ng-milestone-page .ng-immersive-scene > .ng-card-head { margin-top:80px; }
 .ng-milestone-page .ng-milestone-panel { min-height:clamp(560px,66vh,660px); display:flex; flex-direction:column; padding:24px 28px; }
 .ng-milestone-page .ng-milestone-list { flex:1; display:flex; flex-direction:column; justify-content:space-evenly; }
 .ng-milestone-page .ng-milestone-list li { min-height:64px; }
 .ng-milestone-page .ng-milestone-score > strong { font-size:58px; }
 .ng-milestone-page .ng-milestone-top h2 { font-size:18px; }
 .ng-milestone-page .ng-milestone-list h3 { font-size:15px; }
 .ng-milestone-page .ng-milestone-list p { font-size:13px; }
}
/* Enhanced generated root material; retain the existing above-water scene and geometry. */
@media(min-width:1001px) {
 .ng-milestone-page .ng-world::after { background-image:linear-gradient(rgba(1,5,7,.18),rgba(1,5,7,.28)),url('../assets/progress/growth-world-integrated-v5.png'); }
}
@media(max-width:1000px) {
 .ng-milestone-page .ng-world { background-image:linear-gradient(rgba(1,5,7,.28),rgba(1,5,7,.28)),url('../assets/progress/growth-world-integrated-v5.png'); }
}

/* Interactive root lighting reuses the actual photographic texture. */
.ng-interactive-roots { display:none; }
@media(min-width:1001px) {
 .ng-interactive-roots { display:block; position:absolute; top:var(--waterline); height:var(--root-depth); left:0; right:0; z-index:2; pointer-events:none; }
 .ng-root-light { position:absolute; inset:0; background:url('../assets/progress/growth-world-integrated-v5.png') no-repeat calc(50% + var(--garden-shift)) var(--below-water-shift) / 85% var(--below-water-height); mix-blend-mode:screen; opacity:0; transition:opacity .3s ease; pointer-events:none; }
 .ng-root-light-focus { clip-path:polygon(38% 0,48% 0,28% 100%,8% 100%); }
 .ng-root-light-completion { clip-path:polygon(38% 0,48% 0,49% 100%,33% 100%); }
 .ng-root-light-energy { clip-path:polygon(38% 0,48% 0,75% 100%,55% 100%); }
 .ng-roots-moving .ng-root-light { animation:ng-root-breathe 6s ease-in-out infinite; }
 .ng-roots-moving .ng-root-light-completion { animation-delay:-2s; }
 .ng-roots-moving .ng-root-light-energy { animation-delay:-4s; }
 [data-root-lit="focus"] .ng-root-light-focus,
 [data-root-lit="completion"] .ng-root-light-completion,
 [data-root-lit="energy"] .ng-root-light-energy { animation:none; opacity:.6; }
 .ng-root-hotspot { position:absolute; pointer-events:auto; left:calc(var(--root-center-page) + (var(--root-index) - 1) * 21.25%); bottom:7px; transform:translateX(-50%); width:44px; height:44px; border:1px solid #d7c49766; border-radius:50%; color:#ecdeb9; background:#081012a6; backdrop-filter:blur(8px); cursor:pointer; display:grid; place-items:center; box-shadow:0 0 20px #d7b57522; transition:background .2s,box-shadow .2s; }
 .ng-root-hotspot svg { width:19px;height:19px; }
 .ng-root-hotspot span { position:absolute; bottom:calc(100% + 8px); white-space:nowrap; background:#091113ed; padding:6px 10px; border-radius:8px; color:var(--np-ink); font-size:12px; opacity:0; pointer-events:none; }
 .ng-root-hotspot:hover,.ng-root-hotspot:focus-visible,.ng-root-hotspot[aria-expanded="true"] { background:#463f2ce0; box-shadow:0 0 24px #d7b57566; }
 .ng-root-hotspot:hover span,.ng-root-hotspot:focus-visible span { opacity:1; }
 .ng-root-hotspot:focus-visible { outline:2px solid var(--np-ink); outline-offset:4px; }
}
@keyframes ng-root-breathe { 0%,100% { opacity:.02; } 50% { opacity:.18; } }
@media(prefers-reduced-motion:reduce) { .ng-roots-moving .ng-root-light { animation:none; } .ng-root-light,.ng-root-hotspot { transition:none; } }
.ng-milestone-page .ng-momentum-panel { min-height:0; gap:0; }
.ng-momentum-panel .ng-milestone-top { flex-wrap:wrap; gap:12px; }
.ng-momentum-panel .ng-milestone-top h2 { font-size:17px; }
.ng-momentum-panel .ng-milestone-data { margin:12px 0; font-size:12px; }
.ng-momentum-status h3 { margin:0 0 8px; color:var(--np-ink); font:300 28px/1.2 var(--font-display); }
.ng-momentum-status p { margin:0 0 8px; color:var(--np-muted); font-size:13px; line-height:1.55; }
.ng-momentum-status small { display:block; color:var(--np-muted); font-size:12px; }
.ng-momentum-stages { display:flex; list-style:none; padding:0; margin:18px 0; gap:8px; }
.ng-momentum-stages li { flex:1; border-top:2px solid var(--np-line-soft); padding-top:8px; font-size:11px; color:var(--np-muted); line-height:1.45; }
.ng-momentum-stages .is-current { border-color:#bcd5c6; color:var(--np-ink); }
.ng-momentum-stages .is-established { border-color:#bcd5c655; }
.ng-momentum-evidence { display:grid; gap:0; }
.ng-momentum-evidence > div { padding:10px 0; display:grid; gap:5px; border-top:1px solid var(--np-line-soft); }
.ng-momentum-evidence span { color:var(--np-ink); font-size:13px; }
.ng-momentum-evidence strong { font-weight:400; font-size:15px; color:var(--np-ink); }
.ng-momentum-evidence small { color:var(--np-muted); font-size:12px; line-height:1.4; }
.ng-momentum-evidence .ng-momentum-unavailable { grid-template-columns:1fr auto; align-items:start; gap:12px; }
.ng-momentum-unavailable small { text-align:right; }
.ng-momentum-method { margin-top:4px; font-size:12px; line-height:1.6; color:var(--np-muted); }
.ng-momentum-method summary { min-height:44px; display:flex; align-items:center; cursor:pointer; color:var(--np-ink); }
.ng-momentum-method summary::after { content:'+'; margin-left:auto; }
.ng-momentum-method[open] summary::after { content:'−'; }
.ng-momentum-method p { margin:0 0 12px; }
.ng-momentum-next { padding:12px 0; border-top:1px solid var(--np-line-soft); }
.ng-momentum-next span { color:var(--np-ink); font-size:12px; }
.ng-momentum-next p { margin:6px 0 0; font-size:13px; line-height:1.5; color:var(--np-muted); }
.ng-momentum-panel .ng-lens-actions { margin-top:8px; }
.ng-momentum-panel .ng-lens-actions button { font-size:12px; }

/* Restore the original quiet vertical milestone composition, with meaningful data. */
.ng-momentum-panel .ng-momentum-status { padding:9px 0 20px; }
.ng-momentum-panel .ng-momentum-status h3 { font-size:clamp(28px,2.5vw,38px); font-weight:300; margin-bottom:10px; }
.ng-momentum-highlights { display:grid; grid-template-columns:1fr 1fr; gap:16px; border-bottom:1px solid var(--np-line-soft); padding-bottom:20px; }
.ng-momentum-highlights > div { display:grid; gap:7px; }
.ng-momentum-highlights > div + div { border-left:1px solid var(--np-line-soft); padding-left:16px; }
.ng-momentum-highlights span,.ng-momentum-highlights small { color:var(--np-muted); font-size:12px; line-height:1.45; }
.ng-momentum-highlights strong { font:300 20px/1.3 var(--font-display); color:var(--np-ink); }
.ng-momentum-vertical { display:flex; flex-direction:column; gap:0; margin:20px 0 12px; }
.ng-momentum-vertical li { position:relative; display:flex; align-items:center; gap:16px; flex:auto; border:0; padding:12px 0; min-height:82px; }
.ng-momentum-vertical li:not(:last-child)::after { content:""; position:absolute; width:1px; top:calc(50% + 17px); height:calc(100% - 34px); left:16px; background:var(--np-line); }
.ng-stage-dot { width:33px; height:33px; border:1px dashed var(--np-muted); border-radius:50%; flex:none; display:grid; place-items:center; }
.ng-stage-dot svg { width:19px; fill:none; stroke:currentColor; stroke-width:1.5; }
.ng-momentum-vertical .is-current .ng-stage-dot,.ng-momentum-vertical .is-established .ng-stage-dot { background:#d4c694; border:1px solid #d4c694; color:#253026; }
.ng-momentum-vertical .is-current .ng-stage-dot { box-shadow:0 0 22px #d4c69425; }
.ng-momentum-vertical h4 { margin:0; font-size:15px; font-weight:400; color:var(--np-ink); }
.ng-momentum-vertical p { margin:5px 0 0; color:var(--np-muted); font-size:12px; line-height:1.5; }
.ng-momentum-vertical li > small { margin-left:auto; color:var(--np-muted); font-size:11px; }
.ng-momentum-breakdown { border-top:1px solid var(--np-line-soft); }
.ng-momentum-breakdown > summary { display:flex; align-items:center; min-height:44px; color:var(--np-muted); font-size:12px; cursor:pointer; }
.ng-momentum-breakdown > summary::after { content:'+'; margin-left:auto; }
.ng-momentum-breakdown[open] > summary::after { content:'−'; }
.ng-momentum-explanation { font-size:13px; color:var(--np-muted); line-height:1.6; margin:0 0 12px; }
.ng-momentum-panel .ng-momentum-next { padding:16px 0 10px; }

.ng-video-growth .ng-video-frame { opacity:0; transition:opacity .65s ease; }
.ng-video-growth .ng-video-frame.is-active { opacity:1; }
.ng-video-growth .ng-wind-plant { transform-origin:900px 840px; }
@media(prefers-reduced-motion:reduce) { .ng-video-growth .ng-video-frame { transition:none; } }

/* Presentation polish: clear current state, quieter completed stages, consistent rhythm. */
.ng-milestone-page .ng-momentum-panel { border:1px solid var(--np-line-soft); border-radius:22px; }
.ng-momentum-panel .ng-momentum-status { padding:16px 0 24px; }
.ng-momentum-panel .ng-momentum-status h3 { letter-spacing:-.035em; text-wrap:balance; }
.ng-momentum-panel .ng-milestone-data { color:var(--np-muted); }
.ng-momentum-vertical { margin:8px 0 24px; }
.ng-momentum-vertical li { padding:14px 0; min-height:86px; }
.ng-momentum-vertical .is-established .ng-stage-dot { background:transparent; border-color:#d4c69470; color:#d4c694; box-shadow:none; }
.ng-momentum-vertical li:not(.is-current) h4 { color:var(--np-muted); }
.ng-momentum-vertical .is-current h4 { color:var(--np-ink); }
.ng-momentum-vertical li > small { color:#d4c694; font-size:12px; }
.ng-momentum-vertical p { font-size:13px; }
.ng-momentum-panel .ng-momentum-next { padding:18px 0; }
.ng-momentum-panel .ng-lens-actions { margin-top:0; gap:10px; }
.ng-milestone-page .ng-root-node.np-card { transition:border-color .2s,box-shadow .2s; }
.ng-milestone-page .ng-root-node.np-card[aria-expanded="true"] { border-color:#d4c69465; box-shadow:var(--neura-widget-shadow),0 -8px 25px #d4c6940c; }
.ng-milestone-page .ng-root-node.np-card:hover { border-color:var(--np-line); }
.ng-milestone-page .ng-root-detail-hint { color:var(--np-muted); }
.ng-milestone-page .ng-root-node:hover .ng-root-detail-hint { color:var(--np-ink); }
.ng-milestone-page .ng-bloom-milestone { color:var(--np-muted); background:var(--neura-widget-surface); border-color:var(--np-line-soft); backdrop-filter:var(--neura-widget-blur); font-size:12px; }
.ng-milestone-page .ng-growth-side .ng-observations { gap:20px; margin:24px 0 0; }
.ng-milestone-page .ng-growth-side .ng-observations li { font-size:14px; line-height:1.7; }
.ng-milestone-page .ng-growth-side .ng-next-options button { min-height:44px; font-size:14px!important; }
.ng-milestone-page .ng-growth-side > .np-card { padding:28px; }
.ng-milestone-page .ng-root-node:focus-visible,.ng-milestone-page .ng-lens-actions button:focus-visible { outline:2px solid var(--np-ink); outline-offset:4px; }
@media(max-width:650px) { .ng-milestone-page .ng-growth-side > .np-card { padding:20px; } .ng-momentum-vertical li { min-height:78px; } }
@media(prefers-reduced-motion:reduce) { .ng-milestone-page .ng-root-node.np-card { transition:none; } }

/* Honest first-run state: nothing is added for a new account; examples are opt-in and labelled. */
.np-first-run { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 0 0 16px; padding: 16px 20px; }
.np-first-run p { flex: 1 1 220px; margin: 0; color: var(--np-muted); font-size: 14px; }
.np-example-button { padding: 6px 4px; border: 0; background: none; color: var(--np-muted); font-size: 13px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.np-example-button:hover, .np-example-button:focus-visible { color: inherit; }
.np-example-tag { display: inline-block; margin-left: 6px; padding: 0 6px; border: 1px solid var(--np-line); border-radius: 6px; color: var(--np-muted); font-size: 10px; font-style: normal; letter-spacing: .04em; text-transform: uppercase; vertical-align: middle; }
.np-event .np-example-tag { margin: 0 6px 0 0; }

/* Calendar interactions use the same quiet glass material as the workspace. */
.nc-unified-calendar .np-page :is(input:not([type="checkbox"]),textarea,select):focus {
  outline:none; border-color:rgba(230,238,240,.35);
  box-shadow:inset 0 0 0 1px rgba(230,238,240,.08),0 0 18px rgba(230,238,240,.025);
}
.nc-unified-calendar .np-page :is(input:not([type="checkbox"]),textarea,select):focus-visible {
  outline:1px solid rgba(230,238,240,.45); outline-offset:2px;
}
.nc-unified-calendar .np-page button:focus-visible,.nc-unified-calendar .nm-options summary:focus-visible {
  outline:1px solid rgba(230,238,240,.65); outline-offset:3px;
}
.nc-unified-calendar .np-page input[type="checkbox"] { accent-color:#c4d5d8; }
.nc-unified-calendar .np-page :is(button,input,textarea,summary) {
  transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease;
}
.nc-unified-calendar .np-page :is(.np-button,.np-icon-button,.np-select-trigger):hover:not(:disabled) {
  background:linear-gradient(145deg,rgba(235,245,250,.09),rgba(235,245,250,.025));
  border-color:rgba(230,238,240,.23); box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.nc-unified-calendar .np-page button:disabled { cursor:default; opacity:.45; }
.nc-unified-calendar .np-segment button:hover:not([aria-pressed="true"]) { background:rgba(235,245,250,.07); color:var(--np-ink); }
.nc-unified-calendar .np-select-options,.nc-unified-calendar .nm-options .widget-search-dropdown {
  background:linear-gradient(140deg,rgba(62,77,83,.73),rgba(22,34,40,.8));
  backdrop-filter:blur(32px) saturate(120%); -webkit-backdrop-filter:blur(32px) saturate(120%);
  border:1px solid rgba(220,234,240,.16); box-shadow:0 18px 50px #0005,inset 0 1px 0 #ffffff09;
  border-radius:14px; padding:7px; z-index:20;
}
.nc-unified-calendar .np-select-options .widget-search-item,.nc-unified-calendar .nm-options .widget-search-item {
  min-height:42px; border-radius:8px; padding:10px 12px; background:transparent;
}
.nc-unified-calendar .np-select-options .widget-search-item:is(.active,[aria-selected="true"]),
.nc-unified-calendar .nm-options .widget-search-item:hover { background:rgba(228,240,246,.09); color:var(--np-ink); }
.nc-unified-calendar .nm-file-row:hover,.nc-unified-calendar .nm-agenda-row:hover,.nt-step:hover { background:rgba(230,240,245,.045); }
.nc-demo-label { font:400 10px/1.4 var(--font-sans); letter-spacing:0; text-transform:none; color:var(--np-muted); margin-left:12px; white-space:nowrap; }
.nc-return-path { display:flex; align-items:center; gap:12px; min-height:32px; flex-shrink:0; font:400 12px/1.4 var(--font-sans); }
.nc-return-path>span { padding-left:12px; border-left:1px solid var(--border-soft); color:var(--np-muted); }
.nm-page-header .nc-return-path { margin:-6px 0 12px; }
.nm-page--embedded .nm-page-header .nc-return-path { margin:0; }
.nc-return-button { display:inline-flex; align-items:center; gap:8px; padding:6px 8px; margin-left:-8px; border:0; border-radius:7px; color:var(--text-primary); background:transparent; font:inherit; }
.nc-return-button svg { width:16px; height:16px; }
.nc-return-button:hover { background:rgba(230,238,240,.06); }
.np-day-filter { display:flex; align-items:center; gap:12px; font-size:11px; color:var(--np-muted); }
.nc-source-badge { display:inline-flex; align-items:center; gap:5px; max-width:100%; flex-shrink:0; padding:3px 6px; border:1px solid var(--border-soft); border-radius:5px; background:rgba(230,238,240,.025); color:var(--text-secondary); font:400 10px/1 var(--font-sans); letter-spacing:0; text-transform:none; white-space:nowrap; vertical-align:middle; }
.nc-source-badge svg { width:12px; height:12px; flex-shrink:0; }
.nc-source-badge img { display:block; width:14px; height:14px; flex:0 0 14px; object-fit:contain; }
.nc-source--zoom { color:#7db7ff; }
.nc-source--webex { color:#8ce6c7; }
.nc-source-badge.is-compact { width:14px; height:14px; flex:0 0 14px; padding:0; gap:0; border:0; background:none; justify-content:center; }
.nc-neura-source { display:block; flex:0 0 12px; width:12px; height:12px; background:linear-gradient(145deg,#eefaf7,#9cdecc); mask:url('../assets/neura-brand.webp') left center / 76.8px 12px no-repeat; -webkit-mask:url('../assets/neura-brand.webp') left center / 76.8px 12px no-repeat; }
.nc-source-badge.is-compact>span { display:none; }
.np-appointment-title { display:flex!important; align-items:center; gap:6px; }
.np-appointment-title>span:first-child { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.np-preview-source { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.np-event>.nc-source-badge { margin-left:auto; }
.nm-meta>.nc-source-badge { margin-right:10px; }
.nm-tags .nc-source-badge { font-size:9px; }
.np-toast>span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.np-toast>button { flex-shrink:0; }
.nc-notice-enter-active,.nc-notice-leave-active { transition:opacity .24s ease,translate .24s cubic-bezier(.22,1,.36,1); }
.nc-notice-enter-from,.nc-notice-leave-to { opacity:0; translate:0 6px; }
@media(prefers-reduced-motion:reduce) { .nc-notice-enter-active,.nc-notice-leave-active { transition:none; } }

/* The day uses the calendar's glass, typography and quiet controls. */
.np-hours-view { display:flex; flex-direction:column; min-width:0; gap:14px; }
.np-hours-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:0 4px; flex-shrink:0; }
.np-hours-heading strong { font:400 16px/1.4 var(--font-display); display:block; letter-spacing:-.025em; }
.np-hours-heading>div>span { color:var(--np-muted); font-size:11px; display:block; margin-top:5px; }
.np-hours-guide { display:flex; align-items:center; gap:9px; font-size:10px; color:var(--np-muted); white-space:nowrap; }
.np-hours-guide i { width:3px; height:3px; border-radius:50%; background:currentColor; opacity:.6; }
.np-hours-scroll { height:clamp(300px,50vh,650px); position:relative; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#73838855 transparent; padding:12px 12px 12px 0; border-radius:16px; border:1px solid var(--np-line-soft); background:var(--np-widget-surface); }
.np-hours-track { position:relative; height:2304px; min-width:0; }
.np-hour { display:flex; height:96px; align-items:flex-start; }
.np-hour time { width:66px; flex-shrink:0; font-size:11px; font-variant-numeric:tabular-nums; color:var(--np-muted); text-align:center; transform:translateY(-7px); }
.np-hour-slot { height:96px; flex:1; min-width:0; border:0; border-top:1px solid var(--np-line-soft); background:linear-gradient(transparent 49.5%,rgba(230,240,245,.025) 50%,transparent 50.5%); }
.np-hour-slot:hover { background-color:rgba(230,240,245,.025); }
.np-appointments { position:absolute; top:0; left:66px; right:0; height:100%; pointer-events:none; }
.np-appointment { position:absolute; pointer-events:auto; border:1px solid var(--border-soft); border-radius:12px; background:transparent; box-shadow:var(--panel-highlight),0 4px 14px #00000014; text-align:left; transition:border-color .2s ease,box-shadow .2s ease; }
.np-appointment::before { content:''; position:absolute; inset:0; border-radius:inherit; background:var(--panel-glass); backdrop-filter:var(--panel-blur); -webkit-backdrop-filter:var(--panel-blur); pointer-events:none; }
.np-appointment.is-drag-origin::before,.np-drop-preview::before { display:none; }
.np-appointment-body { position:absolute; inset:0; width:100%; display:flex; flex-direction:column; justify-content:flex-start; gap:6px; border:0; border-radius:inherit; padding:10px 34px 12px 18px; background:transparent; text-align:left; cursor:grab; touch-action:none; user-select:none; min-width:0; }
.np-appointment-meta { display:flex; align-items:center; gap:7px; max-width:100%; min-width:0; white-space:nowrap; font:400 11px/1.3 var(--font-sans); font-variant-numeric:tabular-nums; color:var(--np-muted); overflow:hidden; }
.np-appointment-duration { font-size:10px; color:var(--np-ink); opacity:.75; padding-left:7px; border-left:1px solid var(--np-line); }
.np-appointment-kind { margin-left:auto; font-size:10px; overflow:hidden; text-overflow:ellipsis; opacity:.8; }
.np-appointment-body>strong { font:400 13px/1.35 var(--font-sans); color:var(--np-ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; width:100%; }
.np-appointment .np-dot { width:5px; height:5px; flex-shrink:0; background:var(--np-category,var(--np-focus)); }
.np-appointment:hover,.np-appointment:focus-within { border-color:rgba(230,238,240,.28); box-shadow:inset 0 1px 0 #ffffff09,0 6px 24px #00000014; z-index:2; }
.np-appointment.is-grabbed { border-color:rgba(230,238,240,.55); box-shadow:0 12px 30px #0003; z-index:5; }
.np-is-scheduling,.np-is-scheduling * { cursor:grabbing!important; user-select:none!important; }
.np-is-scheduling .np-appointment { transition:none; }
.np-is-scheduling .np-hour-slot { background:repeating-linear-gradient(to bottom,transparent 0 23px,rgba(230,240,245,.04) 23px 24px); }
.np-is-resizing-x,.np-is-resizing-x * { cursor:ew-resize!important; }
.np-is-resizing-y,.np-is-resizing-y * { cursor:ns-resize!important; }
.np-appointment.is-drag-origin { opacity:.2; border-style:dashed; background:transparent; box-shadow:none; pointer-events:none; }
.np-appointment.is-drag-origin :is(button,.np-resize) { pointer-events:none; }
.np-appointment.is-settling { visibility:hidden; transition:none; }
.np-appointment.is-done .np-appointment-body>strong { text-decoration:line-through; opacity:.6; }
.np-time-control { position:absolute; top:8px; right:10px; width:24px; height:24px; display:grid; place-items:center; color:var(--np-muted); background:transparent; border:0; border-radius:7px; opacity:.4; z-index:2; }
.np-time-control svg { width:15px; height:15px; }
.np-appointment:is(:hover,:focus-within) .np-time-control { opacity:1; }
.np-time-control:hover { background:rgba(230,238,240,.08); }
.np-resize { position:absolute; border:0; background:transparent; z-index:3; display:grid; place-items:center; padding:0; touch-action:none; border-radius:6px; }
.np-resize i { display:block; border-radius:3px; background:rgba(230,238,240,.4); opacity:0; transition:opacity .18s ease; }
.np-resize--top,.np-resize--bottom { left:0; right:0; width:100%; cursor:ns-resize; }
.np-resize--top { top:0; height:8px; } .np-resize--bottom { bottom:0; height:12px; }
.np-resize--top i,.np-resize--bottom i { width:28px; height:2px; }
.np-resize--bottom i { opacity:.45; }
.np-appointment:is(:hover,:focus-within,.is-grabbed) .np-resize i { opacity:1; }
.np-now-line { position:absolute; left:0; right:0; height:1px; background:#d8e7e54d; pointer-events:none; z-index:4; }
.np-now-line i { position:absolute; left:-3px; top:-3px; height:6px; width:6px; border-radius:50%; background:#d8e7e5; }
.np-now-line span { position:absolute; right:5px; top:3px; font-size:9px; color:var(--np-muted); }
.np-time-guide { position:absolute; left:0; right:0; border-top:1px dashed rgba(230,238,240,.55); pointer-events:none; z-index:6; }
.np-time-guide span { position:absolute; right:10px; top:-21px; padding:3px 8px; border:1px solid var(--np-line); border-radius:6px; font-size:10px; font-variant-numeric:tabular-nums; background:rgba(32,42,46,.8); backdrop-filter:blur(16px); color:var(--np-ink); }
.np-drop-preview { pointer-events:none; border:1px dashed #e6eef080; background:linear-gradient(145deg,rgba(210,232,235,.08),rgba(210,232,235,.02)); box-shadow:inset 0 0 0 3px rgba(230,238,240,.025); z-index:5; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; padding:5px 12px; transition:none; }
.np-drop-preview>span,.np-drop-preview>small { font-size:11px; color:var(--np-muted); }
.np-drop-preview>strong { font-size:13px; font-weight:400; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.np-drop-preview.is-short>small { display:none; }
.np-drop-preview.is-short>strong { font-size:10px; }
.np-hours-guide.is-dragging { color:var(--np-ink); font-variant-numeric:tabular-nums; }
.np-hours-guide.is-dragging i { width:5px; height:5px; background:#c7e0d9; }
/* The carried card is teleported to the body: glass ancestors must not trap
   its viewport coordinates or clip it at the edge of the time scroller. */
.np-drag-overlay { --np-meeting:#78b5ff; --np-focus:#87e6bf; --np-deadline:#ff8988; position:fixed; inset:0 auto auto 0; z-index:11000; pointer-events:none; display:flex; flex-direction:column; justify-content:center; gap:6px; box-sizing:border-box; padding:9px 36px 9px 18px; border:1px solid rgba(230,238,240,.55); border-radius:12px; background:var(--panel-glass); backdrop-filter:var(--neura-widget-blur); -webkit-backdrop-filter:var(--neura-widget-blur); color:#eeefef; font-family:var(--font-sans); box-shadow:0 22px 48px #0005,0 6px 14px #0003,inset 0 1px 0 #ffffff20; transform:translate3d(var(--np-drag-x),var(--np-drag-y),0) scale(1.015) rotate(-.35deg); will-change:transform; }
.np-drag-overlay-meta { display:flex; align-items:center; gap:7px; color:#ccd5d8; font:400 11px/1.3 var(--font-sans); font-variant-numeric:tabular-nums; white-space:nowrap; min-width:0; }
.np-drag-overlay-meta>.np-dot { width:5px; height:5px; }
.np-drag-overlay-meta>span { margin-left:auto; font-size:10px; }
.np-drag-overlay>strong { font:400 13px/1.35 var(--font-sans); width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.np-drag-overlay-label { position:absolute; left:12px; top:-27px; border:1px solid #e6eef02e; border-radius:7px; padding:4px 9px; background:rgba(38,51,57,.78); backdrop-filter:blur(20px); font:400 10px/1.4 var(--font-sans); color:#dfe8e9; white-space:nowrap; }
.np-drag-overlay-grip { position:absolute; right:13px; top:50%; transform:translateY(-50%); width:16px; height:16px; color:#d3dfe0; opacity:.65; }
.np-drag-overlay.is-dropping { transition:transform .34s cubic-bezier(.22,1,.36,1),width .34s cubic-bezier(.22,1,.36,1),height .34s cubic-bezier(.22,1,.36,1),box-shadow .34s ease,opacity .34s ease; }
.np-drag-overlay.is-landing { transform:translate3d(var(--np-drag-x),var(--np-drag-y),0) scale(1) rotate(0); box-shadow:0 2px 8px #0001,inset 0 1px 0 #ffffff08; }
.np-drag-overlay.is-landing .np-drag-overlay-label,.np-drag-overlay.is-landing .np-drag-overlay-grip { opacity:0; transition:opacity .12s ease; }
.np-drag-overlay.is-returning.is-landing { opacity:0; }
.np-drag-overlay.is-short { flex-direction:row; align-items:center; justify-content:flex-start; padding-block:2px; gap:9px; }
.np-drag-overlay.is-short .np-drag-overlay-meta { flex-shrink:0; font-size:10px; }
.np-drag-overlay.is-short .np-drag-overlay-meta>span { display:none; }
.np-drag-overlay.is-short>strong { width:auto; }
.np-hours-help { font-size:10px; color:var(--np-muted); line-height:1.7; padding:0 4px; display:flex; justify-content:space-between; gap:15px; flex-shrink:0; }
.np-hours-help>span { white-space:nowrap; }
.np-time-editor { display:flex; align-items:center; flex-wrap:wrap; gap:14px; padding:12px 16px; border:1px solid var(--np-line); border-radius:12px; background:var(--np-widget-surface); backdrop-filter:var(--np-widget-blur); flex-shrink:0; }
.np-time-editor>div:first-child { flex:1; min-width:150px; display:grid; gap:5px; }
.np-time-editor>div:first-child>span,.np-time-editor>label { font-size:10px; color:var(--np-muted); }
.np-time-editor strong { font-size:12px; font-weight:400; overflow-wrap:anywhere; }
.np-time-editor>label { display:grid; gap:5px; }
.np-time-editor input { width:104px; min-height:36px; background:rgba(230,238,240,.025); border:1px solid var(--np-line); border-radius:8px; padding:5px 8px; color:var(--np-ink); font:400 12px var(--font-sans); }
.np-time-editor-actions { display:flex; align-items:center; gap:8px; }
.np-time-editor-actions .np-button { min-height:36px; font-size:11px; }
.np-time-editor .np-form-error { width:100%; }
.np-sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip-path:inset(50%)!important; white-space:nowrap!important; border:0!important; }
.np-task-drag-hint { display:block; margin-top:8px; opacity:.8; }
.np-task-draggable { position:relative; display:flex; flex-direction:column; gap:4px; padding:9px 0 9px 18px; cursor:grab; touch-action:none; }
.np-task-draggable { user-select:none; -webkit-user-drag:none; }
.np-task-draggable.is-task-dragging { opacity:.3; }
.np-task-draggable>span { width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.np-task-draggable>small { font-size:10px; color:var(--np-muted); }
.np-drag-grip { position:absolute; width:8px; height:16px; left:0; top:50%; transform:translateY(-50%); opacity:.45; }
.np-task-schedule { flex-shrink:0; width:30px; height:36px; opacity:.55; }
.np-task-schedule .np-icon { width:16px; height:16px; }
.np-page--hours .np-task-list { max-height:none; overflow:visible; }
.np-page--hours .np-task { border-bottom:1px solid var(--np-line-soft); padding-inline:6px; border-radius:8px; gap:9px; }
.np-page--hours .np-task:hover { background:rgba(230,238,240,.025); }
.np-page--hours .np-toast { bottom:39px; max-width:min(520px,calc(100% - 32px)); background:var(--panel-glass); backdrop-filter:var(--panel-blur); -webkit-backdrop-filter:var(--panel-blur); border-color:var(--border-soft); }

/* Task workspace: useful context, checklist, attachments and local updates. */
.nt-workspace .np-header h1 { font:300 clamp(25px,2.4vw,38px)/1.25 var(--font-display); letter-spacing:-.03em; max-width:800px; overflow-wrap:anywhere; }
.nt-layout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:22px; align-items:start; flex:0 0 auto; min-height:auto; }
.nt-workspace { padding-bottom:70px; }
.nt-workspace .nc-inline-notice { flex-shrink:0; }
.nc-unified-calendar input:is([type="date"],[type="time"]) { color-scheme:dark; }
.nt-main.np-card,.nt-context.np-card { background:rgba(10,19,24,.18); border:1px solid var(--np-line-soft); border-radius:18px; padding:26px; min-width:0; }
.nt-workspace h2 { font-size:17px; line-height:1.4; font-weight:400; }
.nt-tabs { margin-bottom:26px; }
.nt-tabs button { min-height:42px; }
.nt-tabs span { font-size:11px; margin-left:7px; opacity:.65; }
.nt-description { padding-bottom:24px; border-bottom:1px solid var(--np-line-soft); margin-bottom:24px; }
.nt-description p { white-space:pre-line; color:var(--np-muted); font-size:14px; line-height:1.85; margin-top:16px; overflow-wrap:anywhere; }
.nt-checklist .nm-section-head>span { color:var(--np-muted); font-size:12px; }
.nt-progress { height:3px; border-radius:4px; background:#ffffff0a; margin:18px 0; overflow:hidden; }
.nt-progress i { display:block; height:100%; background:#b1c8c5; transition:width .25s ease; }
.nt-step { display:flex; align-items:center; gap:12px; min-height:50px; padding:12px 8px; border-bottom:1px solid var(--np-line-soft); border-radius:7px; cursor:pointer; font-size:14px; line-height:1.6; }
.nt-step input { width:17px; height:17px; flex-shrink:0; }
.nt-step .is-done { color:var(--np-dim); text-decoration:line-through; }
.nt-context dl { margin:24px 0; display:grid; gap:22px; }
.nt-context dt { font-size:11px; color:var(--np-muted); margin-bottom:8px; }
.nt-context dd { margin:0; display:flex; align-items:center; gap:9px; font-size:13px; line-height:1.5; }
.nt-context .nm-avatar { width:27px; height:27px; font-size:10px; margin:0; }
.nt-status { color:#e2cfb0; background:#d9bd6f0b; padding:5px 9px; border-radius:7px; font-size:11px; }
.nt-status.is-complete { color:#b1d2be; background:#a6cfb20b; }
.nt-priority { text-transform:capitalize; }
.nt-priority:before { content:''; width:5px; height:5px; border-radius:50%; background:#c6c4bd; }
.nt-priority--high:before { background:#d7b694; }
.nt-context>.np-button { width:100%; min-height:42px; }
.nt-context>.nm-hint { display:block; font-size:11px; line-height:1.7; margin-top:16px; }
.nt-edit-form,.nt-add-step { display:grid; gap:18px; }
.nt-activity>h2 { margin-bottom:24px; }
.nt-activity article { display:flex; gap:12px; margin-bottom:24px; }
.nt-activity article .nm-avatar { width:32px; height:32px; margin:0; flex-shrink:0; font-size:11px; }
.nt-activity article>div { flex:1; min-width:0; }
.nt-activity article header { display:flex; align-items:center; flex-wrap:wrap; gap:12px; font-size:12px; }
.nt-activity time { font-size:11px; color:var(--np-dim); }
.nt-activity article p { font-size:13px; line-height:1.8; color:var(--np-muted); margin-top:9px; white-space:pre-wrap; overflow-wrap:anywhere; }
.nt-activity form { border-top:1px solid var(--np-line-soft); padding-top:22px; display:grid; gap:16px; }
.nt-activity form>.np-button { justify-self:end; }
.nc-inline-notice { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 16px; border:1px solid var(--np-line-soft); border-radius:12px; font-size:12px; color:var(--np-muted); margin:0; }
@media(max-width:850px) { .nt-layout { grid-template-columns:minmax(0,1fr); } .nt-context { grid-row:1; } .nt-context dl { grid-template-columns:repeat(3,minmax(0,1fr)); } .nt-context>.np-button { width:auto; } .nt-workspace .np-header { flex-wrap:wrap; } }
@media(max-width:560px) { .nt-main.np-card,.nt-context.np-card { padding:18px; } .nt-context dl { grid-template-columns:repeat(2,minmax(0,1fr)); } .np-hours-heading { align-items:flex-start; } .np-hours-guide { display:none; } .np-hour time { width:48px; font-size:10px; } .np-appointments { left:48px; } .np-appointment-body { padding-left:12px; padding-right:26px; } .np-appointment-meta { font-size:10px; gap:5px; } .np-appointment-kind { display:none; } .np-time-control { right:5px; } .np-appointment.is-short .np-appointment-meta { display:none; } .np-hours-help>span { display:none; } .np-planner .np-calendar-toolbar { flex-wrap:wrap; } .np-planner .np-calendar-controls { width:100%; justify-content:space-between; } .np-planner .np-segment button { padding:8px 12px; } }
@media(prefers-reduced-motion:reduce) { .nc-unified-calendar .np-page :is(button,input,textarea,summary),.nt-progress i { transition:none; } }

.np-planner.np-page--hours .np-main { overflow:hidden; }
.np-planner.np-page--hours .np-calendar { flex:1 1 0; min-height:0; display:flex; flex-direction:column; overflow:hidden; }
.np-page--hours .np-calendar-toolbar,.np-page--hours .np-calendar-footer { flex-shrink:0; }
.np-page--hours .np-hours-view { flex:1; min-height:0; }
.np-page--hours .np-hours-scroll { height:auto; flex:1; min-height:180px; }
@media(max-width:850px) { .np-planner.np-page--hours { overflow:auto; } .np-planner.np-page--hours .np-layout { flex:0 0 auto; overflow:visible; min-height:0; } .np-planner.np-page--hours .np-main { overflow:visible; } .np-planner.np-page--hours .np-calendar { flex:0 0 auto; min-height:auto; overflow:visible; } .np-page--hours .np-hours-view { flex:none; } .np-page--hours .np-hours-scroll { flex:none; height:420px; } }
.np-page--hours :is(.np-hours-scroll,.np-main,.np-sidebar):focus-visible { outline:1px solid rgba(230,238,240,.45); outline-offset:2px; }
@media(prefers-reduced-motion:reduce) { .np-appointment,.np-resize i { transition:none; } }

/* One day, three continuous eight-hour columns. Percentages keep every card
   proportional to its real duration at any desktop height. */
/* Keep the page glass behind the calendar, rather than making the entire
   calendar an ancestor backdrop root for the appointment glass. */
.np-page--hours.np-planner { position:relative; isolation:isolate; background:none; backdrop-filter:none; -webkit-backdrop-filter:none; }
.np-page--hours.np-planner::before { content:''; position:fixed; inset:0; z-index:-1; border-radius:inherit; background:var(--np-widget-surface); backdrop-filter:var(--np-widget-blur); -webkit-backdrop-filter:var(--np-widget-blur); pointer-events:none; }
.np-page--hours.np-planner .np-layout--tasks { grid-template-columns:minmax(0,1fr) 248px; gap:16px; }
.np-page--hours.np-planner .np-calendar-toolbar { padding-bottom:7px; }
.np-page--hours .np-hours-view { gap:8px; position:relative; }
.np-page--hours .np-hours-heading { padding:0 2px; }
.np-page--hours .np-hours-heading>div { display:flex; align-items:baseline; gap:10px; }
.np-page--hours .np-hours-heading strong { font:400 12px/1.5 var(--font-sans); letter-spacing:0; }
.np-page--hours .np-hours-heading>div>span { margin:0; font-size:10px; }
.np-day-board { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; flex:1; min-height:0; position:relative; }
.np-day-schedule { display:flex; flex-direction:column; gap:10px; flex:1; min-height:0; }
.np-day-segment { display:flex; flex-direction:column; min-width:0; min-height:0; padding:11px 8px 15px 0; border:1px solid var(--np-line-soft); border-radius:14px; background:var(--np-widget-surface); }
.np-day-segment-heading { display:flex; justify-content:space-between; align-items:center; gap:6px; padding:0 6px 10px 12px; min-height:26px; flex-shrink:0; }
.np-day-segment-heading strong { font:400 12px/1.3 var(--font-sans); color:var(--np-ink); }
.np-day-segment-heading>span { font:400 10px/1.3 var(--font-sans); font-variant-numeric:tabular-nums; color:var(--np-muted); }
.np-day-segment-heading>div { display:flex; align-items:center; gap:8px; min-width:0; }
.np-day-segment-heading>span { flex-shrink:0; }
.np-now-badge { font:400 10px/1.3 var(--font-sans); color:var(--np-muted); white-space:nowrap; font-variant-numeric:tabular-nums; }
.np-now-badge:before { content:''; display:inline-block; width:4px; height:4px; margin-right:5px; border-radius:50%; background:#c6ded8; vertical-align:middle; }
.np-day-board .np-hours-track { height:auto; flex:1 1 0; min-height:0; }
.np-section-slack { flex:0 1 0; min-height:0; }
.np-day-board .np-hour { position:absolute; left:0; right:0; }
.np-day-board .np-hour time { width:43px; font-size:10px; transform:translateY(-5px); }
.np-day-board .np-hour-slot { height:100%; background:linear-gradient(transparent 49.5%,rgba(230,240,245,.025) 50%,transparent 50.5%); }
.np-is-scheduling .np-day-board .np-hour-slot { background:repeating-linear-gradient(to bottom,transparent 0 calc(25% - 1px),rgba(230,240,245,.04) calc(25% - 1px) 25%); }
.np-day-board .np-appointments { left:43px; }
.np-section-end { position:absolute; left:0; bottom:-5px; width:43px; text-align:center; font:400 10px/1 var(--font-sans); color:var(--np-muted); font-variant-numeric:tabular-nums; }
.np-day-board .np-appointment { border-radius:8px; z-index:1; }
/* Size containment belongs to the content, so the glass surface can sample
   the hour rules underneath without clipping its backdrop to a size layer. */
.np-appointment-content { position:absolute; inset:0; z-index:1; border-radius:inherit; container:day-card / size; }
.np-across-periods { flex-shrink:0; padding:9px 10px 7px; border-radius:10px; background:var(--np-widget-surface); border:1px solid var(--np-line-soft); }
.np-across-periods>header { display:flex; align-items:center; justify-content:space-between; gap:10px; font:400 10px/1.4 var(--font-sans); color:var(--np-muted); margin-bottom:4px; }
.np-across-periods>header strong { font-weight:400; color:var(--np-ink); }
.np-across-axis { display:flex; justify-content:space-between; font:400 9px/1.5 var(--font-sans); color:var(--np-dim); font-variant-numeric:tabular-nums; }
.np-across-track { position:relative; min-width:0; background:repeating-linear-gradient(to right,var(--np-line-soft) 0 1px,transparent 1px 25%); }
.np-across-track .np-appointments { left:0; }
.np-across-appointment .np-appointment-body { flex-direction:row; align-items:center; gap:7px; padding:3px 30px 3px 12px; overflow:hidden; }
.np-across-appointment .np-appointment-body>strong { flex:1; min-width:0; font-size:11px; width:auto; }
.np-across-time { color:var(--np-muted); font:400 10px/1.3 var(--font-sans); font-variant-numeric:tabular-nums; white-space:nowrap; }
.np-across-appointment .np-time-control { top:50%; transform:translateY(-50%); right:5px; width:20px; height:20px; }
.np-across-appointment .np-time-control svg { width:13px; height:13px; }
.np-across-appointment .np-resize--left,.np-across-appointment .np-resize--right { top:0; bottom:0; width:7px; height:100%; cursor:ew-resize; }
.np-across-appointment .np-resize--left { left:0; right:auto; }
.np-across-appointment .np-resize--right { left:auto; right:0; }
.np-across-appointment .np-resize i { width:2px; height:14px; }
@container day-card (max-width:320px) { .np-across-time { display:none; } }
@container day-card (max-width:95px) { .np-across-appointment .np-time-control { display:none; } .np-across-appointment .np-appointment-body { padding:2px; gap:3px; } .np-across-appointment .np-appointment-body>strong { font-size:9px; } }
.np-day-board .np-appointment:is(:hover,:focus-within) { z-index:3; }
.np-day-board .np-appointment-body { display:grid; grid-template-columns:5px minmax(0,1fr) auto; grid-template-rows:min-content min-content; align-content:start; padding:7px 28px 8px 9px; column-gap:6px; row-gap:4px; overflow:hidden; }
.np-day-board .np-appointment-marker { grid-column:1; grid-row:1; margin-top:4px; align-self:start; }
.np-day-board .np-appointment-body>strong { grid-column:2 / 4; grid-row:2; font-size:12px; min-width:0; line-height:1.4; width:100%; }
.np-day-board .np-appointment-source { grid-column:3; grid-row:1; align-self:center; }
.np-day-board .np-appointment-meta { grid-column:2; grid-row:1; font-size:10px; gap:6px; overflow:visible; line-height:1.4; }
.np-day-board .np-appointment-range { flex-shrink:0; }
.np-day-board .np-appointment-kind { display:none; }
.np-day-board .np-appointment-duration { font-size:10px; padding-left:6px; flex-shrink:0; }
.np-day-board .np-time-control { right:3px; top:4px; width:22px; height:22px; }
.np-day-board .np-time-control svg { width:13px; height:13px; }
.np-day-board .np-resize--top { height:5px; }
.np-day-board .np-resize--bottom { height:8px; }
.np-day-board .np-resize i { width:22px; }
.np-day-board .np-time-guide span { font-size:9px; top:-20px; right:0; z-index:7; }
.np-day-board .np-drop-preview { gap:3px; padding:3px; overflow:hidden; }
.np-day-board .np-drop-preview>strong { font-size:11px; }
.np-day-board .np-drop-preview>small { font-size:9px; }
.np-day-board .np-appointment.continues-before { border-top-style:dashed; border-top-left-radius:3px; border-top-right-radius:3px; }
.np-day-board .np-appointment.continues-after { border-bottom-style:dashed; border-bottom-left-radius:3px; border-bottom-right-radius:3px; }
.np-continuation { position:absolute; left:3px; font:400 10px/1 var(--font-sans); color:var(--np-muted); pointer-events:none; }
.np-continuation--before { top:1px; } .np-continuation--after { bottom:1px; }
.np-day-board .np-now-line { background:none; z-index:2; }
.np-day-board .np-now-line>b { position:absolute; height:1px; top:0; background:#c6ded845; }
.np-day-board .np-now-line>i { left:-2px; width:4px; height:4px; top:-2px; background:#c6ded8; }
.np-page--hours .np-time-editor { position:absolute; bottom:0; left:0; right:0; z-index:20; background:rgba(32,43,49,.85); backdrop-filter:blur(28px); }
.np-day-board:focus-visible { outline:1px solid rgba(230,238,240,.45); outline-offset:2px; }
@container day-card (max-width:240px) {
  .np-day-board .np-appointment-duration { display:none; }
}
@container day-card (min-height:72px) {
  .np-day-board .np-appointment-body>strong { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; white-space:normal; overflow-wrap:anywhere; }
}
@container day-card (max-height:52px) {
  .np-day-board .np-appointment-body { grid-template-rows:minmax(0,1fr); align-content:center; align-items:center; gap:6px; padding-block:3px; }
  .np-day-board .np-appointment-meta { display:none; }
  .np-day-board .np-appointment-body>strong { grid-column:2; grid-row:1; width:100%; font-size:12px; }
  .np-day-board .np-appointment-marker { margin-top:0; align-self:center; }
  .np-day-board .np-time-control { top:50%; transform:translateY(-50%); height:20px; }
  .np-continuation--before { top:50%; transform:translateY(-50%); left:1px; }
  .np-drop-preview>small { display:none; }
}
@container day-card (max-width:170px) {
  .np-day-board .np-appointment-meta { display:none; }
  .np-day-board .np-appointment-body { grid-template-rows:min-content; }
  .np-day-board .np-appointment-body>strong { grid-column:2; grid-row:1; }
}
@container day-card (max-width:170px) and (min-height:38px) {
  .np-day-board .np-appointment-body { padding-block:3px; align-content:center; }
  .np-day-board .np-appointment-body>strong { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; white-space:normal; overflow-wrap:anywhere; font-size:11px; }
}
@container day-card (max-width:95px) {
  .np-day-board .np-time-control { display:none; }
  .np-day-board .np-appointment-source { display:none; }
  .np-day-board .np-appointment-body { padding-right:9px; }
}
@container day-card (max-height:22px) {
  .np-day-board .np-appointment-body { padding-block:0; }
  .np-day-board .np-appointment-body>strong { font-size:11px; }
  .np-day-board .np-time-control { display:none; }
  .np-resize { width:26px!important; left:auto!important; right:2px!important; height:3px!important; }
}
@container day-card (min-height:18px) and (max-height:22px) {
  .np-day-board .np-appointment:is(:hover,:focus-within) .np-time-control { display:grid; width:18px; height:18px; }
}
@container day-card (max-height:14px) {
  .np-day-board .np-appointment-body>strong { display:none; }
  .np-day-board .np-appointment-marker { width:3px; height:3px; }
  .np-continuation { font-size:8px; line-height:1; top:50%; bottom:auto; transform:translateY(-50%); left:auto; right:5px; }
}
/* Full names and times remain available without expanding the time footprint. */
.np-appointment-preview { position:fixed; z-index:11001; box-sizing:border-box; display:grid; gap:9px; padding:15px 17px; border:0; border-radius:var(--panel-radius); background:var(--panel-glass); backdrop-filter:var(--panel-blur); -webkit-backdrop-filter:var(--panel-blur); box-shadow:var(--panel-shadow),var(--panel-highlight); color:var(--text-primary); font:400 12px/1.5 var(--font-sans); pointer-events:none; max-width:calc(100vw - 24px); max-height:calc(100vh - 24px); overflow:auto; animation:np-preview-in .14s ease-out; }
.np-appointment-preview>span { color:var(--text-secondary); font-size:11px; }
.np-appointment-preview>strong { font-weight:400; font-size:14px; overflow-wrap:anywhere; white-space:normal; }
.np-appointment-preview>div { display:flex; align-items:center; flex-wrap:wrap; gap:12px; font-variant-numeric:tabular-nums; }
.np-appointment-preview>div>span { color:var(--text-secondary); padding-left:12px; border-left:1px solid var(--border-soft); }
.np-appointment-preview>small { color:var(--text-secondary); font-size:10px; }
@keyframes np-preview-in { from { opacity:0; } to { opacity:1; } }
.np-page--hours .np-task-draggable>span { white-space:normal; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-height:1.4; }
@media(min-width:1800px) { .np-page--hours.np-planner .np-layout--tasks { grid-template-columns:minmax(0,1fr) 300px; } }
@media(max-width:850px) {
  .np-page--hours.np-planner .np-layout--tasks { grid-template-columns:minmax(0,1fr); }
  .np-page--hours .np-header { flex-wrap:wrap; }
  .np-page--hours .np-hours-view { min-height:570px; }
  .np-day-board { min-height:480px; }
  .np-day-segment-heading>div { flex-wrap:wrap; gap:4px 8px; }
}
@media(max-width:620px) {
  .np-day-board { grid-template-columns:minmax(0,1fr); min-height:0; flex:none; }
  .np-day-segment { height:470px; }
  .np-page--hours .np-time-editor { position:sticky; bottom:12px; }
}
@media(prefers-reduced-motion:reduce) { .np-drag-overlay,.np-drag-overlay.is-dropping { transform:translate3d(var(--np-drag-x),var(--np-drag-y),0); transition:none; } .np-appointment-preview { animation:none; } }

/* A week is an agenda, rather than seven stretched month cells. */
.np-page--week.np-planner { position:relative; isolation:isolate; background:none; backdrop-filter:none; -webkit-backdrop-filter:none; }
.np-page--week.np-planner::before { content:''; position:fixed; inset:0; z-index:-1; border-radius:inherit; background:var(--np-widget-surface); backdrop-filter:var(--np-widget-blur); -webkit-backdrop-filter:var(--np-widget-blur); pointer-events:none; }
.np-page--week .np-main,.np-page--week .np-calendar { display:flex; flex-direction:column; flex:1; min-height:0; overflow:hidden; }
.np-page--week .np-calendar-toolbar,.np-page--week .np-calendar-footer { flex-shrink:0; }
.np-page--week .np-calendar-toolbar { padding-bottom:14px; }
.nw-board { position:relative; display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:10px; flex:1; min-width:0; min-height:0; overflow:hidden; padding:1px; }
.nw-day { display:flex; flex-direction:column; min-width:0; min-height:0; border:1px solid var(--border-softer); border-radius:14px; background:var(--np-widget-surface); overflow:hidden; }
.nw-day.is-selected { border-color:rgba(218,237,235,.15); }
.nw-day.is-today { border-color:rgba(167,215,201,.24); }
.nw-day-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:14px 12px 12px; border-bottom:1px solid var(--border-softer); flex-shrink:0; }
.nw-day-open { display:flex; align-items:center; gap:8px; padding:4px; margin:-4px; border:0; border-radius:6px; background:transparent; text-align:left; color:var(--text-primary); }
.nw-day-open>span { font:400 11px/1.4 var(--font-sans); color:var(--text-secondary); }
.nw-day-open>strong { font:400 20px/1 var(--font-display); }
.nw-day-open>i { width:4px; height:4px; border-radius:50%; background:#aadcca; }
.nw-day-count { font:400 10px/1 var(--font-sans); color:var(--text-secondary); }
.nw-day-items { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:rgba(192,215,216,.15) transparent; display:flex; flex-direction:column; gap:8px; padding:10px 8px; }
.nw-event { position:relative; display:flex; flex-direction:column; gap:8px; flex-shrink:0; min-width:0; min-height:76px; padding:11px 10px 12px; text-align:left; border:1px solid var(--border-soft); border-radius:9px; background:var(--panel-glass); backdrop-filter:var(--panel-blur); -webkit-backdrop-filter:var(--panel-blur); box-shadow:var(--panel-highlight); transition:background-color .2s ease,border-color .2s ease,translate .22s cubic-bezier(.22,1,.36,1); }
.nw-event::before { content:''; position:absolute; left:-1px; top:13px; width:2px; height:12px; background:var(--np-category,var(--np-focus)); opacity:.75; border-radius:2px; }
.nw-event-meta { display:flex; align-items:center; justify-content:space-between; gap:5px; min-width:0; }
.nw-event-meta>time { font:400 10px/1.4 var(--font-sans); color:var(--text-secondary); white-space:nowrap; font-variant-numeric:tabular-nums; }
.nw-event>strong { font:400 12px/1.5 var(--font-sans); color:var(--text-primary); display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; overflow-wrap:anywhere; }
.nw-event:is(:hover,:focus-visible) { border-color:rgba(218,237,235,.25); background-color:rgba(36,45,47,.57); translate:0 -1px; }
.nw-event.is-done>strong { text-decoration:line-through; color:var(--text-secondary); }
.nw-empty { display:grid; justify-items:center; gap:12px; padding:34px 0; font:400 11px/1.4 var(--font-sans); color:var(--text-secondary); }
.nw-empty>span { opacity:.65; }
.nw-board .nw-empty-add,.nw-board .nw-add-plan { border:0; border-radius:6px; background:none; color:var(--text-secondary); font:400 11px/1.4 var(--font-sans); min-height:32px; padding:8px; }
.nw-empty-add:hover,.nw-add-plan:hover,.nw-day-open:hover { background:rgba(235,245,250,.045); color:var(--text-primary); }
.nw-add-plan { margin:3px 8px 8px; flex-shrink:0; text-align:left; }
@media(max-width:1100px) { .np-page--week .np-layout--tasks { grid-template-columns:minmax(0,1fr); } .nw-board { grid-template-columns:repeat(7,minmax(142px,1fr)); overflow-x:auto; scrollbar-width:thin; scrollbar-color:rgba(192,215,216,.18) transparent; } .nw-day-heading { padding:12px 9px; } }
@media(max-width:850px) { .np-page--week .np-calendar { min-height:550px; } .nw-board { min-height:470px; } .np-page--week .np-header { flex-wrap:wrap; gap:16px; } }
@media(prefers-reduced-motion:reduce) { .nw-event { transition:none; translate:none!important; } }
.nc-unified-calendar .nm-options summary { border-radius:8px; transition:background-color .2s ease; }
.nc-unified-calendar .nm-options summary:hover { background:rgba(235,245,250,.075); }

.nc-unified-calendar .np-icon-button { border-radius:9px; }

/* The same masthead stays in place when switching calendar views. */
.np-planner.np-page--calendar { padding:18px 24px 22px; gap:24px; position:relative; isolation:isolate; background:none; backdrop-filter:none; -webkit-backdrop-filter:none; overflow:hidden; }
.np-planner.np-page--calendar::before { content:''; position:fixed; inset:0; z-index:-1; border-radius:inherit; background:var(--np-widget-surface); backdrop-filter:var(--np-widget-blur); -webkit-backdrop-filter:var(--np-widget-blur); pointer-events:none; }
/* Keep the section's height; balance the controls between its top and divider. */
.np-planner.np-page--calendar .np-header { position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px 24px; min-height:64px; padding:9px 0 15px; }
.np-planner.np-page--calendar .np-header::after { content:''; position:absolute; inset:auto 0 -12px; height:1px; background:linear-gradient(90deg,transparent,var(--border-soft) 8%,var(--border-soft) 92%,transparent); pointer-events:none; }
.np-planner.np-page--calendar .np-title-block { min-width:0; }
.np-planner.np-page--calendar .np-calendar-heading-row { display:flex; align-items:center; gap:16px; }
.np-planner.np-page--calendar .np-header h1 { flex-shrink:0; font:300 clamp(25px,2.1vw,32px)/1.2 var(--font-display); letter-spacing:-.045em; margin:0; }
.np-planner.np-page--calendar .np-month-title { min-height:40px; white-space:nowrap; gap:10px; }
.np-period-nav { display:flex; align-items:center; gap:4px; flex-shrink:0; }
.np-period-nav .np-icon-button { width:34px; height:40px; border-color:transparent; background:transparent; }
.np-period-nav .np-icon-button:hover { background:var(--np-hover); }
.np-planner.np-page--calendar .np-segment { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:216px; gap:0; padding:0; flex-shrink:0; border:0; border-radius:0; background:none; }
.np-planner.np-page--calendar .np-segment button { min-width:0; min-height:40px; padding:8px 10px; border:0; border-radius:4px; background:none; box-shadow:none; color:var(--np-muted); font:400 11px/1.4 var(--font-sans); white-space:nowrap; transition:color 300ms var(--chrome-ease); }
.np-planner.np-page--calendar .np-segment button[aria-selected="true"] { color:var(--np-ink); font-weight:500; }
.np-planner.np-page--calendar .np-segment button[role="tab"]:hover { color:var(--np-ink); background:none; }
.np-planner.np-page--calendar .np-header-actions { display:grid; grid-template-columns:repeat(3,136px); gap:8px; width:auto; padding:0; }
.np-planner.np-page--calendar .np-header-actions .np-button { width:100%; min-width:0; height:40px; min-height:40px; padding:8px 12px; gap:8px; font:400 12px/1.4 var(--font-sans); }
.np-planner.np-page--calendar .np-header-actions .np-icon { width:17px; height:17px; }
.np-planner.np-page--calendar .np-task-total { font:400 10px/1.4 var(--font-sans); font-variant-numeric:tabular-nums; }
.np-planner.np-page--calendar .np-layout { position:relative; align-items:stretch; min-height:0; }
.np-planner.np-page--calendar .np-main { gap:12px; padding:0; min-height:0; overflow:hidden; scrollbar-gutter:auto; }
.np-planner.np-page--calendar .np-calendar { flex:1 1 0; min-height:0; overflow:visible; }
.np-calendar-stage { position:relative; flex:1 1 0; min-width:0; min-height:0; overflow:clip; }
.np-calendar-stage:focus-visible { outline:1px solid rgba(230,238,240,.4); outline-offset:2px; border-radius:10px; }
.np-calendar-view { position:relative; display:flex; flex-direction:column; flex:1 1 0; min-width:0; min-height:0; }
.np-calendar-stage>.np-calendar-view { position:absolute; inset:0; }
.np-calendar-view>.np-hours-view { flex:1; min-height:0; }
.np-calendar-view .np-hours-help { display:none; }
.np-planner.np-page--calendar .np-calendar-footer { min-height:28px; padding:8px 2px 0; }
.np-planner.np-page--calendar .np-calendar-footer p { margin:0; font:400 10px/1.5 var(--font-sans); }
.np-planner.np-page--calendar .np-month-picker { position:absolute; top:73px; left:24px; z-index:30; width:min(540px,calc(100% - 48px)); padding:18px; border:1px solid var(--border-soft); border-radius:14px; background:var(--panel-glass); backdrop-filter:var(--panel-blur); -webkit-backdrop-filter:var(--panel-blur); box-shadow:var(--np-widget-shadow); }
.np-calendar-swap-enter-active { z-index:1; transition:opacity 360ms ease 40ms,translate 400ms cubic-bezier(.22,1,.36,1); }
.np-calendar-swap-leave-active { transition:opacity 220ms ease,translate 280ms cubic-bezier(.22,1,.36,1); pointer-events:none; }
.np-calendar-swap-enter-from { opacity:0; translate:0 6px; }
.np-calendar-swap-leave-to { opacity:0; translate:0 -4px; }
/* Keep every week in frame. Denser screens use counts instead of clipped text. */
.np-planner .np-calendar-view--month .np-calendar-scroll { container:month-calendar / size; flex:1 1 0; min-height:0; overflow:visible; }
.np-planner .np-calendar-view--month .np-grid { grid-template-rows:repeat(var(--np-rows),minmax(0,1fr)); flex:1 1 0; min-height:0; }
.np-planner .np-calendar-view--month .np-day { min-height:0; gap:3px; padding:6px 8px; overflow:hidden; }
.np-planner .np-calendar-view--month .np-day-number { flex-shrink:0; min-height:24px; margin:0; padding:0; font:400 12px/1.4 var(--font-sans); }
.np-planner .np-calendar-view--month .np-event { min-height:22px; padding:2px 0; flex-shrink:0; font:400 11px/1.5 var(--font-sans); }
.np-calendar-view--month .np-event>span:not(.nc-source-badge) { flex:1; min-width:0; }
.np-planner .np-calendar-view--month .np-more { flex-shrink:0; min-height:20px; padding:1px 0; font:400 10px/1.5 var(--font-sans); }
.np-more-compact,.np-more--compact-only,.np-calendar-view--month .np-day-count { display:none; }
.np-planner .np-calendar-view--month .np-day-count { position:absolute; left:8px; top:32px; align-items:center; gap:5px; pointer-events:none; color:var(--np-muted); font:400 10px/1.4 var(--font-sans); white-space:nowrap; }
.np-day-count .np-dot { width:4px; height:4px; }
@container month-calendar (max-height:680px) {
  .np-calendar-view--month .np-event--secondary,.np-calendar-view--month .np-more-full { display:none; }
  .np-calendar-view--month .np-more-compact,.np-calendar-view--month .np-more--compact-only { display:inline; }
}
@container month-calendar (max-height:520px) {
  .np-calendar-view--month .np-event,.np-calendar-view--month .np-more { display:none; }
  .np-calendar-view--month .np-day-count { display:flex; }
  .np-planner .np-calendar-view--month .np-day-number { position:absolute; inset:0; height:100%; align-items:flex-start; padding:8px; }
}
@container month-calendar (max-width:640px) {
  .np-calendar-view--month .np-event,.np-calendar-view--month .np-more { display:none; }
  .np-calendar-view--month .np-day-count { display:flex; }
  .np-calendar-view--month .np-day-count-label { display:none; }
  .np-planner .np-calendar-view--month .np-day-number { position:absolute; inset:0; height:100%; align-items:flex-start; padding:8px 5px; }
  .np-planner .np-calendar-view--month .np-day-count { left:auto; right:5px; top:30px; }
}
@container month-calendar (max-height:310px) {
  .np-planner .np-calendar-view--month .np-day-count { left:auto; right:5px; top:9px; gap:3px; }
  .np-calendar-view--month .np-day-count-label { display:none; }
  .np-calendar-view--month .np-today-dot { position:absolute; right:5px; bottom:5px; }
}
@media(min-width:851px) {
  .np-planner.np-page--calendar .np-layout { flex:1 1 0; min-height:0; overflow:hidden; }
}
@media(max-width:1150px) {
  .np-planner.np-page--calendar .np-header { grid-template-columns:minmax(0,1fr); gap:8px; }
  .np-planner.np-page--calendar .np-header-actions { justify-self:start; }
}
@media(max-width:640px) {
  .np-planner.np-page--calendar { padding:18px 14px 22px; gap:22px; }
  .np-planner.np-page--calendar .np-calendar-heading-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; }
  .np-planner.np-page--calendar .np-header h1 { font-size:25px; }
  .np-planner.np-page--calendar .np-month-title { min-height:44px; }
  .np-planner.np-page--calendar .np-month-picker { top:77px; }
  .np-period-nav { gap:4px; }
  .np-period-nav .np-icon-button { width:44px; height:44px; }
  .np-planner.np-page--calendar .np-header::after { bottom:-11px; }
  .np-planner.np-page--calendar .np-segment { grid-column:1 / -1; width:100%; }
  .np-planner.np-page--calendar .np-segment button { min-height:44px; font-size:12px; }
  .np-planner.np-page--calendar .np-header-actions { justify-self:stretch; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .np-planner.np-page--calendar .np-header-actions .np-button { height:44px; min-height:44px; padding:8px 5px; gap:5px; font-size:10px; }
  .np-planner.np-page--calendar .np-header-actions .np-icon { width:14px; height:14px; }
  .np-planner.np-page--calendar .np-calendar-footer p { visibility:hidden; }
}
@media(max-width:850px) {
  .np-planner.np-page--calendar .np-layout { flex:1 1 0; min-height:0; overflow:hidden; }
  .np-planner.np-page--calendar .np-layout--tasks { grid-template-columns:minmax(0,1fr); }
  .np-planner.np-page--calendar .np-sidebar { position:absolute; inset:0 0 0 auto; z-index:12; width:min(320px,100%); height:100%; min-height:0; padding:16px; overflow:auto; border:1px solid var(--border-soft); border-radius:14px; background:var(--panel-glass); backdrop-filter:var(--panel-blur); -webkit-backdrop-filter:var(--panel-blur); box-shadow:var(--np-widget-shadow); }
  .np-planner.np-page--calendar .np-main { flex:1 1 0; min-height:0; overflow:hidden; }
  .np-planner.np-page--calendar .np-calendar { flex:1 1 0; min-height:0; overflow:hidden; }
  .np-calendar-view>.nw-board { min-height:0; }
  .np-calendar-view>.np-hours-view { flex:1; }
  .np-page--hours .np-day-schedule { overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:rgba(192,215,216,.18) transparent; }
  .np-planner.np-page--calendar .np-calendar-footer p:last-child { display:none; }
  .np-calendar-view--month .np-day { padding:4px; }
  .np-planner.np-page--month { overflow:hidden; }
}
@media(prefers-reduced-motion:reduce) {
  .np-calendar-swap-enter-active,.np-calendar-swap-leave-active { transition:none; }
  .np-calendar-swap-enter-from,.np-calendar-swap-leave-to { translate:none; }
}
/* A short landscape screen keeps its month grid usable, with labeled icons. */
@media(max-height:550px) and (min-width:640px) {
  .np-planner.np-page--calendar { padding:8px 12px; gap:8px; }
  .np-planner.np-page--calendar .np-header { grid-template-columns:minmax(0,1fr) auto; gap:12px; min-height:36px; padding:0; }
  .np-planner.np-page--calendar .np-header::after { bottom:-4px; }
  .np-planner.np-page--calendar .np-calendar-footer { min-height:28px; padding:0; }
  .np-planner.np-page--calendar .np-calendar-footer p { visibility:hidden; }
  .np-planner .np-calendar-view--month .np-day-number { min-height:0; padding:3px 5px; font-size:11px; }
  .np-planner .np-calendar-view--month .np-day-count { top:4px; }
  .np-planner.np-page--calendar .np-header h1 { font-size:20px; }
  .np-planner.np-page--calendar .np-calendar-heading-row { gap:8px; }
  .np-planner.np-page--calendar .np-month-title { min-height:36px; }
  .np-planner.np-page--calendar .np-period-nav .np-icon-button { width:30px; height:36px; }
  .np-planner.np-page--calendar .np-segment { width:174px; }
  .np-planner.np-page--calendar .np-segment button { min-width:0; min-height:36px; padding:6px 8px; }
  .np-planner.np-page--calendar .np-header-actions { grid-template-columns:repeat(3,36px); gap:6px; }
  .np-planner.np-page--calendar .np-header-actions .np-button { width:36px; height:36px; min-height:36px; padding:8px; }
  .np-planner.np-page--calendar .np-header-actions :is(.np-action-label,.np-task-total) { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .np-planner.np-page--calendar .np-month-picker { top:52px; left:12px; max-height:calc(100% - 60px); overflow:auto; }
}

/* A day's agenda shares one list; full notes and task details open on demand. */
.np-page--daily.np-planner { gap:16px; padding-bottom:70px; position:relative; isolation:isolate; background:none; backdrop-filter:none; -webkit-backdrop-filter:none; }
.np-page--daily.np-planner::before { content:''; position:fixed; inset:0; z-index:-1; border-radius:inherit; background:var(--np-widget-surface); backdrop-filter:var(--np-widget-blur); -webkit-backdrop-filter:var(--np-widget-blur); pointer-events:none; }
.np-page--daily .np-header h1 { font-size:clamp(23px,2vw,30px); }
.np-page--daily .np-header-actions .np-button { font:400 12px/1.4 var(--font-sans); }
.np-page--daily .nd-overview { display:block; flex:0 0 auto; width:100%; max-width:1100px; margin:0 auto; min-height:0; }
.np-page--daily .np-daily-main { padding:0; }
.np-page--daily .np-daily-toolbar { padding:10px 0 16px; }
.np-page--daily .np-daily-toolbar>div:first-child { display:flex; align-items:baseline; gap:12px; }
.np-page--daily .np-daily-toolbar h2 { font:400 15px/1.5 var(--font-sans); letter-spacing:0; }
.nd-count { font:400 11px/1.4 var(--font-sans); color:var(--text-secondary); }
.np-page--daily .nd-timeline-link { font:400 11px/1.4 var(--font-sans); min-height:32px; padding:6px 10px; }
.np-page--daily .np-day-controls .np-icon-button { width:32px; height:32px; }
.nd-agenda { display:flex; flex-direction:column; gap:10px; }
.nd-row { display:grid; grid-template-columns:65px minmax(0,1fr); align-items:center; gap:14px; }
.nd-time { font:400 12px/1.5 var(--font-sans); font-variant-numeric:tabular-nums; text-align:right; }
.nd-time>span { display:block; color:var(--text-secondary); font-size:11px; }
.nd-item { display:flex; align-items:center; min-width:0; border:1px solid var(--border-soft); border-radius:12px; background:var(--panel-glass); backdrop-filter:var(--panel-blur); -webkit-backdrop-filter:var(--panel-blur); box-shadow:var(--panel-highlight); overflow:hidden; }
.nd-item>.nd-item-open { min-width:0; flex:1; display:flex; flex-direction:column; gap:6px; min-height:74px; padding:12px 16px; border:0; background:transparent; text-align:left; transition:background-color .2s ease; }
.nd-item-open:hover { background:rgba(235,245,250,.045); }
.nd-item-meta { display:flex; align-items:center; gap:7px; font:400 10px/1.4 var(--font-sans); color:var(--text-secondary); }
.nd-item-meta .np-dot { width:5px; height:5px; }
.nd-item-meta .nc-source-badge { margin-left:3px; }
.nd-item-open>strong { font:400 13px/1.5 var(--font-sans); overflow-wrap:anywhere; }
.nd-item>input { width:18px; height:18px; flex-shrink:0; margin-right:18px; }
.nc-unified-calendar .np-page input[type="checkbox"] { appearance:none; -webkit-appearance:none; width:18px; height:18px; flex-shrink:0; border:1px solid rgba(208,225,226,.44); border-radius:5px; background-color:rgba(235,245,250,.025); cursor:pointer; transition:background-color .16s ease,border-color .16s ease; }
.nc-unified-calendar .np-page input[type="checkbox"]:hover { border-color:rgba(208,225,226,.78); }
.nc-unified-calendar .np-page input[type="checkbox"]:checked { border-color:#b7d1c8; background-color:#b7d1c8; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='m4 9 3.2 3.2L14 5.5' fill='none' stroke='%23182023' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-position:center; background-repeat:no-repeat; }
.nd-item.is-done strong { text-decoration:line-through; color:var(--text-secondary); }
.nd-agenda .nd-add-task { align-self:flex-start; margin-left:79px; min-height:36px; padding:8px 12px; border:0; border-radius:8px; background:none; color:var(--text-secondary); font:400 12px/1.4 var(--font-sans); }
.nd-add-task:hover { color:var(--text-primary); background:rgba(235,245,250,.045); }
.nd-empty { color:var(--text-secondary); font-size:13px; padding:28px 12px 28px 79px; }
.np-page--daily .np-inline-editor { max-width:760px; margin:0 auto; }
@media(max-width:760px) {
  .nm-page--embedded .nm-page-header,.nt-workspace>.nc-return-path,.np-page--daily>.nc-return-path { position:sticky; top:0; z-index:30; padding:8px; margin:0 -8px; border-radius:10px; background:var(--panel-glass); backdrop-filter:var(--panel-blur); -webkit-backdrop-filter:var(--panel-blur); }
  .nm-page--embedded { scroll-padding-top:115px; }
  .nt-workspace,.np-page--daily { scroll-padding-top:60px; }
}
.nm-page .nm-context { align-self:start; }
.nm-context h2>span { font:400 11px/1.4 var(--font-sans); color:var(--text-secondary); margin-left:6px; }
.nm-context .nm-context-people { margin-top:18px; }
.nm-context-tools { display:grid; gap:9px; margin-top:22px; padding-top:18px; border-top:1px solid var(--border-soft); }
.nm-context-tools .np-button { justify-content:flex-start; font:400 12px/1.4 var(--font-sans); min-height:36px; }
.nt-workspace.np-page { position:relative; isolation:isolate; background:none; backdrop-filter:none; -webkit-backdrop-filter:none; gap:16px; }
.nt-workspace.np-page::before { content:''; position:fixed; inset:0; z-index:-1; border-radius:inherit; background:var(--np-widget-surface); backdrop-filter:var(--np-widget-blur); -webkit-backdrop-filter:var(--np-widget-blur); pointer-events:none; }
.nt-workspace .nt-main.np-card,.nt-workspace .nt-context.np-card { background:var(--panel-glass); backdrop-filter:var(--panel-blur); -webkit-backdrop-filter:var(--panel-blur); }
.nt-workspace .np-header h1 { font-size:clamp(24px,2.1vw,32px); }
.nt-workspace .np-header-actions .np-button { font:400 12px/1.4 var(--font-sans); }
.nt-workspace h2 { font:400 15px/1.5 var(--font-sans); }
@media(max-width:850px) { .nt-workspace .nt-context { grid-row:auto; } }
@media(max-width:560px) {
  .np-page--daily .np-header { flex-wrap:wrap; }
  .np-page--daily .np-header-actions { gap:8px; }
  .np-page--daily .np-header h1 { font-size:23px; }
  .np-page--daily .np-daily-toolbar { flex-wrap:wrap; gap:12px; }
  .nd-row { grid-template-columns:46px minmax(0,1fr); gap:9px; }
  .nd-item>.nd-item-open { padding:12px; }
  .nd-agenda .nd-add-task { margin-left:55px; }
  .nd-empty { padding-left:55px; }
}
@media(prefers-reduced-motion:reduce) { .nd-item-open { transition:none; } }

/* A day opens inside the month, without losing the surrounding calendar. */
.np-month-peek-veil { position:fixed; inset:0; z-index:2147482000; background:rgba(5,10,13,.16); }
.np-page.np-month-popover { position:fixed; width:380px; max-width:calc(100vw - 24px); height:auto; max-height:min(500px,calc(100dvh - 76px)); min-height:0; margin:0; padding:0; gap:0; border:1px solid var(--border-soft); border-radius:16px; background:var(--panel-glass); backdrop-filter:var(--panel-blur); -webkit-backdrop-filter:var(--panel-blur); box-shadow:var(--np-widget-shadow),0 18px 60px rgba(0,0,0,.28); overflow:hidden; }
.np-month-peek-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:18px 20px 14px; flex-shrink:0; border-bottom:1px solid var(--np-line-soft); }
.np-month-peek-heading h2 { margin:0; font:400 15px/1.5 var(--font-sans); }
.np-month-peek-heading>div>span { display:block; margin-top:4px; color:var(--np-muted); font:400 11px/1.5 var(--font-sans); }
.np-month-popover .np-icon-button { width:32px; height:32px; border:0; border-radius:8px; background:none; }
.np-month-popover .np-icon-button:hover { background:var(--np-hover); }
.np-month-peek-items { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:rgba(192,215,216,.2) transparent; padding:6px 12px; }
.np-month-popover .np-month-peek-item { display:grid; grid-template-columns:62px minmax(0,1fr); gap:12px; align-items:center; width:100%; min-height:70px; padding:12px 8px; border:0; border-bottom:1px solid var(--np-line-soft); border-radius:8px; background:none; color:var(--np-ink); text-align:left; transition:background-color .18s ease; }
.np-month-peek-item:last-child { border-bottom-color:transparent; }
.np-month-peek-item:hover { background:var(--np-hover); }
.np-month-peek-item time { font:400 12px/1.5 var(--font-sans); font-variant-numeric:tabular-nums; }
.np-month-peek-item time>span { display:block; color:var(--np-muted); font-size:10px; }
.np-month-peek-meta { display:flex; align-items:center; gap:6px; color:var(--np-muted); font:400 10px/1.5 var(--font-sans); }
.np-month-peek-meta .np-dot { width:5px; height:5px; }
.np-month-peek-meta .nc-source-badge { margin-left:auto; }
.np-month-peek-item strong { display:block; margin-top:4px; font:400 13px/1.5 var(--font-sans); overflow-wrap:anywhere; }
.np-month-peek-item.is-done strong { color:var(--np-muted); text-decoration:line-through; }
.np-month-peek-empty { padding:28px 8px; color:var(--np-muted); font:400 12px/1.5 var(--font-sans); }
.np-month-peek-actions { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 20px; border-top:1px solid var(--np-line-soft); flex-shrink:0; }
.np-month-peek-actions button { min-height:34px; padding:5px 0; border:0; border-radius:4px; background:none; color:var(--np-muted); font:400 11px/1.5 var(--font-sans); }
.np-month-peek-actions button:hover { color:var(--np-ink); }
.np-month-popover :is(button,[tabindex]):focus-visible { outline:2px solid rgba(215,234,230,.7); outline-offset:2px; }
.np-planner .np-day:has(.np-day-number[aria-expanded="true"]) { background:rgba(226,241,238,.045); box-shadow:inset 0 0 0 1px rgba(215,234,230,.24); }
.np-month-peek-enter-active,.np-month-peek-leave-active { transition:opacity 180ms ease; }
.np-month-peek-enter-active .np-month-popover,.np-month-peek-leave-active .np-month-popover { transition:translate 220ms cubic-bezier(.22,1,.36,1); }
.np-month-peek-enter-from,.np-month-peek-leave-to { opacity:0; }
.np-month-peek-enter-from .np-month-popover,.np-month-peek-leave-to .np-month-popover { translate:0 6px; }
.np-month-peek-leave-active { pointer-events:none; }
@media(max-width:640px) { .np-month-popover .np-icon-button { width:44px; height:44px; margin:-6px -6px 0 0; } .np-month-peek-actions button { min-height:44px; } }
@media(prefers-reduced-motion:reduce) { .np-month-peek-enter-active,.np-month-peek-leave-active,.np-month-peek-enter-active .np-month-popover,.np-month-peek-leave-active .np-month-popover { transition:none; } }
