.view.is-route-entering { animation: view-in .28s var(--ease) both; }
@keyframes view-in { from { opacity: 0; transform: translateY(8px); } }

.view-header { margin-bottom: 20px; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.view-header__eyebrow { margin-bottom: 6px; color: rgba(255,255,255,.82); font-size: .67rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.view-header h1 { margin-bottom: 7px; font-size: clamp(1.62rem, 6vw, 2.4rem); font-weight: 600; line-height: 1.08; letter-spacing: -.035em; }
.view-header p { margin: 0; max-width: 620px; color: var(--text-soft); font-size: .87rem; font-weight: 400; }
.view-header__action { flex: 0 0 auto; }
.view-header__actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }

.section-heading { margin: 26px 0 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.section-heading--padded { padding: 0 14px; }
.section-heading h2 { margin: 0; font-size: .98rem; font-weight: 600; letter-spacing: -.012em; }
.section-heading a, .section-heading button { color: #eefcff; background: none; border: 0; cursor: pointer; font-size: .75rem; font-weight: 600; text-decoration: none; }

.dashboard-grid { display: grid; gap: 14px; }
.hero-card { position: relative; overflow: hidden; padding: 20px; border-color: rgba(239,202,109,.38); background: radial-gradient(circle at 94% 10%, rgba(239,202,109,.18), transparent 34%), linear-gradient(145deg, #121b2a, #080d15); }
.hero-card::after { content: ""; position: absolute; inset: auto -30% -65% 20%; height: 170px; border: 1px solid rgba(239,202,109,.18); border-radius: 50%; transform: rotate(-7deg); }
.hero-card__top { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.hero-card__label { display: block; margin-bottom: 4px; color: rgba(255,255,255,.78); font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .09em; }
.hero-card h2 { margin: 0 0 4px; font-size: 1.3rem; font-weight: 600; letter-spacing: -.025em; }
.hero-card__meta { color: var(--text-soft); font-size: .8rem; }
.progress-ring { width: 82px; height: 82px; position: relative; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: #0b121e; box-shadow: 0 0 28px rgba(239,202,109,.12); }
.progress-ring svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); overflow: visible; }
.progress-ring circle { fill: none; stroke-width: 3.2; }
.progress-ring__track { stroke: rgba(255,255,255,.1); }
.progress-ring__value { stroke: var(--gold); stroke-linecap: round; }
.progress-ring strong { position: relative; z-index: 1; font-size: 1.15rem; }

.task-list { padding: 8px; }
.task-row { width: 100%; min-height: 65px; padding: 11px 12px; display: grid; grid-template-columns: 42px minmax(0,1fr) 28px; align-items: center; gap: 10px; color: var(--text); border: 0; border-bottom: 1px solid rgba(255,255,255,.065); background: transparent; text-align: left; cursor: pointer; }
.task-row:last-child { border-bottom: 0; }
.task-row__icon { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(239,202,109,.24); border-radius: 12px; color: var(--gold); background: rgba(239,202,109,.07); }
.task-row__copy { min-width: 0; }
.task-row__copy strong, .task-row__copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.task-row__copy strong { font-size: .9rem; }
.task-row__copy small { margin-top: 3px; color: var(--text-muted); font-size: .72rem; }
.task-row__check { width: 23px; height: 23px; display: grid; place-items: center; border: 1.5px solid #7d8796; border-radius: 50%; color: transparent; }
.task-row.is-complete { opacity: .58; }
.task-row.is-complete strong { text-decoration: line-through; }
.task-row.is-complete .task-row__check { color: #07110c; border-color: var(--emerald); background: var(--emerald); }

.empty-state { padding: 28px 20px; text-align: center; }
.empty-state__icon { width: 56px; height: 56px; margin: 0 auto 14px; display: grid; place-items: center; border: 1px solid rgba(239,202,109,.28); border-radius: 18px; color: var(--gold); background: rgba(239,202,109,.07); font-size: 1.6rem; }
.empty-state h2, .empty-state h3 { margin-bottom: 7px; }
.empty-state p { margin: 0 auto 16px; max-width: 390px; color: var(--text-soft); font-size: .87rem; }
.compatibility-card { max-width: 520px; margin: 10vh auto 0; }
.app-lock-view { min-height: min(700px, calc(100dvh - 170px)); display: grid; place-items: center; }
.app-lock-card { width: min(100%, 430px); padding: clamp(28px, 7vw, 48px); display: grid; justify-items: center; gap: 12px; text-align: center; border-color: rgba(157,98,255,.32); background: radial-gradient(circle at 50% 0, rgba(157,98,255,.18), transparent 46%), rgba(255,255,255,.04); }
.app-lock-card__mark { width: 78px; height: 78px; display: grid; place-items: center; position: relative; border: 1px solid rgba(239,202,109,.48); border-radius: 50%; color: var(--gold-bright); background: linear-gradient(145deg, #1d1930, #080c14); font-family: Georgia, serif; font-size: 2.9rem; box-shadow: 0 18px 40px rgba(25,11,52,.34); }
.app-lock-card__mark span { position: absolute; top: 9px; right: 9px; color: #f5d8ff; font-family: inherit; font-size: .9rem; text-shadow: 0 0 10px var(--violet); }
.app-lock-card h1 { margin: 5px 0 0; }
.app-lock-card > p { max-width: 330px; margin: 0; color: var(--text-soft); font-size: .82rem; line-height: 1.6; }
.app-lock-form { width: 100%; margin-top: 8px; display: grid; gap: 10px; }
.app-lock-pin { min-height: 54px; text-align: center; font-size: 1.35rem; letter-spacing: .35em; }
.app-lock-form .auth-dialog-status { min-height: 21px; margin: 0; }
.app-lock-help { color: var(--text-muted); font-size: .68rem; text-underline-offset: 3px; }

.recovery-key-box { padding: 14px; border: 1px solid rgba(157,98,255,.34); border-radius: 16px; background: rgba(157,98,255,.08); overflow-wrap: anywhere; user-select: all; }
.recovery-key-box code { color: var(--text); font: 600 .78rem/1.65 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .025em; }
.encryption-recovery-panel { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.encryption-recovery-panel summary { color: var(--text-muted); cursor: pointer; font-size: .88rem; }
.encryption-recovery-panel[open] summary { margin-bottom: 12px; }

.ai-card { position: relative; overflow: hidden; padding: 18px; border-color: rgba(157,98,255,.38); background: radial-gradient(circle at 90% 0%, rgba(157,98,255,.28), transparent 38%), linear-gradient(145deg, #24144b, #101327 62%, #0b101a); }
.ai-card::after { content: "✦"; position: absolute; top: 12px; right: 18px; color: #f7eaff; font-size: 1.35rem; text-shadow: 0 0 12px var(--violet); }
.ai-card h2 { margin: 0 0 2px; font-size: 1.06rem; }
.ai-card__sub { color: #c8b9e9; font-size: .76rem; }
.ai-actions { margin-top: 14px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.ai-action { min-width: 0; min-height: 70px; padding: 9px 5px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; border: 1px solid rgba(255,255,255,.14); border-radius: 13px; color: #fff; background: rgba(255,255,255,.065); cursor: pointer; font-size: .68rem; font-weight: 600; }
.ai-action span:first-child { font-size: 1.12rem; }
.privacy-strip { margin-top: 12px; padding: 8px 10px; display: flex; align-items: center; gap: 8px; border: 1px solid rgba(98,217,154,.16); border-radius: 11px; color: #9fdfba; background: rgba(3,10,7,.26); font-size: .68rem; }

.quick-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.quick-card { min-height: 84px; padding: 14px; display: flex; flex-direction: column; justify-content: space-between; text-decoration: none; }
.quick-card__icon { color: var(--gold); font-size: 1.2rem; }
.quick-card strong,
.quick-card small { display: block; }
.quick-card strong { font-size: .86rem; line-height: 1.35; }
.quick-card small { margin-top: 3px; color: var(--text-muted); line-height: 1.4; }

.planner-toolbar { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 9px; }
.planner-overview-grid { display: grid; gap: 12px; }
.planner-overview-panel { min-width: 0; }
.exam-list, .compact-list { padding: 8px; }
.exam-row { min-height: 78px; padding: 12px; display: grid; grid-template-columns: minmax(0,1fr) minmax(130px,.65fr); align-items: center; gap: 14px; border-bottom: 1px solid rgba(255,255,255,.065); }
.exam-row:last-child { border-bottom: 0; }
.exam-row__main strong, .exam-row__main small { display: block; }
.exam-row__main strong { font-size: .9rem; }
.exam-row__main small { margin-top: 4px; color: var(--text-muted); font-size: .7rem; }
.exam-progress { display: grid; grid-template-columns: 38px minmax(0,1fr); align-items: center; gap: 8px; color: var(--paper-soft); font-size: .7rem; font-weight: 600; }
.exam-progress input { width: 100%; accent-color: var(--gold); }
.compact-row { min-height: 56px; padding: 9px 10px; display: grid; grid-template-columns: 26px minmax(0,1fr); align-items: center; gap: 8px; border-bottom: 1px solid rgba(255,255,255,.055); }
.compact-row:last-child { border-bottom: 0; }
.compact-row > span { color: var(--emerald); }
.compact-row strong, .compact-row small { display: block; }
.compact-row strong { font-size: .82rem; }
.compact-row small { color: var(--text-muted); font-size: .66rem; }
.inline-empty { margin: 0; padding: 18px; color: var(--text-muted); text-align: center; font-size: .8rem; }
.planner-sections { margin-top: 15px; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.basic-section-nav { margin: 0 0 14px; padding: 6px; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 5px; overflow-x: auto; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.022); scrollbar-width: none; }
.basic-section-nav::-webkit-scrollbar { display: none; }
.basic-section-nav a { min-width: 112px; min-height: 58px; padding: 8px 10px; display: grid; grid-template-columns: 26px minmax(0,1fr); align-content: center; column-gap: 8px; border: 1px solid transparent; border-radius: 13px; color: var(--text-muted); text-decoration: none; }
.basic-section-nav a > span { width: 26px; height: 26px; grid-row: 1 / span 2; display: grid; place-items: center; align-self: center; border-radius: 9px; color: var(--cyan); background: rgba(82,216,223,.08); }
.basic-section-nav a strong, .basic-section-nav a small { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.basic-section-nav a strong { align-self: end; color: var(--text-soft); font-size: .64rem; }
.basic-section-nav a small { align-self: start; font-size: .49rem; }
.basic-section-nav a.is-active { border-color: rgba(157,98,255,.42); background: linear-gradient(145deg,rgba(127,82,226,.2),rgba(82,216,223,.055)); box-shadow: inset 3px 0 var(--violet-bright); }
.basic-section-nav a.is-active > span { color: #fff; background: rgba(157,98,255,.25); }
.basic-summary-strip { margin: 0 0 14px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.basic-summary-strip--daily { grid-template-columns: repeat(3,minmax(0,1fr)); }
.basic-summary-metric { min-width: 0; min-height: 88px; padding: 13px 14px; display: grid; align-content: center; border: 1px solid var(--line); border-radius: 15px; background: radial-gradient(circle at 100% 0,rgba(82,216,223,.055),transparent 44%),rgba(255,255,255,.027); }
.basic-summary-metric small, .basic-summary-metric strong, .basic-summary-metric span { display: block; overflow: hidden; text-overflow: ellipsis; }
.basic-summary-metric small { color: var(--text-muted); font-size: .52rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.basic-summary-metric strong { margin-top: 6px; color: var(--text); font-size: .92rem; white-space: nowrap; }
.basic-summary-metric span { margin-top: 3px; color: var(--text-muted); font-size: .52rem; white-space: nowrap; }
.basic-summary-metric--violet { border-color: rgba(157,98,255,.25); background: radial-gradient(circle at 100% 0,rgba(157,98,255,.15),transparent 48%),rgba(255,255,255,.027); }
.basic-summary-metric--gold { border-color: rgba(239,202,109,.25); background: radial-gradient(circle at 100% 0,rgba(239,202,109,.13),transparent 48%),rgba(255,255,255,.027); }
.basic-summary-metric--attention { border-color: rgba(255,175,101,.27); }
.basic-summary-metric--urgent { border-color: rgba(255,94,118,.32); background: rgba(255,94,118,.055); }
.basic-summary-metric--safe { border-color: rgba(98,217,154,.22); }
.basic-data-link { margin: -2px 0 14px; padding: 10px 13px; display: flex; align-items: center; gap: 10px; border: 1px solid rgba(82,216,223,.16); border-radius: 14px; background: linear-gradient(90deg,rgba(82,216,223,.06),rgba(157,98,255,.035)); }
.basic-data-link > span { width: 31px; height: 31px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid rgba(82,216,223,.25); border-radius: 10px; color: var(--cyan); background: rgba(82,216,223,.08); }
.basic-data-link strong, .basic-data-link p { display: block; }
.basic-data-link strong { color: var(--text-soft); font-size: .62rem; }
.basic-data-link p { margin: 2px 0 0; color: var(--text-muted); font-size: .54rem; line-height: 1.5; }
.basic-command-hero { padding: clamp(18px,2.5vw,30px); display: grid; grid-template-columns: minmax(0,1fr) minmax(170px,.34fr); align-items: center; gap: 24px; overflow: hidden; position: relative; border: 1px solid rgba(239,202,109,.25); border-radius: 22px; background: radial-gradient(circle at 88% 18%,rgba(239,202,109,.14),transparent 34%),radial-gradient(circle at 8% 100%,rgba(82,216,223,.09),transparent 34%),linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.018)); }
.plan-center-page--basic .plan-page-content { display: grid; gap: 12px; }
.plan-center-page--basic .basic-section-nav,
.plan-center-page--basic .planner-actions-strip { margin: 0; }
.basic-command-hero::after { content: ""; width: 230px; height: 230px; position: absolute; right: -95px; bottom: -140px; border: 1px solid rgba(239,202,109,.16); border-radius: 50%; box-shadow: 0 0 0 28px rgba(239,202,109,.025),0 0 0 64px rgba(82,216,223,.02); pointer-events: none; }
.basic-command-hero h3 { margin: 7px 0 8px; max-width: 620px; font-size: clamp(1.08rem,2.1vw,1.55rem); line-height: 1.15; }
.basic-command-hero p { max-width: 720px; margin: 0; color: var(--text-muted); font-size: .66rem; line-height: 1.65; }
.basic-command-hero__status { min-height: 112px; padding: 16px; display: grid; align-content: center; position: relative; z-index: 1; border: 1px solid rgba(239,202,109,.2); border-radius: 18px; background: rgba(4,9,18,.42); }
.basic-command-hero__status strong { color: var(--gold); font-size: 1.4rem; }
.basic-command-hero__status span { color: var(--text-soft); font-size: .62rem; font-weight: 700; }
.basic-command-hero__status small { margin-top: 7px; color: var(--text-muted); font-size: .52rem; line-height: 1.45; }
.basic-command-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.basic-command-card { --command-accent: var(--cyan); min-width: 0; min-height: 190px; padding: 15px; display: grid; grid-template-rows: auto 1fr auto auto; gap: 11px; border: 1px solid var(--line); border-radius: 18px; color: inherit; background: radial-gradient(circle at 100% 0,color-mix(in srgb,var(--command-accent) 11%,transparent),transparent 45%),rgba(255,255,255,.025); text-decoration: none; transition: transform .18s ease,border-color .18s ease,background .18s ease; }
.basic-command-card--exams { --command-accent: var(--gold); }
.basic-command-card--attention { --command-accent: #ffaf65; }
.basic-command-card--safe { --command-accent: var(--emerald); }
.basic-command-card--topics { --command-accent: var(--violet-bright); }
.basic-command-card--daily { --command-accent: var(--cyan); }
.basic-command-card > header { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 9px; }
.basic-command-card > header > span { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid color-mix(in srgb,var(--command-accent) 30%,transparent); border-radius: 11px; color: var(--command-accent); background: color-mix(in srgb,var(--command-accent) 9%,transparent); }
.basic-command-card > header small, .basic-command-card > header h3 { display: block; }
.basic-command-card > header small { color: var(--text-muted); font-size: .48rem; letter-spacing: .08em; text-transform: uppercase; }
.basic-command-card > header h3 { margin: 2px 0 0; font-size: .73rem; }
.basic-command-card > header > i { color: var(--command-accent); font-style: normal; }
.basic-command-card__metric { align-self: end; }
.basic-command-card__metric strong, .basic-command-card__metric span { display: block; }
.basic-command-card__metric strong { color: var(--text); font-size: 1.45rem; line-height: 1; }
.basic-command-card__metric span { margin-top: 4px; color: var(--text-soft); font-size: .58rem; }
.basic-command-card > p { margin: 0; color: var(--text-muted); font-size: .53rem; line-height: 1.45; }
.basic-command-card:hover, .basic-command-card:focus-visible { transform: translateY(-3px); border-color: color-mix(in srgb,var(--command-accent) 42%,transparent); background-color: rgba(255,255,255,.04); }
.study-attribution-panel { padding: 17px; display: grid; gap: 15px; border: 1px solid rgba(82,216,223,.2); border-radius: 19px; background: radial-gradient(circle at 100% 0,rgba(82,216,223,.07),transparent 35%),linear-gradient(145deg,rgba(255,255,255,.038),rgba(255,255,255,.018)); }
.study-attribution-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.study-attribution-panel > header h3 { margin: 4px 0 3px; font-size: .86rem; }
.study-attribution-panel > header p { max-width: 660px; margin: 0; color: var(--text-muted); font-size: .54rem; line-height: 1.5; }
.study-attribution-panel > header .button { min-width: max-content; display: inline-flex; align-items: center; gap: 7px; color: var(--cyan); }
.study-attribution-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.study-attribution-metrics > div { min-height: 64px; padding: 11px 13px; display: grid; align-content: center; border: 1px solid var(--line); border-radius: 13px; background: rgba(4,9,18,.26); }
.study-attribution-metrics strong, .study-attribution-metrics span { display: block; }
.study-attribution-metrics strong { color: var(--text); font-size: .86rem; }
.study-attribution-metrics span { margin-top: 3px; color: var(--text-muted); font-size: .49rem; text-transform: uppercase; }
.study-attribution-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.study-attribution-grid > section { min-width: 0; padding: 13px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.018); }
.study-attribution-heading { margin-bottom: 9px; display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.study-attribution-heading strong { font-size: .62rem; }
.study-attribution-heading small { color: var(--text-muted); font-size: .47rem; }
.study-subject-list, .study-target-list { display: grid; gap: 7px; }
.study-subject-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 3px 10px; }
.study-subject-row > div strong, .study-subject-row > div span { display: block; }
.study-subject-row > div strong { overflow: hidden; color: var(--text-soft); font-size: .57rem; text-overflow: ellipsis; white-space: nowrap; }
.study-subject-row > div span { margin-top: 1px; color: var(--text-muted); font-size: .46rem; }
.study-subject-row > b { align-self: center; color: var(--cyan); font-size: .53rem; }
.study-subject-row__bar { height: 3px; grid-column: 1 / -1; overflow: hidden; border-radius: 99px; background: rgba(255,255,255,.065); }
.study-subject-row__bar i { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg,var(--cyan),var(--violet-bright)); }
.study-target-row { min-width: 0; min-height: 39px; padding: 7px 8px; display: grid; grid-template-columns: 27px minmax(0,1fr) auto; align-items: center; gap: 8px; border: 1px solid rgba(255,255,255,.055); border-radius: 11px; background: rgba(4,9,18,.2); }
.study-target-row > span { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 8px; color: var(--violet-bright); background: rgba(157,98,255,.1); }
.study-target-row > div { min-width: 0; }
.study-target-row strong, .study-target-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.study-target-row strong { color: var(--text-soft); font-size: .55rem; }
.study-target-row small { margin-top: 2px; color: var(--text-muted); font-size: .45rem; }
.study-target-row > b { color: var(--text-soft); font-size: .52rem; }
.study-attribution-note, .study-attribution-empty-copy { margin: 0; color: var(--text-muted); font-size: .49rem; line-height: 1.45; }
.study-attribution-note { padding-top: 2px; }
.study-attribution-panel--empty { min-height: 115px; align-content: center; }
.basic-system-flow { padding: 16px; border: 1px solid var(--line); border-radius: 19px; background: rgba(255,255,255,.018); }
.basic-system-flow > header { margin-bottom: 13px; display: flex; align-items: end; justify-content: space-between; gap: 15px; }
.basic-system-flow > header h3 { margin: 3px 0 0; font-size: .82rem; }
.basic-system-flow > header p { max-width: 340px; margin: 0; color: var(--text-muted); font-size: .54rem; text-align: right; }
.basic-system-flow > div { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.basic-system-flow a { min-width: 0; padding: 11px; display: grid; grid-template-columns: 29px minmax(0,1fr); column-gap: 8px; position: relative; border: 1px solid var(--line); border-radius: 13px; color: inherit; background: rgba(255,255,255,.02); text-decoration: none; }
.basic-system-flow a:not(:last-child)::after { content: "→"; position: absolute; right: -8px; top: 50%; z-index: 1; color: var(--text-muted); transform: translate(50%,-50%); }
.basic-system-flow a > span { width: 29px; height: 29px; grid-row: 1 / span 2; display: grid; place-items: center; border-radius: 9px; color: var(--text-muted); background: rgba(255,255,255,.05); font-size: .58rem; }
.basic-system-flow a strong { align-self: end; font-size: .61rem; }
.basic-system-flow a small { align-self: start; color: var(--text-muted); font-size: .49rem; }
.basic-system-flow a.is-ready { border-color: rgba(98,217,154,.2); }
.basic-system-flow a.is-ready > span { color: #07140e; background: var(--emerald); }

.plan-center-page--plus .plan-page-content { display: grid; gap: 12px; }
.plus-training-hero { min-height: 170px; padding: clamp(19px,2.6vw,30px); display: grid; grid-template-columns: minmax(0,1fr) 118px; align-items: center; gap: 24px; position: relative; overflow: hidden; border: 1px solid rgba(82,216,223,.27); border-radius: 22px; background: radial-gradient(circle at 88% 16%,rgba(82,216,223,.17),transparent 30%),radial-gradient(circle at 12% 110%,rgba(157,98,255,.13),transparent 38%),linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.015)); }
.plus-training-hero::after { content: ""; width: 270px; height: 135px; position: absolute; right: -72px; bottom: -84px; border: 1px solid rgba(82,216,223,.17); border-radius: 50%; box-shadow: 0 0 0 24px rgba(82,216,223,.025),0 0 0 56px rgba(157,98,255,.022); transform: rotate(-12deg); pointer-events: none; }
.plus-training-hero__copy { position: relative; z-index: 1; }
.plus-training-hero h3 { max-width: 650px; margin: 7px 0 8px; font-size: clamp(1.15rem,2.1vw,1.6rem); line-height: 1.14; }
.plus-training-hero p { max-width: 710px; margin: 0; color: var(--text-muted); font-size: .66rem; line-height: 1.65; }
.plus-readiness { width: 110px; aspect-ratio: 1; position: relative; z-index: 1; display: grid; place-content: center; border-radius: 50%; background: radial-gradient(circle,#09111c 0 56%,transparent 58%),conic-gradient(var(--cyan) var(--progress-width),rgba(255,255,255,.085) 0); box-shadow: 0 0 0 8px rgba(82,216,223,.035),0 16px 34px rgba(0,0,0,.24); text-align: center; }
.plus-readiness strong, .plus-readiness span { display: block; }
.plus-readiness strong { color: #f5feff; font-size: 1.18rem; line-height: 1; }
.plus-readiness span { max-width: 70px; margin-top: 5px; color: var(--cyan); font-size: .48rem; font-weight: 730; line-height: 1.25; text-transform: uppercase; }

.plus-next-action { min-height: 104px; padding: 15px 17px; display: grid; grid-template-columns: 45px minmax(0,1fr) auto; align-items: center; gap: 13px; border: 1px solid rgba(157,98,255,.31); border-radius: 18px; color: inherit; background: radial-gradient(circle at 88% 0,rgba(157,98,255,.16),transparent 34%),linear-gradient(100deg,rgba(82,216,223,.065),rgba(157,98,255,.06)); text-decoration: none; }
.plus-next-action > span { width: 45px; height: 45px; display: grid; place-items: center; border: 1px solid rgba(82,216,223,.32); border-radius: 14px; color: var(--cyan); background: rgba(82,216,223,.09); font-size: 1.05rem; }
.plus-next-action small { color: #b7a6ff; font-size: .49rem; font-weight: 780; letter-spacing: .1em; text-transform: uppercase; }
.plus-next-action h3 { margin: 4px 0 3px; font-size: .82rem; }
.plus-next-action p { margin: 0; color: var(--text-muted); font-size: .55rem; line-height: 1.45; }
.plus-next-action > strong { padding: 8px 11px; border: 1px solid rgba(82,216,223,.25); border-radius: 11px; color: var(--cyan); background: rgba(82,216,223,.055); font-size: .56rem; white-space: nowrap; }
.plus-next-action > strong i { margin-left: 5px; font-style: normal; }

.plus-learning-loop { padding: 16px; border: 1px solid var(--line); border-radius: 19px; background: rgba(255,255,255,.018); }
.plus-learning-loop > header { margin-bottom: 13px; display: flex; align-items: end; justify-content: space-between; gap: 15px; }
.plus-learning-loop > header h3 { margin: 3px 0 0; font-size: .82rem; }
.plus-learning-loop > header p { margin: 0; color: var(--text-muted); font-size: .54rem; text-align: right; }
.plus-learning-loop > div { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.plus-learning-loop a { min-width: 0; min-height: 66px; padding: 10px; display: grid; grid-template-columns: 31px minmax(0,1fr); align-content: center; column-gap: 8px; position: relative; border: 1px solid var(--line); border-radius: 13px; color: inherit; background: rgba(255,255,255,.022); text-decoration: none; }
.plus-learning-loop a:not(:last-child)::after { content: "→"; position: absolute; z-index: 2; top: 50%; right: -8px; color: var(--cyan); transform: translate(50%,-50%); }
.plus-learning-loop a > span { width: 31px; height: 31px; grid-row: 1 / span 2; display: grid; place-items: center; border: 1px solid rgba(82,216,223,.2); border-radius: 10px; color: var(--cyan); background: rgba(82,216,223,.06); font-size: .57rem; }
.plus-learning-loop a strong { align-self: end; font-size: .61rem; }
.plus-learning-loop a small { align-self: start; color: var(--text-muted); font-size: .48rem; }
.plus-learning-loop a.is-ready { border-color: rgba(98,217,154,.2); background: rgba(98,217,154,.025); }
.plus-learning-loop a.is-ready > span { color: #06140e; border-color: var(--emerald); background: var(--emerald); }

.plus-workspace-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.plus-workspace-card { --plus-card-accent: var(--cyan); min-width: 0; min-height: 205px; padding: 15px; display: grid; grid-template-rows: auto auto auto 1fr auto; gap: 8px; border: 1px solid var(--line); border-radius: 18px; color: inherit; background: radial-gradient(circle at 100% 0,color-mix(in srgb,var(--plus-card-accent) 13%,transparent),transparent 43%),rgba(255,255,255,.025); text-decoration: none; transition: transform .18s ease,border-color .18s ease,background-color .18s ease; }
.plus-workspace-card--questions { --plus-card-accent: #72dce3; }
.plus-workspace-card--review { --plus-card-accent: #ad86ff; }
.plus-workspace-card--checklist { --plus-card-accent: #f1c96b; }
.plus-workspace-card--topics { --plus-card-accent: #62d99a; }
.plus-workspace-card > header { display: grid; grid-template-columns: 33px minmax(0,1fr) auto; align-items: center; gap: 8px; }
.plus-workspace-card > header > span { width: 33px; height: 33px; display: grid; place-items: center; border: 1px solid color-mix(in srgb,var(--plus-card-accent) 30%,transparent); border-radius: 11px; color: var(--plus-card-accent); background: color-mix(in srgb,var(--plus-card-accent) 9%,transparent); }
.plus-workspace-card > header > small { overflow: hidden; color: var(--text-muted); font-size: .47rem; letter-spacing: .06em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.plus-workspace-card > header > i { color: var(--plus-card-accent); font-style: normal; }
.plus-workspace-card__metric { margin-top: 5px; display: flex; align-items: baseline; gap: 6px; }
.plus-workspace-card__metric strong { color: #f7fbff; font-size: 1.45rem; line-height: 1; }
.plus-workspace-card__metric span { color: var(--text-soft); font-size: .52rem; }
.plus-workspace-card h3 { margin: 0; font-size: .72rem; }
.plus-workspace-card p { margin: 0; color: var(--text-muted); font-size: .52rem; line-height: 1.5; }
.plus-workspace-card .progress-track { margin: 0; }
.plus-workspace-card .progress-track i { background: var(--plus-card-accent); }

.plus-notes-summary { min-height: 112px; padding: 16px; display: grid; grid-template-columns: 44px minmax(0,1fr) auto 18px; align-items: center; gap: 13px; border: 1px solid rgba(82,216,223,.2); border-radius: 19px; color: inherit; background: linear-gradient(100deg,rgba(82,216,223,.075),rgba(255,255,255,.02) 54%,rgba(157,98,255,.055)); text-decoration: none; }
.plus-notes-summary__icon { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid rgba(82,216,223,.28); border-radius: 14px; color: var(--cyan); background: rgba(82,216,223,.08); font-size: 1rem; }
.plus-notes-summary > div:nth-child(2) small { color: var(--cyan); font-size: .49rem; font-weight: 760; letter-spacing: .09em; text-transform: uppercase; }
.plus-notes-summary h3 { margin: 4px 0 3px; font-size: .78rem; }
.plus-notes-summary p { margin: 0; color: var(--text-muted); font-size: .54rem; }
.plus-notes-summary__limits { display: grid; grid-template-columns: repeat(2,minmax(70px,1fr)); gap: 7px; }
.plus-notes-summary__limits > span { min-width: 78px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 12px; background: rgba(4,10,18,.36); }
.plus-notes-summary__limits strong, .plus-notes-summary__limits small { display: block; }
.plus-notes-summary__limits strong { color: var(--text-soft); font-size: .7rem; }
.plus-notes-summary__limits small { margin-top: 2px; color: var(--text-muted); font-size: .47rem; text-transform: uppercase; }
.plus-notes-summary > i { color: var(--cyan); font-style: normal; }

.plus-next-action:hover, .plus-next-action:focus-visible,
.plus-workspace-card:hover, .plus-workspace-card:focus-visible,
.plus-notes-summary:hover, .plus-notes-summary:focus-visible { transform: translateY(-2px); border-color: rgba(82,216,223,.42); background-color: rgba(255,255,255,.04); }

.plan-center-page--premium .plan-page-content { display: grid; gap: 12px; }
.premium-command-layout { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(245px,.55fr); gap: 12px; }
.premium-radar-panel { min-width: 0; padding: 18px; position: relative; overflow: hidden; border: 1px solid rgba(157,98,255,.26); border-radius: 21px; background: radial-gradient(circle at 8% 0,rgba(157,98,255,.13),transparent 34%),rgba(255,255,255,.024); }
.premium-radar-panel::after { content: ""; width: 190px; height: 190px; position: absolute; right: -110px; bottom: -112px; border: 1px solid rgba(157,98,255,.14); border-radius: 50%; box-shadow: 0 0 0 28px rgba(157,98,255,.02); pointer-events: none; }
.premium-radar-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.premium-radar-panel > header h3 { margin: 4px 0 3px; font-size: .9rem; }
.premium-radar-panel > header p { margin: 0; color: var(--text-muted); font-size: .52rem; }
.premium-radar-panel > header > b { min-width: 64px; color: var(--violet-bright); font-size: 1.05rem; text-align: right; }
.premium-radar-panel > header > b small { margin-top: 2px; display: block; color: var(--text-muted); font-size: .43rem; font-weight: 650; text-transform: uppercase; }
.premium-radar-panel .plan-radar { max-width: 430px; margin-top: 0; }

.premium-priority-card { min-width: 0; padding: 17px; display: grid; grid-template-rows: auto auto 1fr auto; gap: 12px; position: relative; overflow: hidden; border: 1px solid rgba(255,175,101,.24); border-radius: 21px; color: inherit; background: radial-gradient(circle at 100% 0,rgba(255,103,126,.13),transparent 38%),radial-gradient(circle at 0 100%,rgba(157,98,255,.13),transparent 42%),rgba(255,255,255,.025); text-decoration: none; transition: transform .18s ease,border-color .18s ease,background-color .18s ease; }
.premium-priority-card > header { display: flex; align-items: center; justify-content: space-between; gap: 9px; }
.premium-priority-card > header > span { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid rgba(255,175,101,.3); border-radius: 12px; color: #ffb977; background: rgba(255,175,101,.08); }
.premium-priority-card > header small { color: #c7b8ff; font-size: .49rem; font-weight: 760; letter-spacing: .08em; text-transform: uppercase; }
.premium-priority-card__risk { width: 88px; aspect-ratio: 1; display: grid; place-content: center; border-radius: 50%; background: radial-gradient(circle,#0a111d 0 56%,transparent 58%),conic-gradient(#ffaf65 var(--progress-width),rgba(255,255,255,.08) 0); box-shadow: 0 0 0 7px rgba(255,175,101,.025); text-align: center; }
.premium-priority-card__risk strong, .premium-priority-card__risk span { display: block; }
.premium-priority-card__risk strong { font-size: 1.05rem; line-height: 1; }
.premium-priority-card__risk span { margin-top: 3px; color: var(--text-muted); font-size: .43rem; text-transform: uppercase; }
.premium-priority-card > div:nth-of-type(2) small { color: #ffb977; font-size: .48rem; font-weight: 730; text-transform: uppercase; }
.premium-priority-card h3 { margin: 5px 0 5px; font-size: .86rem; }
.premium-priority-card p { margin: 0; color: var(--text-muted); font-size: .54rem; line-height: 1.5; }
.premium-priority-card > strong { width: fit-content; padding: 8px 10px; border: 1px solid rgba(157,98,255,.26); border-radius: 10px; color: #c7b8ff; background: rgba(157,98,255,.06); font-size: .54rem; }
.premium-priority-card > strong i { margin-left: 5px; font-style: normal; }

.premium-signal-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.premium-signal-card { --premium-card-accent: var(--violet-bright); min-width: 0; min-height: 175px; padding: 15px; display: grid; grid-template-rows: auto auto 1fr auto; gap: 10px; border: 1px solid var(--line); border-radius: 18px; color: inherit; background: radial-gradient(circle at 100% 0,color-mix(in srgb,var(--premium-card-accent) 13%,transparent),transparent 44%),rgba(255,255,255,.025); text-decoration: none; transition: transform .18s ease,border-color .18s ease,background-color .18s ease; }
.premium-signal-card--calendar { --premium-card-accent: #8b9dff; }
.premium-signal-card--attendance { --premium-card-accent: #62d99a; }
.premium-signal-card--goals { --premium-card-accent: #f2c96c; }
.premium-signal-card--risk { --premium-card-accent: #ff7d8d; }
.premium-signal-card--ai { --premium-card-accent: #cf72ff; grid-column: span 2; }
.premium-signal-card > header { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 8px; }
.premium-signal-card > header > span { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid color-mix(in srgb,var(--premium-card-accent) 31%,transparent); border-radius: 11px; color: var(--premium-card-accent); background: color-mix(in srgb,var(--premium-card-accent) 9%,transparent); }
.premium-signal-card > header small { overflow: hidden; color: var(--text-muted); font-size: .47rem; letter-spacing: .06em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.premium-signal-card > header i { color: var(--premium-card-accent); font-style: normal; }
.premium-signal-card > div { display: flex; align-items: baseline; gap: 8px; }
.premium-signal-card > div strong { color: #f7f8ff; font-size: 1.38rem; line-height: 1; }
.premium-signal-card > div h3 { margin: 0; font-size: .7rem; }
.premium-signal-card p { margin: 0; color: var(--text-muted); font-size: .52rem; line-height: 1.5; }
.premium-signal-card .progress-track { margin: 0; }
.premium-signal-card .progress-track i { background: var(--premium-card-accent); }

.premium-foundation-strip { padding: 16px; border: 1px solid rgba(157,98,255,.18); border-radius: 19px; background: linear-gradient(100deg,rgba(157,98,255,.055),rgba(82,216,223,.025)); }
.premium-foundation-strip > header { margin-bottom: 12px; display: flex; align-items: end; justify-content: space-between; gap: 14px; }
.premium-foundation-strip > header h3 { margin: 3px 0 0; font-size: .79rem; }
.premium-foundation-strip > header p { margin: 0; color: var(--text-muted); font-size: .52rem; text-align: right; }
.premium-foundation-strip > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.premium-foundation-strip a { min-width: 0; padding: 11px; display: grid; grid-template-columns: 32px minmax(0,1fr) auto; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: 13px; color: inherit; background: rgba(4,9,17,.24); text-decoration: none; }
.premium-foundation-strip a > span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 10px; color: var(--violet-bright); background: rgba(157,98,255,.09); }
.premium-foundation-strip a small, .premium-foundation-strip a strong { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.premium-foundation-strip a small { color: var(--text-muted); font-size: .46rem; text-transform: uppercase; }
.premium-foundation-strip a strong { margin-top: 3px; font-size: .58rem; }
.premium-foundation-strip a > b { color: var(--violet-bright); font-size: .56rem; }

.premium-priority-card:hover, .premium-priority-card:focus-visible,
.premium-signal-card:hover, .premium-signal-card:focus-visible,
.premium-foundation-strip a:hover, .premium-foundation-strip a:focus-visible { transform: translateY(-2px); border-color: rgba(157,98,255,.43); background-color: rgba(255,255,255,.04); }

.plan-center-page--full .plan-page-content { display: grid; gap: 12px; }
.elite-command-hero { min-height: 190px; padding: clamp(19px,2.5vw,30px); display: grid; grid-template-columns: minmax(0,1fr) 118px minmax(255px,.58fr); align-items: center; gap: 22px; position: relative; overflow: hidden; border: 1px solid rgba(98,217,154,.27); border-radius: 22px; background: radial-gradient(circle at 18% 0,rgba(98,217,154,.12),transparent 34%),radial-gradient(circle at 86% 90%,rgba(157,98,255,.15),transparent 35%),linear-gradient(145deg,rgba(255,255,255,.048),rgba(255,255,255,.015)); }
.elite-command-hero::after { content: ""; width: 310px; height: 170px; position: absolute; right: -115px; bottom: -112px; border: 1px solid rgba(98,217,154,.13); border-radius: 50%; box-shadow: 0 0 0 30px rgba(98,217,154,.02),0 0 0 65px rgba(157,98,255,.018); transform: rotate(-12deg); pointer-events: none; }
.elite-command-hero__copy { position: relative; z-index: 1; }
.elite-command-hero__copy h3 { margin: 7px 0 8px; max-width: 560px; font-size: clamp(1.15rem,2.1vw,1.65rem); line-height: 1.12; }
.elite-command-hero__copy p { max-width: 650px; margin: 0; color: var(--text-muted); font-size: .63rem; line-height: 1.6; }
.elite-command-hero__status { width: 112px; aspect-ratio: 1; display: grid; place-content: center; position: relative; z-index: 1; border-radius: 50%; background: radial-gradient(circle,#0a121a 0 56%,transparent 58%),conic-gradient(var(--emerald) var(--progress-width),rgba(255,255,255,.08) 0); box-shadow: 0 0 0 8px rgba(98,217,154,.025),0 15px 35px rgba(0,0,0,.22); text-align: center; }
.elite-command-hero__status strong, .elite-command-hero__status span, .elite-command-hero__status small { display: block; }
.elite-command-hero__status strong { font-size: 1.12rem; line-height: 1; }
.elite-command-hero__status span { margin-top: 4px; color: var(--emerald); font-size: .43rem; font-weight: 760; text-transform: uppercase; }
.elite-command-hero__status small { margin-top: 3px; color: var(--text-muted); font-size: .41rem; }
.elite-next-action { min-width: 0; padding: 14px; display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 10px; position: relative; z-index: 1; border: 1px solid rgba(157,98,255,.28); border-radius: 17px; color: inherit; background: rgba(5,10,18,.5); text-decoration: none; transition: transform .18s ease,border-color .18s ease,background-color .18s ease; }
.elite-next-action > span { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(157,98,255,.32); border-radius: 12px; color: #cfb5ff; background: rgba(157,98,255,.11); }
.elite-next-action small { color: var(--emerald); font-size: .44rem; font-weight: 760; letter-spacing: .07em; text-transform: uppercase; }
.elite-next-action h3 { margin: 3px 0 3px; font-size: .67rem; }
.elite-next-action p { margin: 0; color: var(--text-muted); font-size: .48rem; line-height: 1.4; }
.elite-next-action > strong { color: #cfb5ff; font-size: .51rem; white-space: nowrap; }
.elite-next-action > strong i { margin-left: 3px; font-style: normal; }

.elite-control-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(300px,.85fr); gap: 12px; }
.elite-radar-panel, .elite-priority-panel { min-width: 0; padding: 18px; position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: 21px; background: rgba(255,255,255,.024); }
.elite-radar-panel { border-color: rgba(98,217,154,.2); background: radial-gradient(circle at 5% 0,rgba(98,217,154,.09),transparent 34%),rgba(255,255,255,.024); }
.elite-priority-panel { border-color: rgba(239,202,109,.18); background: radial-gradient(circle at 100% 0,rgba(239,202,109,.08),transparent 36%),rgba(255,255,255,.024); }
.elite-radar-panel > header, .elite-priority-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 13px; }
.elite-radar-panel > header h3, .elite-priority-panel > header h3 { margin: 4px 0 3px; font-size: .86rem; }
.elite-radar-panel > header p, .elite-priority-panel > header p { max-width: 420px; margin: 0; color: var(--text-muted); font-size: .5rem; line-height: 1.45; }
.elite-radar-panel > header > b { color: var(--emerald); font-size: 1.05rem; text-align: right; }
.elite-radar-panel > header > b small { margin-top: 2px; display: block; color: var(--text-muted); font-size: .42rem; text-transform: uppercase; }
.elite-radar-panel .plan-radar { max-width: 420px; margin-top: 0; }
.elite-priority-panel .plan-priority-layout { min-height: 265px; }

.elite-environment-section { padding: 17px; border: 1px solid rgba(98,217,154,.16); border-radius: 21px; background: linear-gradient(125deg,rgba(98,217,154,.035),rgba(157,98,255,.025)); }
.elite-environment-section > header { margin-bottom: 13px; display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.elite-environment-section > header h3 { margin: 4px 0 0; font-size: .82rem; }
.elite-environment-section > header p { max-width: 390px; margin: 0; color: var(--text-muted); font-size: .51rem; line-height: 1.45; text-align: right; }
.elite-environment-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.elite-environment-card { --elite-card-accent: var(--emerald); min-width: 0; min-height: 225px; padding: 16px; display: grid; grid-template-rows: auto auto auto 1fr auto; gap: 10px; border: 1px solid var(--line); border-radius: 18px; color: inherit; background: radial-gradient(circle at 100% 0,color-mix(in srgb,var(--elite-card-accent) 14%,transparent),transparent 42%),rgba(4,9,16,.34); text-decoration: none; transition: transform .18s ease,border-color .18s ease,background-color .18s ease; }
.elite-environment-card--method { --elite-card-accent: #62d99a; }
.elite-environment-card--performance { --elite-card-accent: #f1ca6d; }
.elite-environment-card--organization { --elite-card-accent: #58d5df; }
.elite-environment-card--review { --elite-card-accent: #b886ff; }
.elite-environment-card > header { display: grid; grid-template-columns: 37px minmax(0,1fr) auto; align-items: center; gap: 9px; }
.elite-environment-card > header > span { width: 37px; height: 37px; display: grid; place-items: center; border: 1px solid color-mix(in srgb,var(--elite-card-accent) 32%,transparent); border-radius: 12px; color: var(--elite-card-accent); background: color-mix(in srgb,var(--elite-card-accent) 10%,transparent); }
.elite-environment-card > header small { color: var(--text-muted); font-size: .45rem; font-weight: 720; letter-spacing: .06em; text-transform: uppercase; }
.elite-environment-card > header h3 { margin: 3px 0 0; font-size: .72rem; }
.elite-environment-card > header i { color: var(--elite-card-accent); font-style: normal; }
.elite-environment-card__metric { display: flex; align-items: baseline; gap: 8px; }
.elite-environment-card__metric strong { color: #f8fbff; font-size: 1.45rem; line-height: 1; }
.elite-environment-card__metric span { color: var(--text-soft); font-size: .54rem; }
.elite-environment-card .progress-track { margin: 0; }
.elite-environment-card .progress-track i { background: var(--elite-card-accent); }
.elite-environment-card > p { margin: 0; color: var(--text-muted); font-size: .52rem; line-height: 1.5; }
.elite-environment-card > footer { display: flex; flex-wrap: wrap; gap: 5px; }
.elite-environment-card > footer span { padding: 5px 7px; border: 1px solid color-mix(in srgb,var(--elite-card-accent) 19%,var(--line)); border-radius: 999px; color: var(--text-soft); background: color-mix(in srgb,var(--elite-card-accent) 5%,transparent); font-size: .44rem; }

.elite-system-strip { padding: 17px; border: 1px solid rgba(157,98,255,.18); border-radius: 21px; background: radial-gradient(circle at 100% 0,rgba(157,98,255,.07),transparent 30%),rgba(255,255,255,.018); }
.elite-system-strip > header { margin-bottom: 12px; display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.elite-system-strip > header h3 { margin: 4px 0 0; font-size: .82rem; }
.elite-system-strip > header p { max-width: 360px; margin: 0; color: var(--text-muted); font-size: .5rem; text-align: right; }
.elite-system-strip > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.elite-system-strip a { min-width: 0; padding: 13px; display: grid; grid-template-columns: 40px minmax(0,1fr) auto 16px; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 15px; color: inherit; background: rgba(4,9,17,.32); text-decoration: none; transition: transform .18s ease,border-color .18s ease,background-color .18s ease; }
.elite-system-strip a > span { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid rgba(157,98,255,.28); border-radius: 13px; color: #cfb5ff; background: rgba(157,98,255,.09); }
.elite-system-strip a:nth-child(2) > span { color: var(--cyan); border-color: rgba(82,216,223,.24); background: rgba(82,216,223,.07); }
.elite-system-strip a small { color: var(--text-muted); font-size: .43rem; text-transform: uppercase; }
.elite-system-strip a h3 { margin: 3px 0 2px; font-size: .66rem; }
.elite-system-strip a p { margin: 0; color: var(--text-muted); font-size: .47rem; line-height: 1.4; }
.elite-system-strip a > b { color: #cfb5ff; font-size: .73rem; text-align: right; }
.elite-system-strip a > b small { margin-top: 2px; display: block; font-size: .39rem; font-weight: 650; }
.elite-system-strip a > i { color: var(--text-muted); font-style: normal; }

.elite-next-action:hover, .elite-next-action:focus-visible,
.elite-environment-card:hover, .elite-environment-card:focus-visible,
.elite-system-strip a:hover, .elite-system-strip a:focus-visible { transform: translateY(-2px); border-color: rgba(98,217,154,.4); background-color: rgba(255,255,255,.045); }

/* Hub v2: ogni pagina mostra soltanto le sezioni aggiunte dal relativo piano. */
.hub-live-note { margin: 0; display: flex; align-items: center; gap: 7px; color: var(--text-muted); font-size: .5rem; }
.hub-live-note > span { width: 18px; height: 18px; display: grid; place-items: center; border: 1px solid rgba(82,216,223,.24); border-radius: 50%; color: var(--cyan); background: rgba(82,216,223,.06); font-size: .45rem; font-weight: 800; }
.plus-workspace-grid--summary { grid-template-columns: repeat(3,minmax(0,1fr)); }
.hub-summary-card { min-width: 0; padding: 15px; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: radial-gradient(circle at 100% 0,rgba(157,98,255,.08),transparent 38%),rgba(255,255,255,.024); }
.hub-summary-card__header { min-width: 0; padding-bottom: 11px; display: grid; grid-template-columns: 32px minmax(0,1fr) auto; align-items: center; gap: 9px; border-bottom: 1px solid var(--line); }
.hub-summary-card__header > span { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid rgba(157,98,255,.28); border-radius: 10px; color: #b99cff; background: rgba(157,98,255,.08); }
.hub-summary-card__header h3 { margin: 0; overflow: hidden; font-size: .67rem; text-overflow: ellipsis; white-space: nowrap; }
.hub-summary-card__header a, .hub-summary-card__header b { color: var(--cyan); font-size: .49rem; font-style: normal; font-weight: 760; text-decoration: none; white-space: nowrap; }
.hub-summary-card__header i { margin-left: 3px; font-style: normal; }
.hub-summary-empty { margin: auto 0; color: var(--text-muted); font-size: .5rem; line-height: 1.5; }

.premium-hub-grid { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 10px; }
.premium-hub-risk, .premium-hub-calendar, .premium-hub-attendance { grid-column: span 4; min-height: 315px; }
.premium-hub-goals, .premium-hub-generator, .premium-hub-notes, .premium-hub-ai { grid-column: span 3; min-height: 230px; }
.premium-hub-risk { display: grid; grid-template-rows: auto auto 1fr auto; gap: 12px; color: inherit; border-color: rgba(255,125,141,.2); background: radial-gradient(circle at 100% 0,rgba(255,125,141,.11),transparent 42%),rgba(255,255,255,.024); text-decoration: none; }
.premium-hub-risk .hub-summary-card__header > span { color: #ff8d9c; border-color: rgba(255,125,141,.28); background: rgba(255,125,141,.07); }
.premium-hub-risk__score small { display: block; color: var(--text-muted); font-size: .48rem; }
.premium-hub-risk__score strong { margin: 5px 0 9px; display: block; color: #fff; font-size: 1.55rem; }
.premium-hub-risk__score strong span { color: var(--text-muted); font-size: .55rem; }
.premium-hub-risk .progress-track i { background: #ff7d8d; }
.premium-hub-risk ul { margin: 0; padding: 0; display: grid; gap: 8px; list-style: none; }
.premium-hub-risk li { display: grid; grid-template-columns: 7px minmax(0,1fr); gap: 8px; color: var(--text-soft); font-size: .5rem; line-height: 1.45; }
.premium-hub-risk li > span { width: 6px; height: 6px; margin-top: 4px; border-radius: 50%; background: #ff7d8d; }
.premium-hub-risk__action { color: #ff9fac; font-size: .52rem; }

.premium-hub-calendar { display: grid; grid-template-rows: auto auto auto 1fr auto; gap: 9px; }
.premium-hub-calendar__title { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.premium-hub-calendar__title strong { font-size: .62rem; }
.premium-hub-calendar__title span { color: var(--text-muted); font-size: .44rem; }
.premium-hub-calendar__weekdays, .premium-hub-calendar__grid { display: grid; grid-template-columns: repeat(7,1fr); gap: 3px; text-align: center; }
.premium-hub-calendar__weekdays span { color: var(--text-muted); font-size: .4rem; font-weight: 730; }
.premium-hub-calendar__grid span { min-height: 23px; display: grid; place-items: center; position: relative; border-radius: 7px; color: var(--text-soft); font-size: .44rem; }
.premium-hub-calendar__grid .is-outside { opacity: .28; }
.premium-hub-calendar__grid .is-today { color: #0a1020; background: var(--violet-bright); font-weight: 800; }
.premium-hub-calendar__grid .has-event::after { content: ""; width: 3px; height: 3px; position: absolute; bottom: 2px; border-radius: 50%; background: var(--gold); }
.premium-hub-calendar footer { padding-top: 8px; display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; border-top: 1px solid var(--line); }
.premium-hub-calendar footer small { grid-column: 1/-1; color: var(--text-muted); font-size: .42rem; text-transform: uppercase; }
.premium-hub-calendar footer strong { overflow: hidden; font-size: .51rem; text-overflow: ellipsis; white-space: nowrap; }
.premium-hub-calendar footer span { color: var(--cyan); font-size: .43rem; }

.premium-hub-attendance { display: grid; grid-template-rows: auto 1fr auto; gap: 12px; }
.premium-hub-attendance .hub-summary-card__header > span { color: var(--emerald); border-color: rgba(98,217,154,.27); background: rgba(98,217,154,.07); }
.premium-hub-attendance__rows { display: grid; align-content: start; gap: 13px; }
.premium-hub-attendance__rows header { display: grid; grid-template-columns: 1fr auto auto; gap: 7px; align-items: center; }
.premium-hub-attendance__rows header strong { overflow: hidden; font-size: .51rem; text-overflow: ellipsis; white-space: nowrap; }
.premium-hub-attendance__rows header span { color: var(--text-muted); font-size: .43rem; }
.premium-hub-attendance__rows header b { min-width: 30px; color: var(--emerald); font-size: .52rem; text-align: right; }
.premium-hub-attendance__rows .progress-track { margin-top: 5px; }
.premium-hub-attendance__rows .progress-track i { background: var(--emerald); }
.premium-hub-attendance footer { padding-top: 8px; display: flex; align-items: baseline; gap: 7px; border-top: 1px solid var(--line); }
.premium-hub-attendance footer strong { color: var(--emerald); font-size: 1rem; }
.premium-hub-attendance footer span { color: var(--text-muted); font-size: .45rem; }
.hub-time-header button { margin-left: auto; padding: 0; border: 0; color: var(--cyan); background: transparent; cursor: pointer; font-size: .47rem; font-weight: 760; }
.hub-time-header button i { margin-left: 3px; font-style: normal; }
.premium-hub-study { grid-column: 1/-1; min-height: 0; display: grid; grid-template-columns: minmax(220px,.72fr) minmax(270px,1fr) minmax(180px,.62fr); grid-template-areas: "header header header" "metrics week subjects"; align-items: stretch; gap: 12px 16px; border-color: rgba(82,216,223,.18); background: radial-gradient(circle at 0 100%,rgba(82,216,223,.08),transparent 35%),rgba(255,255,255,.022); }
.premium-hub-study > .hub-time-header { grid-area: header; }
.premium-hub-study .hub-time-header > span { color: var(--cyan); border-color: rgba(82,216,223,.24); background: rgba(82,216,223,.07); }
.premium-hub-study__metrics { grid-area: metrics; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.premium-hub-study__metrics span { min-width: 0; padding: 10px; display: grid; align-content: center; gap: 3px; border: 1px solid var(--line); border-radius: 11px; background: rgba(3,8,15,.28); }
.premium-hub-study__metrics strong { color: var(--cyan); font-size: .76rem; }
.premium-hub-study__metrics small { color: var(--text-muted); font-size: .38rem; line-height: 1.3; }
.premium-hub-study__week, .elite-hub-focus__week { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); align-items: end; gap: 6px; }
.premium-hub-study__week { grid-area: week; min-height: 68px; }
.premium-hub-study__week > span, .elite-hub-focus__week > span { min-width: 0; height: 100%; display: grid; grid-template-rows: minmax(22px,1fr) auto; align-items: end; gap: 5px; text-align: center; }
.premium-hub-study__week i, .elite-hub-focus__week i { width: 100%; min-height: 3px; height: var(--progress-width); display: block; border-radius: 7px 7px 3px 3px; background: linear-gradient(180deg,var(--cyan),var(--violet-bright)); box-shadow: 0 0 12px rgba(82,216,223,.08); }
.premium-hub-study__week small, .elite-hub-focus__week small { color: var(--text-muted); font-size: .36rem; text-transform: uppercase; }
.premium-hub-study__subjects { grid-area: subjects; display: grid; align-content: center; gap: 6px; }
.premium-hub-study__subjects > span { min-width: 0; padding: 8px; display: flex; align-items: center; justify-content: space-between; gap: 8px; border: 1px solid var(--line); border-radius: 10px; }
.premium-hub-study__subjects strong { overflow: hidden; font-size: .44rem; text-overflow: ellipsis; white-space: nowrap; }
.premium-hub-study__subjects small { flex: 0 0 auto; color: var(--cyan); font-size: .4rem; }

.premium-hub-goals, .premium-hub-generator, .premium-hub-notes, .premium-hub-ai { display: grid; grid-template-rows: auto 1fr auto; gap: 11px; }
.premium-hub-goals__metrics { display: grid; grid-template-columns: repeat(2,1fr); gap: 7px; align-items: center; }
.premium-hub-goals__metrics span { padding: 9px; border: 1px solid var(--line); border-radius: 11px; background: rgba(3,8,15,.3); }
.premium-hub-goals__metrics small, .premium-hub-goals__metrics strong { display: block; }
.premium-hub-goals__metrics small { color: var(--text-muted); font-size: .4rem; }
.premium-hub-goals__metrics strong { margin-top: 3px; color: var(--gold); font-size: .86rem; }
.premium-hub-goals > p, .premium-hub-generator > p, .premium-hub-ai > p { margin: 0; color: var(--text-muted); font-size: .47rem; line-height: 1.45; }
.premium-hub-goals .progress-track i { background: var(--gold); }
.premium-hub-generator__headline { display: flex; align-items: baseline; gap: 6px; }
.premium-hub-generator__headline strong { color: var(--cyan); font-size: 1.35rem; }
.premium-hub-generator__headline span { color: var(--text-muted); font-size: .45rem; }
.premium-hub-generator__headline b { margin-left: auto; font-size: .52rem; }
.premium-hub-generator__states { display: grid; gap: 6px; }
.premium-hub-generator__states span { display: flex; align-items: center; gap: 6px; color: var(--text-soft); font-size: .47rem; }
.premium-hub-generator__states i { width: 6px; height: 6px; border-radius: 50%; background: var(--violet-bright); }
.premium-hub-notes__metrics { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; }
.premium-hub-notes__metrics > strong { padding: 8px 5px; border: 1px solid var(--line); border-radius: 10px; color: var(--cyan); font-size: .75rem; text-align: center; }
.premium-hub-notes__metrics small { margin-top: 2px; display: block; color: var(--text-muted); font-size: .38rem; font-weight: 650; }
.premium-hub-notes__recent { display: grid; gap: 6px; align-content: start; }
.premium-hub-notes__recent > span { min-width: 0; padding: 7px; display: grid; grid-template-columns: 22px minmax(0,1fr); border: 1px solid var(--line); border-radius: 10px; }
.premium-hub-notes__recent i { grid-row: 1/3; color: var(--cyan); font-style: normal; }
.premium-hub-notes__recent strong, .premium-hub-notes__recent small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.premium-hub-notes__recent strong { font-size: .46rem; }
.premium-hub-notes__recent small { color: var(--text-muted); font-size: .38rem; }
.premium-hub-ai { border-color: rgba(207,114,255,.2); background: radial-gradient(circle at 100% 0,rgba(207,114,255,.12),transparent 42%),rgba(255,255,255,.024); }
.premium-hub-ai__headline { display: flex; align-items: baseline; gap: 6px; }
.premium-hub-ai__headline strong { color: #d890ff; font-size: 1.35rem; }
.premium-hub-ai__headline span { color: var(--text-muted); font-size: .45rem; }
.premium-hub-ai > p small, .premium-hub-ai > p strong { display: block; }
.premium-hub-ai > p small { margin-bottom: 3px; font-size: .38rem; text-transform: uppercase; }
.premium-hub-ai > p strong { overflow: hidden; color: var(--text-soft); font-size: .48rem; text-overflow: ellipsis; white-space: nowrap; }
.premium-hub-ai__actions { display: flex; flex-wrap: wrap; gap: 4px; }
.premium-hub-ai__actions span, .elite-hub-card__tools span { padding: 5px 7px; border: 1px solid rgba(157,98,255,.18); border-radius: 999px; color: #c7b8ff; background: rgba(157,98,255,.05); font-size: .39rem; }

.elite-hub-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.elite-hub-card { --elite-hub-accent: var(--emerald); min-width: 0; min-height: 290px; padding: 15px; display: grid; grid-template-rows: auto auto auto 1fr auto; gap: 11px; overflow: hidden; border: 1px solid color-mix(in srgb,var(--elite-hub-accent) 20%,var(--line)); border-radius: 18px; background: radial-gradient(circle at 100% 0,color-mix(in srgb,var(--elite-hub-accent) 10%,transparent),transparent 42%),rgba(255,255,255,.022); }
.elite-hub-performance { --elite-hub-accent: var(--gold); }
.elite-hub-organization { --elite-hub-accent: var(--cyan); }
.elite-hub-review { --elite-hub-accent: #b886ff; }
.elite-hub-card .hub-summary-card__header > span { color: var(--elite-hub-accent); border-color: color-mix(in srgb,var(--elite-hub-accent) 28%,transparent); background: color-mix(in srgb,var(--elite-hub-accent) 7%,transparent); }
.elite-hub-method__stage { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.elite-hub-method__stage small, .elite-hub-method__stage strong { display: block; }
.elite-hub-method__stage small { color: var(--text-muted); font-size: .42rem; }
.elite-hub-method__stage strong { margin-top: 4px; color: var(--emerald); font-size: 1rem; }
.elite-hub-method__stage > b { width: 68px; aspect-ratio: 1; display: grid; place-items: center; border-radius: 50%; background: radial-gradient(circle,#0a111b 0 57%,transparent 59%),conic-gradient(var(--emerald) var(--progress-width),rgba(255,255,255,.07) 0); font-size: .68rem; }
.elite-hub-method__ready header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.elite-hub-method__ready header strong { font-size: .51rem; }
.elite-hub-method__ready header span { color: var(--text-muted); font-size: .42rem; }
.elite-hub-method__ready .progress-track i { background: var(--emerald); }
.elite-hub-method ul { margin: 0; padding: 0; display: grid; gap: 6px; list-style: none; }
.elite-hub-method li { display: flex; align-items: center; gap: 7px; color: var(--text-soft); font-size: .47rem; }
.elite-hub-method li > span { width: 7px; height: 7px; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; }
.elite-hub-method li.is-complete { color: var(--emerald); }
.elite-hub-card__action { width: fit-content; color: var(--elite-hub-accent); font-size: .5rem; font-weight: 760; text-decoration: none; }
.elite-hub-card__action i { margin-left: 4px; font-style: normal; }
.elite-hub-card__tools { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; }
.elite-hub-card__tools b { margin-left: auto; color: var(--elite-hub-accent); font-size: .44rem; }
.elite-hub-performance__priority small, .elite-hub-performance__priority strong { display: block; }
.elite-hub-performance__priority small { color: var(--text-muted); font-size: .41rem; text-transform: uppercase; }
.elite-hub-performance__priority strong { margin-top: 5px; font-size: .61rem; line-height: 1.4; }
.elite-hub-performance__metrics { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; }
.elite-hub-performance__metrics span { padding: 9px 6px; border: 1px solid var(--line); border-radius: 11px; background: rgba(3,8,15,.3); text-align: center; }
.elite-hub-performance__metrics strong, .elite-hub-performance__metrics small { display: block; }
.elite-hub-performance__metrics strong { color: var(--gold); font-size: .74rem; }
.elite-hub-performance__metrics small { margin-top: 2px; color: var(--text-muted); font-size: .36rem; }
.elite-hub-performance .progress-track i { background: var(--gold); }
.elite-hub-focus { --elite-hub-accent: var(--cyan); grid-column: 1/-1; min-height: 0; grid-template-rows: auto 1fr; }
.elite-hub-focus__content { display: grid; grid-template-columns: minmax(120px,.42fr) minmax(270px,1.1fr) minmax(220px,.72fr); align-items: stretch; gap: 12px; }
.elite-hub-focus__content > section { min-width: 0; padding: 11px; border: 1px solid var(--line); border-radius: 12px; background: rgba(3,8,15,.28); }
.elite-hub-focus__streak { display: grid; place-content: center; text-align: center; }
.elite-hub-focus__streak > strong { margin-top: 3px; color: var(--cyan); font-size: 1.65rem; line-height: 1; }
.elite-hub-focus__streak p { margin: 3px 0; color: var(--text-soft); font-size: .46rem; }
.elite-hub-focus__streak small { color: var(--text-muted); font-size: .37rem; }
.elite-hub-focus__rhythm { display: grid; grid-template-rows: auto minmax(68px,1fr); gap: 9px; }
.elite-hub-focus__rhythm > header { display: flex; align-items: end; justify-content: space-between; gap: 9px; }
.elite-hub-focus__rhythm small, .elite-hub-focus__rhythm strong { display: block; }
.elite-hub-focus__rhythm small { color: var(--text-muted); font-size: .37rem; text-transform: uppercase; }
.elite-hub-focus__rhythm strong { margin-top: 3px; font-size: .72rem; }
.elite-hub-focus__rhythm > header > span { color: var(--cyan); font-size: .38rem; text-align: right; }
.elite-hub-focus__quality { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.elite-hub-focus__quality > div { padding: 7px; border: 1px solid var(--line); border-radius: 9px; }
.elite-hub-focus__quality small, .elite-hub-focus__quality strong { display: block; }
.elite-hub-focus__quality small, .elite-hub-focus__quality p span { color: var(--text-muted); font-size: .36rem; }
.elite-hub-focus__quality > div strong { margin-top: 3px; color: var(--cyan); font-size: .6rem; }
.elite-hub-focus__quality p { grid-column: 1/-1; min-width: 0; margin: 0; display: grid; gap: 2px; }
.elite-hub-focus__quality p strong { overflow: hidden; font-size: .43rem; text-overflow: ellipsis; white-space: nowrap; }
.elite-hub-organization__headline { display: flex; align-items: baseline; gap: 7px; }
.elite-hub-organization__headline strong { color: var(--cyan); font-size: 1.35rem; }
.elite-hub-organization__headline span { color: var(--text-muted); font-size: .46rem; }
.elite-hub-organization__lessons { display: grid; align-content: start; gap: 6px; }
.elite-hub-organization__lessons > span { min-width: 0; padding: 7px; display: grid; grid-template-columns: 42px minmax(0,1fr); gap: 2px 8px; border: 1px solid var(--line); border-radius: 10px; }
.elite-hub-organization__lessons time { grid-row: 1/3; align-self: center; color: var(--cyan); font-size: .48rem; }
.elite-hub-organization__lessons strong, .elite-hub-organization__lessons small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.elite-hub-organization__lessons strong { font-size: .47rem; }
.elite-hub-organization__lessons small, .elite-hub-organization footer small { color: var(--text-muted); font-size: .38rem; }
.elite-hub-organization footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.elite-hub-organization footer strong { font-size: .42rem; }
.elite-hub-review__score { display: grid; grid-template-columns: 76px repeat(3,1fr); align-items: center; gap: 6px; }
.elite-hub-review__score > b { width: 72px; aspect-ratio: 1; display: grid; place-content: center; border-radius: 50%; background: radial-gradient(circle,#0a111b 0 57%,transparent 59%),conic-gradient(#b886ff var(--progress-width),rgba(255,255,255,.07) 0); color: #d2b8ff; font-size: .68rem; text-align: center; }
.elite-hub-review__score > b small { margin-top: 2px; display: block; color: var(--text-muted); font-size: .34rem; }
.elite-hub-review__score > span { color: var(--text-muted); font-size: .39rem; text-align: center; }
.elite-hub-review__score > span strong { display: block; color: var(--text-soft); font-size: .64rem; }
.elite-hub-review__recent { display: grid; align-content: start; gap: 6px; }
.elite-hub-review__recent > span { min-width: 0; padding: 7px; display: grid; gap: 2px; border: 1px solid var(--line); border-radius: 10px; }
.elite-hub-review__recent strong, .elite-hub-review__recent small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.elite-hub-review__recent strong { color: #cdb5ff; font-size: .44rem; }
.elite-hub-review__recent small { color: var(--text-muted); font-size: .39rem; }
.elite-hub-chat { grid-column: 1/-1; min-width: 0; padding: 15px; border: 1px solid rgba(207,114,255,.24); border-radius: 18px; background: radial-gradient(circle at 100% 0,rgba(207,114,255,.11),transparent 38%),rgba(255,255,255,.022); }
.elite-hub-chat__content { padding-top: 12px; display: grid; grid-template-columns: minmax(130px,.5fr) minmax(250px,1.4fr) auto; align-items: center; gap: 14px; }
.elite-hub-chat__history { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 2px 6px; }
.elite-hub-chat__history > strong { color: #d890ff; font-size: 1.4rem; }
.elite-hub-chat__history > span { color: var(--text-muted); font-size: .43rem; }
.elite-hub-chat__history > small, .elite-hub-chat__history > b { grid-column: 1/-1; }
.elite-hub-chat__history > small { margin-top: 6px; color: var(--text-muted); font-size: .38rem; text-transform: uppercase; }
.elite-hub-chat__history > b { overflow: hidden; font-size: .46rem; text-overflow: ellipsis; white-space: nowrap; }
.elite-hub-chat__suggestions { min-width: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; }
.elite-hub-chat__suggestions > small { grid-column: 1/-1; color: var(--text-muted); font-size: .39rem; }
.elite-hub-chat__suggestions a { min-width: 0; padding: 8px; border: 1px solid var(--line); border-radius: 10px; color: var(--text-soft); background: rgba(3,8,15,.3); font-size: .41rem; line-height: 1.35; text-decoration: none; }
.elite-hub-chat__open { padding: 9px 11px; border: 1px solid rgba(207,114,255,.3); border-radius: 10px; color: #d890ff; background: rgba(207,114,255,.07); font-size: .49rem; font-weight: 760; text-decoration: none; white-space: nowrap; }

.hub-summary-card:hover, .hub-summary-card:focus-within,
.elite-hub-card:hover, .elite-hub-card:focus-within,
.elite-hub-chat:hover, .elite-hub-chat:focus-within { border-color: rgba(157,98,255,.38); background-color: rgba(255,255,255,.035); }

@media (min-width: 1500px) {
  .elite-hub-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
}

/* OCR locale: il motore pesante viene proposto soltanto per le pagine mancanti. */
.ai-ocr-offer {
  padding: 10px;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 9px;
  border: 1px solid rgba(78,211,216,.24);
  border-radius: 12px;
  color: #dceaf2;
  background: linear-gradient(135deg,rgba(28,190,196,.1),rgba(119,95,241,.08));
}
.ai-ocr-offer[hidden] { display: none; }
.ai-ocr-offer div { min-width: 0; display: grid; gap: 3px; }
.ai-ocr-offer strong { font-size: .59rem; font-weight: 720; }
.ai-ocr-offer p { margin: 0; color: #92a1b5; font-size: .49rem; line-height: 1.4; }
.ai-ocr-offer .button { min-height: 32px; padding: 6px 9px; border-color: rgba(74,219,222,.28); color: #75e3e6; font-size: .5rem; white-space: nowrap; }
.ai-result-coverage__ocr { color: #4c8f85; }

@media (max-width:699px) {
  .app-shell[data-route="ai"] .ai-ocr-offer { grid-template-columns: 1fr; padding: 8px; gap: 7px; }
  .app-shell[data-route="ai"] .ai-ocr-offer .button { width: 100%; }
}

/* Registratore rapido: rimane disponibile mentre si naviga nell'app. */
@keyframes quick-recorder-pulse {
  0%,100% { opacity: .65; transform: scale(.92); }
  50% { opacity: 1; transform: scale(1.08); }
}

.quick-recorder-dock {
  width: min(620px,calc(100vw - var(--nk-sidebar-width) - 42px));
  min-height: 66px;
  padding: 10px 12px;
  position: fixed;
  z-index: 1200;
  left: calc(var(--nk-sidebar-width) + 22px);
  bottom: 20px;
  display: grid;
  grid-template-columns: 42px minmax(100px,1fr) auto;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(100,220,224,.3);
  border-radius: 18px;
  color: #f5f7fc;
  background: linear-gradient(135deg,rgba(24,29,40,.98),rgba(17,23,34,.98));
  box-shadow: 0 20px 52px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.055);
  backdrop-filter: blur(18px);
}
.quick-recorder-dock[hidden] { display: none; }
.quick-recorder-dock__signal { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(91,220,224,.35); border-radius: 14px; color: #6be2e5; background: rgba(41,174,182,.11); }
.quick-recorder-dock[data-status="recording"] .quick-recorder-dock__signal { border-color: rgba(255,102,116,.48); color: #ff7582; background: rgba(255,82,99,.1); animation: quick-recorder-pulse 1.25s ease-in-out infinite; }
.quick-recorder-dock__copy { min-width: 0; display: grid; gap: 2px; }
.quick-recorder-dock__copy small { overflow: hidden; color: #9aa8bb; font-size: .55rem; font-weight: 680; letter-spacing: .055em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.quick-recorder-dock__copy strong { font-variant-numeric: tabular-nums; font-size: 1.04rem; letter-spacing: .025em; }
.quick-recorder-dock__actions { display: flex; align-items: center; gap: 6px; }
.quick-recorder-dock__actions button { min-height: 38px; padding: 7px 10px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 1px solid rgba(151,164,185,.22); border-radius: 11px; color: #cdd5e1; background: rgba(255,255,255,.035); font: inherit; font-size: .58rem; font-weight: 700; cursor: pointer; }
.quick-recorder-dock__actions button.is-primary { border-color: rgba(113,105,255,.5); color: #fff; background: linear-gradient(135deg,#746dff,#5748d3); }
.quick-recorder-save { display: grid; gap: 15px; }
.quick-recorder-save audio { width: 100%; }
.quick-recorder-save > label { display: grid; gap: 6px; color: var(--text-soft); font-size: .72rem; font-weight: 680; }
.quick-recorder-save__privacy { margin: 0; padding: 10px 12px; display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 8px; border: 1px solid rgba(88,210,177,.18); border-radius: 12px; color: #9badb8; background: rgba(54,193,157,.055); font-size: .65rem; line-height: 1.45; }
.quick-recorder-save__privacy svg { color: #5ed7ae; }

@media (max-width:699px) {
  .quick-recorder-dock {
    width: calc(100vw - 16px);
    min-height: 58px;
    padding: 8px;
    left: 8px;
    bottom: calc(var(--nav-height) + 8px);
    grid-template-columns: 36px minmax(60px,1fr) auto;
    gap: 7px;
    border-radius: 15px;
  }
  .quick-recorder-dock__signal { width: 36px; height: 36px; border-radius: 11px; }
  .quick-recorder-dock__copy small { font-size: .44rem; }
  .quick-recorder-dock__copy strong { font-size: .82rem; }
  .quick-recorder-dock__actions { gap: 4px; }
  .quick-recorder-dock__actions button { width: 36px; min-height: 36px; padding: 5px; border-radius: 10px; }
  .quick-recorder-dock__actions button span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
}

@media (prefers-reduced-motion:reduce) {
  .quick-recorder-dock__signal,
  .today-header-action--record span { animation: none !important; }
}
@media (max-width: 1199px) {
  .premium-hub-risk, .premium-hub-calendar, .premium-hub-attendance,
  .premium-hub-goals, .premium-hub-generator, .premium-hub-notes, .premium-hub-ai { grid-column: span 6; }
  .premium-hub-study { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-areas: "header header" "metrics week" "subjects subjects"; }
  .elite-hub-chat__content { grid-template-columns: minmax(120px,.45fr) minmax(260px,1.2fr); }
  .elite-hub-chat__open { grid-column: 1/-1; width: fit-content; }
}
@media (max-width: 699px) {
  .plus-workspace-grid--summary { grid-template-columns: 1fr; }
  .premium-hub-grid, .elite-hub-grid { grid-template-columns: 1fr; }
  .premium-hub-risk, .premium-hub-calendar, .premium-hub-attendance,
  .premium-hub-goals, .premium-hub-generator, .premium-hub-notes, .premium-hub-ai, .premium-hub-study,
  .elite-hub-chat, .elite-hub-focus { grid-column: 1; }
  .premium-hub-study { grid-template-columns: 1fr; grid-template-areas: "header" "metrics" "week" "subjects"; }
  .premium-hub-study__metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .elite-hub-card { min-height: 0; }
  .elite-hub-focus__content { grid-template-columns: 1fr; }
  .elite-hub-chat__content, .elite-hub-chat__suggestions { grid-template-columns: 1fr; }
  .elite-hub-chat__suggestions > small { grid-column: 1; }
}
.planner-focus-view--exams .exam-card-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,420px),1fr)); }
.topic-subjects { display: grid; gap: 18px; }
.topic-subject-board { min-width: 0; padding: 13px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.018); }
.topic-subject-heading { margin-bottom: 11px; display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.topic-subject-heading h2 { margin: 3px 0 0; font-size: .92rem; }
.topic-subject-progress { width: min(250px,42%); display: grid; grid-template-columns: auto minmax(70px,1fr); align-items: center; gap: 6px 9px; }
.topic-subject-progress strong { color: var(--gold); font-size: .68rem; }
.topic-subject-progress small { grid-column: 1 / -1; color: var(--text-muted); font-size: .51rem; text-align: right; }
.daily-date-navigation { margin: -2px 0 9px; display: flex; justify-content: flex-end; gap: 6px; }
.daily-date-navigation a { min-width: 34px; min-height: 30px; padding: 6px 10px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 10px; color: var(--text-soft); background: rgba(255,255,255,.025); font-size: .58rem; font-weight: 700; text-decoration: none; }
.planner-week-shell { margin-bottom: 12px; }
.planner-week-shell > header { margin-bottom: 7px; display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.planner-week-shell > header strong { display: block; margin-top: 3px; color: var(--text-soft); font-size: .72rem; }
.planner-week-shell > header nav { display: flex; gap: 5px; }
.planner-week-shell > header nav a { min-width: 31px; min-height: 28px; padding: 5px 8px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 9px; color: var(--text-soft); background: rgba(255,255,255,.025); font-size: .54rem; font-weight: 700; text-decoration: none; }
.module-card { min-height: 104px; padding: 15px; position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; color: var(--text); background: rgba(255,255,255,.04); text-align: left; cursor: pointer; }
.module-card::after { content: ""; position: absolute; width: 70px; height: 70px; right: -25px; bottom: -25px; border-radius: 50%; background: var(--module-glow, rgba(239,202,109,.12)); filter: blur(5px); }
.module-card__icon { margin-bottom: 13px; display: block; color: var(--module-color, var(--gold)); font-size: 1.2rem; }
.module-card strong, .module-card small { position: relative; z-index: 1; display: block; }
.module-card strong { font-size: .86rem; }
.module-card small { margin-top: 3px; color: var(--text-muted); font-size: .68rem; }
.module-card__status { position: relative; z-index: 1; width: fit-content; margin-top: 10px; padding: 3px 7px; display: block; border: 1px solid var(--line); border-radius: 999px; color: var(--text-soft); background: rgba(5,10,17,.3); font-size: .58rem; font-weight: 650; letter-spacing: .035em; }
.module-card.is-locked { filter: grayscale(.8); opacity: .5; }
.module-card.is-coming { border-style: dashed; opacity: .78; }
.module-card.is-coming .module-card__status { color: #d9c8f5; border-color: rgba(157,98,255,.25); }
.module-card__lock { position: absolute; top: 10px; right: 10px; color: var(--text-muted); }
.module-card--basic, .module-card--premium { --module-color: var(--gold); --module-glow: rgba(239,202,109,.14); }
.module-card--plus { --module-color: var(--cyan); --module-glow: rgba(82,216,223,.16); }
.module-card--full { --module-color: var(--violet-bright); --module-glow: rgba(157,98,255,.16); }

/* Basic focus sections: timeline, exam cards, Kanban and daily agenda. */
.deadline-timeline { position: relative; display: grid; gap: 9px; }
.deadline-timeline::before { content: ""; width: 2px; position: absolute; left: 22px; top: 24px; bottom: 24px; background: linear-gradient(var(--gold),rgba(157,98,255,.28),var(--line)); }
.deadline-stop { min-width: 0; min-height: 92px; padding: 12px; position: relative; z-index: 1; display: grid; grid-template-columns: 32px minmax(72px,.38fr) minmax(0,1fr) 64px; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 17px; background: color-mix(in srgb,var(--surface) 94%,transparent); }
.deadline-stop--overdue { border-color: rgba(255,94,118,.28); }
.deadline-stop--today, .deadline-stop--soon { border-color: rgba(255,175,101,.28); }
.deadline-stop--complete { opacity: .55; }
.deadline-stop__rail { display: grid; place-items: center; }
.deadline-stop__rail span { width: 28px; height: 28px; display: grid; place-items: center; border: 2px solid var(--gold); border-radius: 50%; color: #091017; background: var(--gold); font-size: .61rem; font-weight: 800; }
.deadline-stop--overdue .deadline-stop__rail span { border-color: #ff6571; background: #ff6571; }
.deadline-stop--complete .deadline-stop__rail span { border-color: var(--emerald); background: var(--emerald); }
.deadline-stop > time { color: var(--text-soft); font-size: .63rem; }
.deadline-stop__body { min-width: 0; display: grid; grid-template-columns: minmax(0,1fr) minmax(80px,.45fr); align-items: center; gap: 10px; }
.deadline-stop__body h2, .deadline-stop__body p { margin: 0; }
.deadline-stop__body h2 { margin-top: 6px; overflow: hidden; font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.deadline-stop__body p { margin-top: 3px; color: var(--text-muted); font-size: .57rem; }
.deadline-stop__progress strong { display: block; color: var(--text-soft); font-size: .65rem; text-align: right; }
.deadline-stop__progress .progress-track { margin: 5px 0 0; }
.deadline-stop__countdown { text-align: center; }
.deadline-stop__countdown strong, .deadline-stop__countdown small { display: block; }
.deadline-stop__countdown strong { color: var(--gold); font-size: .88rem; }
.deadline-stop--overdue .deadline-stop__countdown strong { color: #ff8490; }
.deadline-stop__countdown small { color: var(--text-muted); font-size: .5rem; text-transform: uppercase; }
.deadline-stop__actions { grid-column: 2 / -1; display: flex; justify-content: flex-end; gap: 6px; }

.exam-card-grid { display: grid; gap: 10px; }
.exam-progress-card { min-width: 0; padding: 15px; display: grid; grid-template-columns: 92px minmax(0,1fr); gap: 11px; border: 1px solid var(--line); border-radius: 19px; background: radial-gradient(circle at 0 0,rgba(239,202,109,.08),transparent 35%),rgba(255,255,255,.03); }
.exam-progress-card > header { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 9px; }
.exam-progress-card > header > span:last-child { color: var(--text-muted); font-size: .6rem; }
.exam-progress-card__ring { width: 88px; aspect-ratio: 1; display: grid; place-items: center; align-content: center; border-radius: 50%; background: radial-gradient(circle at center,var(--surface) 57%,transparent 59%),conic-gradient(var(--gold) var(--progress-width),var(--line) 0); }
.exam-progress-card__ring strong, .exam-progress-card__ring span { display: block; }
.exam-progress-card__ring strong { font-size: 1rem; }
.exam-progress-card__ring span { color: var(--text-muted); font-size: .5rem; text-transform: uppercase; }
.exam-progress-card__copy { min-width: 0; align-self: center; }
.exam-progress-card__copy h2, .exam-progress-card__copy p { margin: 0; }
.exam-progress-card__copy h2 { overflow: hidden; font-size: .9rem; text-overflow: ellipsis; white-space: nowrap; }
.exam-progress-card__copy p { margin-top: 5px; color: var(--text-muted); font-size: .62rem; }
.exam-progress-card__facts { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
.exam-progress-card__facts > span { padding: 8px; border: 1px solid var(--line); border-radius: 11px; background: rgba(255,255,255,.022); }
.exam-progress-card__facts small, .exam-progress-card__facts strong { display: block; }
.exam-progress-card__facts small { color: var(--text-muted); font-size: .5rem; text-transform: uppercase; }
.exam-progress-card__facts strong { margin-top: 2px; font-size: .68rem; }
.exam-card-slider { grid-column: 1 / -1; display: grid; grid-template-columns: 72px minmax(0,1fr); align-items: center; gap: 8px; color: var(--text-muted); font-size: .58rem; }
.exam-card-slider input { width: 100%; accent-color: var(--gold); }
.exam-progress-card > footer { grid-column: 1 / -1; padding-top: 8px; display: flex; gap: 11px; border-top: 1px solid var(--line); }
.exam-progress-card > footer button { padding: 0; border: 0; color: var(--text-muted); background: transparent; cursor: pointer; font-size: .57rem; }
.exam-progress-card > footer button:first-child { color: var(--gold); font-weight: 700; }

.topic-kanban { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 7px; scrollbar-width: thin; }
.topic-kanban-column { --column-color: var(--text-muted); min-width: min(78vw,240px); padding: 8px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.018); }
.topic-kanban-column--in-corso { --column-color: var(--cyan); border-color: rgba(82,216,223,.18); }
.topic-kanban-column--da-rivedere { --column-color: #ffaf65; border-color: rgba(255,175,101,.18); }
.topic-kanban-column--completato { --column-color: var(--emerald); border-color: rgba(98,217,154,.18); }
.topic-kanban-column > header { margin: 1px 2px 8px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.topic-kanban-column > header strong { color: var(--column-color); font-size: .65rem; text-transform: uppercase; }
.topic-kanban-column > header span { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 8px; color: var(--text-soft); background: rgba(255,255,255,.05); font-size: .58rem; }
.topic-kanban-column > div { display: grid; gap: 7px; }
.topic-kanban-column > div > p { margin: 0; padding: 24px 5px; color: var(--text-muted); font-size: .6rem; text-align: center; }
.topic-kanban-card { padding: 11px; border: 1px solid var(--line); border-top: 3px solid var(--column-color); border-radius: 12px; background: rgba(255,255,255,.034); }
.topic-kanban-card > div { display: flex; align-items: center; justify-content: space-between; gap: 7px; }
.topic-kanban-card > div span, .topic-kanban-card > div small { color: var(--text-muted); font-size: .53rem; text-transform: uppercase; }
.topic-kanban-card h3 { margin: 9px 0; font-size: .72rem; line-height: 1.4; }
.topic-kanban-card footer { padding-top: 7px; display: flex; gap: 7px; border-top: 1px solid var(--line); }
.topic-kanban-card footer button { padding: 0; border: 0; color: var(--text-muted); background: transparent; cursor: pointer; font-size: .53rem; }
.topic-kanban-card footer button:first-child { color: var(--column-color); font-weight: 700; }

.daily-agenda-header { padding: 12px; display: grid; grid-template-columns: minmax(0,1fr) repeat(2,90px); align-items: end; gap: 8px; border: 1px solid rgba(82,216,223,.17); border-radius: 17px; background: rgba(82,216,223,.03); }
.daily-agenda-header label { display: grid; gap: 4px; }
.daily-agenda-header label > span { color: var(--text-muted); font-size: .57rem; text-transform: uppercase; }
.daily-agenda-header > div { min-height: 44px; display: grid; place-items: center; align-content: center; border: 1px solid var(--line); border-radius: 11px; background: rgba(255,255,255,.025); text-align: center; }
.daily-agenda-header > div strong, .daily-agenda-header > div span { display: block; }
.daily-agenda-header > div strong { font-size: .83rem; }
.daily-agenda-header > div span { color: var(--text-muted); font-size: .49rem; text-transform: uppercase; }
.daily-agenda { padding: 12px; }
.daily-agenda > header { margin-bottom: 9px; padding: 4px; display: flex; align-items: center; justify-content: space-between; gap: 9px; }
.daily-agenda > header h2 { margin: 0; font-size: .85rem; }
.daily-agenda-item { min-height: 69px; display: grid; grid-template-columns: 50px 30px minmax(0,1fr) auto; align-items: center; gap: 8px; border-bottom: 1px solid var(--line); }
.daily-agenda-item:last-child { border-bottom: 0; }
.daily-agenda-item.is-complete { opacity: .5; }
.daily-agenda-item__time { text-align: center; }
.daily-agenda-item__time strong, .daily-agenda-item__time span { display: block; }
.daily-agenda-item__time strong { color: var(--cyan); font-size: .7rem; }
.daily-agenda-item__time span { color: var(--text-muted); font-size: .48rem; text-transform: uppercase; }
.daily-agenda-item__check { width: 27px; height: 27px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 50%; color: #06110c; background: transparent; cursor: pointer; }
.daily-agenda-item.is-complete .daily-agenda-item__check { border-color: var(--emerald); background: var(--emerald); }
.daily-agenda-item__copy { min-width: 0; }
.daily-agenda-item__copy strong, .daily-agenda-item__copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.daily-agenda-item__copy strong { font-size: .73rem; }
.daily-agenda-item__copy small { margin-top: 3px; color: var(--text-muted); font-size: .57rem; }
.daily-agenda-item__measured { max-width: 330px; margin-top: 6px; display: grid; grid-template-columns: minmax(64px,95px) minmax(0,1fr); align-items: center; gap: 7px; }
.daily-agenda-item__measured .progress-track { height: 3px; }
.daily-agenda-item__measured small { min-width: 0; margin: 0; color: var(--cyan); font-size: .46rem; }
.daily-agenda-item__actions { display: flex; gap: 7px; }
.daily-agenda-item__actions button { padding: 0; border: 0; color: var(--text-muted); background: transparent; cursor: pointer; font-size: .54rem; }
.daily-agenda-item__actions button:first-child { color: var(--cyan); }

@media (hover:hover) and (pointer:fine) {
  .basic-section-nav a,
  .daily-date-navigation a,
  .planner-week-shell > header nav a { transition: transform var(--nk-motion-press) var(--nk-ease-standard),background-color var(--nk-motion-press) ease,border-color var(--nk-motion-press) ease; }
  .basic-section-nav a:hover,
  .daily-date-navigation a:hover,
  .planner-week-shell > header nav a:hover { border-color: var(--line-strong); background: rgba(255,255,255,.055); transform: translateY(-1px); }
}

@media (max-width:699px) {
  .basic-section-nav { margin-inline: -4px; grid-template-columns: repeat(5,minmax(118px,1fr)); }
  .basic-command-hero { grid-template-columns: 1fr; gap: 14px; }
  .basic-command-hero__status { min-height: 0; }
  .basic-command-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .basic-command-card { min-height: 178px; }
  .study-attribution-panel > header { align-items: flex-start; flex-direction: column; gap: 10px; }
  .study-attribution-grid { grid-template-columns: 1fr; }
  .basic-system-flow > header { align-items: start; flex-direction: column; }
  .basic-system-flow > header p { text-align: left; }
  .basic-system-flow > div { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .basic-system-flow a::after { display: none; }
  .basic-summary-strip,
  .basic-summary-strip--daily { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .basic-summary-strip--daily .basic-summary-metric:last-child { grid-column: 1 / -1; }
  .basic-summary-metric { min-height: 80px; padding: 11px; }
  .topic-subject-heading { align-items: stretch; flex-direction: column; gap: 9px; }
  .topic-subject-progress { width: 100%; }
  .daily-agenda-header { grid-template-columns: minmax(0,1fr) repeat(2,78px); }
  .daily-agenda-item { grid-template-columns: 42px 28px minmax(0,1fr); }
  .daily-agenda-item__measured { grid-template-columns: 72px minmax(0,1fr); }
  .daily-agenda-item__actions { grid-column: 2 / -1; padding: 0 0 8px; justify-content: flex-end; }
  .plus-training-hero { min-height: 150px; grid-template-columns: minmax(0,1fr) 82px; gap: 13px; }
  .plus-readiness { width: 78px; }
  .plus-readiness strong { font-size: .9rem; }
  .plus-readiness span { max-width: 58px; font-size: .4rem; }
  .plus-next-action { grid-template-columns: 40px minmax(0,1fr); }
  .plus-next-action > span { width: 40px; height: 40px; }
  .plus-next-action > strong { grid-column: 2; justify-self: start; }
  .plus-learning-loop > header { align-items: start; flex-direction: column; gap: 5px; }
  .plus-learning-loop > header p { text-align: left; }
  .plus-learning-loop > div { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .plus-learning-loop a::after { display: none; }
  .plus-workspace-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .plus-workspace-card { min-height: 190px; }
  .plus-notes-summary { grid-template-columns: 40px minmax(0,1fr) 16px; }
  .plus-notes-summary__icon { width: 40px; height: 40px; }
  .plus-notes-summary__limits { grid-column: 2; width: 100%; }
  .plus-notes-summary > i { grid-column: 3; grid-row: 1 / span 2; }
  .premium-command-layout { grid-template-columns: 1fr; }
  .premium-priority-card { grid-template-columns: 70px minmax(0,1fr); grid-template-rows: auto auto auto; }
  .premium-priority-card > header { grid-column: 1 / -1; }
  .premium-priority-card__risk { width: 68px; grid-row: 2 / span 2; }
  .premium-priority-card > strong { grid-column: 2; }
  .premium-signal-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .premium-signal-card--ai { grid-column: span 2; }
  .premium-foundation-strip > header { align-items: start; flex-direction: column; }
  .premium-foundation-strip > header p { text-align: left; }
  .premium-foundation-strip > div { grid-template-columns: 1fr; }
  .elite-command-hero { grid-template-columns: minmax(0,1fr) 88px; gap: 14px; }
  .elite-command-hero__status { width: 84px; }
  .elite-next-action { grid-column: 1 / -1; }
  .elite-control-grid { grid-template-columns: 1fr; }
  .elite-environment-section > header,
  .elite-system-strip > header { align-items: start; flex-direction: column; gap: 6px; }
  .elite-environment-section > header p,
  .elite-system-strip > header p { text-align: left; }
  .elite-environment-grid { grid-template-columns: 1fr; }
  .elite-environment-card { min-height: 205px; }
  .elite-system-strip > div { grid-template-columns: 1fr; }
}

@media (max-width:430px) {
  .basic-command-grid { grid-template-columns: 1fr; }
  .basic-command-card { min-height: 160px; }
  .plus-training-hero { grid-template-columns: 1fr; }
  .plus-readiness { width: 82px; justify-self: start; }
  .plus-workspace-grid { grid-template-columns: 1fr; }
  .plus-workspace-card { min-height: 170px; }
  .plus-notes-summary { grid-template-columns: 38px minmax(0,1fr) 14px; }
  .plus-notes-summary__limits { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .plus-notes-summary__limits > span { min-width: 0; }
  .premium-radar-panel { padding: 15px 11px; }
  .premium-radar-panel > header { align-items: stretch; flex-direction: column; }
  .premium-radar-panel > header > b { text-align: left; }
  .premium-signal-grid { grid-template-columns: 1fr; }
  .premium-signal-card,
  .premium-signal-card--ai { min-height: 155px; grid-column: auto; }
  .elite-command-hero { grid-template-columns: 1fr; }
  .elite-command-hero__status { justify-self: start; }
  .elite-next-action { grid-template-columns: 38px minmax(0,1fr); }
  .elite-next-action > strong { grid-column: 2; justify-self: start; }
  .elite-radar-panel, .elite-priority-panel { padding: 14px 11px; }
  .elite-priority-panel .plan-priority-layout { min-height: 235px; }
  .elite-environment-section, .elite-system-strip { padding: 13px; }
  .elite-system-strip a { grid-template-columns: 38px minmax(0,1fr) 14px; }
  .elite-system-strip a > b { grid-column: 2; text-align: left; }
  .elite-system-strip a > i { grid-column: 3; grid-row: 1 / span 2; }
}

@media (prefers-reduced-motion:reduce) {
  .basic-command-card,
  .plus-next-action,
  .plus-workspace-card,
  .plus-notes-summary,
  .premium-priority-card,
  .premium-signal-card,
  .elite-next-action,
  .elite-environment-card,
  .elite-system-strip a { transition: none; }
  .basic-command-card:hover, .basic-command-card:focus-visible,
  .plus-next-action:hover, .plus-next-action:focus-visible,
  .plus-workspace-card:hover, .plus-workspace-card:focus-visible,
  .plus-notes-summary:hover, .plus-notes-summary:focus-visible,
  .premium-priority-card:hover, .premium-priority-card:focus-visible,
  .premium-signal-card:hover, .premium-signal-card:focus-visible,
  .premium-foundation-strip a:hover, .premium-foundation-strip a:focus-visible,
  .elite-next-action:hover, .elite-next-action:focus-visible,
  .elite-environment-card:hover, .elite-environment-card:focus-visible,
  .elite-system-strip a:hover, .elite-system-strip a:focus-visible { transform: none; }
}

.orb-view { overflow: clip; overflow-clip-margin: 34px; }
.orb-stage-panel__head,
.orb-stage-panel__legend,
.orb-inspector__eyebrow { display: none; }
.ai-pill { width: fit-content; margin: 0 auto 14px; padding: 9px 15px; display: flex; align-items: center; gap: 8px; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; color: #fff; background: linear-gradient(100deg, rgba(113,67,190,.62), rgba(255,255,255,.075)); box-shadow: 0 12px 30px rgba(0,0,0,.2); cursor: pointer; font-size: .76rem; font-weight: 600; transition: transform .2s var(--ease), border-color .2s ease, background .2s ease; }
.ai-pill:hover { transform: translateY(-1px); border-color: rgba(255,255,255,.34); }
.ai-pill:active { transform: scale(.985); }
.ai-pill__separator { opacity: .55; }
.orbit-stage { --orbit-x: clamp(126px, 35vw, 164px); --orbit-y: clamp(125px, 34vw, 164px); position: relative; width: min(100%, 480px); aspect-ratio: 1 / 1.06; margin: 0 auto; isolation: isolate; }
.orbit-stage::before, .orbit-stage::after { content: ""; position: absolute; inset: 14% 12%; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; opacity: .72; }
.orbit-stage::after { inset: 25% 23%; border-color: rgba(82,216,223,.13); }
.orbit-stage[data-state="closed"]::before, .orbit-stage[data-state="closed"]::after { opacity: .22; transform: scale(.78) rotate(-8deg); }
.orbit-stage[data-state="open"]::before, .orbit-stage[data-state="open"]::after { opacity: .72; transform: scale(1) rotate(0); }
.planet-field { position: absolute; inset: 0; }
.orbit-center { position: absolute; z-index: 6; left: 50%; top: 50%; width: 104px; height: 104px; padding: 0; border: 0; border-radius: 50%; color: inherit; background: transparent; transform: translate(-50%,-50%); cursor: pointer; isolation: isolate; }
.orbit-center::before { content: ""; position: absolute; z-index: -1; inset: -23px; border: 1px solid rgba(199,160,255,.34); border-radius: 50%; opacity: 0; transform: scale(.56) rotate(-32deg); box-shadow: 0 0 34px rgba(157,98,255,.14), inset 0 0 22px rgba(239,202,109,.08); pointer-events: none; }
.orbit-center::after { content: ""; position: absolute; z-index: 7; left: calc(50% - 2px); top: calc(50% - 2px); width: 4px; height: 4px; border-radius: 50%; background: #fff; opacity: 0; transform: scale(.3) rotate(-42deg); box-shadow: 0 -66px var(--gold-bright), 47px -47px var(--violet-bright), 66px 0 var(--cyan), 47px 47px var(--gold), 0 66px #fff, -47px 47px var(--violet-bright), -66px 0 var(--cyan), -47px -47px var(--gold-bright); pointer-events: none; }
.orbit-center .nova-mark { z-index: 1; width: 104px; height: 104px; transition: transform .26s cubic-bezier(.2,.8,.2,1), border-color .26s ease; }
.orbit-center .nova-mark__letter { font-size: 3.65rem; }
.orbit-center .nova-mark__star { top: 15px; right: 19px; font-size: 1.25rem; }
.orbit-center .nova-mark__orbit { width: 82px; height: 38px; }
.orbit-center__label { position: absolute; left: 50%; bottom: -27px; min-width: 54px; padding: 4px 9px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; color: #fff; background: rgba(12,17,25,.9); transform: translateX(-50%); font-size: .68rem; font-weight: 500; letter-spacing: .035em; box-shadow: 0 8px 22px rgba(0,0,0,.24); }
.orbit-stage[data-state="closed"] .orbit-center:hover .nova-mark { transform: scale(1.035); }
.orbit-stage[data-state="open"] .orbit-center .nova-mark { transform: scale(.93); border-color: rgba(255,255,255,.58); box-shadow: 0 0 0 7px rgba(255,255,255,.07), 0 14px 36px rgba(0,0,0,.34), 0 0 34px rgba(157,98,255,.24); }
.orbit-stage[data-state="opening"] .orbit-center .nova-mark { animation: orb-awaken .88s cubic-bezier(.22,.72,.16,1) both; }
.orbit-stage[data-state="closing"] .orbit-center .nova-mark { animation: orb-gather .72s cubic-bezier(.22,.72,.16,1) both; }
.orbit-stage[data-state="opening"] .orbit-center::before { animation: orb-halo-release .88s ease-in-out both; }
.orbit-stage[data-state="closing"] .orbit-center::before { animation: orb-halo-release .72s ease-in-out reverse both; }
.orbit-stage[data-state="opening"] .orbit-center::after { animation: nova-spark-burst .88s ease-in-out both; }
.orbit-stage[data-state="closing"] .orbit-center::after { animation: nova-spark-burst .72s ease-in-out reverse both; }
.orbit-stage[data-state="opening"] .nova-mark__star { animation: nova-star-awaken .88s cubic-bezier(.22,.72,.16,1) both; }
.orbit-stage[data-state="closing"] .nova-mark__star { animation: nova-star-gather .72s linear both; }
.orbit-stage[data-state="opening"] .nova-mark__orbit { animation: nova-orbit-turn .88s cubic-bezier(.22,.72,.16,1) both; }
.orbit-stage[data-state="closing"] .nova-mark__orbit { animation: nova-orbit-turn .72s cubic-bezier(.22,.72,.16,1) reverse both; }
.orbit-stage[data-state="opening"]::before, .orbit-stage[data-state="opening"]::after { animation: orbit-ring-release .88s cubic-bezier(.22,.72,.16,1) both; }
.orbit-stage[data-state="closing"]::before, .orbit-stage[data-state="closing"]::after { animation: orbit-ring-release .72s cubic-bezier(.22,.72,.16,1) reverse both; }
.orbit-stage[data-state="opening"] .orbit-center, .orbit-stage[data-state="closing"] .orbit-center, .orbit-stage[data-state="opening"]::before, .orbit-stage[data-state="opening"]::after, .orbit-stage[data-state="closing"]::before, .orbit-stage[data-state="closing"]::after { will-change: transform, opacity; }

.plan-node { --node-color: var(--gold); --planet-opacity: 1; --planet-angle: -90deg; --planet-radius: var(--orbit-y); --open-delay: 0ms; --close-delay: 0ms; position: absolute; z-index: 4; left: 50%; top: 50%; width: 96px; height: 96px; padding: 8px; display: flex; flex-direction: column; align-items: center; justify-content: center; visibility: hidden; opacity: 0; border: 1px solid color-mix(in srgb, var(--node-color) 62%, rgba(255,255,255,.18)); border-radius: 50%; color: var(--node-color); background: radial-gradient(circle at 42% 28%, rgba(255,255,255,.15), color-mix(in srgb, var(--node-color) 12%, rgba(10,15,23,.98)) 48%, rgba(8,13,21,.98) 72%); box-shadow: inset 0 1px rgba(255,255,255,.16), 0 14px 30px rgba(0,0,0,.28), 0 0 24px color-mix(in srgb, var(--node-color) 13%, transparent); transform: translate(-50%,-50%) rotate(calc(var(--planet-angle) - 112deg)) translateX(3px) rotate(calc(112deg - var(--planet-angle))) scale(.12); pointer-events: none; cursor: pointer; }
.plan-node strong { color: #fff; font-size: .82rem; font-weight: 600; }
.plan-node small { margin-top: 2px; color: var(--text-soft); font-size: .68rem; }
.plan-node__icon { margin-bottom: 3px; font-size: 1.25rem; }
.plan-node__texture { display: none; }
.plan-node__lock { position: absolute; top: 5px; right: 5px; width: 25px; height: 25px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 50%; color: var(--text-soft); background: #111721; font-size: .7rem; }
.plan-node--basic { --planet-angle: -90deg; --planet-radius: var(--orbit-y); --open-delay: 0ms; --close-delay: 105ms; }
.plan-node--plus { --node-color: var(--cyan); --planet-angle: 180deg; --planet-radius: var(--orbit-x); --open-delay: 35ms; --close-delay: 70ms; }
.plan-node--premium { --node-color: var(--gold); --planet-angle: 0deg; --planet-radius: var(--orbit-x); --open-delay: 70ms; --close-delay: 35ms; }
.plan-node--full { --node-color: #eef1f5; --planet-angle: 90deg; --planet-radius: var(--orbit-y); --open-delay: 105ms; --close-delay: 0ms; }
.plan-node--ai,
.plan-node--notes { display: none; }
.plan-node.is-locked { --node-color: #9aa3af; --planet-opacity: .68; border-style: dashed; }
.orbit-stage[data-state="opening"] .plan-node, .orbit-stage[data-state="closing"] .plan-node, .orbit-stage[data-state="open"] .plan-node { visibility: visible; }
.orbit-stage[data-state="opening"] .plan-node { will-change: transform, opacity; animation: planet-emerge .88s cubic-bezier(.22,.72,.16,1) var(--open-delay) both; }
.orbit-stage[data-state="closing"] .plan-node { will-change: transform, opacity; animation: planet-emerge .72s cubic-bezier(.22,.72,.16,1) var(--close-delay) reverse both; }
.orbit-stage[data-state="open"] .plan-node { opacity: var(--planet-opacity); transform: translate(-50%,-50%) rotate(var(--planet-angle)) translateX(var(--planet-radius)) rotate(calc(0deg - var(--planet-angle))) scale(1); pointer-events: auto; transition: transform .2s var(--ease), opacity .2s ease, box-shadow .2s ease; }
.orbit-stage[data-state="open"] .plan-node:hover { transform: translate(-50%,-50%) rotate(var(--planet-angle)) translateX(var(--planet-radius)) rotate(calc(0deg - var(--planet-angle))) scale(1.045); }
.orbit-stage[data-state="open"] .plan-node:active { transform: translate(-50%,-50%) rotate(var(--planet-angle)) translateX(var(--planet-radius)) rotate(calc(0deg - var(--planet-angle))) scale(.98); }
.plan-node.is-selected { box-shadow: inset 0 1px rgba(255,255,255,.22), 0 0 0 5px rgba(255,255,255,.065), 0 14px 34px rgba(0,0,0,.32), 0 0 28px color-mix(in srgb, var(--node-color) 24%, transparent); }
.plan-node.is-owned::after { content: "Il tuo piano"; position: absolute; left: 50%; bottom: -18px; transform: translateX(-50%); padding: 3px 8px; border: 1px solid rgba(82,216,223,.5); border-radius: 999px; color: #a9f7fa; background: #071218; font-size: .65rem; white-space: nowrap; }
@keyframes planet-emerge {
  0% { opacity: 0; transform: translate(-50%,-50%) rotate(calc(var(--planet-angle) - 112deg)) translateX(3px) rotate(calc(112deg - var(--planet-angle))) scale(.12); }
  100% { opacity: var(--planet-opacity); transform: translate(-50%,-50%) rotate(var(--planet-angle)) translateX(var(--planet-radius)) rotate(calc(0deg - var(--planet-angle))) scale(1); }
}

/* Advanced plan tools */
.advanced-view { display: grid; gap: 18px; }
.advanced-header {
  --advanced-accent: 157,98,255;
  --advanced-accent-soft: 82,216,223;
  position: relative;
  min-height: 166px;
  margin-bottom: 2px;
  padding: 22px;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(390px,.72fr);
  align-items: end;
  gap: 24px;
  border: 1px solid rgba(var(--advanced-accent),.26);
  border-radius: 28px;
  background:
    radial-gradient(circle at 86% 14%,rgba(var(--advanced-accent),.16),transparent 32%),
    linear-gradient(135deg,rgba(var(--advanced-accent),.085),rgba(8,13,23,.74) 52%,rgba(var(--advanced-accent-soft),.045));
  box-shadow: inset 0 1px rgba(255,255,255,.035),0 20px 50px rgba(0,0,0,.12);
}
.advanced-header::after {
  content: "";
  position: absolute;
  width: 210px;
  aspect-ratio: 1;
  right: -76px;
  top: -118px;
  border: 1px solid rgba(var(--advanced-accent),.16);
  border-radius: 50%;
  box-shadow: 0 0 0 34px rgba(var(--advanced-accent),.028),0 0 0 70px rgba(var(--advanced-accent-soft),.018);
  pointer-events: none;
}
.advanced-header--questions { --advanced-accent: 157,98,255; --advanced-accent-soft: 242,189,106; }
.advanced-header--review { --advanced-accent: 230,107,197; --advanced-accent-soft: 157,98,255; }
.advanced-header--check { --advanced-accent: 82,216,223; --advanced-accent-soft: 95,219,158; }
.advanced-header--plan,
.advanced-header--calendar,
.advanced-header--organization { --advanced-accent: 75,158,255; --advanced-accent-soft: 82,216,223; }
.advanced-header--attendance { --advanced-accent: 95,219,158; --advanced-accent-soft: 82,216,223; }
.advanced-header--goals,
.advanced-header--milestone { --advanced-accent: 242,189,106; --advanced-accent-soft: 157,98,255; }
.advanced-header--risk { --advanced-accent: 255,117,132; --advanced-accent-soft: 242,189,106; }
.advanced-header--method { --advanced-accent: 192,145,255; --advanced-accent-soft: 242,189,106; }
.advanced-header--performance { --advanced-accent: 109,126,255; --advanced-accent-soft: 230,107,197; }
.advanced-header--materials { --advanced-accent: 78,202,174; --advanced-accent-soft: 75,158,255; }
.advanced-header__identity,
.advanced-header__title,
.advanced-header__signals { position: relative; z-index: 1; min-width: 0; }
.advanced-back {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 15px;
  color: var(--text-soft);
  font-size: .72rem;
  font-weight: 620;
  text-decoration: none;
}
.advanced-back span { color: rgb(var(--advanced-accent)); transition: transform .18s ease; }
.advanced-back:hover span { transform: translateX(-2px); }
.advanced-header__title { display: grid; grid-template-columns: 54px minmax(0,1fr); align-items: center; gap: 15px; }
.advanced-header__icon {
  width: 54px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border: 1px solid rgba(var(--advanced-accent),.38);
  border-radius: 17px;
  color: rgb(var(--advanced-accent));
  background: linear-gradient(145deg,rgba(var(--advanced-accent),.18),rgba(var(--advanced-accent-soft),.055));
  box-shadow: 0 12px 28px rgba(0,0,0,.18),inset 0 1px rgba(255,255,255,.06);
}
.advanced-header__title h1 { margin: 3px 0 4px; font-size: clamp(1.55rem,2.25vw,2.35rem); }
.advanced-header__title p { max-width: 680px; margin: 0; color: var(--text-soft); font-size: .72rem; line-height: 1.5; }
.advanced-header__title .view-header__eyebrow { color: rgb(var(--advanced-accent)); }
.advanced-header__signals {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  border: 1px solid rgba(255,255,255,.075);
  border-radius: 18px;
  background: rgba(3,8,16,.42);
  box-shadow: inset 0 1px rgba(255,255,255,.025);
}
.advanced-header__signals > span,
.advanced-header__signals > a {
  min-width: 0;
  min-height: 68px;
  padding: 12px 14px;
  display: grid;
  align-content: center;
  gap: 3px;
  color: inherit;
  text-decoration: none;
}
.advanced-header__signals > * + * { border-left: 1px solid rgba(255,255,255,.065); }
.advanced-header__signals small { color: var(--text-muted); font-size: .53rem; font-weight: 700; letter-spacing: .075em; text-transform: uppercase; }
.advanced-header__signals strong { overflow: hidden; color: var(--text); font-size: .68rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.advanced-header__signals a strong { color: rgb(var(--advanced-accent)); }
.advanced-header__signals i { font-style: normal; }
@media (max-width:1023px) {
  .advanced-header { min-height: 0; grid-template-columns: 1fr; align-items: stretch; gap: 17px; }
  .advanced-header__signals { width: min(100%,620px); }
}
@media (max-width:699px) {
  .advanced-view { gap: 12px; }
  .advanced-header { padding: 14px; gap: 13px; border-radius: 20px; }
  .advanced-back { margin-bottom: 11px; font-size: .65rem; }
  .advanced-header__title { grid-template-columns: 43px minmax(0,1fr); gap: 11px; }
  .advanced-header__icon { width: 43px; border-radius: 13px; }
  .advanced-header__icon .nk-icon { width: 22px; height: 22px; }
  .advanced-header__title h1 { margin-block: 2px 3px; font-size: 1.25rem; }
  .advanced-header__title p { font-size: .62rem; line-height: 1.42; }
  .advanced-header__signals { border-radius: 14px; }
  .advanced-header__signals > span,
  .advanced-header__signals > a { min-height: 54px; padding: 8px 9px; }
  .advanced-header__signals small { font-size: .45rem; }
  .advanced-header__signals strong { font-size: .57rem; }
}
.advanced-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.advanced-grid { display: grid; gap: 12px; }
.advanced-item, .material-card { padding: 18px; display: grid; gap: 10px; }
.advanced-item h2, .material-card h2, .timeline-item h2, .timetable-day h2 { margin: 0; font-size: 1rem; }
.advanced-item p, .material-card p, .timeline-item p { margin: 0; color: var(--text-soft); }
.advanced-item__top, .advanced-item__actions, .progress-heading, .storage-card__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.advanced-item__actions { justify-content: flex-start; flex-wrap: wrap; }
.advanced-empty { --empty-accent: 157,98,255; min-height: 190px; padding: 26px 22px; position: relative; overflow: hidden; border: 1px dashed rgba(var(--empty-accent),.3); border-radius: 22px; display: grid; grid-template-columns: 54px minmax(0,430px); place-content: center; align-items: center; gap: 14px; color: var(--text-soft); background: radial-gradient(circle at 50% 0,rgba(var(--empty-accent),.08),transparent 58%); text-align: left; }
.advanced-empty::after { content: ""; width: 120px; aspect-ratio: 1; position: absolute; right: -58px; bottom: -76px; border: 1px solid rgba(var(--empty-accent),.12); border-radius: 50%; box-shadow: 0 0 0 20px rgba(var(--empty-accent),.025); pointer-events: none; }
.advanced-empty--cyan { --empty-accent: 82,216,223; }
.advanced-empty--gold { --empty-accent: 242,189,106; }
.advanced-empty--emerald { --empty-accent: 95,219,158; }
.advanced-empty--coral { --empty-accent: 255,124,132; }
.advanced-empty__icon { width: 54px; aspect-ratio: 1; display: grid; place-items: center; border: 1px solid rgba(var(--empty-accent),.26); border-radius: 17px; color: rgb(var(--empty-accent)); background: rgba(var(--empty-accent),.08); }
.advanced-empty h3 { margin: 0 0 5px; color: var(--text); font-size: .9rem; }
.advanced-empty p { margin: 0; font-size: .68rem; line-height: 1.55; }
.advanced-empty ol { grid-column: 1 / -1; width: min(100%,498px); margin: 3px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; list-style: none; counter-reset: empty-step; }
.advanced-empty li { min-width: 0; padding: 8px; display: grid; grid-template-columns: 19px minmax(0,1fr); align-items: center; gap: 6px; border-radius: 10px; color: var(--text-soft); background: rgba(255,255,255,.025); font-size: .55rem; line-height: 1.35; counter-increment: empty-step; }
.advanced-empty li::before { content: counter(empty-step); width: 19px; aspect-ratio: 1; display: grid; place-items: center; border-radius: 6px; color: rgb(var(--empty-accent)); background: rgba(var(--empty-accent),.09); font-size: .5rem; font-weight: 750; }
@media (max-width:599px) {
  .advanced-empty { min-height: 175px; padding: 20px 16px; grid-template-columns: 42px minmax(0,1fr); gap: 11px; }
  .advanced-empty__icon { width: 42px; border-radius: 13px; }
  .advanced-empty ol { grid-template-columns: 1fr; }
}
.advanced-form, .inline-form { padding: 18px; display: grid; gap: 14px; }
.advanced-form form, .advanced-dialog-form, .advanced-form label, .inline-form label { display: grid; gap: 7px; }
.advanced-form h2 { margin: 0; font-size: 1.05rem; }
.advanced-dialog-form [data-advanced-form-error] {
  margin: 2px 0 0;
  padding: 10px 12px;
  border: 1px solid rgba(255,124,136,.26);
  border-radius: 12px;
  color: #ffd9dd;
  background: rgba(255,91,110,.09);
  font-size: .72rem;
  line-height: 1.45;
}
.advanced-dialog-form [data-advanced-form-error][hidden] { display: none; }
.advanced-dialog-form.has-error .field:invalid,
.advanced-dialog-form.has-error .field[aria-invalid="true"] {
  border-color: rgba(255,124,136,.62);
  box-shadow: 0 0 0 3px rgba(255,91,110,.08);
}
.advanced-split { display: grid; gap: 14px; }
.metric-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.metric-card { min-height: 94px; padding: 15px 11px; border: 1px solid var(--line); border-radius: 20px; background: color-mix(in srgb, var(--surface) 88%, transparent); display: grid; align-content: center; text-align: center; gap: 4px; }
.metric-card strong { color: var(--text); font-size: clamp(1.25rem, 5vw, 1.8rem); }
.metric-card span { color: var(--text-soft); font-size: .72rem; }
.metric-card.is-alert strong { color: #ff8c8c; }
.metric-row--compact > div { display: grid; text-align: center; gap: 2px; }
.metric-row--compact strong { font-size: 1.1rem; }
.metric-row--compact span { font-size: .7rem; color: var(--text-soft); }
.review-card { padding: 22px; display: grid; gap: 16px; text-align: center; }
.review-card h2 { margin: 0; font-size: clamp(1.25rem, 5vw, 1.8rem); }
.review-card details { padding: 12px; border-radius: 16px; background: var(--surface-soft); }
.review-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.checklist-card { padding: 18px; display: grid; gap: 8px; }
.progress-heading span { display: block; margin-top: 3px; color: var(--text-soft); font-size: .78rem; }
.progress-track { height: 7px; margin: 8px 0 12px; overflow: hidden; border-radius: 999px; background: var(--line); }
.progress-track span, .progress-track i, .risk-meter span, .risk-meter i { display: block; width: var(--progress-width, 0%); height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--gold), var(--violet)); transition: width .35s ease; }
.progress-width-0 { --progress-width: 0%; --milestone: 0; }
.progress-width-5 { --progress-width: 5%; --milestone: 5; }
.progress-width-10 { --progress-width: 10%; --milestone: 10; }
.progress-width-15 { --progress-width: 15%; --milestone: 15; }
.progress-width-20 { --progress-width: 20%; --milestone: 20; }
.progress-width-25 { --progress-width: 25%; --milestone: 25; }
.progress-width-30 { --progress-width: 30%; --milestone: 30; }
.progress-width-35 { --progress-width: 35%; --milestone: 35; }
.progress-width-40 { --progress-width: 40%; --milestone: 40; }
.progress-width-45 { --progress-width: 45%; --milestone: 45; }
.progress-width-50 { --progress-width: 50%; --milestone: 50; }
.progress-width-55 { --progress-width: 55%; --milestone: 55; }
.progress-width-60 { --progress-width: 60%; --milestone: 60; }
.progress-width-65 { --progress-width: 65%; --milestone: 65; }
.progress-width-70 { --progress-width: 70%; --milestone: 70; }
.progress-width-75 { --progress-width: 75%; --milestone: 75; }
.progress-width-80 { --progress-width: 80%; --milestone: 80; }
.progress-width-85 { --progress-width: 85%; --milestone: 85; }
.progress-width-90 { --progress-width: 90%; --milestone: 90; }
.progress-width-95 { --progress-width: 95%; --milestone: 95; }
.progress-width-100 { --progress-width: 100%; --milestone: 100; }
.advanced-check { display: flex; align-items: center; gap: 12px; min-height: 48px; border-top: 1px solid var(--line); }
.advanced-check input { width: 20px; height: 20px; accent-color: var(--gold); }
.advanced-timeline { display: grid; gap: 10px; }
.timeline-item { padding: 15px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 13px; }
.timeline-item time { color: var(--gold); font-size: .78rem; }
.risk-card { padding: 18px; display: grid; gap: 10px; }
.risk-card h2, .risk-card p { margin: 0; }
.risk-card p { color: var(--text-soft); }
.risk-card--critico { border-color: color-mix(in srgb, #ff5e76 55%, transparent); }
.risk-card--alto { border-color: color-mix(in srgb, #ffaf65 45%, transparent); }
.risk-meter { height: 6px; overflow: hidden; border-radius: 999px; background: var(--line); }
.method-card { padding: 24px; display: grid; gap: 15px; text-align: center; }
.method-card h2, .method-card p { margin: 0; }
.method-card p { color: var(--text-soft); }
.method-card__icon { width: 86px; aspect-ratio: 1; margin: 0 auto; border-radius: 50%; display: grid; place-items: center; color: var(--gold); font-weight: 700; border: 1px solid color-mix(in srgb, var(--gold) 50%, transparent); background: radial-gradient(circle, color-mix(in srgb, var(--violet) 28%, transparent), transparent 70%); }
.report-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.report-metric { min-height: 112px; padding: 16px; display: grid; align-content: space-between; gap: 12px; }
.report-metric span { color: var(--text-soft); font-size: .76rem; }
.report-metric strong { font-size: 1rem; }
.report-action { padding: 22px; display: grid; gap: 12px; }
.report-action h2 { margin: 0; font-size: 1.15rem; font-weight: 500; }
.milestone-workspace { display: grid; gap: 12px; }
.milestone-card { padding: 22px; display: grid; gap: 18px; text-align: center; border-color: rgba(240,195,94,.2); background: radial-gradient(circle at 0 0,rgba(240,195,94,.1),transparent 34%),var(--surface); }
.milestone-card h2, .milestone-card p { margin: 0; }
.milestone-card h2 { margin-top: 9px; }
.milestone-card p { margin-top: 7px; color: var(--text-soft); }
.milestone-card small { display: block; margin-top: 10px; color: var(--gold); font-size: .62rem; }
.milestone-path { margin: 0; padding: 10px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.02); list-style: none; }
.milestone-path li { min-width: 0; padding: 9px; display: grid; grid-template-columns: 30px minmax(0,1fr); align-items: center; gap: 7px; border: 1px solid transparent; border-radius: 12px; opacity: .52; }
.milestone-path li > span { width: 29px; height: 29px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--text-muted); font-size: .58rem; }
.milestone-path strong, .milestone-path small { display: block; }
.milestone-path strong { font-size: .68rem; }
.milestone-path small { margin-top: 2px; color: var(--text-muted); font-size: .52rem; }
.milestone-path li.is-complete { border-color: rgba(98,217,154,.18); background: rgba(98,217,154,.045); opacity: 1; }
.milestone-path li.is-complete > span { color: var(--emerald); border-color: rgba(98,217,154,.34); background: rgba(98,217,154,.08); }
.milestone-path li.is-next { border-color: rgba(240,195,94,.24); background: rgba(240,195,94,.055); opacity: 1; }
.milestone-path li.is-next > span { color: var(--gold); border-color: rgba(240,195,94,.36); }
.milestone-form h2 { margin: 8px 0 0; font-size: .95rem; }
.milestone-form > div:first-child { margin-bottom: 4px; }
.milestone-ring { width: 150px; aspect-ratio: 1; margin: 0 auto; border-radius: 50%; display: grid; place-items: center; align-content: center; background: radial-gradient(circle at center, var(--surface) 59%, transparent 61%), conic-gradient(var(--gold) calc(var(--milestone) * 1%), var(--line) 0); }
.milestone-ring strong { font-size: 1.8rem; }
.milestone-ring span { font-size: .72rem; color: var(--text-soft); }
.timetable-grid { display: grid; gap: 10px; }
.timetable-day { padding: 15px; display: grid; gap: 10px; }
.timetable-day > p { margin: 0; color: var(--text-soft); font-size: .8rem; }
.lesson { position: relative; padding: 11px 36px 11px 12px; border-radius: 15px; background: var(--surface-soft); display: grid; gap: 2px; }
.lesson time, .lesson span { color: var(--text-soft); font-size: .72rem; }
.lesson button { position: absolute; top: 8px; right: 9px; border: 0; background: transparent; color: var(--text-soft); font-size: 1.15rem; }
.material-card { grid-template-columns: 1fr; }
.locked-feature { min-height: 360px; padding: 30px; display: grid; place-items: center; align-content: center; gap: 13px; text-align: center; }
.locked-feature h2, .locked-feature p { margin: 0; }
.locked-feature p { max-width: 520px; color: var(--text-soft); }
.locked-feature--premium {
  min-height: 440px;
  overflow: hidden;
  position: relative;
  border: 1px solid rgba(157,98,255,.26);
  border-radius: 28px;
  background:
    radial-gradient(circle at 50% 8%,rgba(157,98,255,.16),transparent 31%),
    radial-gradient(circle at 95% 95%,rgba(82,216,223,.07),transparent 28%),
    rgba(255,255,255,.028);
  box-shadow: inset 0 1px rgba(255,255,255,.035),0 24px 60px rgba(0,0,0,.13);
}
.locked-feature__emblem {
  width: 76px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border: 1px solid rgba(157,98,255,.38);
  border-radius: 24px;
  color: #c7adff;
  background: linear-gradient(145deg,rgba(157,98,255,.2),rgba(82,216,223,.06));
  box-shadow: 0 0 0 8px rgba(157,98,255,.035),0 18px 42px rgba(31,12,76,.25);
}
.locked-feature--premium h2 { font-size: clamp(1.35rem,3vw,2rem); }
.locked-feature--premium > p { font-size: .76rem; line-height: 1.6; }
.locked-feature__proof { width: min(100%,720px); display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.locked-feature__proof span { min-height: 64px; padding: 10px; display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 8px; border: 1px solid rgba(255,255,255,.075); border-radius: 15px; color: var(--cyan); background: rgba(4,9,17,.42); text-align: left; }
.locked-feature__proof strong { color: #cfd5df; font-size: .62rem; font-weight: 600; line-height: 1.4; }
.locked-feature__actions { display: flex; justify-content: center; gap: 9px; flex-wrap: wrap; }
@media (max-width:699px) {
  .locked-feature--premium { min-height: 390px; padding: 23px 15px; border-radius: 21px; }
  .locked-feature__emblem { width: 62px; border-radius: 20px; }
  .locked-feature__proof { grid-template-columns: 1fr; gap: 6px; }
  .locked-feature__proof span { min-height: 48px; }
  .locked-feature__actions { width: 100%; }
  .locked-feature__actions .button { flex: 1; }
}

/* Teacher questions: a probability board made of recognizable study notes. */
.question-board-summary { padding: clamp(16px,3vw,24px); display: grid; gap: 15px; border: 1px solid rgba(157,98,255,.26); border-radius: 22px; background: radial-gradient(circle at 12% 0, rgba(157,98,255,.16), transparent 38%), rgba(255,255,255,.035); }
.question-board-summary h2, .question-board-summary p { margin: 0; }
.question-board-summary h2 { margin-top: 9px; font-size: 1.18rem; }
.question-board-summary p { margin-top: 4px; color: var(--text-soft); font-size: .74rem; }
.question-board-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.question-board-metrics span { padding: 9px 5px; display: grid; place-items: center; gap: 1px; border: 1px solid var(--line); border-radius: 12px; color: var(--text-muted); background: rgba(255,255,255,.025); font-size: .55rem; text-align: center; text-transform: uppercase; }
.question-board-metrics strong { color: var(--text); font-size: 1rem; }
.question-subject { display: grid; gap: 10px; }
.question-subject > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.question-subject > header h2 { margin: 0; font-size: .98rem; }
.question-subject > header span { color: var(--text-muted); font-size: .65rem; }
.question-lanes { display: grid; gap: 9px; }
.question-lane { min-width: 0; padding: 9px; border: 1px solid var(--line); border-radius: 17px; background: rgba(255,255,255,.018); }
.question-lane--alta { border-color: rgba(255,117,129,.18); background: rgba(255,117,129,.025); }
.question-lane--media { border-color: rgba(157,98,255,.2); background: rgba(157,98,255,.028); }
.question-lane--bassa { border-color: rgba(82,216,223,.17); background: rgba(82,216,223,.022); }
.question-lane__heading { margin: 1px 2px 9px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.question-lane__heading strong { font-size: .68rem; text-transform: uppercase; letter-spacing: .06em; }
.question-lane--alta .question-lane__heading strong { color: #ff9ca5; }
.question-lane--media .question-lane__heading strong { color: #c8a9ff; }
.question-lane--bassa .question-lane__heading strong { color: var(--cyan); }
.question-lane__heading span { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 8px; color: var(--text-soft); background: rgba(255,255,255,.055); font-size: .62rem; }
.question-lane__cards { display: grid; gap: 7px; }
.question-lane__cards > p { margin: 0; padding: 18px 8px; color: var(--text-muted); font-size: .66rem; text-align: center; }
.question-note { min-width: 0; padding: 13px 12px 11px; position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,.09); border-radius: 14px; background: linear-gradient(145deg, rgba(255,255,255,.065), rgba(255,255,255,.025)); box-shadow: 0 9px 22px rgba(0,0,0,.1); }
.question-note::after { content: ""; width: 70px; height: 70px; position: absolute; right: -34px; bottom: -42px; border-radius: 50%; background: rgba(157,98,255,.09); }
.question-note--alta::after { background: rgba(255,117,129,.1); }
.question-note--bassa::after { background: rgba(82,216,223,.1); }
.question-note.is-ready { border-color: rgba(98,217,154,.28); }
.question-note__pin { width: 7px; height: 7px; position: absolute; top: 6px; left: 50%; border-radius: 50%; background: rgba(255,255,255,.34); box-shadow: 0 2px 5px rgba(0,0,0,.3); }
.question-note__status { display: flex; align-items: center; justify-content: space-between; gap: 7px; }
.question-note__status span { color: var(--text-muted); font-size: .56rem; font-weight: 700; text-transform: uppercase; }
.question-note.is-ready .question-note__status span { color: var(--emerald); }
.question-note__status small { overflow: hidden; color: var(--text-muted); font-size: .55rem; text-overflow: ellipsis; white-space: nowrap; }
.question-note h3 { margin: 10px 0 0; font-size: .78rem; font-weight: 600; line-height: 1.42; }
.question-note p { display: -webkit-box; margin: 7px 0 0; overflow: hidden; color: var(--text-soft); font-size: .64rem; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.question-note__actions { margin-top: 11px; padding-top: 8px; position: relative; z-index: 1; display: flex; gap: 7px; border-top: 1px solid rgba(255,255,255,.07); }
.question-note__actions button { padding: 0; border: 0; color: var(--text-muted); background: transparent; cursor: pointer; font-size: .58rem; }
.question-note__actions button:first-child { color: var(--cyan); font-weight: 700; }
.question-board-empty { padding: 18px; display: grid; justify-items: center; }

/* Checklists: a visible runway with one next checkpoint. */
.runway-layout { display: grid; gap: 12px; align-items: start; }
.runway-status, .runway-logistics { padding: clamp(17px,3vw,24px); }
.runway-status { display: grid; place-items: center; align-content: start; gap: 10px; text-align: center; border-color: rgba(82,216,223,.23); background: radial-gradient(circle at 50% 20%, rgba(82,216,223,.11), transparent 48%), var(--surface); }
.runway-score { width: 118px; aspect-ratio: 1; margin: 5px 0; display: grid; place-items: center; align-content: center; border-radius: 50%; background: radial-gradient(circle at center, var(--surface) 59%, transparent 61%), conic-gradient(var(--cyan) var(--progress-width), rgba(255,255,255,.07) 0); box-shadow: 0 0 28px rgba(82,216,223,.08); }
.runway-score strong, .runway-score span { display: block; }
.runway-score strong { font-size: 1.55rem; }
.runway-score span { color: var(--text-muted); font-size: .59rem; text-transform: uppercase; }
.runway-status h2, .runway-status p { margin: 0; }
.runway-status h2 { font-size: 1.05rem; }
.runway-status p { max-width: 300px; color: var(--text-soft); font-size: .7rem; line-height: 1.5; }
.runway-steps { margin: 0; padding: 10px 12px; display: grid; list-style: none; counter-reset: runway; }
.runway-step { position: relative; }
.runway-step:not(:last-child)::after { content: ""; width: 2px; position: absolute; z-index: 0; left: 19px; top: 43px; bottom: -7px; background: var(--line); }
.runway-step.is-complete:not(:last-child)::after { background: rgba(98,217,154,.35); }
.runway-step label { min-height: 58px; padding: 8px 7px; position: relative; z-index: 1; display: grid; grid-template-columns: 36px minmax(0,1fr); align-items: center; gap: 10px; border: 1px solid transparent; border-radius: 13px; cursor: pointer; }
.runway-step.is-next label { border-color: rgba(82,216,223,.26); background: rgba(82,216,223,.055); }
.runway-step input { position: absolute; opacity: 0; pointer-events: none; }
.runway-step__number { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 50%; color: var(--text-muted); background: #111722; font-size: .68rem; font-weight: 800; }
.runway-step.is-complete .runway-step__number { color: #07120c; border-color: var(--emerald); background: var(--emerald); }
.runway-step.is-next .runway-step__number { color: #071318; border-color: var(--cyan); background: var(--cyan); box-shadow: 0 0 18px rgba(82,216,223,.18); }
.runway-step__copy strong, .runway-step__copy small { display: block; }
.runway-step__copy strong { font-size: .76rem; }
.runway-step__copy small { margin-top: 2px; color: var(--text-muted); font-size: .58rem; }
.runway-logistics { display: grid; gap: 11px; }
.runway-logistics > div > span { color: var(--gold); font-size: 1.55rem; }
.runway-logistics h2, .runway-logistics p { margin: 0; }
.runway-logistics h2 { margin-top: 6px; font-size: .98rem; }
.runway-logistics p { margin-top: 4px; color: var(--text-soft); font-size: .69rem; line-height: 1.45; }
.runway-logistics > label { display: grid; gap: 5px; color: var(--text-soft); font-size: .65rem; font-weight: 600; }
.runway-logistics--guide { border-color: rgba(239,202,109,.22); background: radial-gradient(circle at 0 0, rgba(239,202,109,.1), transparent 48%), var(--surface); }

/* Study plan generator: two explicit paths in a short guided flow. */
.plan-builder { display: grid; gap: 13px; }
.plan-builder__intro { padding: clamp(18px,3vw,28px); border-color: rgba(82,216,223,.23); background: radial-gradient(circle at 100% 0, rgba(82,216,223,.12), transparent 35%), var(--surface); }
.plan-builder__intro h2, .plan-builder__intro p { margin: 0; }
.plan-builder__intro h2 { margin-top: 9px; font-size: 1.2rem; }
.plan-builder__intro p { margin-top: 5px; color: var(--text-soft); font-size: .75rem; }
.plan-builder__intro ol { margin: 17px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; list-style: none; }
.plan-builder__intro li { min-width: 0; padding: 8px; display: flex; align-items: center; gap: 7px; border: 1px solid var(--line); border-radius: 11px; color: var(--text-muted); background: rgba(255,255,255,.025); font-size: .59rem; }
.plan-builder__intro li b { width: 22px; height: 22px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 7px; color: #061115; background: var(--cyan); }
.plan-builder__methods { display: grid; gap: 12px; }
.plan-method { position: relative; overflow: hidden; }
.plan-method::after { content: ""; width: 160px; height: 160px; position: absolute; right: -90px; top: -90px; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; pointer-events: none; }
.plan-method--quick { border-color: rgba(239,202,109,.23); }
.plan-method--import { border-color: rgba(157,98,255,.25); }
.plan-method__icon { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgba(239,202,109,.28); border-radius: 15px; color: var(--gold); background: rgba(239,202,109,.07); font-size: 1.3rem; }
.plan-method--import .plan-method__icon { color: #c8abff; border-color: rgba(157,98,255,.32); background: rgba(157,98,255,.08); }
.plan-method small { color: var(--text-muted); font-size: .57rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.plan-method h2 { margin: 4px 0; }
.plan-method p { margin: 0; color: var(--text-soft); font-size: .7rem; }
.plan-method textarea { min-height: 132px; }
.plan-import-preview { max-height: min(50vh,430px); overflow: auto; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.025); }
.plan-import-preview header { padding: 12px 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); }
.plan-import-preview header strong, .plan-import-preview header small { display: block; }
.plan-import-preview header strong { font-size: .77rem; }
.plan-import-preview header small { margin-top: 2px; color: var(--text-muted); font-size: .6rem; }
.plan-import-preview header > span { color: var(--cyan); font-size: .62rem; font-weight: 750; }
.plan-import-preview ol { margin: 0; padding: 7px; display: grid; gap: 5px; list-style: none; counter-reset: plan-preview; }
.plan-import-preview li { min-height: 45px; padding: 8px 10px; display: grid; grid-template-columns: 24px minmax(0,1fr) auto; align-items: center; gap: 9px; border-radius: 10px; background: rgba(255,255,255,.025); counter-increment: plan-preview; }
.plan-import-preview li::before { content: counter(plan-preview); width: 22px; height: 22px; display: grid; place-items: center; border-radius: 7px; color: #d8cbff; background: rgba(157,98,255,.13); font-size: .56rem; font-weight: 800; }
.plan-import-preview li span, .plan-import-preview li b { display: block; }
.plan-import-preview li span { overflow: hidden; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.plan-import-preview li b { color: var(--text-muted); font-size: .58rem; }

/* Grade goals: a simulator and balance, not another metric grid. */
.grade-simulator { display: grid; gap: 12px; align-items: start; }
.grade-balance { padding: clamp(20px,4vw,34px); display: grid; justify-items: center; gap: 17px; text-align: center; border-color: rgba(157,98,255,.26); background: radial-gradient(circle at 50% 15%, rgba(157,98,255,.17), transparent 42%), var(--surface); }
.grade-balance__dial { width: 160px; aspect-ratio: 1; display: grid; place-items: center; align-content: center; border-radius: 50%; background: radial-gradient(circle at center, #111724 58%, transparent 60%), conic-gradient(var(--violet-bright) var(--progress-width), rgba(255,255,255,.075) 0); box-shadow: 0 0 36px rgba(157,98,255,.12); }
.grade-balance__dial span, .grade-balance__dial strong, .grade-balance__dial small { display: block; }
.grade-balance__dial span, .grade-balance__dial small { color: var(--text-muted); font-size: .6rem; text-transform: uppercase; }
.grade-balance__dial strong { margin: 3px 0; font-size: 1.65rem; }
.grade-balance__comparison { width: 100%; display: grid; grid-template-columns: 1fr 40px 1fr; align-items: center; gap: 8px; }
.grade-balance__comparison > div { padding: 10px 5px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.025); }
.grade-balance__comparison span, .grade-balance__comparison strong { display: block; }
.grade-balance__comparison span { color: var(--text-muted); font-size: .57rem; text-transform: uppercase; }
.grade-balance__comparison strong { margin-top: 3px; font-size: 1rem; }
.grade-balance__comparison strong.is-alert { color: #ff8f99; }
.grade-balance__comparison i { height: 1px; position: relative; background: linear-gradient(90deg,var(--cyan),var(--violet-bright)); }
.grade-balance__comparison i::after { content: "›"; position: absolute; right: -2px; top: -9px; color: var(--violet-bright); }
.grade-balance > p { max-width: 440px; margin: 0; color: var(--text-soft); font-size: .7rem; line-height: 1.5; }
.grade-scenario-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.grade-scenario-metrics article { min-width: 0; padding: 12px 6px; display: grid; justify-items: center; gap: 3px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.03); text-align: center; }
.grade-scenario-metrics strong { font-size: 1.05rem; }
.grade-scenario-metrics span { color: var(--text-muted); font-size: .55rem; text-transform: uppercase; }
.grade-controls { align-self: stretch; }

/* Smart Risk: one dominant radar plus an ordered action queue. */
.risk-command { display: grid; gap: 12px; align-items: start; }
.risk-focus, .risk-queue { padding: clamp(17px,3vw,24px); }
.risk-focus { display: grid; justify-items: center; gap: 10px; text-align: center; border-color: rgba(255,175,101,.3); background: radial-gradient(circle at 50% 25%, rgba(255,175,101,.14), transparent 43%), var(--surface); }
.risk-focus--critico { border-color: rgba(255,94,118,.4); background: radial-gradient(circle at 50% 25%, rgba(255,94,118,.15), transparent 43%), var(--surface); }
.risk-focus__radar { width: 150px; aspect-ratio: 1; margin: 5px 0; position: relative; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.09); border-radius: 50%; background: repeating-radial-gradient(circle, transparent 0 22px, rgba(255,255,255,.055) 23px 24px), conic-gradient(#ffaf65 var(--progress-width), rgba(255,255,255,.035) 0); }
.risk-focus--critico .risk-focus__radar { background: repeating-radial-gradient(circle, transparent 0 22px, rgba(255,255,255,.055) 23px 24px), conic-gradient(#ff5e76 var(--progress-width), rgba(255,255,255,.035) 0); }
.risk-focus__radar::after { content: ""; width: 62%; height: 1px; position: absolute; left: 50%; top: 50%; transform: rotate(calc(var(--milestone) * 1.8deg - 90deg)); transform-origin: left; background: linear-gradient(90deg,rgba(255,255,255,.8),transparent); }
.risk-focus__radar > span { width: 82px; aspect-ratio: 1; z-index: 1; display: grid; place-items: center; align-content: center; border-radius: 50%; background: #111722; box-shadow: 0 0 18px rgba(0,0,0,.22); }
.risk-focus__radar strong, .risk-focus__radar small { display: block; }
.risk-focus__radar strong { font-size: 1.55rem; }
.risk-focus__radar small { color: var(--text-muted); font-size: .57rem; text-transform: uppercase; }
.risk-focus h2, .risk-focus p { margin: 0; }
.risk-focus h2 { font-size: 1.15rem; }
.risk-focus p { max-width: 330px; color: var(--text-soft); font-size: .71rem; line-height: 1.5; }
.risk-queue > header { margin-bottom: 10px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.risk-queue h2 { margin: 7px 0 0; font-size: 1.02rem; }
.risk-queue > header > strong { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(157,98,255,.22); border-radius: 12px; color: #c9acff; background: rgba(157,98,255,.06); }
.risk-queue ol { margin: 0; padding: 0; display: grid; list-style: none; }
.risk-queue-item { min-height: 70px; padding: 10px 4px; display: grid; grid-template-columns: 28px minmax(0,1fr) 38px; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); }
.risk-queue-item:last-child { border-bottom: 0; }
.risk-queue-item > span { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 9px; color: var(--text-soft); background: rgba(255,255,255,.055); font-size: .62rem; }
.risk-queue-item > div > strong, .risk-queue-item > div > small { display: block; }
.risk-queue-item > div > strong { font-size: .75rem; }
.risk-queue-item > div > small { margin-top: 3px; overflow: hidden; color: var(--text-muted); font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }
.risk-queue-item .risk-meter { margin-top: 7px; }
.risk-queue-item > b { color: #ffaf65; font-size: .8rem; text-align: center; }
.risk-queue-item--critico > b { color: #ff7d8d; }
.risk-radar-empty { padding: 22px; display: grid; justify-items: center; }

/* Full environments share navigation, while every internal tool keeps its own metaphor. */
.feature-group-nav { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 6px; scrollbar-width: none; }
.feature-group-nav::-webkit-scrollbar { display: none; }
.feature-group-card { --group-tone: var(--violet-bright); min-width: 166px; min-height: 72px; padding: 10px 12px; display: grid; grid-template-columns: 38px minmax(0,1fr); align-items: center; gap: 9px; border: 1px solid var(--line); border-radius: 16px; color: var(--text-soft); background: rgba(255,255,255,.03); text-decoration: none; }
.feature-group-card--check, .feature-group-card--grades { --group-tone: var(--gold); }
.feature-group-card--organization { --group-tone: var(--cyan); }
.feature-group-card--materials { --group-tone: var(--emerald); }
.feature-group-card--risk { --group-tone: #ff8d82; }
.feature-group-card__icon { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid color-mix(in srgb,var(--group-tone) 32%,var(--line)); border-radius: 12px; color: var(--group-tone); background: color-mix(in srgb,var(--group-tone) 9%,transparent); }
.feature-group-card > span:last-child { min-width: 0; }
.feature-group-card strong { color: var(--text); font-size: .76rem; }
.feature-group-card strong, .feature-group-card small { display: block; }
.feature-group-card small { margin-top: 3px; color: var(--text-muted); font-size: .58rem; }
.feature-group-card.is-active { border-color: color-mix(in srgb,var(--group-tone) 48%,var(--line)); background: linear-gradient(145deg,color-mix(in srgb,var(--group-tone) 13%,transparent),rgba(255,255,255,.025)); box-shadow: inset 3px 0 var(--group-tone); }

.connected-tools { padding: 14px; display: grid; gap: 12px; border: 1px solid rgba(82,216,223,.15); border-radius: 20px; background: radial-gradient(circle at 0 0,rgba(82,216,223,.065),transparent 35%),rgba(255,255,255,.018); }
.connected-tools__intro > span { color: var(--cyan); font-size: .56rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.connected-tools__intro strong, .connected-tools__intro p { display: block; margin: 0; }
.connected-tools__intro strong { margin-top: 5px; font-size: .82rem; }
.connected-tools__intro p { margin-top: 3px; color: var(--text-muted); font-size: .62rem; }
.connected-tools__actions { display: grid; gap: 8px; }
.connected-tool { min-width: 0; min-height: 62px; padding: 9px 10px; display: grid; grid-template-columns: 38px minmax(0,1fr) 18px; align-items: center; gap: 9px; border: 1px solid var(--line); border-radius: 15px; color: var(--text); background: rgba(255,255,255,.025); text-decoration: none; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.connected-tool:hover { border-color: rgba(82,216,223,.28); background: rgba(82,216,223,.05); transform: translateY(-1px); }
.connected-tool__icon { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid rgba(82,216,223,.2); border-radius: 11px; color: var(--cyan); background: rgba(82,216,223,.055); }
.connected-tool strong, .connected-tool small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.connected-tool strong { font-size: .7rem; }
.connected-tool small { margin-top: 3px; color: var(--text-muted); font-size: .56rem; }
.connected-tool__chevron { color: var(--text-muted); }

/* Method 360: a four-stage journey and a usable offline guide. */
.method-journey { display: grid; gap: 12px; }
.method-cover { padding: clamp(20px,4vw,34px); display: grid; justify-items: center; gap: 16px; text-align: center; border-color: rgba(239,202,109,.3); background: radial-gradient(circle at 50% 0, rgba(239,202,109,.16), transparent 40%), radial-gradient(circle at 0 100%, rgba(157,98,255,.12), transparent 36%), var(--surface); }
.method-cover__mark { width: 104px; aspect-ratio: 1; display: grid; place-items: center; border: 1px solid rgba(239,202,109,.48); border-radius: 50%; color: var(--gold-bright); background: repeating-radial-gradient(circle,transparent 0 17px,rgba(239,202,109,.07) 18px 19px),#111722; font-family: Georgia,serif; font-size: 1.6rem; box-shadow: 0 0 34px rgba(239,202,109,.1); }
.method-cover h2, .method-cover p { margin: 0; }
.method-cover h2 { margin-top: 9px; font-size: 1.35rem; }
.method-cover p { max-width: 520px; margin-top: 5px; color: var(--text-soft); font-size: .75rem; line-height: 1.55; }
.method-cover__actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.method-stages { margin: 0; padding: 0; display: grid; gap: 8px; list-style: none; }
.method-stage { min-width: 0; padding: 13px; display: grid; grid-template-columns: 38px minmax(0,1fr) 22px; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.026); }
.method-stage > span { width: 35px; height: 35px; display: grid; place-items: center; border: 1px solid rgba(239,202,109,.23); border-radius: 50%; color: var(--gold); background: rgba(239,202,109,.055); font-size: .65rem; }
.method-stage small, .method-stage strong, .method-stage p { display: block; }
.method-stage small { color: var(--text-muted); font-size: .53rem; text-transform: uppercase; }
.method-stage strong { margin-top: 2px; font-size: .79rem; }
.method-stage p { margin: 3px 0 0; color: var(--text-soft); font-size: .61rem; }
.method-stage i { color: var(--gold); font-style: normal; }
.method-tip { padding: 15px; display: grid; grid-template-columns: 36px minmax(0,1fr); align-items: center; gap: 10px; border-color: rgba(157,98,255,.2); }
.method-tip > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 11px; color: #d4bfff; background: rgba(157,98,255,.08); }
.method-tip strong, .method-tip p { display: block; }
.method-tip strong { font-size: .74rem; }
.method-tip p { margin: 3px 0 0; color: var(--text-soft); font-size: .63rem; }

/* Priority report: a concise briefing followed by five ordered signals. */
.priority-briefing { display: grid; gap: 11px; }
.priority-briefing__hero { padding: clamp(20px,4vw,34px); display: grid; gap: 18px; border-color: rgba(157,98,255,.3); background: radial-gradient(circle at 100% 0, rgba(157,98,255,.18), transparent 42%), var(--surface); }
.priority-briefing__hero h2, .priority-briefing__hero p { margin: 0; }
.priority-briefing__hero h2 { max-width: 720px; margin-top: 10px; font-size: clamp(1.2rem,3.3vw,1.75rem); line-height: 1.3; }
.priority-briefing__hero p { margin-top: 6px; color: var(--text-soft); font-size: .73rem; }
.priority-briefing__hero .button { width: fit-content; }
.priority-signals { display: grid; gap: 7px; }
.priority-signal { min-width: 0; min-height: 70px; padding: 11px; display: grid; grid-template-columns: 31px minmax(0,1fr); align-items: center; gap: 9px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.026); }
.priority-signal > span { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 9px; color: var(--text-muted); background: rgba(255,255,255,.055); font-size: .58rem; }
.priority-signal small, .priority-signal strong { display: block; }
.priority-signal small { color: var(--text-muted); font-size: .56rem; text-transform: uppercase; }
.priority-signal strong { margin-top: 3px; overflow: hidden; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.priority-signal--2 { border-color: rgba(255,175,101,.18); }
.priority-signal--3 { border-color: rgba(255,94,118,.18); }

/* Timetable: a horizontally scrollable weekly board. */
.timetable-toolbar, .material-shelf-header, .error-loop-header, .grade-ledger-summary { padding: 14px 15px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.03); }
.timetable-toolbar > div > strong, .material-shelf-header h2, .error-loop-header h2 { display: block; margin-top: 7px; font-size: .86rem; }
.timetable-toolbar__metrics { margin-left: auto; display: flex; gap: 7px; }
.timetable-toolbar__metrics > span { min-width: 104px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 11px; background: rgba(255,255,255,.02); }
.timetable-toolbar__metrics strong, .timetable-toolbar__metrics small { display: block; margin: 0 !important; }
.timetable-toolbar__metrics strong { color: var(--cyan); font-size: .72rem !important; }
.timetable-toolbar__metrics small { margin-top: 2px !important; color: var(--text-muted); font-size: .5rem; text-transform: uppercase; }
.timetable-scroll { width: 100%; overflow-x: auto; padding-bottom: 7px; scrollbar-width: thin; }
.timetable-board { min-width: 930px; display: grid; grid-template-columns: repeat(7,minmax(120px,1fr)); gap: 7px; }
.timetable-column { min-width: 0; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.02); overflow: hidden; }
.timetable-column > header { padding: 11px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.025); }
.timetable-column > header > span { display: none; }
.timetable-column > header strong, .timetable-column > header small { display: block; }
.timetable-column > header strong { font-size: .72rem; }
.timetable-column > header small { margin-top: 3px; color: var(--text-muted); font-size: .55rem; }
.timetable-column__track { min-height: 280px; padding: 7px; display: grid; align-content: start; gap: 7px; }
.lesson-block { --lesson-color: var(--cyan); min-height: 88px; padding: 10px 26px 10px 10px; position: relative; display: grid; align-content: start; gap: 3px; border: 1px solid color-mix(in srgb,var(--lesson-color) 24%,var(--line)); border-left: 3px solid var(--lesson-color); border-radius: 12px; background: color-mix(in srgb,var(--lesson-color) 6%,rgba(255,255,255,.025)); }
.lesson-block--1 { --lesson-color: var(--violet-bright); }
.lesson-block--2 { --lesson-color: var(--gold); }
.lesson-block--3 { --lesson-color: var(--emerald); }
.lesson-block--4 { --lesson-color: #ff8d82; }
.lesson-block time, .lesson-block strong, .lesson-block span { display: block; }
.lesson-block time { color: var(--lesson-color); font-size: .56rem; font-weight: 700; }
.lesson-block strong { font-size: .69rem; line-height: 1.35; }
.lesson-block span { color: var(--text-muted); font-size: .55rem; line-height: 1.35; }
.lesson-block__actions { position: absolute; top: 5px; right: 5px; display: flex; gap: 1px; }
.lesson-block__actions button { width: 24px; height: 24px; padding: 0; display: grid; place-items: center; border: 0; border-radius: 7px; color: var(--text-muted); background: transparent; cursor: pointer; }
.lesson-block__actions button:hover { color: var(--lesson-color); background: rgba(255,255,255,.07); }
.timetable-column__empty { width: 100%; min-height: 112px; display: grid; place-items: center; align-content: center; gap: 4px; border: 0; border-radius: 11px; color: var(--text-muted); background: transparent; cursor: pointer; }
.timetable-column__empty:hover { color: var(--cyan); background: rgba(82,216,223,.04); }
.timetable-column__empty span { font-size: 1rem; }
.timetable-column__empty small { font-size: .56rem; }

/* Error bank: a visible correction loop from cause to solution. */
.error-loop-header { display: grid; border-color: rgba(157,98,255,.22); background: radial-gradient(circle at 0 0,rgba(157,98,255,.11),transparent 42%),rgba(255,255,255,.025); }
.error-loop-header h2, .error-loop-header p { margin: 0; }
.error-loop-header h2 { margin-top: 8px; font-size: 1.03rem; }
.error-loop-header p { margin-top: 4px; color: var(--text-soft); font-size: .68rem; }
.error-loop-score { width: 76px; height: 54px; display: grid; place-items: center; align-content: center; border: 1px solid rgba(98,217,154,.22); border-radius: 14px; background: rgba(98,217,154,.05); }
.error-loop-score strong, .error-loop-score span { display: block; }
.error-loop-score strong { color: var(--emerald); font-size: 1rem; }
.error-loop-score span { color: var(--text-muted); font-size: .52rem; text-transform: uppercase; }
.error-loop-list { display: grid; gap: 9px; }
.error-loop-card { padding: 14px; display: grid; gap: 12px; border-color: rgba(255,141,130,.18); }
.error-loop-card.is-resolved { border-color: rgba(98,217,154,.22); opacity: .72; }
.error-loop-card > header { display: grid; grid-template-columns: 31px minmax(0,1fr) auto auto; align-items: center; gap: 7px; }
.error-loop-card > header > span { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 9px; color: #ffaaa1; background: rgba(255,141,130,.08); font-size: .62rem; }
.error-loop-card.is-resolved > header > span { color: var(--emerald); background: rgba(98,217,154,.08); }
.error-loop-card > header strong, .error-loop-card > header small { display: block; }
.error-loop-card > header strong { font-size: .75rem; }
.error-loop-card > header small { margin-top: 2px; color: var(--text-muted); font-size: .56rem; }
.error-loop-flow { display: grid; gap: 7px; }
.error-loop-flow section { min-width: 0; padding: 11px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.025); }
.error-loop-flow small { color: var(--text-muted); font-size: .54rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.error-loop-flow p { margin: 5px 0 0; color: var(--text-soft); font-size: .67rem; line-height: 1.45; }
.error-loop-flow i { display: none; color: var(--violet-bright); font-style: normal; text-align: center; }
.error-loop-card > footer { padding-top: 8px; border-top: 1px solid var(--line); text-align: right; }
.error-loop-card > footer button { padding: 0; border: 0; color: var(--text-muted); background: transparent; cursor: pointer; font-size: .57rem; }

/* Grade book: a compact academic ledger. */
.grade-ledger-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.grade-ledger-summary > div { min-width: 0; padding: 6px 8px; border-left: 1px solid var(--line); }
.grade-ledger-summary > div:first-child { border-left: 0; }
.grade-ledger-summary strong, .grade-ledger-summary span, .grade-ledger-summary small { display: block; }
.grade-ledger-summary > div > strong { font-size: 1.05rem; }
.grade-ledger-summary span, .grade-ledger-summary small { color: var(--text-muted); font-size: .55rem; text-transform: uppercase; }
.grade-ledger-average strong { color: var(--gold); font-size: 1.35rem !important; }
.grade-ledger-summary .button { grid-column: 1 / -1; }
.grade-ledger { padding: 0; overflow: hidden; }
.grade-ledger > header { padding: 15px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); }
.grade-ledger > header h2 { margin: 7px 0 0; font-size: .95rem; }
.grade-ledger > header > span { color: var(--text-muted); font-size: .61rem; }
.grade-ledger-table { overflow-x: auto; }
.grade-ledger-row { min-width: 650px; min-height: 57px; padding: 9px 14px; display: grid; grid-template-columns: minmax(180px,1fr) 95px 54px 66px 78px 28px; align-items: center; gap: 9px; border-bottom: 1px solid var(--line); }
.grade-ledger-row:last-child { border-bottom: 0; }
.grade-ledger-row--head { min-height: 38px; color: var(--text-muted); background: rgba(255,255,255,.025); font-size: .54rem; font-weight: 800; text-transform: uppercase; }
.grade-ledger-row strong { font-size: .72rem; }
.grade-ledger-row time, .grade-ledger-row > span { color: var(--text-soft); font-size: .62rem; }
.grade-ledger-row b { color: var(--gold); font-size: .92rem; }
.grade-ledger-row b small { color: var(--text-muted); font-size: .54rem; }
.grade-ledger-status { width: fit-content; padding: 4px 7px; border: 1px solid rgba(98,217,154,.2); border-radius: 999px; color: var(--emerald) !important; background: rgba(98,217,154,.05); }
.grade-ledger-row.is-rejected { opacity: .48; }
.grade-ledger-row.is-rejected .grade-ledger-status { color: #ff9ba4 !important; border-color: rgba(255,101,113,.2); background: rgba(255,101,113,.05); }
.grade-ledger-row > button { border: 0; color: var(--text-muted); background: transparent; cursor: pointer; font-size: 1rem; }
.grade-ledger-actions { display: flex; align-items: center; justify-content: flex-end; gap: 2px; }
.grade-ledger-action { width: 26px; height: 26px; padding: 0; display: grid; place-items: center; border: 0; border-radius: 7px; color: var(--text-muted); background: transparent; cursor: pointer; }
.grade-ledger-action:hover { color: var(--gold); background: rgba(240,195,94,.07); }

/* Materials: a local shelf with visible storage and file spines. */
.material-shelf-header { align-items: end; border-color: rgba(82,216,223,.2); }
.material-shelf-header h2, .material-shelf-header p { margin: 0; }
.material-shelf-header h2 { margin-top: 8px; font-size: .94rem; }
.material-shelf-header p { margin-top: 4px; color: var(--text-soft); font-size: .64rem; }
.material-storage { min-width: 110px; }
.material-storage > strong { display: block; color: var(--cyan); font-size: .83rem; text-align: right; }
.material-storage .progress-track { margin: 5px 0 0; }
.storage-warning { margin: -4px 0 0; padding: 9px 11px; border: 1px solid rgba(255,175,101,.18); border-radius: 12px; color: #ffd09e; background: rgba(255,175,101,.05); font-size: .64rem; }
.material-workspace { display: grid; gap: 12px; align-items: start; }
.material-dropzone { justify-items: stretch; border-style: dashed; border-color: rgba(82,216,223,.26); background: radial-gradient(circle at 50% 0,rgba(82,216,223,.09),transparent 45%),var(--surface); }
.material-dropzone > span { color: var(--cyan); font-size: 1.8rem; text-align: center; }
.material-dropzone h2, .material-dropzone p { margin: 0; text-align: center; }
.material-dropzone p { color: var(--text-soft); font-size: .66rem; line-height: 1.5; }
.material-shelf { display: grid; gap: 7px; }
.material-book { min-width: 0; min-height: 76px; padding: 10px; display: grid; grid-template-columns: 48px minmax(0,1fr) auto; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 14px; background: linear-gradient(90deg,rgba(82,216,223,.05),rgba(255,255,255,.025)); }
.material-book__spine { height: 54px; display: grid; place-items: center; align-content: center; gap: 2px; border-left: 4px solid var(--cyan); border-radius: 7px; color: var(--cyan); background: rgba(82,216,223,.07); }
.material-book__spine small { color: var(--text-muted); font-size: .48rem; }
.material-book > div:nth-child(2) > span, .material-book > div:nth-child(2) > small { display: block; color: var(--text-muted); font-size: .54rem; }
.material-book h3 { margin: 3px 0; overflow: hidden; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.material-book__actions { display: grid; gap: 5px; }
.material-book__actions button { padding: 4px 0; border: 0; color: var(--text-muted); background: transparent; cursor: pointer; font-size: .56rem; text-align: right; }
.material-book__actions button:first-child { color: var(--cyan); font-weight: 700; }
.material-shelf-empty { min-height: 220px; padding: 22px; display: grid; place-items: center; align-content: center; gap: 7px; border: 1px dashed rgba(82,216,223,.25); border-radius: 18px; color: var(--text-muted); background: radial-gradient(circle at 50% 30%,rgba(82,216,223,.07),transparent 55%); text-align: center; }
.material-shelf-empty span { width: 48px; aspect-ratio: 1; display: grid; place-items: center; border-radius: 15px; color: var(--cyan); background: rgba(82,216,223,.09); }
.material-shelf-empty strong { color: var(--text); font-size: .75rem; }
.material-shelf-empty p { max-width: 340px; margin: 0; font-size: .62rem; line-height: 1.5; }
.material-shelf-empty small { color: var(--cyan); font-size: .52rem; }
.material-form-status:not(:empty) { padding: 7px 9px; border-radius: 9px; color: var(--cyan); background: rgba(82,216,223,.06); }
.material-dropzone[aria-busy="true"] { border-color: rgba(82,216,223,.3); }

/* Calendar: a real monthly workspace, not a generic list. */
.calendar-workspace { display: grid; gap: 14px; align-items: start; }
.month-calendar, .calendar-day-panel { min-width: 0; padding: clamp(14px, 2.4vw, 22px); }
.month-calendar { border-color: color-mix(in srgb, var(--violet) 26%, var(--line)); background: radial-gradient(circle at 88% 2%, rgba(157,98,255,.13), transparent 32%), color-mix(in srgb, var(--surface) 96%, transparent); }
.month-calendar__header, .attendance-calendar__header { margin-bottom: 16px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.month-calendar__header h2, .attendance-calendar__header h2, .calendar-day-panel h2, .attendance-config h2 { margin: 8px 0 0; font-size: clamp(1.1rem, 3vw, 1.45rem); font-weight: 600; letter-spacing: -.025em; }
.month-calendar__nav { display: flex; align-items: center; gap: 5px; }
.month-calendar__nav .button { min-width: 35px; padding-inline: 10px; }
.month-calendar__weekdays, .month-calendar__grid { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); }
.month-calendar__weekdays { margin-bottom: 6px; }
.month-calendar__weekdays span { padding: 5px 2px; color: var(--text-muted); font-size: .63rem; font-weight: 700; text-align: center; text-transform: uppercase; }
.month-calendar__grid { gap: 4px; }
.month-day { min-width: 0; min-height: clamp(50px, 8.6vw, 82px); padding: 7px; position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 6px; overflow: hidden; border: 1px solid rgba(255,255,255,.075); border-radius: 12px; color: var(--text-soft); background: rgba(255,255,255,.026); text-decoration: none; transition: transform .18s var(--ease), border-color .18s ease, background .18s ease; }
.month-day:hover { z-index: 1; transform: translateY(-2px); border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.06); }
.month-day.is-outside { opacity: .3; }
.month-day.is-selected { border-color: rgba(157,98,255,.68); color: #fff; background: linear-gradient(145deg, rgba(157,98,255,.19), rgba(82,216,223,.07)); box-shadow: 0 8px 24px rgba(55,24,104,.16); }
.month-day.is-today .month-day__number { width: 23px; height: 23px; margin: -3px 0 0 -3px; display: grid; place-items: center; border-radius: 50%; color: #071119; background: var(--cyan); }
.month-day__number { font-size: .7rem; font-weight: 700; }
.month-day__items { min-height: 8px; display: flex; align-items: center; gap: 3px; }
.month-day__items small { margin-left: 1px; color: var(--text-muted); font-size: .53rem; }
.calendar-dot { width: 6px; height: 6px; flex: 0 0 auto; display: inline-block; border-radius: 50%; background: var(--violet-bright); box-shadow: 0 0 8px color-mix(in srgb, var(--violet) 65%, transparent); }
.calendar-dot--esame { background: #ffbd69; box-shadow: 0 0 8px rgba(255,189,105,.5); }
.calendar-dot--attivita { background: var(--violet-bright); box-shadow: 0 0 8px color-mix(in srgb, var(--violet) 65%, transparent); }
.calendar-dot--personale { background: var(--cyan); box-shadow: 0 0 8px rgba(82,216,223,.5); }
.calendar-dot--studio { background: var(--cyan); box-shadow: 0 0 8px rgba(82,216,223,.5); }
.calendar-dot--lezione { background: var(--emerald); box-shadow: 0 0 8px rgba(98,217,154,.45); }
.calendar-dot--pausa { background: #ff91a4; box-shadow: 0 0 8px rgba(255,145,164,.45); }
.month-calendar__legend, .attendance-legend { margin-top: 12px; display: flex; align-items: center; gap: 13px; flex-wrap: wrap; color: var(--text-muted); font-size: .62rem; }
.month-calendar__legend span, .attendance-legend span { display: inline-flex; align-items: center; gap: 6px; }
.calendar-day-panel { border-color: color-mix(in srgb, var(--cyan) 20%, var(--line)); }
.calendar-day-panel__heading, .attendance-config__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.calendar-day-panel__heading > strong { width: 36px; height: 36px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid rgba(82,216,223,.25); border-radius: 12px; color: var(--cyan); background: rgba(82,216,223,.07); }
.calendar-day-agenda { margin: 16px 0; display: grid; gap: 7px; }
.calendar-day-empty { min-height: 104px; display: grid; place-items: center; align-content: center; gap: 5px; color: var(--text-muted); text-align: center; }
.calendar-day-empty span { color: var(--violet-bright); font-size: 1.3rem; }
.calendar-day-empty p { margin: 0; font-size: .73rem; }
.calendar-agenda-item { padding: 10px; display: grid; grid-template-columns: minmax(60px,auto) minmax(0,1fr) auto; align-items: center; gap: 9px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.03); }
.calendar-agenda-item--planner { border-color: rgba(255,189,105,.2); background: rgba(255,189,105,.045); }
.calendar-agenda-item__type { color: var(--cyan); font-size: .61rem; font-weight: 700; text-transform: uppercase; }
.calendar-agenda-item--planner .calendar-agenda-item__type { color: #ffca80; }
.calendar-agenda-item strong, .calendar-agenda-item small { display: block; }
.calendar-agenda-item strong { overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.calendar-agenda-item small { margin-top: 2px; color: var(--text-muted); font-size: .61rem; line-height: 1.35; }
.calendar-agenda-item__actions { display: flex; align-items: center; gap: 5px; }
.calendar-agenda-item__actions .button { min-height: 32px; padding: 6px 9px; font-size: .58rem; }
.calendar-quick-form { padding-top: 15px; display: grid; gap: 10px; border-top: 1px solid var(--line); }
.calendar-quick-form h3 { margin: 0 0 2px; font-size: .88rem; }
.calendar-quick-form > label, .calendar-quick-form .dialog-form__grid > label { display: grid; gap: 5px; color: var(--text-soft); font-size: .66rem; font-weight: 600; }

/* Attendance: compact subject calendars and one-tap status cycling. */
.attendance-workspace { display: grid; gap: 14px; }
.attendance-subjects { display: flex; gap: 9px; overflow-x: auto; padding: 2px 2px 7px; scrollbar-width: thin; }
.attendance-subject { --subject-color: var(--cyan); min-width: 190px; min-height: 66px; padding: 11px 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid color-mix(in srgb, var(--subject-color) 24%, var(--line)); border-radius: 16px; color: var(--text); background: color-mix(in srgb, var(--subject-color) 5%, var(--surface)); text-decoration: none; transition: transform .18s var(--ease), border-color .18s ease; }
.attendance-subject:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--subject-color) 52%, var(--line)); }
.attendance-subject.is-active { border-color: color-mix(in srgb, var(--subject-color) 72%, #fff); box-shadow: inset 3px 0 var(--subject-color), 0 9px 24px color-mix(in srgb, var(--subject-color) 10%, transparent); }
.attendance-subject--violet { --subject-color: var(--violet-bright); }
.attendance-subject--emerald { --subject-color: var(--emerald); }
.attendance-subject--gold { --subject-color: var(--gold); }
.attendance-subject--coral { --subject-color: #ff8d82; }
.attendance-subject strong, .attendance-subject small { display: block; }
.attendance-subject strong { font-size: .76rem; }
.attendance-subject small { margin-top: 3px; color: var(--text-muted); font-size: .59rem; }
.attendance-subject b { color: var(--subject-color); font-size: 1.05rem; }
.attendance-subject--new { min-width: 146px; justify-content: center; color: var(--text-soft); border-style: dashed; background: rgba(255,255,255,.018); }
.attendance-subject--new span { color: var(--cyan); font-size: 1.2rem; }
.attendance-main { display: grid; gap: 14px; align-items: start; }
.attendance-calendar, .attendance-config, .attendance-welcome { min-width: 0; padding: clamp(14px, 2.4vw, 22px); }
.attendance-calendar { --subject-color: var(--cyan); border-color: color-mix(in srgb, var(--subject-color) 28%, var(--line)); background: radial-gradient(circle at 5% 0, color-mix(in srgb, var(--subject-color) 10%, transparent), transparent 35%), var(--surface); }
.attendance-calendar--violet { --subject-color: var(--violet-bright); }
.attendance-calendar--emerald { --subject-color: var(--emerald); }
.attendance-calendar--gold { --subject-color: var(--gold); }
.attendance-calendar--coral { --subject-color: #ff8d82; }
.attendance-calendar__header p { margin: 5px 0 0; color: var(--text-muted); font-size: .66rem; }
.attendance-score { margin-bottom: 16px; display: grid; grid-template-columns: 1.25fr repeat(3,1fr); gap: 6px; }
.attendance-score > div { min-width: 0; padding: 9px 5px; display: grid; justify-items: center; gap: 2px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.025); text-align: center; }
.attendance-score strong { color: var(--subject-color); font-size: clamp(1.15rem, 4vw, 1.6rem); }
.attendance-score b { color: var(--text); font-size: .88rem; }
.attendance-score span { color: var(--text-muted); font-size: .54rem; text-transform: uppercase; }
.attendance-weekdays, .attendance-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: clamp(3px, .7vw, 6px); }
.attendance-weekdays { margin-bottom: 5px; }
.attendance-weekdays span { color: var(--text-muted); font-size: .56rem; font-weight: 700; text-align: center; }
.attendance-day { width: 100%; aspect-ratio: 1; min-width: 0; padding: 0; position: relative; display: grid; place-items: center; border: 1px solid var(--line); border-radius: clamp(7px, 1.2vw, 11px); color: var(--text-soft); background: rgba(255,255,255,.025); cursor: pointer; transition: transform .15s var(--ease), background .18s ease, border-color .18s ease; }
.attendance-day:not(:disabled):hover { z-index: 1; transform: scale(1.07); border-color: rgba(255,255,255,.3); }
.attendance-day span { font-size: clamp(.54rem, 1.5vw, .68rem); font-weight: 650; }
.attendance-day i { width: 5px; height: 5px; position: absolute; right: 4px; bottom: 4px; border-radius: 50%; background: currentColor; opacity: .65; }
.attendance-day.is-present { border-color: rgba(98,217,154,.7); color: #eafff2; background: linear-gradient(145deg, rgba(98,217,154,.72), rgba(36,150,94,.52)); box-shadow: 0 5px 14px rgba(42,174,104,.13); }
.attendance-day.is-absent { border-color: rgba(255,101,113,.72); color: #fff1f2; background: linear-gradient(145deg, rgba(255,101,113,.72), rgba(163,48,64,.52)); box-shadow: 0 5px 14px rgba(207,58,75,.12); }
.attendance-day.is-day-off { border-color: rgba(139,152,174,.42); color: #cad3df; background: repeating-linear-gradient(135deg,rgba(129,143,164,.13) 0 5px,rgba(54,65,82,.15) 5px 10px); }
.attendance-day.is-day-off i { width: 12px; height: 2px; right: 3px; bottom: 5px; border-radius: 2px; background: #9aa8bb; transform: rotate(-35deg); }
.attendance-day.is-today { outline: 2px solid color-mix(in srgb, var(--subject-color) 75%, #fff); outline-offset: 1px; }
.attendance-day.is-outside-session { opacity: .2; cursor: not-allowed; }
.attendance-day.is-placeholder { border-color: transparent; background: transparent; }
.attendance-legend i { width: 9px; height: 9px; display: inline-block; border: 1px solid var(--line); border-radius: 3px; background: rgba(255,255,255,.03); }
.attendance-legend i.is-present { border-color: var(--emerald); background: var(--emerald); }
.attendance-legend i.is-absent { border-color: #ff6571; background: #ff6571; }
.attendance-legend i.is-day-off { border-color: #8998ad; background: repeating-linear-gradient(135deg,#8998ad 0 2px,#394657 2px 4px); }
.attendance-calendar > .field-hint { margin: 12px 0 0; line-height: 1.5; }
.attendance-config form { margin-top: 16px; display: grid; gap: 11px; }
.attendance-config form > label, .attendance-config .dialog-form__grid > label { display: grid; gap: 5px; color: var(--text-soft); font-size: .66rem; font-weight: 600; }
.attendance-config .dialog-form__grid > label, .attendance-config .field { min-width: 0; max-width: 100%; }
.attendance-config input[type="date"] { color-scheme: dark; }
.attendance-color-picker { min-width: 0; margin: 0; padding: 0; border: 0; }
.attendance-color-picker legend { margin-bottom: 7px; color: var(--text-soft); font-size: .66rem; font-weight: 600; }
.attendance-color-picker__options { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 7px; }
.attendance-color-option { --attendance-choice: var(--cyan); min-width: 0; min-height: 44px; padding: 7px 8px; position: relative; display: flex; align-items: center; justify-content: center; gap: 6px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; color: var(--text-soft); background: rgba(255,255,255,.025); cursor: pointer; transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s var(--ease); }
.attendance-color-option:hover { transform: translateY(-1px); border-color: color-mix(in srgb, var(--attendance-choice) 48%, var(--line)); color: var(--text); }
.attendance-color-option input { width: 1px; height: 1px; position: absolute; opacity: 0; pointer-events: none; }
.attendance-color-option > span { width: 11px; height: 11px; flex: 0 0 auto; border-radius: 50%; background: var(--attendance-choice); box-shadow: 0 0 11px color-mix(in srgb, var(--attendance-choice) 55%, transparent); }
.attendance-color-option strong { min-width: 0; overflow: hidden; font-size: .58rem; font-weight: 680; text-overflow: ellipsis; white-space: nowrap; }
.attendance-color-option:has(input:focus-visible) { outline: 2px solid var(--attendance-choice); outline-offset: 2px; }
.attendance-color-option:has(input:checked) { border-color: color-mix(in srgb, var(--attendance-choice) 72%, #fff); color: var(--text); background: color-mix(in srgb, var(--attendance-choice) 14%, var(--surface)); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--attendance-choice) 24%, transparent), 0 7px 18px color-mix(in srgb, var(--attendance-choice) 9%, transparent); }
.attendance-color-option--violet { --attendance-choice: var(--violet-bright); }
.attendance-color-option--emerald { --attendance-choice: var(--emerald); }
.attendance-color-option--gold { --attendance-choice: var(--gold); }
.attendance-color-option--coral { --attendance-choice: #ff8d82; }
@media (max-width:720px) {
  .attendance-config .attendance-config__dates { grid-template-columns: 1fr; gap: 10px; }
  .attendance-color-picker__options { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .attendance-color-option { min-height: 42px; }
}
@media (max-width:390px) {
  .attendance-color-picker__options { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
.attendance-welcome { min-height: 330px; display: grid; place-items: center; align-content: center; gap: 9px; text-align: center; border-style: dashed; background: radial-gradient(circle at center, rgba(82,216,223,.08), transparent 55%); }
.attendance-welcome > span { color: var(--cyan); font-size: 2rem; }
.attendance-welcome h2, .attendance-welcome p { margin: 0; }
.attendance-welcome p { max-width: 380px; color: var(--text-soft); font-size: .76rem; line-height: 1.55; }

/* Flashcards: a tactile deck with a single, focused learning action. */
.flashcard-dashboard { display: grid; grid-template-columns: 1.3fr repeat(3,.8fr); gap: 9px; }
.flashcard-deck-summary, .flashcard-deck-stat, .flashcard-deck-actions { min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.035); }
.flashcard-deck-summary { display: flex; align-items: center; gap: 11px; border-color: rgba(82,216,223,.24); background: linear-gradient(145deg, rgba(82,216,223,.09), rgba(157,98,255,.04)); }
.flashcard-deck-summary > span { color: var(--cyan); font-size: 1.55rem; }
.flashcard-deck-summary strong, .flashcard-deck-summary small, .flashcard-deck-stat strong, .flashcard-deck-stat span { display: block; }
.flashcard-deck-summary strong, .flashcard-deck-stat strong { font-size: 1.1rem; }
.flashcard-deck-summary small, .flashcard-deck-stat span { color: var(--text-muted); font-size: .59rem; text-transform: uppercase; }
.flashcard-deck-stat { display: grid; align-content: center; text-align: center; }
.flashcard-deck-stat--due { border-color: rgba(157,98,255,.28); background: linear-gradient(145deg, rgba(157,98,255,.1), rgba(82,216,223,.035)); }
.flashcard-deck-actions { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.flashcard-library { border: 1px solid var(--line); border-radius: 17px; background: rgba(255,255,255,.025); }
.flashcard-library > summary { padding: 13px 15px; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--text); cursor: pointer; font-size: .7rem; font-weight: 720; list-style: none; }
.flashcard-library > summary::-webkit-details-marker { display: none; }
.flashcard-library > summary::after { content: "+"; color: var(--cyan); font-size: 1rem; font-weight: 400; }
.flashcard-library[open] > summary::after { content: "−"; }
.flashcard-library > summary small { margin-left: auto; color: var(--text-muted); font-size: .6rem; font-weight: 550; }
.flashcard-library__list { padding: 0 10px 10px; display: grid; gap: 7px; }
.flashcard-library__item { padding: 10px 11px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 12px; background: rgba(4,10,20,.28); }
.flashcard-library__item strong, .flashcard-library__item span { display: block; }
.flashcard-library__item small { display: block; margin-top: 4px; color: var(--cyan); font-size: .56rem; }
.flashcard-library__item strong { overflow: hidden; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.flashcard-library__item span { margin-top: 3px; color: var(--text-muted); font-size: .58rem; }
.flashcard-library__item > div:last-child { display: flex; gap: 6px; }
.flashcard-library__item .button { min-height: 34px; padding: 7px 10px; font-size: .6rem; }
.flashcard-empty { min-height: 300px; padding: 28px; display: grid; grid-template-columns: 58px minmax(0,470px); place-content: center; align-items: center; gap: 14px; border-style: dashed; border-color: rgba(82,216,223,.23); background: radial-gradient(circle at 50% 30%, rgba(82,216,223,.08), transparent 48%); }
.flashcard-empty > span { width: 58px; aspect-ratio: 1; display: grid; place-items: center; border-radius: 18px; color: var(--cyan); background: rgba(82,216,223,.09); }
.flashcard-empty > div > small { color: var(--cyan); font-size: .54rem; font-weight: 720; letter-spacing: .08em; text-transform: uppercase; }
.flashcard-empty h2, .flashcard-empty p { margin: 0; }
.flashcard-empty h2 { margin-top: 4px; font-size: 1rem; }
.flashcard-empty p { margin-top: 4px; max-width: 470px; color: var(--text-soft); font-size: .68rem; line-height: 1.5; }
.flashcard-empty ol { grid-column: 1 / -1; margin: 4px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; list-style: none; }
.flashcard-empty li { padding: 9px; display: flex; align-items: center; gap: 7px; border-radius: 11px; color: var(--text-soft); background: rgba(255,255,255,.025); font-size: .57rem; }
.flashcard-empty li b { width: 21px; aspect-ratio: 1; display: grid; place-items: center; border-radius: 7px; color: var(--cyan); background: rgba(82,216,223,.08); }
.flashcard-empty > .button { grid-column: 1 / -1; justify-self: center; }
@media (max-width:599px) {
  .flashcard-empty { min-height: 260px; padding: 20px 16px; grid-template-columns: 45px minmax(0,1fr); }
  .flashcard-empty > span { width: 45px; border-radius: 14px; }
  .flashcard-empty ol { grid-template-columns: 1fr; }
}
.flashcard-session { width: min(100%, 760px); margin: 4px auto 0; display: grid; gap: 12px; }
.flashcard-session__progress { display: grid; grid-template-columns: minmax(0,1fr) minmax(90px,36%); align-items: center; gap: 14px; }
.flashcard-session__progress span, .flashcard-session__progress strong { display: block; }
.flashcard-session__progress span { color: var(--text-muted); font-size: .62rem; text-transform: uppercase; }
.flashcard-session__progress strong { margin-top: 3px; font-size: .82rem; }
.flashcard-progress-track { height: 5px; overflow: hidden; border-radius: 999px; background: var(--line); }
.flashcard-progress-track i { display: block; width: var(--progress-width,0%); height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--cyan), var(--violet-bright)); transition: width .3s ease; }
.flashcard { width: 100%; min-height: clamp(300px, 52vw, 410px); padding: 0; border: 0; border-radius: 28px; color: var(--text); background: transparent; cursor: pointer; perspective: 1300px; animation: flashcard-arrive .42s cubic-bezier(.2,.78,.2,1) both; }
.flashcard__inner { width: 100%; height: 100%; min-height: inherit; position: relative; display: block; transform-style: preserve-3d; transition: transform .58s cubic-bezier(.2,.72,.2,1); }
.flashcard.is-flipped .flashcard__inner { transform: rotateY(180deg); }
.flashcard__face { position: absolute; inset: 0; padding: clamp(25px, 6vw, 58px); display: grid; place-items: center; align-content: center; gap: 18px; overflow: hidden; border: 1px solid rgba(82,216,223,.32); border-radius: 28px; background: radial-gradient(circle at 85% 10%, rgba(82,216,223,.16), transparent 34%), linear-gradient(145deg, #111d29, #0a101a 65%); box-shadow: 0 20px 55px rgba(0,0,0,.25), inset 0 1px rgba(255,255,255,.09); text-align: center; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.flashcard__face::before, .flashcard__face::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; pointer-events: none; }
.flashcard__face::before { width: 260px; height: 130px; right: -90px; top: -56px; transform: rotate(-16deg); }
.flashcard__face::after { width: 190px; height: 90px; left: -74px; bottom: -46px; transform: rotate(13deg); }
.flashcard__back { border-color: rgba(157,98,255,.42); background: radial-gradient(circle at 15% 0, rgba(157,98,255,.23), transparent 40%), linear-gradient(145deg, #21183a, #0b101a 68%); transform: rotateY(180deg); }
.flashcard__face small { color: var(--cyan); font-size: .65rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.flashcard__back small { color: #d4bcff; }
.flashcard__face strong { max-width: 590px; font-size: clamp(1.22rem, 4vw, 2rem); font-weight: 550; line-height: 1.35; letter-spacing: -.025em; }
.flashcard__face em { color: var(--text-muted); font-size: .66rem; font-style: normal; }
.flashcard-navigation, .flashcard-answer-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.flashcard-answer { min-height: 58px; display: grid; grid-template-columns: auto minmax(0,1fr); align-content: center; text-align: left; }
.flashcard-answer span { grid-row: 1 / span 2; margin-right: 8px; align-self: center; font-size: 1rem; }
.flashcard-answer strong, .flashcard-answer small { display: block; }
.flashcard-answer small { margin-top: 2px; opacity: .72; font-size: .56rem; font-weight: 540; }
.flashcard-answer--wrong { color: #ffd6da; border-color: rgba(255,101,113,.32); background: rgba(255,101,113,.07); }
.flashcard-answer--correct { color: #dcffea; border-color: rgba(98,217,154,.35); background: rgba(98,217,154,.075); }
.flashcard-complete { padding: clamp(20px,4vw,34px); display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 20px; border-color: rgba(98,217,154,.27); background: radial-gradient(circle at 0 50%, rgba(98,217,154,.1), transparent 35%), var(--surface); }
.flashcard-score { width: 108px; aspect-ratio: 1; display: grid; place-items: center; align-content: center; border: 1px solid rgba(98,217,154,.42); border-radius: 50%; background: rgba(98,217,154,.06); box-shadow: 0 0 30px rgba(98,217,154,.08); }
.flashcard-score strong, .flashcard-score span { display: block; }
.flashcard-score strong { color: var(--emerald); font-size: 1.65rem; }
.flashcard-score span { max-width: 70px; color: var(--text-muted); font-size: .54rem; text-align: center; text-transform: uppercase; }
.flashcard-complete h2 { margin: 9px 0 4px; font-size: 1.12rem; }
.flashcard-complete p { margin: 0; color: var(--text-soft); font-size: .75rem; }
.flashcard-results { display: grid; gap: 7px; }
.flashcard-result { padding: 11px 12px; display: grid; grid-template-columns: 28px minmax(0,1fr) auto; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.025); }
.flashcard-result > span { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 8px; color: var(--text-soft); background: rgba(255,255,255,.06); font-size: .64rem; }
.flashcard-result strong, .flashcard-result small { display: block; }
.flashcard-result strong { overflow: hidden; font-size: .74rem; text-overflow: ellipsis; white-space: nowrap; }
.flashcard-result small { margin-top: 2px; color: var(--text-muted); font-size: .6rem; }
.flashcard-result b { font-size: .62rem; }
.flashcard-result.is-correct { border-color: rgba(98,217,154,.2); }
.flashcard-result.is-correct b { color: var(--emerald); }
.flashcard-result.is-wrong { border-color: rgba(255,101,113,.2); }
.flashcard-result.is-wrong b { color: #ff919a; }
.flashcard-result.is-pending b { color: var(--text-muted); }

/* Planner attendance overview keeps Premium data visible where planning happens. */
.planner-attendance-panel { margin-top: 14px; }
.planner-attendance-list { padding: 8px; }
.planner-attendance-row { min-height: 64px; padding: 10px; display: grid; grid-template-columns: minmax(0,1fr) minmax(110px,.55fr); align-items: center; gap: 10px; border-bottom: 1px solid var(--line); color: var(--text); text-decoration: none; }
.planner-attendance-row:last-child { border-bottom: 0; }
.planner-attendance-row:hover { background: rgba(255,255,255,.025); }
.planner-attendance-row strong, .planner-attendance-row small { display: block; }
.planner-attendance-row strong { font-size: .79rem; }
.planner-attendance-row small { margin-top: 3px; color: var(--text-muted); font-size: .62rem; }
.planner-attendance-row > div > b { display: block; margin-bottom: 5px; color: var(--cyan); font-size: .86rem; text-align: right; }

@keyframes flashcard-arrive {
  from { opacity: 0; transform: translateY(16px) rotateX(-3deg) scale(.985); }
  to { opacity: 1; transform: translateY(0) rotateX(0) scale(1); }
}

@media (min-width: 720px) {
  .advanced-grid, .advanced-split, .timetable-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .report-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .milestone-workspace { grid-template-columns: minmax(260px,.78fr) minmax(0,1.22fr); align-items: stretch; }
  .milestone-card { grid-row: 1 / span 2; grid-template-columns: 1fr; align-content: center; justify-items: center; text-align: center; }
  .milestone-path, .milestone-form { grid-column: 2; }
  .connected-tools { grid-template-columns: minmax(220px,.62fr) minmax(0,1.38fr); align-items: center; }
  .connected-tools__actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .flashcard-dashboard { grid-template-columns: 1.3fr repeat(3,.7fr); }
  .flashcard-deck-actions { grid-column: 1 / -1; }
  .question-board-summary { grid-template-columns: minmax(0,1fr) minmax(260px,.8fr) auto; align-items: center; }
  .question-lanes { grid-template-columns: repeat(3,minmax(0,1fr)); align-items: start; }
  .plan-builder__methods { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .grade-simulator { grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); }
  .grade-scenario-metrics { align-self: end; }
  .grade-controls { grid-column: 2; }
  .grade-balance { grid-row: 1 / span 2; align-self: stretch; align-content: center; }
  .risk-command { grid-template-columns: minmax(250px,.78fr) minmax(0,1.22fr); }
  .method-cover { grid-template-columns: 104px minmax(0,1fr) auto; justify-items: start; align-items: center; text-align: left; }
  .method-cover__actions { display: grid; justify-content: stretch; }
  .method-stages { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .method-stage { grid-template-columns: 34px minmax(0,1fr); }
  .method-stage > i { display: none; }
  .priority-briefing__hero { grid-template-columns: minmax(0,1fr) auto; align-items: center; }
  .priority-signals { grid-template-columns: repeat(5,minmax(0,1fr)); }
  .error-loop-header { grid-template-columns: minmax(0,1fr) auto auto; align-items: center; }
  .error-loop-flow { grid-template-columns: minmax(0,1fr) 18px minmax(0,1fr) 18px minmax(0,1fr); align-items: center; }
  .error-loop-flow i { display: block; }
  .grade-ledger-summary { grid-template-columns: repeat(3,minmax(0,1fr)) auto; }
  .grade-ledger-summary .button { grid-column: auto; }
  .material-workspace { grid-template-columns: minmax(280px,.72fr) minmax(0,1.28fr); }
  .exam-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (min-width: 1024px) {
  .advanced-view { max-width: 1180px; }
  .advanced-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .timetable-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .advanced-form, .checklist-card, .method-card, .report-action { padding: 24px; }
  .calendar-workspace { grid-template-columns: minmax(0,1.42fr) minmax(300px,.72fr); }
  .attendance-main { grid-template-columns: minmax(0,1.4fr) minmax(290px,.68fr); }
  .runway-layout { grid-template-columns: minmax(220px,.62fr) minmax(360px,1.18fr) minmax(230px,.66fr); }
  .runway-status { position: sticky; top: 94px; }
  .exam-card-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .topic-kanban { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); overflow: visible; }
  .topic-kanban-column { min-width: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .progress-track span, .progress-track i, .risk-meter span, .risk-meter i, .month-day, .attendance-day, .attendance-subject, .flashcard-progress-track i, .flashcard__inner { transition: none; }
  .flashcard { animation: none; }
}

@media (max-width: 520px) {
  .milestone-path { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .connected-tools__intro p { max-width: 280px; }
  .connected-tools__actions { grid-template-columns: 1fr; }
  .timetable-toolbar { align-items: stretch; flex-wrap: wrap; }
  .timetable-toolbar__metrics { width: 100%; order: 3; margin-left: 0; }
  .timetable-toolbar__metrics > span { min-width: 0; flex: 1; }
  .timetable-toolbar > .button { margin-left: auto; }
  .error-loop-card > header { grid-template-columns: 31px minmax(0,1fr); }
  .error-loop-card > header > .button { grid-row: 2; width: 100%; }
  .deadline-stop { grid-template-columns: 30px minmax(0,1fr) 58px; }
  .deadline-stop > time { grid-column: 2; }
  .deadline-stop__body { grid-column: 2 / -1; grid-template-columns: 1fr; }
  .deadline-stop__progress { display: none; }
  .deadline-stop__countdown { grid-column: 3; grid-row: 1 / span 2; }
  .deadline-stop__actions { grid-column: 2 / -1; }
  .daily-agenda-header { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .daily-agenda-header label { grid-column: 1 / -1; }
  .daily-agenda-item { grid-template-columns: 42px 28px minmax(0,1fr); }
  .daily-agenda-item__actions { grid-column: 3; padding-bottom: 9px; }
  .month-calendar, .calendar-day-panel, .attendance-calendar, .attendance-config { padding: 12px; }
  .month-calendar__header, .attendance-calendar__header { align-items: center; }
  .month-calendar__header .chip, .attendance-calendar__header .chip { display: none; }
  .month-calendar__header h2, .attendance-calendar__header h2 { margin-top: 0; font-size: 1rem; }
  .month-calendar__nav .button { min-height: 32px; padding: 6px 8px; }
  .month-calendar__grid { gap: 3px; }
  .month-day { min-height: 46px; padding: 5px; border-radius: 9px; }
  .month-day.is-today .month-day__number { width: 20px; height: 20px; }
  .month-calendar__legend { gap: 8px; }
  .calendar-agenda-item { grid-template-columns: minmax(0,1fr) auto; }
  .calendar-agenda-item__type { grid-column: 1 / -1; }
  .calendar-agenda-item__actions { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .attendance-score { gap: 4px; }
  .attendance-score > div { padding: 7px 2px; border-radius: 9px; }
  .attendance-grid, .attendance-weekdays { gap: 3px; }
  .attendance-day { border-radius: 7px; }
  .attendance-day i { right: 3px; bottom: 3px; }
  .flashcard-dashboard { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .flashcard-deck-summary { grid-column: 1 / -1; }
  .flashcard-deck-summary, .flashcard-deck-stat { padding: 9px; }
  .flashcard-deck-actions { grid-column: 1 / -1; }
  .flashcard-deck-actions { grid-template-columns: 1fr; }
  .flashcard-library__item { grid-template-columns: 1fr; }
  .flashcard-library__item > div:last-child { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .flashcard { min-height: 330px; }
  .flashcard-complete { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .flashcard-result { grid-template-columns: 25px minmax(0,1fr); }
  .flashcard-result > b { grid-column: 2; }
  .planner-attendance-row { grid-template-columns: minmax(0,1fr) minmax(94px,.55fr); }
}
@keyframes orb-awaken {
  0% { transform: scale(1); }
  100% { transform: scale(.93); }
}
@keyframes orb-gather {
  0% { transform: scale(.93); }
  100% { transform: scale(1); }
}
@keyframes orbit-ring-release {
  0% { opacity: .22; transform: scale(.78) rotate(-8deg); }
  100% { opacity: .72; transform: scale(1) rotate(0); }
}
@keyframes orb-halo-release {
  0% { opacity: 0; transform: scale(.52) rotate(-34deg); }
  42% { opacity: .82; }
  100% { opacity: 0; transform: scale(1.42) rotate(18deg); }
}
@keyframes nova-spark-burst {
  0% { opacity: 0; transform: scale(.25) rotate(-42deg); }
  30% { opacity: .95; }
  100% { opacity: 0; transform: scale(1.18) rotate(18deg); }
}
@keyframes nova-star-awaken {
  0% { opacity: .45; transform: scale(.68) rotate(-30deg); }
  100% { opacity: 1; transform: scale(1) rotate(0); }
}
@keyframes nova-star-gather {
  0% { opacity: 1; transform: scale(1) rotate(0); }
  100% { opacity: 1; transform: scale(1) rotate(-360deg); }
}
@keyframes nova-orbit-turn {
  0% { transform: rotate(-18deg); }
  100% { transform: rotate(342deg); }
}
@keyframes planet-fade {
  0% { opacity: 0; transform: translate(-50%,-50%) rotate(var(--planet-angle)) translateX(var(--planet-radius)) rotate(calc(0deg - var(--planet-angle))) scale(.88); }
  100% { opacity: var(--planet-opacity); transform: translate(-50%,-50%) rotate(var(--planet-angle)) translateX(var(--planet-radius)) rotate(calc(0deg - var(--planet-angle))) scale(1); }
}
.orbit-stage[data-motion="lite"][data-state="opening"] .plan-node { animation: planet-fade .18s ease-out both; }
.orbit-stage[data-motion="lite"][data-state="closing"] .plan-node { animation: planet-fade .16s ease-in reverse both; }
.orbit-stage[data-motion="lite"][data-state="opening"]::before, .orbit-stage[data-motion="lite"][data-state="opening"]::after { animation: orbit-ring-release .18s ease-out both; }
.orbit-stage[data-motion="lite"][data-state="closing"]::before, .orbit-stage[data-motion="lite"][data-state="closing"]::after { animation: orbit-ring-release .16s ease-in reverse both; }
.orbit-stage[data-motion="lite"] .nova-mark, .orbit-stage[data-motion="lite"] .nova-mark__star, .orbit-stage[data-motion="lite"] .nova-mark__orbit, .orbit-stage[data-motion="lite"] .orbit-center::before, .orbit-stage[data-motion="lite"] .orbit-center::after { animation: none !important; transition: none !important; }
.orbit-stage[data-motion="reduced"] .plan-node, .orbit-stage[data-motion="reduced"] .nova-mark, .orbit-stage[data-motion="reduced"] .nova-mark__star, .orbit-stage[data-motion="reduced"] .nova-mark__orbit, .orbit-stage[data-motion="reduced"] .orbit-center::before, .orbit-stage[data-motion="reduced"] .orbit-center::after, .orbit-stage[data-motion="reduced"]::before, .orbit-stage[data-motion="reduced"]::after { animation: none !important; transition: none !important; }
.plan-details { max-width: 540px; margin: 24px auto 0; padding: 17px; }
.plan-details__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.plan-details h2 { margin: 0; font-size: 1.08rem; }
.plan-details p { margin: 5px 0 0; color: var(--text-soft); font-size: .78rem; }
.plan-feature-list { margin: 13px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; list-style: none; }
.plan-feature-list li { min-width: 0; min-height: 42px; display: flex; align-items: center; justify-content: space-between; gap: 8px; overflow: hidden; border: 1px solid var(--line); border-radius: 11px; color: var(--text-soft); background: rgba(255,255,255,.035); font-size: .68rem; }
.plan-feature-list li > button { width: 100%; min-height: 42px; padding: 8px 10px; display: flex; align-items: center; justify-content: space-between; gap: 8px; border: 0; border-radius: inherit; color: inherit; background: transparent; text-align: left; }
.plan-feature-list li > button:hover { color: #fff; background: rgba(255,255,255,.055); }
.plan-feature-list li > button span, .plan-feature-list li > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.plan-feature-list li > small { margin-left: auto; padding: 3px 6px; flex: none; border: 1px solid var(--line); border-radius: 999px; color: var(--text-muted); font-size: .56rem; white-space: nowrap; }
.plan-feature-list li > button small { margin-left: auto; flex: none; color: var(--cyan); font-size: .57rem; font-weight: 650; white-space: nowrap; }
.plan-feature-list li[data-feature-state="beta"] > button small { color: #d8c3ff; }
.plan-feature-list li[data-feature-state="coming"], .plan-feature-list li[data-feature-state="locked"] { padding: 8px 10px; }
.plan-feature-list li[data-feature-state="coming"] { border-style: dashed; opacity: .74; }
.plan-feature-list li[data-feature-state="locked"] { filter: grayscale(.8); opacity: .48; }
.plan-details > .field-hint { margin-top: 11px; line-height: 1.45; }
.plan-upgrade-button { width: 100%; margin-top: 13px; }

.notes-layout { display: grid; gap: 12px; }
.notes-plan-status { margin: -4px 0 14px; padding: 12px 14px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid rgba(98,217,154,.18); border-radius: 15px; background: linear-gradient(135deg,rgba(98,217,154,.07),rgba(157,98,255,.035)); }
.notes-plan-status > div { min-width: 0; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.notes-plan-status strong { color: var(--text-soft); font-size: .7rem; font-weight: 650; }
.notes-plan-status > small { max-width: 390px; color: var(--text-muted); font-size: .64rem; line-height: 1.45; text-align: right; }
.notes-tools__actions { margin-top: 8px; display: flex; gap: 8px; align-items: center; }
.folder-strip { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
.folder-strip::-webkit-scrollbar { display: none; }
.folder-card { min-width: 132px; padding: 12px; border: 1px solid var(--line); border-radius: 15px; color: var(--text); background: rgba(255,255,255,.04); cursor: pointer; text-align: left; }
.folder-card[aria-pressed="true"] { border-color: rgba(98,217,154,.36); background: rgba(98,217,154,.075); }
.folder-card strong, .folder-card small { display: block; }
.folder-card strong { margin-top: 8px; font-size: .8rem; }
.folder-card small { margin-top: 2px; color: var(--text-muted); font-size: .65rem; }
.folder-management { padding: 10px 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid rgba(98,217,154,.18); border-radius: 14px; background: rgba(98,217,154,.035); }
.folder-management__copy { min-width: 0; display: flex; align-items: center; gap: 9px; }
.folder-management__copy > span:last-child { min-width: 0; }
.folder-management__copy strong, .folder-management__copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.folder-management__copy strong { font-size: .78rem; }
.folder-management__copy small { color: var(--text-muted); font-size: .66rem; }
.folder-management__actions { display: flex; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.folder-conflict-hint { margin-top: 0; color: #ffd38b; }
.notes-workspace { display: grid; gap: 12px; }
.notes-list { padding: 8px; }
.note-row { width: 100%; padding: 11px 12px; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; border: 0; border-bottom: 1px solid rgba(255,255,255,.06); color: var(--text); background: transparent; text-align: left; cursor: pointer; }
.note-row:last-child { border-bottom: 0; }
.note-row[aria-current="true"] { border-radius: 13px; background: rgba(98,217,154,.075); }
.note-row strong, .note-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.note-row small { margin-top: 3px; color: var(--text-muted); font-size: .68rem; }
.note-row.is-protected { border-color: rgba(157,98,255,.16); background: rgba(157,98,255,.035); }
.note-row.is-protected strong { color: #d9c8ff; }
.note-row.is-plan-frozen { opacity: .58; filter: grayscale(.35); }
.note-row.is-plan-frozen[aria-current="true"] { border: 1px dashed rgba(157,98,255,.28); background: rgba(157,98,255,.055); }
.note-editor { padding: 15px; }
.note-editor__top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.note-editor__top .chip { margin-right: auto; }
.note-title { min-height: 42px; padding: 4px 2px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; color: var(--text); background: transparent; font-size: 1.15rem; font-weight: 600; }
.note-title:focus { box-shadow: none; border-color: rgba(98,217,154,.45); }
.note-content { min-height: 290px; margin-top: 8px; padding: 12px 2px; border: 0; border-radius: 0; color: #dbe0e7; background: transparent; line-height: 1.65; }
.note-content:focus { box-shadow: none; }
.note-protection-gate { min-height: 360px; padding: 30px; display: grid; place-items: center; align-content: center; gap: 12px; text-align: center; }
.note-protection-gate__icon { width: 64px; height: 64px; display: grid; place-items: center; border: 1px solid rgba(157,98,255,.34); border-radius: 50%; color: #d7c4ff; background: rgba(157,98,255,.08); font-size: 1.5rem; }
.note-protection-gate h3 { margin: 2px 0 0; }
.note-protection-gate p { max-width: 380px; margin: 0 0 6px; color: var(--text-soft); font-size: .78rem; line-height: 1.6; }
.notes-plan-frozen { min-height: 390px; padding: clamp(24px,5vw,44px); display: grid; align-content: center; justify-items: start; gap: 12px; border-radius: 18px; background: radial-gradient(circle at 100% 0,rgba(157,98,255,.12),transparent 42%); }
.notes-plan-frozen h3 { margin: 0; font-size: 1.25rem; }
.notes-plan-frozen > p { max-width: 680px; margin: 0; color: var(--text-soft); font-size: .76rem; line-height: 1.6; }
.notes-plan-frozen__preview { width: 100%; max-height: 190px; padding: 15px; overflow: auto; border: 1px solid rgba(255,255,255,.08); border-radius: 14px; color: var(--text-muted); background: rgba(0,0,0,.18); font-size: .72rem; line-height: 1.65; white-space: pre-wrap; }
.notes-plan-frozen__actions { display: flex; gap: 8px; flex-wrap: wrap; }
.notes-plan-chip { border-color: rgba(157,98,255,.25); color: #cbb8ff; }
.notes-section-lock { min-height: min(620px, calc(100dvh - 190px)); padding: clamp(28px, 7vw, 54px); display: grid; place-items: center; align-content: center; gap: 12px; text-align: center; border-color: rgba(157,98,255,.28); background: radial-gradient(circle at 50% 0, rgba(157,98,255,.13), transparent 48%), rgba(255,255,255,.035); }
.notes-section-lock h1 { margin: 4px 0 0; }
.notes-section-lock > p { max-width: 410px; margin: 0 0 5px; color: var(--text-soft); }
.notes-section-lock .app-lock-form { max-width: 360px; }
.editor-toolbar { margin-top: 10px; padding-top: 10px; display: flex; gap: 7px; flex-wrap: wrap; border-top: 1px solid var(--line); }
.tool-button { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 11px; color: var(--text-soft); background: rgba(255,255,255,.035); cursor: pointer; }
.save-status { margin-left: auto; align-self: center; color: #9ce5ba; font-size: .68rem; }

@media (max-width:699px) {
  .notes-plan-status { align-items: flex-start; flex-direction: column; }
  .notes-plan-status > small { text-align: left; }
  .notes-plan-frozen { min-height: 330px; padding: 22px 16px; }
}

.trash-list { max-height: min(52vh, 430px); margin-bottom: 14px; display: grid; gap: 8px; overflow-y: auto; }
.trash-row { padding: 12px; display: grid; gap: 10px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.035); }
.trash-row strong, .trash-row small { display: block; }
.trash-row small { margin-top: 3px; color: var(--text-muted); font-size: .68rem; }
.trash-row__actions, .dialog-actions { display: flex; gap: 8px; flex-wrap: wrap; }

.ai-runtime-strip { margin: -4px 0 14px; padding: 9px 11px; display: flex; gap: 8px; overflow-x: auto; border: 1px solid rgba(157,98,255,.22); border-radius: 13px; color: #d7c7ee; background: rgba(74,34,145,.13); font-size: .67rem; white-space: nowrap; scrollbar-width: none; }
.ai-runtime-strip::-webkit-scrollbar { display: none; }
.ai-runtime-strip span + span::before { content: "·"; margin-right: 8px; opacity: .45; }
.ai-dialog-form { display: grid; gap: 12px; }
.ai-progressive-overlay { position: fixed; inset: 0; z-index: 2400; padding: 24px; display: grid; place-items: center; background: rgba(1,5,14,.78); backdrop-filter: blur(14px); animation: dialog-backdrop-in .2s ease both; }
.ai-progressive-dialog { width: min(620px,100%); max-height: min(760px,calc(100dvh - 32px)); padding: 24px; overflow-y: auto; border: 1px solid rgba(130,104,255,.38); border-radius: 25px; background: linear-gradient(145deg,rgba(15,24,42,.99),rgba(7,13,25,.99)); box-shadow: 0 28px 90px rgba(0,0,0,.52),0 0 48px rgba(103,79,255,.12); }
.ai-progressive-choice { width: 100%; padding: 15px; display: grid; gap: 7px; border: 1px solid rgba(154,170,199,.18); border-radius: 17px; color: var(--text); background: rgba(255,255,255,.035); text-align: left; }
button.ai-progressive-choice { cursor: pointer; transition: transform .18s ease,border-color .18s ease,background .18s ease; }
button.ai-progressive-choice:hover { transform: translateY(-2px); border-color: rgba(104,216,229,.45); background: rgba(74,113,169,.12); }
.ai-progressive-choice--recommended { border-color: rgba(130,104,255,.48); background: linear-gradient(135deg,rgba(108,72,238,.17),rgba(65,205,216,.07)); }
.ai-progressive-choice strong { font-size: .87rem; }
.ai-progressive-choice small { color: var(--text-soft); font-size: .68rem; line-height: 1.5; }
.ai-progressive-choice .chip { width: max-content; }
.ai-dialog-form [data-cancel-extraction][hidden] { display: none !important; }
.ai-study-count[hidden] { display: none !important; }
.ai-dialog-form > label, .ai-dialog-form .dialog-form__grid > label { display: grid; gap: 6px; color: var(--text-soft); font-size: .72rem; font-weight: 600; }
.ai-source-text { min-height: 180px; line-height: 1.55; }
.ai-file-input { padding: 8px 10px; }
.field-hint { margin: -6px 0 0; color: var(--text-muted); font-size: .66rem; }
.ai-text-meta { margin-top: -7px; display: flex; justify-content: space-between; gap: 10px; color: var(--text-muted); font-size: .64rem; }
.ai-text-meta .is-over-limit { color: #ff9a9d; font-weight: 800; }
@media (max-width:699px) {
  .ai-progressive-overlay { padding: 10px; align-items: end; }
  .ai-progressive-dialog { max-height: calc(100dvh - 20px); padding: 18px 15px; border-radius: 22px; }
}
.optional-label { color: var(--text-muted); font-weight: 500; }
.check-row { padding: 10px 11px; display: grid !important; grid-template-columns: auto minmax(0,1fr); align-items: start; gap: 9px !important; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.025); font-weight: 500 !important; }
.check-row input { margin-top: 3px; accent-color: var(--violet-bright); }
.ai-result:empty { display: none; }
.ai-result { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.ai-result__header h3 { margin: 9px 0 12px; font-size: 1.22rem; }
.ai-summary { padding: 13px; border: 1px solid rgba(157,98,255,.2); border-radius: 14px; background: rgba(157,98,255,.06); }
.ai-summary p { margin: 0; color: #e3ddeb; font-size: .79rem; line-height: 1.6; }
.ai-summary p + p { margin-top: 9px; }
.ai-source-reference { margin-left: 5px; padding: 2px 6px; display: inline-flex; align-items: center; border: 1px solid currentColor; border-radius: 999px; color: var(--cyan); font-size: .56rem; font-weight: 750; line-height: 1.25; white-space: nowrap; vertical-align: .08em; opacity: .82; }
.ai-result-grid { margin-top: 10px; display: grid; gap: 8px; }
.ai-result-card { padding: 12px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.035); }
.ai-result-card strong { display: block; color: var(--text); font-size: .77rem; line-height: 1.45; }
.ai-result-card details { margin-top: 8px; color: var(--cyan); font-size: .7rem; }
.ai-result-card summary { cursor: pointer; font-weight: 600; }
.ai-result-card p { margin: 8px 0 0; color: var(--text-soft); line-height: 1.55; }
.ai-result-grid--selectable { grid-template-columns: repeat(2,minmax(0,1fr)); }
.ai-result-card--selectable { display: grid; gap: 9px; transition: border-color .2s ease, opacity .2s ease; }
.ai-result-card--selectable:has([data-ai-card-select]:not(:checked)) { opacity: .48; }
.ai-result-card--selectable:has([data-ai-card-select]:checked) { border-color: rgba(82,216,223,.27); }
.ai-result-card--selectable > label:not(.ai-result-card__select) { display: grid; gap: 5px; color: var(--text-muted); font-size: .62rem; font-weight: 700; }
.ai-result-card--selectable textarea { min-height: 72px; resize: vertical; font-size: .72rem; line-height: 1.45; }
.ai-result-card__select { display: flex; align-items: center; gap: 7px; color: var(--cyan); font-size: .67rem; font-weight: 750; cursor: pointer; }
.ai-result-card__select input { width: 17px; height: 17px; accent-color: var(--cyan); }
.ai-deck-save { margin-top: 12px; padding: 15px; display: grid; grid-template-columns: minmax(0,1.3fr) minmax(180px,.7fr); gap: 12px 16px; align-items: end; border: 1px solid rgba(82,216,223,.28); border-radius: 16px; background: linear-gradient(145deg, rgba(82,216,223,.085), rgba(157,98,255,.055)); }
.ai-deck-save h4 { margin: 8px 0 3px; font-size: .9rem; }
.ai-deck-save p { margin: 0; color: var(--text-soft); font-size: .68rem; line-height: 1.45; }
.ai-deck-save > label { display: grid; gap: 6px; color: var(--text-soft); font-size: .68rem; font-weight: 700; }
.ai-deck-save__actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; }
.ai-deck-save__actions [hidden] { display: none !important; }
.ai-deck-save > [data-ai-deck-status] { grid-column: 1 / -1; color: var(--cyan); }
.ai-deck-locked { margin: 10px 0 0; padding: 11px 12px; border: 1px solid var(--line); border-radius: 12px; color: var(--text-soft); background: rgba(255,255,255,.025); font-size: .68rem; }
.ai-keywords { margin-top: 10px; display: flex; gap: 6px; flex-wrap: wrap; }
.ai-keywords .chip { min-height: 28px; padding: 5px 9px; font-size: .65rem; }
.ai-disclaimer { margin: 12px 0 0; color: var(--text-muted); font-size: .64rem; line-height: 1.5; }

.dialog-heading { padding-right: 34px; }
.dialog-heading h2 { margin: 10px 0 6px; font-size: 1.3rem; font-weight: 600; letter-spacing: -.03em; }
.dialog-heading p { margin: 0 0 18px; color: var(--text-soft); font-size: .84rem; }
.confirm-action { --confirm-accent: 255,112,119; padding: 8px 4px 2px; display: grid; grid-template-columns: 58px minmax(0,1fr); gap: 16px; }
.confirm-action--warning { --confirm-accent: 242,189,106; }
.confirm-action--violet { --confirm-accent: 157,98,255; }
.confirm-action__icon { width: 58px; aspect-ratio: 1; display: grid; place-items: center; border: 1px solid rgba(var(--confirm-accent),.26); border-radius: 18px; color: rgb(var(--confirm-accent)); background: rgba(var(--confirm-accent),.08); box-shadow: 0 12px 30px rgba(var(--confirm-accent),.08); }
.confirm-action__copy { min-width: 0; padding-right: 32px; }
.confirm-action__copy > span { color: rgb(var(--confirm-accent)); font-size: .59rem; font-weight: 730; letter-spacing: .09em; text-transform: uppercase; }
.confirm-action__copy h2 { margin: 6px 0; color: var(--text); font-size: 1.2rem; letter-spacing: -.025em; }
.confirm-action__copy p { margin: 0; color: var(--text-soft); font-size: .76rem; line-height: 1.55; }
.confirm-action__copy small { margin-top: 11px; padding: 7px 9px; display: inline-flex; border: 1px solid rgba(var(--confirm-accent),.16); border-radius: 9px; color: var(--text-muted); background: rgba(var(--confirm-accent),.045); font-size: .58rem; }
.confirm-action__choices { grid-column: 1 / -1; margin-top: 8px; padding-top: 14px; display: flex; justify-content: flex-end; gap: 8px; border-top: 1px solid var(--line); }
@media (max-width:520px) {
  .confirm-action { grid-template-columns: 45px minmax(0,1fr); gap: 11px; }
  .confirm-action__icon { width: 45px; border-radius: 14px; }
  .confirm-action__copy { padding-right: 22px; }
  .confirm-action__copy h2 { font-size: 1.04rem; }
  .confirm-action__choices { display: grid; grid-template-columns: 1fr; }
  .confirm-action__choices .button:first-child { order: 2; }
}
.dialog-form { display: grid; gap: 13px; }
.dialog-form label { display: grid; gap: 6px; color: var(--text-soft); font-size: .72rem; font-weight: 600; }
.dialog-form__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.button--google { border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.1); }
.button--google > span { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; color: #1a1d23; background: #fff; font-weight: 700; }
.auth-divider { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 10px; color: var(--text-muted); font-size: .65rem; text-transform: uppercase; letter-spacing: .08em; }
.auth-divider::before, .auth-divider::after { content: ""; height: 1px; background: var(--line); }
.auth-legal-copy { margin: -4px 0 0; color: var(--text-muted); font-size: .64rem; line-height: 1.5; text-align: center; }
.auth-legal-copy a, .auth-consent a { color: var(--gold-bright); }
.auth-consent { padding: 11px; grid-template-columns: auto minmax(0,1fr) !important; align-items: start; gap: 10px !important; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.025); font-weight: 500 !important; line-height: 1.5; }
.auth-consent input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--cyan); }
.auth-consent span { display: grid; gap: 2px; }
.auth-consent small { color: var(--text-soft); font-size: .72rem; font-weight: 400; }
.auth-consent.is-disabled { border-style: dashed; opacity: .58; }

.notification-center-shell { display: grid; gap: 14px; }
.notification-center__overview { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.notification-center__overview > div { padding: 10px 11px; display: grid; gap: 1px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.025); }
.notification-center__overview strong { color: var(--text-soft); font-size: 1.02rem; line-height: 1; }
.notification-center__overview span { color: var(--text-muted); font-size: .58rem; }
.notification-center__overview .has-value:first-child { border-color: rgba(255,112,119,.25); background: rgba(255,112,119,.07); }
.notification-center__overview .has-value:first-child strong { color: #ffb5b7; }
.notification-center__overview .has-value:nth-child(2) { border-color: rgba(242,189,106,.27); background: rgba(242,189,106,.07); }
.notification-center__overview .has-value:nth-child(2) strong { color: #ffd071; }
.notification-center__overview .has-value:last-child { border-color: rgba(87,213,223,.24); background: rgba(87,213,223,.06); }
.notification-center__overview .has-value:last-child strong { color: #73dce5; }
.notification-center { display: grid; gap: 8px; max-height: min(48vh, 410px); overflow: auto; padding: 2px; }
.notification-center__item { width: 100%; min-height: 66px; padding: 11px 12px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 15px; color: var(--text); background: rgba(255,255,255,.035); text-align: left; cursor: pointer; }
.notification-center__item--overdue { border-color: rgba(255,112,119,.2); }
.notification-center__item--today { border-color: rgba(242,189,106,.2); }
.notification-center__item > span:nth-child(2) { display: grid; gap: 2px; min-width: 0; }
.notification-center__item strong { overflow: hidden; color: var(--paper); font-size: .86rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.notification-center__item small { color: var(--text-soft); font-size: .72rem; line-height: 1.4; }
.notification-center__mark { width: 34px; height: 34px; display: grid; place-items: center; border:1px solid rgba(137,84,231,.18); border-radius: 11px; color: #d8bdff; background: rgba(137,84,231,.12); }
.notification-center__mark .nk-icon { display:block; }
.notification-center__mark--exam { color:#ffd071; border-color:rgba(243,203,103,.22); background:rgba(243,203,103,.09); }
.notification-center__mark--task { color:#73dce5; border-color:rgba(87,213,223,.22); background:rgba(87,213,223,.09); }
.notification-center__mark--notes { color:#caa8ff; border-color:rgba(158,108,255,.22); background:rgba(158,108,255,.09); }
.notification-center__urgency { padding: 4px 7px; border-radius: 999px; color: var(--text-soft); background: rgba(255,255,255,.045); font-size: .54rem; font-weight: 650; white-space: nowrap; }
.notification-center__item--overdue .notification-center__urgency { color: #ffb5b7; background: rgba(255,112,119,.09); }
.notification-center__item--today .notification-center__urgency { color: #ffd071; background: rgba(242,189,106,.09); }
.notification-center__item--tomorrow .notification-center__urgency,
.notification-center__item--upcoming .notification-center__urgency { color: #73dce5; background: rgba(87,213,223,.08); }
.notification-center__empty { padding: 28px 16px; display: grid; place-items: center; text-align: center; border: 1px dashed var(--line); border-radius: 16px; }
.notification-center__empty > span { margin-bottom: 8px; color: var(--cyan); font-size: 1.5rem; }
.notification-center__empty strong { color: var(--paper); }
.notification-center__empty p { max-width: 330px; margin: 5px 0 0; color: var(--text-soft); font-size: .78rem; }
@media (max-width:520px) {
  .notification-center-shell { gap: 11px; }
  .notification-center__overview { gap: 6px; }
  .notification-center__overview > div { padding: 8px; }
  .notification-center__item { grid-template-columns: 32px minmax(0,1fr); }
  .notification-center__urgency { grid-column: 2; width: max-content; }
  .notification-center-shell .dialog-actions { grid-template-columns: 1fr; }
}
.auth-dialog-status { min-height: 20px; margin: -3px 0 0; color: var(--text-soft); font-size: .7rem; line-height: 1.45; }
.auth-dialog-status[data-kind="error"] { color: #ffb5b7; }
.auth-dialog-status[data-kind="success"] { color: #9be9bd; }

.account-command-deck {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 10px;
}
.account-command-card {
  --account-accent: 157,98,255;
  min-width: 0;
  min-height: 102px;
  padding: 14px;
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 40px minmax(0,1fr);
  align-items: center;
  gap: 11px;
  border: 1px solid rgba(var(--account-accent),.2);
  border-radius: 20px;
  background: linear-gradient(145deg,rgba(var(--account-accent),.085),rgba(255,255,255,.025));
  box-shadow: inset 0 1px rgba(255,255,255,.025);
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.account-command-card::after {
  content: "";
  position: absolute;
  width: 70px;
  aspect-ratio: 1;
  right: -34px;
  bottom: -45px;
  border: 1px solid rgba(var(--account-accent),.14);
  border-radius: 50%;
  box-shadow: 0 0 0 14px rgba(var(--account-accent),.025);
}
.account-command-card--cloud { --account-accent: 82,216,223; }
.account-command-card--privacy { --account-accent: 95,219,158; }
.account-command-card--backup { --account-accent: 242,189,106; }
.account-command-card > span {
  width: 40px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border: 1px solid rgba(var(--account-accent),.28);
  border-radius: 13px;
  color: rgb(var(--account-accent));
  background: rgba(var(--account-accent),.08);
}
.account-command-card > div { min-width: 0; display: grid; gap: 2px; }
.account-command-card small { color: rgba(var(--account-accent),.88); font-size: .53rem; font-weight: 730; letter-spacing: .075em; text-transform: uppercase; }
.account-command-card strong { overflow: hidden; color: var(--text); font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.account-command-card p { margin: 2px 0 0; color: var(--text-muted); font-size: .56rem; line-height: 1.42; }
.account-command-card em { margin-top: 4px; color: rgb(var(--account-accent)); font-size: .54rem; font-style: normal; font-weight: 680; }
.account-grid > [data-account-section] { scroll-margin-top: 90px; outline: none; }
.account-grid > [data-account-section].is-account-highlighted {
  animation: account-section-highlight 1.05s ease both;
}
@keyframes account-section-highlight {
  0%,100% { border-color: var(--line); box-shadow: var(--shadow); }
  35% { border-color: rgba(137,84,231,.68); box-shadow: 0 0 0 3px rgba(137,84,231,.14),0 18px 48px rgba(0,0,0,.24); }
}
@media (max-width:899px) {
  .account-command-deck { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width:699px) {
  .account-command-deck {
    margin-inline: -3px;
    padding: 2px 3px 7px;
    display: flex;
    gap: 8px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }
  .account-command-deck::-webkit-scrollbar { display: none; }
  .account-command-card { min-width: min(74vw,238px); min-height: 88px; padding: 11px; grid-template-columns: 36px minmax(0,1fr); border-radius: 17px; scroll-snap-align: start; }
  .account-command-card > span { width: 36px; border-radius: 11px; }
  .account-command-card p { font-size: .53rem; }
}
.account-grid { display: grid; gap: 12px; }

@keyframes premium-surface-enter {
  from { opacity: 0; transform: translateY(7px); }
  to { opacity: 1; transform: translateY(0); }
}
.advanced-view > :not(.advanced-header),
.account-command-card { animation: premium-surface-enter .34s cubic-bezier(.22,.72,.28,1) backwards; }
.account-command-card:nth-child(2) { animation-delay: .035s; }
.account-command-card:nth-child(3) { animation-delay: .07s; }
.account-command-card:nth-child(4) { animation-delay: .105s; }

@media (hover:hover) and (pointer:fine) {
  .advanced-header__signals a,
  .account-command-card { transition: border-color .18s ease,background-color .18s ease,transform .18s ease,box-shadow .18s ease; }
  .advanced-header__signals a:hover { background: rgba(var(--advanced-accent),.07); }
  .account-command-card:hover { transform: translateY(-2px); border-color: rgba(var(--account-accent),.34); box-shadow: 0 14px 30px rgba(0,0,0,.15),inset 0 1px rgba(255,255,255,.035); }
}
@media (prefers-reduced-motion:reduce) {
  .advanced-view > :not(.advanced-header),
  .account-command-card { animation: none; }
  .advanced-back span,
  .advanced-header__signals a,
  .account-command-card { transition: none; }
  .account-grid > [data-account-section].is-account-highlighted { animation: none; border-color: rgba(137,84,231,.68); }
}
.profile-card { padding: 18px; display: grid; grid-template-columns: 54px minmax(0,1fr) auto; align-items: center; gap: 13px; }
.profile-card.is-demo-profile { border-color: rgba(239,202,109,.3); background: linear-gradient(145deg, rgba(239,202,109,.075), rgba(255,255,255,.035)); }
.profile-avatar { width: 54px; height: 54px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 17px; color: #fff; background: rgba(255,255,255,.075); font-weight: 600; font-size: 1.02rem; }
.profile-card strong, .profile-card small { display: block; }
.profile-card small { margin-top: 3px; color: var(--text-muted); }
.trial-access-card { padding: 18px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-color: rgba(157,98,255,.34); background: linear-gradient(135deg, rgba(157,98,255,.13), rgba(255,255,255,.035)); }
.trial-access-card.is-ending { border-color: rgba(239,202,109,.38); background: linear-gradient(135deg, rgba(239,202,109,.12), rgba(157,98,255,.06)); }
.trial-access-card.is-archived { border-color: rgba(239,202,109,.28); background: rgba(239,202,109,.055); }
.trial-access-card__copy { min-width: 0; }
.trial-access-card__copy h2 { margin: 10px 0 4px; font-size: 1.05rem; }
.trial-access-card__copy p { max-width: 680px; margin: 0; color: var(--text-muted); font-size: .72rem; line-height: 1.55; }
.trial-access-card__copy p strong { color: var(--text); font-weight: 620; }
.trial-access-card__meter { min-width: 132px; display: grid; justify-items: end; gap: 1px; }
.trial-access-card__meter strong { color: #fff; font-size: 1.75rem; font-weight: 620; line-height: 1; }
.trial-access-card__meter span { color: var(--text-soft); font-size: .65rem; }
.trial-access-card__meter progress { width: 132px; height: 6px; margin-top: 8px; overflow: hidden; border: 0; border-radius: 999px; background: rgba(255,255,255,.08); appearance: none; }
.trial-access-card__meter progress::-webkit-progress-bar { background: rgba(255,255,255,.08); }
.trial-access-card__meter progress::-webkit-progress-value { background: linear-gradient(90deg, var(--violet), var(--cyan)); }
.trial-access-card__meter progress::-moz-progress-bar { background: linear-gradient(90deg, var(--violet), var(--cyan)); }
.trial-access-card__meter .button { margin-top: 10px; white-space: nowrap; }
.trial-access-card__thanks { margin-top: 9px; color: var(--cyan); font-size: .64rem; font-weight: 620; }
.demo-account-card { padding: 17px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-color: rgba(239,202,109,.28); background: rgba(239,202,109,.055); }
.demo-account-card strong { display: block; margin-top: 10px; font-size: .92rem; }
.demo-account-card p { max-width: 660px; margin: 4px 0 0; color: var(--text-muted); font-size: .69rem; line-height: 1.5; }
.demo-account-card .button { flex: 0 0 auto; }
.settings-card { padding: 8px; }
.setting-row { width: 100%; min-height: 62px; padding: 11px; display: flex; align-items: center; gap: 11px; border: 0; border-bottom: 1px solid rgba(255,255,255,.06); color: var(--text); background: transparent; text-align: left; cursor: pointer; }
.setting-row--static { cursor: default; }
.setting-row:disabled { opacity: .56; cursor: not-allowed; }
.setting-row:last-child { border-bottom: 0; }
.setting-row__icon { width: 38px; height: 38px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 12px; color: var(--gold); background: rgba(255,255,255,.035); }
.setting-row__icon .nk-icon { width: 19px; height: 19px; }
.setting-row__icon--security { color:#60dce3; border-color:rgba(82,216,223,.2); background:rgba(82,216,223,.065); }
.setting-row__icon--privacy { color:#bb92ff; border-color:rgba(157,98,255,.22); background:rgba(157,98,255,.07); }
.setting-row__icon--notification { color:#ef9fcf; border-color:rgba(231,115,183,.21); background:rgba(231,115,183,.065); }
.setting-row__icon--interface { color:#8ee9ed; border-color:rgba(82,216,223,.22); background:linear-gradient(145deg,rgba(82,216,223,.09),rgba(157,98,255,.09)); }
.setting-row__icon--install { color:#c49bff; border-color:rgba(157,98,255,.25); background:linear-gradient(145deg,rgba(157,98,255,.13),rgba(82,216,223,.07)); }
.setting-row__icon--guide { color:#ffd06d; border-color:rgba(239,202,109,.22); background:rgba(239,202,109,.07); }
.setting-row__icon--document { color:#70b8ff; border-color:rgba(84,159,236,.21); background:rgba(84,159,236,.065); }
.setting-row__icon--cloud { color:#70b8ff; border-color:rgba(84,159,236,.22); background:rgba(84,159,236,.07); }
.setting-row__icon--success { color:#67dfa4; border-color:rgba(87,211,149,.22); background:rgba(87,211,149,.07); }
.setting-row__icon--warning { color:#ffad79; border-color:rgba(236,144,91,.22); background:rgba(236,144,91,.07); }
.setting-row__icon--notes { color:#65dfb3; border-color:rgba(80,210,159,.22); background:rgba(80,210,159,.07); }
.setting-row__icon--backup { color:#f4c467; border-color:rgba(239,187,88,.22); background:rgba(239,187,88,.07); }
.setting-row__icon--help { color:#9db0c9; border-color:rgba(157,176,201,.2); background:rgba(157,176,201,.055); }

.install-app-steps { margin: 18px 0 0; padding: 0; display: grid; gap: 10px; list-style: none; counter-reset: install-step; }
.install-app-steps li { min-height: 68px; padding: 13px 15px 13px 52px; position: relative; display: grid; align-content: center; gap: 4px; counter-increment: install-step; border: 1px solid rgba(157,98,255,.2); border-radius: 15px; background: rgba(255,255,255,.035); }
.install-app-steps li::before { content: counter(install-step); width: 28px; height: 28px; position: absolute; left: 14px; top: 50%; translate: 0 -50%; display: grid; place-items: center; border-radius: 9px; color: #f7f2ff; background: linear-gradient(145deg,#7563ff,#9d62ff); font-size: .72rem; font-weight: 760; }
.install-app-steps strong { color: var(--text); font-size: .78rem; }
.install-app-steps span,
.install-app-message span { color: var(--text-muted); font-size: .66rem; line-height: 1.5; }
.install-app-message { margin-top: 18px; padding: 17px; display: grid; gap: 6px; border: 1px solid rgba(82,216,223,.2); border-radius: 15px; background: rgba(82,216,223,.055); }

.ui-preferences-form { gap: 15px; }
.ui-preference-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.ui-preference-group legend { margin-bottom: 8px; color: var(--text-soft); font-size: .72rem; font-weight: 650; }
.ui-choice-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.ui-choice-grid--three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.ui-choice-grid label { min-width: 0; cursor: pointer; }
.ui-choice-grid input { position: absolute; opacity: 0; pointer-events: none; }
.ui-choice-grid label > span { min-height: 68px; padding: 10px; display: grid; align-content: center; gap: 3px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.025); }
.ui-choice-grid strong,
.ui-choice-grid small { display: block; }
.ui-choice-grid strong { color: var(--text); font-size: .68rem; }
.ui-choice-grid small { color: var(--text-muted); font-size: .52rem; line-height: 1.35; }
.ui-choice-grid input:checked + span { border-color: rgba(82,216,223,.5); background: linear-gradient(145deg,rgba(82,216,223,.1),rgba(157,98,255,.08)); box-shadow: inset 3px 0 var(--cyan); }
.ui-choice-grid input:focus-visible + span { outline: 3px solid rgba(82,216,223,.68); outline-offset: 2px; }
.ui-preset-row { margin-bottom: 9px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
.ui-preset-row button { min-height: 36px; border: 1px solid var(--line); border-radius: 10px; color: var(--text-soft); background: rgba(255,255,255,.025); font: inherit; font-size: .58rem; font-weight: 650; cursor: pointer; }
.ui-preset-row button[aria-pressed="true"] { border-color: rgba(157,98,255,.5); color: #fff; background: rgba(157,98,255,.16); }
.ui-section-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
.ui-section-grid label { min-height: 38px; padding: 7px 9px; display: flex; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: 10px; color: var(--text-soft); background: rgba(255,255,255,.02); font-size: .57rem; cursor: pointer; }
.ui-section-grid input { accent-color: var(--violet); }
.ui-preference-group > .field-hint { margin-top: 8px; display: block; }

@media (max-width:540px) {
  .ui-choice-grid--three { grid-template-columns: 1fr; }
  .ui-choice-grid--three label > span { min-height: 56px; }
  .ui-section-grid { grid-template-columns: 1fr; }
}
.setting-row__copy { min-width: 0; flex: 1; }
.setting-row__copy strong, .setting-row__copy small { display: block; }
.setting-row__copy small { margin-top: 2px; color: var(--text-muted); font-size: .69rem; }
.setting-row__value { color: var(--text-soft); font-size: .73rem; }
.storage-card { padding: 17px; }
.storage-card__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.storage-card h2 { margin: 0; font-size: 1rem; }
.storage-card strong { color: var(--cyan); font-size: .78rem; }
.storage-bar { width: 100%; height: 8px; margin: 13px 0 8px; overflow: hidden; border: 0; border-radius: 999px; background: rgba(255,255,255,.08); appearance: none; }
.storage-bar::-webkit-progress-bar { border-radius: 999px; background: rgba(255,255,255,.08); }
.storage-bar::-webkit-progress-value { border-radius: 999px; background: linear-gradient(90deg, var(--cyan), var(--violet)); }
.storage-bar::-moz-progress-bar { border-radius: 999px; background: linear-gradient(90deg, var(--cyan), var(--violet)); }
.storage-card p { margin: 0; color: var(--text-muted); font-size: .69rem; }
.archive-view { min-height: min(680px, calc(100dvh - 180px)); display: grid; place-items: center; }
.archive-gate { width: min(100%, 620px); padding: clamp(28px, 6vw, 58px); display: grid; justify-items: center; gap: 13px; text-align: center; border-color: rgba(239,202,109,.28); background: radial-gradient(circle at 50% 0, rgba(239,202,109,.1), transparent 45%), rgba(255,255,255,.035); }
.archive-gate__icon { width: 72px; height: 72px; margin-top: 5px; display: grid; place-items: center; border: 1px solid rgba(239,202,109,.35); border-radius: 50%; color: var(--gold); background: rgba(239,202,109,.07); font-size: 1.5rem; }
.archive-gate h1 { margin: 3px 0 0; font-size: clamp(1.45rem, 4vw, 2.15rem); }
.archive-gate p { max-width: 520px; margin: 0 0 7px; color: var(--text-soft); line-height: 1.65; }
.local-documents-card__heading { padding: 11px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); }
.local-documents-card__heading h2 { margin: 0; font-size: 1rem; }
.local-documents-card__heading p { margin: 3px 0 0; color: var(--text-muted); font-size: .68rem; }
.local-documents-card.is-plan-frozen { border-style: dashed; background: linear-gradient(135deg,rgba(157,98,255,.035),rgba(255,255,255,.02)); }
.local-document-row { cursor: default; }
.local-document-row__actions { display: flex; align-items: center; gap: 7px; }
.backup-preview-grid { margin: 2px 0 14px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.backup-preview-grid div { min-width: 0; padding: 12px 8px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.03); text-align: center; }
.backup-preview-grid strong, .backup-preview-grid span { display: block; }
.backup-preview-grid strong { color: var(--cyan); font-size: 1.05rem; font-weight: 650; }
.backup-preview-grid span { margin-top: 3px; color: var(--text-muted); font-size: .63rem; }
.sync-fixed-policy, .sync-local-policy { padding: 12px; display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: start; gap: 10px; border: 1px solid rgba(82,216,223,.22); border-radius: 14px; background: rgba(82,216,223,.055); }
.sync-local-policy { border-color: var(--line); background: rgba(255,255,255,.025); }
.sync-fixed-policy > span, .sync-local-policy > span { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid rgba(82,216,223,.32); border-radius: 10px; color: var(--cyan); background: rgba(82,216,223,.08); font-weight: 600; }
.sync-local-policy > span { border-color: var(--line-strong); color: var(--gold); background: rgba(239,202,109,.06); }
.sync-fixed-policy strong, .sync-fixed-policy small, .sync-local-policy strong, .sync-local-policy small { display: block; }
.sync-fixed-policy strong, .sync-local-policy strong { font-size: .78rem; }
.sync-fixed-policy small, .sync-local-policy small { margin-top: 3px; color: var(--text-muted); font-size: .66rem; line-height: 1.45; }
.sync-mode-fieldset { margin: 0; padding: 0; display: grid; gap: 8px; border: 0; }
.sync-mode-fieldset legend { margin-bottom: 7px; color: var(--text); font-size: .79rem; font-weight: 600; }
.sync-mode-option { min-width: 0; padding: 11px; display: grid !important; grid-template-columns: auto minmax(0,1fr); align-items: start; gap: 10px !important; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.025); cursor: pointer; font-weight: 500 !important; }
.sync-mode-option:has(input:checked) { border-color: rgba(82,216,223,.42); background: rgba(82,216,223,.075); }
.sync-mode-option:has(input:disabled) { opacity: .52; cursor: not-allowed; }
.sync-mode-option input { margin-top: 3px; accent-color: var(--cyan); }
.sync-mode-option strong, .sync-mode-option small { display: block; }
.sync-mode-option strong { color: var(--text); font-size: .76rem; }
.sync-mode-option small { margin-top: 3px; color: var(--text-muted); font-size: .65rem; line-height: 1.45; }

@media (min-width: 700px) {
  .dashboard-grid { grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr); }
  .dashboard-grid .hero-card, .dashboard-grid .task-panel { grid-column: 1; }
  .dashboard-grid .ai-card { grid-column: 2; grid-row: 1 / span 2; }
  .quick-grid { grid-column: 1 / -1; grid-template-columns: repeat(4,1fr); }
  .planner-sections { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .notes-workspace { grid-template-columns: minmax(230px,.75fr) minmax(0,1.6fr); }
  .account-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .profile-card, .storage-card { grid-column: span 1; }
  .trial-access-card, .demo-account-card, .local-documents-card, .sync-settings-card { grid-column: 1 / -1; }
}

@media (max-width: 699px) {
  .trial-access-card { align-items: stretch; flex-direction: column; }
  .trial-access-card__meter { width: 100%; justify-items: start; }
  .trial-access-card__meter progress { width: 100%; }
  .trial-access-card.is-archived .button { width: 100%; }
}

@media (hover: hover) and (pointer: fine) {
  .quick-card,
  .module-card,
  .folder-card,
  .note-row,
  .setting-row { transition: transform .2s var(--ease), border-color .2s ease, background-color .2s ease, box-shadow .2s ease; }
  .quick-card:hover,
  .module-card:not(.is-locked):hover,
  .folder-card:hover { transform: translateY(-2px); border-color: var(--line-strong); box-shadow: 0 14px 30px rgba(0,0,0,.2); }
  .note-row:hover,
  .setting-row:not(:disabled):not(.setting-row--static):hover { background: rgba(255,255,255,.045); }
}

@media (min-width: 1024px) {
  .view-header { margin-bottom: 28px; align-items: center; }
  .view-header__eyebrow { margin-bottom: 8px; font-size: .69rem; }
  .view-header h1 { margin-bottom: 9px; font-size: clamp(2.15rem, 3.1vw, 3rem); }
  .view-header p { max-width: 700px; font-size: .91rem; line-height: 1.6; }
  .section-heading { margin-top: 30px; }

  .dashboard-grid {
    grid-template-columns: minmax(0, 1.35fr) minmax(340px, .82fr);
    grid-template-areas:
      "hero ai"
      "summary ai"
      "tasks shortcuts";
    align-items: start;
    gap: 16px;
  }
  .dashboard-grid .hero-card { grid-area: hero; min-height: 158px; padding: 25px; display: grid; align-content: center; }
  .dashboard-grid .dashboard-summary { grid-area: summary; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dashboard-grid .task-panel { grid-area: tasks; }
  .dashboard-grid .ai-card { grid-area: ai; min-height: 320px; padding: 24px; display: flex; flex-direction: column; justify-content: center; }
  .dashboard-grid .dashboard-shortcuts { grid-area: shortcuts; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-grid .quick-card { min-height: 100px; }
  .dashboard-grid .dashboard-summary .quick-card { min-height: 112px; }
  .hero-card h2 { font-size: 1.55rem; }
  .progress-ring { width: 94px; height: 94px; }
  .ai-actions { margin-top: 20px; gap: 10px; }
  .ai-action { min-height: 82px; }
  .privacy-strip { margin-top: 16px; }

  .planner-toolbar { display: flex; justify-content: flex-end; }
  .planner-toolbar .button { min-width: 128px; }
  .planner-overview-grid { grid-template-columns: minmax(0, 1.35fr) minmax(310px, .65fr); gap: 16px; }
  .planner-overview-panel .section-heading { margin-top: 30px; }
  .planner-sections { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
  .module-card { min-height: 126px; padding: 17px; }

  .notes-tools { display: grid; grid-template-columns: minmax(320px, 1fr) auto; align-items: center; gap: 12px; }
  .notes-tools__actions { margin-top: 0; }
  .notes-workspace { grid-template-columns: minmax(260px, .72fr) minmax(0, 1.65fr); gap: 14px; align-items: start; }
  .notes-list { max-height: calc(100dvh - 214px); overflow-y: auto; scrollbar-width: thin; }
  .note-editor { padding: 20px; }
  .note-title { font-size: 1.35rem; }

  .account-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-flow: dense; gap: 14px; }
  .account-grid > .profile-card { grid-column: span 5; }
  .account-grid > .storage-card { grid-column: span 7; }
  .account-grid > .trial-access-card,
  .account-grid > .demo-account-card,
  .account-grid > .local-documents-card,
  .account-grid > .sync-settings-card { grid-column: 1 / -1; }
  .account-grid > .settings-card:not(.local-documents-card):not(.sync-settings-card) { grid-column: span 6; }
  .profile-card,
  .storage-card { min-height: 132px; }

  .orb-view {
    display: grid;
    grid-template-columns: minmax(500px, 1.1fr) minmax(300px, .72fr);
    grid-template-rows: auto auto minmax(0, 1fr);
    column-gap: 30px;
    align-items: start;
  }
  .orb-view > .view-header { grid-column: 1 / -1; }
  .orb-view > .ai-pill { grid-column: 2; grid-row: 2; margin: 0 0 14px; align-self: end; }
  .orb-view > .orbit-stage { grid-column: 1; grid-row: 2 / span 2; --orbit-x: 176px; --orbit-y: 176px; width: min(100%, 540px); margin: -10px auto 0; }
  .orb-view > .plan-details { grid-column: 2; grid-row: 3; width: 100%; max-width: none; margin: 0; padding: 20px; }
  .orbit-center,
  .orbit-center .nova-mark { width: 112px; height: 112px; }
  .plan-node { width: 102px; height: 102px; }
}

@media (min-width: 1380px) {
  .notes-layout { grid-template-columns: 198px minmax(0, 1fr); column-gap: 14px; align-items: start; }
  .notes-tools { grid-column: 1 / -1; }
  .folder-strip { grid-column: 1; grid-row: 2; max-height: calc(100dvh - 230px); padding: 0 4px 0 0; flex-direction: column; overflow-x: hidden; overflow-y: auto; scrollbar-width: thin; }
  .folder-card { width: 100%; min-width: 0; }
  .folder-management { grid-column: 1; grid-row: 3; align-items: stretch; flex-direction: column; }
  .folder-management__actions { justify-content: stretch; }
  .folder-management__actions .button { flex: 1; }
  .notes-workspace { grid-column: 2; grid-row: 2 / span 2; grid-template-columns: minmax(250px, .65fr) minmax(0, 1.6fr); }
}

@media (max-width: 390px) {
  .view-header { flex-direction: column; }
  .view-header__actions { width: 100%; justify-content: stretch; }
  .view-header__actions .button { flex: 1; }
  .ai-actions { grid-template-columns: repeat(2,1fr); }
  .ai-action { min-height: 58px; flex-direction: row; }
  .local-document-row { align-items: flex-start; flex-wrap: wrap; }
  .local-document-row__actions { width: 100%; padding-left: 49px; }
  .backup-preview-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .demo-account-card { align-items: stretch; flex-direction: column; }
  .demo-account-card .button { width: 100%; }
  .orb-view { overflow-clip-margin: 10px; }
  .orbit-stage { --orbit-x: clamp(86px, calc(50vw - 55px), 132px); --orbit-y: clamp(86px, calc(50vw - 55px), 132px); margin: -10px auto; }
  .plan-node { width: 84px; height: 84px; }
  .orbit-center, .orbit-center .nova-mark { width: 92px; height: 92px; }
  .plan-feature-list { grid-template-columns: 1fr; }
  .exam-row { grid-template-columns: 1fr; }
  .dialog-form__grid { grid-template-columns: 1fr; }
  .folder-management { align-items: flex-start; flex-direction: column; }
  .folder-management__actions { width: 100%; justify-content: stretch; }
  .folder-management__actions .button { flex: 1; }
  .planner-focus-view .setting-row { align-items: flex-start; flex-wrap: wrap; }
  .planner-focus-view .setting-row > .dialog-actions { flex: 1 0 100%; padding-left: 49px; }
  .planner-focus-view .setting-row > .dialog-actions .button { flex: 1; }
  .planner-focus-view .storage-card__top { align-items: stretch; flex-direction: column; }
  .planner-focus-view .storage-card__top label { width: 100%; }
  .planner-focus-view .storage-card__top .field { width: 100%; }
  .planner-focus-view .dialog-actions .button { min-width: 0; }
}

@media (min-width: 1024px) {
  .view-header { margin-bottom: 24px; }
  .view-header__eyebrow { color: #7552b7; font-weight: 560; letter-spacing: .14em; }
  .view-header h1 { color: #121c30; font-size: clamp(2rem, 2.65vw, 2.8rem); font-weight: 540; letter-spacing: -.04em; }
  .view-header p { color: #5f6d81; font-size: .86rem; font-weight: 390; }

  .task-row { border-bottom-color: rgba(24,39,65,.075); }
  .quick-card,
  .module-card,
  .folder-card { background-color: rgba(255,255,255,.78); }
  .module-card__status { background: #f4f6fa; }
  .note-title { color: #162036; }
  .note-content { color: #425168; }
.note-row,
.setting-row { border-bottom-color: rgba(24,39,65,.065); }
  .profile-avatar { color: #49327c; border-color: rgba(122,82,190,.16); background: #f1ecfb; }
  .tool-button,
  .setting-row__icon { background: #f7f9fc; }
  .note-row:hover,
  .setting-row:not(:disabled):not(.setting-row--static):hover { background: #f7f9fc; }
  .plan-feature-list li > button:hover { color: #172033; background: #f4f7fb; }

  .hero-card,
  .ai-card { color: #fff; box-shadow: 0 16px 38px rgba(38,48,75,.13); }
  .app-shell .hero-card {
    border-color: rgba(216,179,83,.28);
    background: radial-gradient(circle at 94% 10%, rgba(239,202,109,.2), transparent 34%), linear-gradient(145deg, #17243a, #0b1220);
  }
  .app-shell .ai-card {
    border-color: rgba(157,98,255,.3);
    background: radial-gradient(circle at 90% 0%, rgba(210,112,231,.27), transparent 38%), linear-gradient(145deg, #2c1858, #151831 62%, #101624);
  }
  .hero-card h2,
  .hero-card strong,
  .ai-card h2,
  .ai-card strong { color: #fff; }

  .orb-view { display: block; overflow: visible; }
  .orb-view > .view-header { max-width: 900px; }
  .orb-view > .ai-pill { display: none; }

  .orb-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1.32fr) minmax(320px, .68fr);
    gap: clamp(18px, 2vw, 28px);
    align-items: stretch;
  }

  .orb-stage-panel,
  .orb-inspector {
    min-width: 0;
    border: 1px solid rgba(24,39,65,.1);
    border-radius: 30px;
    background: rgba(255,255,255,.88);
    box-shadow: 0 18px 46px rgba(48,60,86,.085), inset 0 1px rgba(255,255,255,.96);
  }

  .orb-stage-panel {
    position: relative;
    min-height: 620px;
    padding: 24px clamp(20px, 2.4vw, 34px) 20px;
    display: grid;
    grid-template-rows: auto minmax(0,1fr) auto;
    overflow: hidden;
    isolation: isolate;
  }

  .orb-stage-panel::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 11% 5% 4%;
    border-radius: 50%;
    background:
      radial-gradient(circle at 50% 50%, rgba(104,76,178,.12), transparent 22%),
      radial-gradient(circle at 70% 32%, rgba(227,83,197,.08), transparent 26%),
      radial-gradient(circle at 26% 72%, rgba(60,186,211,.09), transparent 28%);
    filter: blur(6px);
  }

  .orb-stage-panel__head,
  .orb-inspector__eyebrow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
  }

  .orb-stage-panel__head span,
  .orb-inspector__eyebrow span { color: #26334a; font-size: .74rem; font-weight: 620; letter-spacing: .02em; }
  .orb-stage-panel__head small,
  .orb-inspector__eyebrow small { color: #8792a4; font-size: .65rem; }

  .orb-stage-panel__legend {
    display: flex;
    justify-content: center;
    gap: 24px;
    color: #778398;
    font-size: .63rem;
  }
  .orb-stage-panel__legend span { display: inline-flex; align-items: center; gap: 7px; }
  .orb-stage-panel__legend i { width: 7px; height: 7px; border-radius: 50%; background: #66cbd7; box-shadow: 0 0 0 4px rgba(102,203,215,.11); }
  .orb-stage-panel__legend span:nth-child(2) i { background: #a9b1be; box-shadow: 0 0 0 4px rgba(169,177,190,.12); }
  .orb-stage-panel__legend span:nth-child(3) i { background: #d157cc; box-shadow: 0 0 0 4px rgba(209,87,204,.11); }

  .orb-stage-panel .orbit-stage {
    --orbit-x: 220px;
    --orbit-y: 194px;
    width: min(100%, 620px);
    aspect-ratio: 1.12 / 1;
    margin: 2px auto 0;
    align-self: center;
  }

  .orb-stage-panel .orbit-stage::before {
    inset: 13% 10%;
    border-color: rgba(91,106,133,.18);
    box-shadow: 0 0 45px rgba(113,81,181,.055);
  }
  .orb-stage-panel .orbit-stage::after { inset: 24% 22%; border-color: rgba(112,86,180,.14); }

  .orb-stage-panel .orbit-center,
  .orb-stage-panel .orbit-center .nova-mark { width: 124px; height: 124px; }
  .orb-stage-panel .orbit-center .nova-mark {
    border-color: rgba(241,215,148,.72);
    background:
      radial-gradient(circle at 68% 29%, rgba(188,115,255,.8), transparent 23%),
      radial-gradient(circle at 34% 72%, rgba(255,222,143,.24), transparent 44%),
      linear-gradient(145deg, #23173f, #0d1320 67%);
    box-shadow: 0 0 0 8px rgba(144,94,227,.085), 0 22px 44px rgba(37,28,62,.28), 0 0 38px rgba(150,85,238,.2);
  }
  .orb-stage-panel .orbit-center .nova-mark__letter { font-size: 4.2rem; font-weight: 500; }
  .orb-stage-panel .orbit-center .nova-mark__star { top: 17px; right: 21px; font-size: 1.42rem; }
  .orb-stage-panel .orbit-center .nova-mark__orbit { width: 94px; height: 44px; }
  .orb-stage-panel .orbit-center__label { bottom: -32px; color: #354158; border-color: rgba(24,39,65,.1); background: rgba(255,255,255,.94); box-shadow: 0 8px 20px rgba(48,60,86,.1); }

  .orb-stage-panel .plan-node {
    width: 106px;
    height: 106px;
    padding: 10px;
    overflow: visible;
    border-width: 1px;
    box-shadow: inset 0 1px rgba(255,255,255,.34), 0 18px 34px rgba(32,40,66,.22), 0 0 28px color-mix(in srgb, var(--node-color) 17%, transparent);
  }
  .orb-stage-panel .plan-node strong { position: relative; z-index: 3; color: #fff; font-size: .79rem; font-weight: 590; text-shadow: 0 1px 8px rgba(0,0,0,.32); }
  .orb-stage-panel .plan-node small { position: relative; z-index: 3; color: rgba(255,255,255,.72); font-size: .61rem; }
  .orb-stage-panel .plan-node__icon { position: relative; z-index: 3; font-size: 1.35rem; text-shadow: 0 0 14px currentColor; }
  .orb-stage-panel .plan-node__texture { position: absolute; z-index: 1; inset: 0; display: block; overflow: hidden; border-radius: 50%; pointer-events: none; }
  .orb-stage-panel .plan-node__texture::before,
  .orb-stage-panel .plan-node__texture::after { content: ""; position: absolute; pointer-events: none; }

  .orb-stage-panel .plan-node--basic {
    --node-color: #7ed8ff;
    --planet-angle: -90deg;
    --planet-radius: var(--orbit-y);
    background: radial-gradient(circle at 34% 24%, #dff7ff 0 5%, #79cfee 15%, #246c9d 52%, #10253d 78%);
  }
  .orb-stage-panel .plan-node--basic .plan-node__texture::before { inset: 14px 19px; border: 1px solid rgba(224,248,255,.42); border-radius: 42% 58% 52% 48%; transform: rotate(24deg); }
  .orb-stage-panel .plan-node--basic .plan-node__texture::after { width: 72px; height: 1px; left: 15px; top: 38px; background: rgba(226,249,255,.25); transform: rotate(-22deg); box-shadow: 0 18px rgba(226,249,255,.13); }

  .orb-stage-panel .plan-node--plus {
    --node-color: #8ccfff;
    --planet-angle: 180deg;
    --planet-radius: var(--orbit-x);
    background: radial-gradient(circle at 37% 24%, #bcecff 0 6%, #5f9ee5 22%, #3c4ca4 54%, #171b4a 78%);
  }
  .orb-stage-panel .plan-node--plus .plan-node__texture::before { width: 128px; height: 36px; left: -12px; top: 34px; border: 2px solid rgba(171,222,255,.55); border-radius: 50%; transform: rotate(-13deg); box-shadow: 0 0 12px rgba(124,191,255,.22); }
  .orb-stage-panel .plan-node--plus .plan-node__texture::after { inset: 18px; border-radius: 50%; background: radial-gradient(circle at 30% 70%, rgba(255,255,255,.18) 0 2px, transparent 3px), radial-gradient(circle at 70% 28%, rgba(255,255,255,.2) 0 1px, transparent 2px); }

  .orb-stage-panel .plan-node--premium {
    --node-color: #ffd778;
    --planet-angle: 18deg;
    --planet-radius: var(--orbit-x);
    background: radial-gradient(circle at 36% 24%, #fff4c7 0 6%, #efc75e 19%, #a96f22 54%, #3b281b 79%);
  }
  .orb-stage-panel .plan-node--premium .plan-node__texture::before { width: 118px; height: 26px; left: -7px; top: 41px; border-top: 4px solid rgba(255,239,181,.32); border-radius: 50%; transform: rotate(12deg); }
  .orb-stage-panel .plan-node--premium .plan-node__texture::after { width: 20px; height: 20px; right: 17px; top: 18px; border: 1px solid rgba(255,244,207,.2); border-radius: 50%; box-shadow: -46px 37px 0 4px rgba(83,52,18,.14); }

  .orb-stage-panel .plan-node--full {
    --node-color: #f3f6ff;
    --planet-angle: 90deg;
    --planet-radius: var(--orbit-y);
    background: radial-gradient(circle at 34% 23%, #fff 0 5%, #d9ddff 18%, #b3a8dc 46%, #56527c 73%, #24253a 90%);
  }
  .orb-stage-panel .plan-node--full .plan-node__texture::before { inset: 14px; border-radius: 50%; background: conic-gradient(from 30deg, transparent, rgba(130,238,245,.18), transparent 28%, rgba(244,170,239,.2), transparent 62%, rgba(255,226,147,.18), transparent); }
  .orb-stage-panel .plan-node--full .plan-node__texture::after { inset: 8px 22px; border-left: 1px solid rgba(255,255,255,.32); border-right: 1px solid rgba(255,255,255,.18); border-radius: 50%; transform: rotate(38deg); }

  .orb-stage-panel .plan-node--ai {
    --node-color: #ef68dc;
    --planet-angle: -35deg;
    --planet-radius: 214px;
    --open-delay: 140ms;
    --close-delay: 0ms;
    display: flex;
    width: 100px;
    height: 100px;
    border-color: rgba(247,151,233,.72);
    background: radial-gradient(circle at 36% 22%, #ffd7fa 0 5%, #e864d7 18%, #8f43c7 48%, #361c66 75%, #17132c 92%);
    box-shadow: inset 0 1px rgba(255,255,255,.42), 0 18px 38px rgba(95,43,128,.28), 0 0 34px rgba(226,87,210,.27);
  }
  .orb-stage-panel .plan-node--ai .plan-node__texture::before { inset: 15px; border: 1px solid rgba(255,225,252,.25); border-radius: 50%; box-shadow: inset 0 0 18px rgba(255,255,255,.12); }
  .orb-stage-panel .plan-node--ai .plan-node__texture::after { width: 4px; height: 4px; left: 23px; top: 26px; border-radius: 50%; background: #fff; box-shadow: 42px 4px rgba(255,255,255,.72), 53px 38px rgba(255,255,255,.54), 12px 49px rgba(255,255,255,.5); }
  .orb-stage-panel .plan-node__icon--ai { color: #fff1fd; font-size: 1.55rem; }

  .orb-stage-panel .plan-node.is-locked { --planet-opacity: .58; filter: grayscale(.86) saturate(.28); border-style: solid; }
  .orb-stage-panel .plan-node__lock { z-index: 5; top: 4px; right: 4px; width: 25px; height: 25px; border-color: rgba(255,255,255,.34); color: #fff; background: rgba(24,31,46,.82); font-size: .63rem; }
  .orb-stage-panel .plan-node.is-selected { box-shadow: inset 0 1px rgba(255,255,255,.42), 0 0 0 6px rgba(116,91,181,.1), 0 20px 38px rgba(32,40,66,.24), 0 0 34px color-mix(in srgb, var(--node-color) 30%, transparent); }
  .orb-stage-panel .plan-node.is-owned::after { color: #287982; border-color: rgba(70,181,193,.26); background: rgba(242,253,253,.96); box-shadow: 0 7px 18px rgba(48,60,86,.08); }

  .orb-inspector {
    padding: 22px;
    display: flex;
    flex-direction: column;
  }
  .orb-inspector__eyebrow { min-height: 38px; padding: 0 2px 14px; border-bottom: 1px solid rgba(24,39,65,.075); }
  .orb-inspector .plan-details {
    width: 100%;
    max-width: none;
    min-height: 0;
    margin: 16px 0 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }
  .orb-inspector .plan-details__head { align-items: flex-start; }
  .orb-inspector .plan-details h2 { margin-top: 10px; color: #142038; font-size: 1.55rem; font-weight: 540; letter-spacing: -.035em; }
  .orb-inspector .plan-details p { color: #667389; font-size: .74rem; line-height: 1.55; }
  .orb-inspector .plan-feature-list { grid-template-columns: 1fr; gap: 7px; }
  .orb-inspector .plan-feature-list li { min-height: 43px; color: #47566d; background: #f8fafc; }
  .orb-inspector .plan-feature-list li > span { padding-left: 11px; }
  .orb-inspector .field-hint { margin-top: 13px; padding: 11px 12px; border-radius: 12px; color: #718096; background: #f5f7fb; }
  .orb-inspector .plan-upgrade-button { width: 100%; margin-top: 14px; }
}

@media (min-width: 1024px) and (max-width: 1199px) {
  .view-header h1 { font-size: clamp(1.85rem, 3vw, 2.25rem); }

  .orb-workspace {
    grid-template-columns: minmax(400px, 1.22fr) minmax(280px, .78fr);
    gap: 16px;
  }

  .orb-stage-panel {
    min-height: 560px;
    padding: 20px 18px 18px;
    border-radius: 26px;
  }

  .orb-stage-panel__head small { max-width: 190px; text-align: right; }
  .orb-stage-panel .orbit-stage {
    --orbit-x: clamp(150px, 15vw, 176px);
    --orbit-y: clamp(140px, 14vw, 162px);
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: 1.06 / 1;
  }

  .orb-stage-panel .orbit-center,
  .orb-stage-panel .orbit-center .nova-mark { width: 108px; height: 108px; }
  .orb-stage-panel .orbit-center .nova-mark__letter { font-size: 3.7rem; }
  .orb-stage-panel .orbit-center .nova-mark__star { top: 15px; right: 18px; font-size: 1.24rem; }
  .orb-stage-panel .orbit-center .nova-mark__orbit { width: 82px; height: 39px; }

  .orb-stage-panel .plan-node { width: 88px; height: 88px; padding: 7px; }
  .orb-stage-panel .plan-node strong { font-size: .72rem; }
  .orb-stage-panel .plan-node small { font-size: .56rem; }
  .orb-stage-panel .plan-node__icon { margin-bottom: 1px; font-size: 1.13rem; }
  .orb-stage-panel .plan-node--ai { --planet-radius: clamp(148px, 14.8vw, 172px); width: 84px; height: 84px; }
  .orb-stage-panel .plan-node__icon--ai { font-size: 1.3rem; }
  .orb-stage-panel .plan-node.is-owned::after { bottom: -16px; font-size: .56rem; }
  .orb-stage-panel .plan-node__lock { width: 22px; height: 22px; font-size: .55rem; }
  .orb-stage-panel__legend { gap: 14px; }

  .orb-inspector { padding: 18px 16px; border-radius: 26px; }
  .orb-inspector__eyebrow small { display: none; }
  .orb-inspector .plan-details h2 { font-size: 1.32rem; }
  .orb-inspector .plan-feature-list li { min-height: 40px; }
  .orb-inspector .plan-feature-list li > button { min-height: 40px; padding: 7px 9px; }
}

@media (min-width: 1500px) {
  .orb-workspace { grid-template-columns: minmax(680px, 1.42fr) minmax(380px, .7fr); }
  .orb-stage-panel { min-height: 650px; }
  .orb-stage-panel .orbit-stage { --orbit-x: 232px; --orbit-y: 204px; width: min(100%, 660px); }
  .orb-stage-panel .plan-node--ai { --planet-radius: 226px; }
}

@media (min-width: 1024px) {
  .view-header__eyebrow { color: #c8a6ff; }
  .view-header h1 { color: #fff; }
  .view-header p { color: #aeb8c7; }

  .quick-card,
  .module-card,
  .folder-card { background-color: rgba(255,255,255,.04); }
  .module-card__status { background: rgba(5,10,17,.34); }
  .note-title { color: #fff; }
  .note-content { color: #dbe0e7; }
  .note-row,
  .setting-row,
  .task-row { border-bottom-color: rgba(255,255,255,.065); }
  .profile-avatar { color: #fff; border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.07); }
  .tool-button,
  .setting-row__icon { background: rgba(255,255,255,.035); }
  .note-row:hover,
  .setting-row:not(:disabled):not(.setting-row--static):hover { background: rgba(255,255,255,.045); }

  .orb-stage-panel,
  .orb-inspector { border-color: rgba(255,255,255,.105); box-shadow: 0 22px 54px rgba(0,0,0,.28), inset 0 1px rgba(255,255,255,.045); }
  .orb-stage-panel {
    background:
      radial-gradient(circle at 50% 50%, rgba(113,75,190,.14), transparent 24%),
      radial-gradient(circle at 78% 22%, rgba(220,72,199,.08), transparent 28%),
      linear-gradient(145deg, rgba(16,21,31,.98), rgba(7,10,16,.98));
  }
  .orb-stage-panel::before {
    background:
      radial-gradient(circle at 50% 50%, rgba(143,94,229,.12), transparent 24%),
      radial-gradient(circle at 76% 28%, rgba(227,83,197,.07), transparent 27%),
      radial-gradient(circle at 24% 72%, rgba(60,186,211,.065), transparent 30%);
  }
  .orb-stage-panel__head span { color: #eef1f6; }
  .orb-stage-panel__head small { color: #8994a5; }
  .orb-stage-panel__legend { color: #8994a5; }
  .orb-stage-panel .orbit-stage {
    --main-orbit-radius: 220px;
    --focus-radius: 132px;
    --moon-radius: 140px;
  }
  .orb-stage-panel .orbit-stage::before { inset: 11%; border-color: rgba(255,255,255,.13); box-shadow: 0 0 48px rgba(130,83,213,.08); }
  .orb-stage-panel .orbit-stage::after { inset: 26%; border-color: rgba(82,216,223,.105); }
  .orb-stage-panel .orbit-center__label { color: #fff; border-color: rgba(255,255,255,.13); background: rgba(8,12,19,.92); box-shadow: 0 9px 24px rgba(0,0,0,.28); }

  .orb-stage-panel .plan-node {
    --planet-radius: var(--main-orbit-radius);
    --planet-opacity: 1;
    width: 102px;
    height: 102px;
  }
  .orb-stage-panel .plan-node--basic { --planet-angle: -90deg; --open-delay: 0ms; --close-delay: 175ms; }
  .orb-stage-panel .plan-node--plus { --planet-angle: -30deg; --open-delay: 35ms; --close-delay: 140ms; }
  .orb-stage-panel .plan-node--premium { --planet-angle: 30deg; --open-delay: 70ms; --close-delay: 105ms; }
  .orb-stage-panel .plan-node--full { --planet-angle: 90deg; --open-delay: 105ms; --close-delay: 70ms; }
  .orb-stage-panel .plan-node--notes {
    --node-color: #62d99a;
    --planet-angle: 150deg;
    --open-delay: 140ms;
    --close-delay: 35ms;
    display: flex;
    border-color: rgba(124,231,171,.64);
    background: radial-gradient(circle at 35% 23%, #d8ffe8 0 5%, #55ca91 18%, #267b68 50%, #153f43 74%, #0e202c 92%);
  }
  .orb-stage-panel .plan-node--notes .plan-node__texture::before { inset: 16px 23px; border: 1px solid rgba(225,255,238,.3); border-radius: 8px; transform: rotate(-8deg); }
  .orb-stage-panel .plan-node--notes .plan-node__texture::after { width: 40px; height: 1px; left: 31px; top: 42px; background: rgba(229,255,239,.35); transform: rotate(-8deg); box-shadow: 0 9px rgba(229,255,239,.24), 0 18px rgba(229,255,239,.16); }
  .orb-stage-panel .plan-node--ai {
    --planet-angle: 210deg;
    --planet-radius: var(--main-orbit-radius);
    --open-delay: 175ms;
    --close-delay: 0ms;
    width: 102px;
    height: 102px;
  }

  .orbit-stage[data-focus] .plan-node {
    transition: transform .72s cubic-bezier(.2,.82,.22,1), opacity .42s ease, filter .42s ease, box-shadow .42s ease;
  }
  .orbit-stage[data-focus] .plan-node.is-focused {
    z-index: 8;
    opacity: 1;
    filter: none;
    transform: translate(-50%,-50%) rotate(var(--planet-angle)) translateX(var(--focus-radius)) rotate(calc(0deg - var(--planet-angle))) scale(.92);
    box-shadow: inset 0 1px rgba(255,255,255,.38), 0 0 0 6px rgba(171,129,255,.1), 0 18px 40px rgba(0,0,0,.34), 0 0 34px color-mix(in srgb, var(--node-color) 28%, transparent);
  }
  .orbit-stage[data-focus] .plan-node.is-dimmed { opacity: .16; filter: grayscale(.6) saturate(.5); transform: translate(-50%,-50%) rotate(var(--planet-angle)) translateX(var(--planet-radius)) rotate(calc(0deg - var(--planet-angle))) scale(.82); }

  .feature-system { position: absolute; z-index: 9; inset: 0; display: block; pointer-events: none; }
  .feature-system[aria-hidden="true"] { visibility: hidden; }
  .feature-moons { position: absolute; left: 50%; top: 50%; width: 1px; height: 1px; transform: rotate(var(--focus-angle)) translateX(var(--focus-radius)); }
  .feature-moons::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: calc(var(--moon-radius) * 2);
    height: calc(var(--moon-radius) * 2);
    border: 1px solid rgba(198,158,255,.12);
    border-radius: 50%;
    opacity: 0;
    transform: translate(-50%,-50%) scale(.42);
    animation: feature-orbit-bloom .72s cubic-bezier(.18,.82,.22,1) .08s forwards;
  }
  .orbit-stage[data-focus="basic"] { --focus-angle: -90deg; --focus-counter-angle: 90deg; }
  .orbit-stage[data-focus="plus"] { --focus-angle: -30deg; --focus-counter-angle: 30deg; }
  .orbit-stage[data-focus="premium"] { --focus-angle: 30deg; --focus-counter-angle: -30deg; }
  .orbit-stage[data-focus="full"] { --focus-angle: 90deg; --focus-counter-angle: -90deg; }
  .orbit-stage[data-focus="notes"] { --focus-angle: 150deg; --focus-counter-angle: -150deg; }
  .orbit-stage[data-focus="ai"] { --focus-angle: 210deg; --focus-counter-angle: -210deg; }

  .feature-moon {
    --moon-offset: 0deg;
    --moon-counter-offset: 0deg;
    position: absolute;
    left: 0;
    top: 0;
    width: 82px;
    height: 82px;
    padding: 9px 6px;
    display: grid;
    place-content: center;
    gap: 1px;
    visibility: visible;
    border: 1px solid rgba(199,160,255,.42);
    border-radius: 50%;
    color: #fff;
    background: radial-gradient(circle at 36% 24%, rgba(255,255,255,.2), rgba(81,52,139,.92) 44%, rgba(18,21,35,.98) 78%);
    box-shadow: inset 0 1px rgba(255,255,255,.16), 0 12px 28px rgba(0,0,0,.34), 0 0 18px rgba(157,98,255,.15);
    opacity: 0;
    transform: translate(-50%,-50%) rotate(var(--moon-offset)) translateX(6px) rotate(var(--moon-counter-offset)) rotate(var(--focus-counter-angle)) scale(.18);
    pointer-events: auto;
    cursor: pointer;
    animation: feature-moon-emerge .76s cubic-bezier(.18,.84,.2,1) var(--moon-delay, 0ms) forwards;
  }
  .feature-moon__icon { color: #e9d9ff; font-size: .88rem; }
  .feature-moon strong { color: #fff; font-size: .67rem; font-weight: 640; line-height: 1.12; }
  .feature-moon small { color: #c5bdd5; font-size: .49rem; line-height: 1.12; }
  .feature-moon:hover { border-color: rgba(238,211,255,.7); box-shadow: inset 0 1px rgba(255,255,255,.2), 0 14px 30px rgba(0,0,0,.36), 0 0 24px rgba(201,107,236,.23); }
  .feature-moon.is-locked { filter: grayscale(.88); opacity: .45; cursor: not-allowed; }
  .feature-moon:nth-child(1) { --moon-delay: 80ms; }
  .feature-moon:nth-child(2) { --moon-delay: 130ms; }
  .feature-moon:nth-child(3) { --moon-delay: 180ms; }
  .feature-moon:nth-child(4) { --moon-delay: 230ms; }
  .feature-moon:nth-child(5) { --moon-delay: 280ms; }
  .feature-moon:nth-child(1) { --moon-exit-delay: 220ms; }
  .feature-moon:nth-child(2) { --moon-exit-delay: 165ms; }
  .feature-moon:nth-child(3) { --moon-exit-delay: 110ms; }
  .feature-moon:nth-child(4) { --moon-exit-delay: 55ms; }
  .feature-moon:nth-child(5) { --moon-exit-delay: 0ms; }
  .feature-system.is-leaving { z-index: 7; }
  .feature-system.is-leaving .feature-moon {
    pointer-events: none;
    animation: feature-moon-return .68s cubic-bezier(.48,.04,.82,.28) var(--moon-exit-delay, 0ms) both;
  }
  .feature-system.is-leaving .feature-moons::before {
    animation: feature-orbit-return .72s cubic-bezier(.5,.04,.82,.28) both;
  }
  .feature-system[data-count="3"] .feature-moon:nth-child(1) { --moon-offset: -52deg; --moon-counter-offset: 52deg; }
  .feature-system[data-count="3"] .feature-moon:nth-child(2) { --moon-offset: 0deg; --moon-counter-offset: 0deg; }
  .feature-system[data-count="3"] .feature-moon:nth-child(3) { --moon-offset: 52deg; --moon-counter-offset: -52deg; }
  .feature-system[data-count="4"] .feature-moon:nth-child(1) { --moon-offset: -66deg; --moon-counter-offset: 66deg; }
  .feature-system[data-count="4"] .feature-moon:nth-child(2) { --moon-offset: -22deg; --moon-counter-offset: 22deg; }
  .feature-system[data-count="4"] .feature-moon:nth-child(3) { --moon-offset: 22deg; --moon-counter-offset: -22deg; }
  .feature-system[data-count="4"] .feature-moon:nth-child(4) { --moon-offset: 66deg; --moon-counter-offset: -66deg; }
  .feature-system[data-count="5"] .feature-moon:nth-child(1) { --moon-offset: -84deg; --moon-counter-offset: 84deg; }
  .feature-system[data-count="5"] .feature-moon:nth-child(2) { --moon-offset: -42deg; --moon-counter-offset: 42deg; }
  .feature-system[data-count="5"] .feature-moon:nth-child(3) { --moon-offset: 0deg; --moon-counter-offset: 0deg; }
  .feature-system[data-count="5"] .feature-moon:nth-child(4) { --moon-offset: 42deg; --moon-counter-offset: -42deg; }
  .feature-system[data-count="5"] .feature-moon:nth-child(5) { --moon-offset: 84deg; --moon-counter-offset: -84deg; }

  .orb-inspector {
    --paper: #111827;
    --text: #172033;
    --text-soft: #526076;
    --text-muted: #7b8799;
    --line: rgba(24,39,65,.11);
    --line-strong: rgba(24,39,65,.2);
    color: var(--text);
    border-color: rgba(255,255,255,.16);
    background: #fff;
    box-shadow: 0 20px 48px rgba(0,0,0,.24);
  }
  .orb-inspector__eyebrow { border-bottom-color: rgba(24,39,65,.075); }
  .orb-inspector__eyebrow span { color: #26334a; }
  .orb-inspector__eyebrow small { color: #8792a4; }
  .orb-inspector .plan-feature-list li { color: #47566d; background: #f8fafc; }
  .orb-inspector .plan-feature-list li > button:hover { color: #172033; background: #f1f4f8; }

  .feature-group-nav { margin-bottom: 18px; display: grid; grid-template-columns: repeat(auto-fit, minmax(170px,1fr)); gap: 10px; }
  .feature-group-card { min-height: 86px; padding: 14px; border-radius: 18px; }
  .feature-group-card strong { color: var(--text); font-size: .82rem; }
  .feature-group-card small { color: var(--text-muted); font-size: .64rem; }
  .feature-group-card.is-active { border-color: color-mix(in srgb,var(--group-tone) 48%,var(--line)); background: color-mix(in srgb,var(--group-tone) 10%,rgba(255,255,255,.025)); box-shadow: inset 0 0 0 1px color-mix(in srgb,var(--group-tone) 10%,transparent); }
}

@keyframes feature-moon-emerge {
  0% { opacity: 0; transform: translate(-50%,-50%) rotate(var(--moon-offset)) translateX(6px) rotate(var(--moon-counter-offset)) rotate(var(--focus-counter-angle)) scale(.18); }
  100% { opacity: 1; transform: translate(-50%,-50%) rotate(var(--moon-offset)) translateX(var(--moon-radius)) rotate(var(--moon-counter-offset)) rotate(var(--focus-counter-angle)) scale(1); }
}

@keyframes feature-moon-return {
  0% { opacity: 1; transform: translate(-50%,-50%) rotate(var(--moon-offset)) translateX(var(--moon-radius)) rotate(var(--moon-counter-offset)) rotate(var(--focus-counter-angle)) scale(1); }
  72% { opacity: 1; transform: translate(-50%,-50%) rotate(var(--moon-offset)) translateX(34px) rotate(var(--moon-counter-offset)) rotate(var(--focus-counter-angle)) scale(.58); }
  90% { opacity: 1; transform: translate(-50%,-50%) rotate(var(--moon-offset)) translateX(8px) rotate(var(--moon-counter-offset)) rotate(var(--focus-counter-angle)) scale(.24); }
  100% { opacity: 0; transform: translate(-50%,-50%) rotate(var(--moon-offset)) translateX(0) rotate(var(--moon-counter-offset)) rotate(var(--focus-counter-angle)) scale(.04); }
}

@keyframes feature-orbit-bloom {
  0% { opacity: 0; transform: translate(-50%,-50%) scale(.42); }
  100% { opacity: 1; transform: translate(-50%,-50%) scale(1); }
}

@keyframes feature-orbit-return {
  0% { opacity: .82; transform: translate(-50%,-50%) scale(1); }
  78% { opacity: .32; transform: translate(-50%,-50%) scale(.38); }
  100% { opacity: 0; transform: translate(-50%,-50%) scale(.08); }
}

@media (min-width: 1024px) and (max-width: 1199px) {
  .orb-stage-panel .orbit-stage { --main-orbit-radius: clamp(148px, 15vw, 174px); --focus-radius: 103px; --moon-radius: 112px; }
  .orb-stage-panel .plan-node,
  .orb-stage-panel .plan-node--ai { width: 84px; height: 84px; }
  .feature-moon { width: 68px; height: 68px; padding: 6px 4px; }
  .feature-moon__icon { font-size: .75rem; }
  .feature-moon strong { font-size: .56rem; }
  .feature-moon small { display: none; }
}

@media (max-width: 1023px) {
  .orbit-stage {
    --mobile-moon-radius: clamp(106px, 31vw, 132px);
    --focus-color: var(--violet-bright);
  }

  .plan-node--basic { --planet-angle: -90deg; --open-delay: 0ms; --close-delay: 175ms; }
  .plan-node--plus { --planet-angle: -30deg; --planet-radius: var(--orbit-x); --open-delay: 35ms; --close-delay: 140ms; }
  .plan-node--premium { --planet-angle: 30deg; --planet-radius: var(--orbit-x); --open-delay: 70ms; --close-delay: 105ms; }
  .plan-node--full { --planet-angle: 90deg; --open-delay: 105ms; --close-delay: 70ms; }
  .plan-node--notes {
    --node-color: #62d99a;
    --planet-angle: 150deg;
    --planet-radius: var(--orbit-x);
    --open-delay: 140ms;
    --close-delay: 35ms;
    display: flex;
    border-color: rgba(124,231,171,.62);
    background: radial-gradient(circle at 36% 24%, #d8ffe8 0 5%, #55ca91 18%, #267b68 52%, #112d35 84%);
  }
  .plan-node--ai {
    --node-color: #ef68dc;
    --planet-angle: 210deg;
    --planet-radius: var(--orbit-x);
    --open-delay: 175ms;
    --close-delay: 0ms;
    display: flex;
    border-color: rgba(247,151,233,.68);
    background: radial-gradient(circle at 36% 22%, #ffd7fa 0 5%, #e864d7 18%, #8f43c7 48%, #281647 82%);
  }

  .orbit-stage[data-focus="basic"] { --focus-color: #7ed8ff; }
  .orbit-stage[data-focus="plus"] { --focus-color: #67e4ed; }
  .orbit-stage[data-focus="premium"] { --focus-color: #f2d47f; }
  .orbit-stage[data-focus="full"] { --focus-color: #d9ddff; }
  .orbit-stage[data-focus="notes"] { --focus-color: #62d99a; }
  .orbit-stage[data-focus="ai"] { --focus-color: #ef68dc; }

  .orbit-stage[data-focus]::before,
  .orbit-stage[data-focus]::after {
    opacity: .18;
    transform: scale(.7);
    transition: opacity .38s ease, transform .62s cubic-bezier(.2,.82,.22,1);
  }
  .orbit-stage[data-focus] .orbit-center { pointer-events: none; }
  .orbit-stage[data-focus] .orbit-center .nova-mark {
    opacity: 0;
    filter: blur(4px);
    transform: scale(.5);
    transition: opacity .32s ease, filter .42s ease, transform .54s cubic-bezier(.2,.82,.22,1);
  }
  .orbit-stage[data-focus] .orbit-center__label { opacity: 0; transform: translateX(-50%) translateY(7px); pointer-events: none; }

  .orbit-stage[data-state="open"][data-focus] .plan-node {
    transition: transform .68s cubic-bezier(.2,.82,.22,1), opacity .34s ease, filter .34s ease, box-shadow .34s ease;
  }
  .orbit-stage[data-state="open"][data-focus] .plan-node.is-focused,
  .orbit-stage[data-state="open"][data-focus] .plan-node.is-focused:hover,
  .orbit-stage[data-state="open"][data-focus] .plan-node.is-focused:active {
    z-index: 11;
    visibility: visible;
    opacity: 1;
    filter: none;
    pointer-events: auto;
    transform: translate(-50%,-50%) scale(1.08);
    box-shadow: inset 0 1px rgba(255,255,255,.32), 0 0 0 7px color-mix(in srgb, var(--focus-color) 12%, transparent), 0 18px 42px rgba(0,0,0,.38), 0 0 34px color-mix(in srgb, var(--focus-color) 30%, transparent);
  }
  .orbit-stage[data-state="open"][data-focus] .plan-node.is-focused.is-owned::after { opacity: 0; }
  .orbit-stage[data-state="open"][data-focus] .plan-node.is-dimmed {
    opacity: 0;
    filter: blur(4px) grayscale(.65);
    pointer-events: none;
    transform: translate(-50%,-50%) rotate(var(--planet-angle)) translateX(var(--planet-radius)) rotate(calc(0deg - var(--planet-angle))) scale(.42);
  }

  .feature-system { position: absolute; z-index: 10; inset: 0; display: block; pointer-events: none; }
  .feature-system[aria-hidden="true"] { visibility: hidden; }
  .feature-moons { position: absolute; left: 50%; top: 50%; width: 1px; height: 1px; }
  .feature-moons::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: calc(var(--mobile-moon-radius) * 2);
    height: calc(var(--mobile-moon-radius) * 2);
    border: 1px solid color-mix(in srgb, var(--focus-color) 25%, transparent);
    border-radius: 50%;
    opacity: 0;
    transform: translate(-50%,-50%) scale(.35);
    box-shadow: 0 0 28px color-mix(in srgb, var(--focus-color) 8%, transparent);
    animation: mobile-feature-orbit .7s cubic-bezier(.2,.82,.22,1) .06s forwards;
  }
  .feature-moon {
    --moon-angle: -90deg;
    --moon-delay: 70ms;
    position: absolute;
    left: 0;
    top: 0;
    width: 70px;
    height: 70px;
    padding: 7px 4px;
    display: grid;
    place-content: center;
    gap: 2px;
    visibility: visible;
    border: 1px solid color-mix(in srgb, var(--focus-color) 50%, rgba(255,255,255,.2));
    border-radius: 50%;
    color: #fff;
    background: radial-gradient(circle at 36% 24%, rgba(255,255,255,.24), color-mix(in srgb, var(--focus-color) 34%, #3d285e) 42%, #111522 82%);
    box-shadow: inset 0 1px rgba(255,255,255,.17), 0 12px 26px rgba(0,0,0,.34), 0 0 20px color-mix(in srgb, var(--focus-color) 18%, transparent);
    opacity: 0;
    transform: translate(-50%,-50%) rotate(var(--moon-angle)) translateX(8px) rotate(calc(0deg - var(--moon-angle))) scale(.2);
    pointer-events: auto;
    cursor: pointer;
    animation: mobile-feature-emerge .7s cubic-bezier(.18,.84,.2,1) var(--moon-delay) forwards;
  }
  .feature-moon__icon { color: #fff; font-size: .82rem; text-shadow: 0 0 12px color-mix(in srgb, var(--focus-color) 65%, transparent); }
  .feature-moon strong { color: #fff; font-size: .61rem; font-weight: 650; line-height: 1.08; }
  .feature-moon small { display: none; }
  .feature-moon.is-locked { filter: grayscale(.9) brightness(.7); cursor: not-allowed; }
  .feature-moon:nth-child(1) { --moon-delay: 80ms; }
  .feature-moon:nth-child(2) { --moon-delay: 130ms; }
  .feature-moon:nth-child(3) { --moon-delay: 180ms; }
  .feature-moon:nth-child(4) { --moon-delay: 230ms; }
  .feature-moon:nth-child(5) { --moon-delay: 280ms; }
  .feature-moon:nth-child(1) { --moon-exit-delay: 220ms; }
  .feature-moon:nth-child(2) { --moon-exit-delay: 165ms; }
  .feature-moon:nth-child(3) { --moon-exit-delay: 110ms; }
  .feature-moon:nth-child(4) { --moon-exit-delay: 55ms; }
  .feature-moon:nth-child(5) { --moon-exit-delay: 0ms; }
  .feature-system.is-leaving { z-index: 7; }
  .feature-system.is-leaving .feature-moon {
    pointer-events: none;
    animation: mobile-feature-moon-return .68s cubic-bezier(.48,.04,.82,.28) var(--moon-exit-delay, 0ms) both;
  }
  .feature-system.is-leaving .feature-moons::before {
    animation: feature-orbit-return .72s cubic-bezier(.5,.04,.82,.28) both;
  }
  .feature-system[data-count="3"] .feature-moon:nth-child(1) { --moon-angle: -90deg; }
  .feature-system[data-count="3"] .feature-moon:nth-child(2) { --moon-angle: 30deg; }
  .feature-system[data-count="3"] .feature-moon:nth-child(3) { --moon-angle: 150deg; }
  .feature-system[data-count="4"] .feature-moon:nth-child(1) { --moon-angle: -135deg; }
  .feature-system[data-count="4"] .feature-moon:nth-child(2) { --moon-angle: -45deg; }
  .feature-system[data-count="4"] .feature-moon:nth-child(3) { --moon-angle: 45deg; }
  .feature-system[data-count="4"] .feature-moon:nth-child(4) { --moon-angle: 135deg; }
  .feature-system[data-count="5"] .feature-moon:nth-child(1) { --moon-angle: -90deg; }
  .feature-system[data-count="5"] .feature-moon:nth-child(2) { --moon-angle: -18deg; }
  .feature-system[data-count="5"] .feature-moon:nth-child(3) { --moon-angle: 54deg; }
  .feature-system[data-count="5"] .feature-moon:nth-child(4) { --moon-angle: 126deg; }
  .feature-system[data-count="5"] .feature-moon:nth-child(5) { --moon-angle: 198deg; }

  .orb-mobile-back {
    position: absolute;
    z-index: 14;
    left: 50%;
    bottom: 2px;
    min-height: 34px;
    padding: 7px 13px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1px solid color-mix(in srgb, var(--focus-color) 34%, rgba(255,255,255,.16));
    border-radius: 999px;
    color: #f4efff;
    background: rgba(10,14,22,.92);
    box-shadow: 0 10px 24px rgba(0,0,0,.28), 0 0 18px color-mix(in srgb, var(--focus-color) 10%, transparent);
    transform: translateX(-50%);
    font-size: .68rem;
    font-weight: 620;
    white-space: nowrap;
    cursor: pointer;
    animation: mobile-back-arrive .34s ease .38s both;
  }
  .orb-mobile-back[hidden] { display: none; }
  .orb-mobile-back:disabled { opacity: .48; pointer-events: none; }
}

@media (max-width: 390px) {
  .feature-moon { width: 62px; height: 62px; padding: 5px 3px; }
  .feature-moon__icon { font-size: .72rem; }
  .feature-moon strong { font-size: .55rem; }
}

@keyframes mobile-feature-orbit {
  0% { opacity: 0; transform: translate(-50%,-50%) scale(.35); }
  100% { opacity: .82; transform: translate(-50%,-50%) scale(1); }
}

@keyframes mobile-feature-emerge {
  0% { opacity: 0; transform: translate(-50%,-50%) rotate(var(--moon-angle)) translateX(8px) rotate(calc(0deg - var(--moon-angle))) scale(.2); }
  100% { opacity: 1; transform: translate(-50%,-50%) rotate(var(--moon-angle)) translateX(var(--mobile-moon-radius)) rotate(calc(0deg - var(--moon-angle))) scale(1); }
}

@keyframes mobile-feature-moon-return {
  0% { opacity: 1; transform: translate(-50%,-50%) rotate(var(--moon-angle)) translateX(var(--mobile-moon-radius)) rotate(calc(0deg - var(--moon-angle))) scale(1); }
  72% { opacity: 1; transform: translate(-50%,-50%) rotate(var(--moon-angle)) translateX(31px) rotate(calc(0deg - var(--moon-angle))) scale(.56); }
  90% { opacity: 1; transform: translate(-50%,-50%) rotate(var(--moon-angle)) translateX(7px) rotate(calc(0deg - var(--moon-angle))) scale(.22); }
  100% { opacity: 0; transform: translate(-50%,-50%) rotate(var(--moon-angle)) translateX(0) rotate(calc(0deg - var(--moon-angle))) scale(.04); }
}

@keyframes mobile-back-arrive {
  0% { opacity: 0; transform: translate(-50%,7px); }
  100% { opacity: 1; transform: translate(-50%,0); }
}

/* Cinematic planet materials shared by desktop and mobile. */
.orbit-stage[data-focus="basic"] { --focus-color: #74dcff; }
.orbit-stage[data-focus="plus"] { --focus-color: #67e4ed; }
.orbit-stage[data-focus="premium"] { --focus-color: #f4d57d; }
.orbit-stage[data-focus="full"] { --focus-color: #d9dcff; }
.orbit-stage[data-focus="notes"] { --focus-color: #66e0a0; }
.orbit-stage[data-focus="ai"] { --focus-color: #f07add; }

.plan-node {
  isolation: isolate;
  background-clip: padding-box;
}
.plan-node__aura {
  position: absolute;
  z-index: 0;
  inset: -7px;
  display: block;
  border: 1px solid color-mix(in srgb, var(--node-color) 42%, transparent);
  border-radius: 50%;
  opacity: .72;
  box-shadow: 0 0 18px color-mix(in srgb, var(--node-color) 22%, transparent), inset 0 0 14px color-mix(in srgb, var(--node-color) 10%, transparent);
  pointer-events: none;
}
.plan-node__texture,
.orb-stage-panel .plan-node__texture {
  position: absolute;
  z-index: 1;
  inset: 2px;
  display: block;
  overflow: hidden;
  border-radius: 50%;
  box-shadow: inset 12px 12px 18px rgba(255,255,255,.09), inset -17px -19px 24px rgba(0,0,0,.46), inset 0 0 0 1px rgba(255,255,255,.12);
  pointer-events: none;
}
.plan-node__texture::before,
.plan-node__texture::after,
.orb-stage-panel .plan-node__texture::before,
.orb-stage-panel .plan-node__texture::after {
  content: "";
  position: absolute;
  pointer-events: none;
}
.plan-node__icon,
.plan-node strong,
.plan-node small,
.plan-node__lock {
  position: relative;
  z-index: 4;
  text-shadow: 0 2px 10px rgba(0,0,0,.48), 0 0 14px color-mix(in srgb, var(--node-color) 30%, transparent);
}
.plan-node strong { letter-spacing: -.015em; }
.plan-node small { color: rgba(255,255,255,.72); }
.orbit-stage .plan-node.is-locked { filter: grayscale(.82) saturate(.28) brightness(.76); }
.orbit-stage[data-focus] .plan-node.is-focused.is-locked { filter: grayscale(.78) saturate(.32) brightness(.82); }
.plan-node__lock {
  width: 23px;
  height: 23px;
  border-color: rgba(255,255,255,.22);
  color: #eef1f5;
  background: rgba(8,12,19,.8);
  box-shadow: 0 5px 12px rgba(0,0,0,.28), inset 0 1px rgba(255,255,255,.1);
  font-size: .58rem;
}

.orbit-stage .plan-node--basic {
  --node-color: #74dcff;
  border-color: rgba(150,231,255,.7);
  background:
    radial-gradient(circle at 29% 19%, rgba(255,255,255,.96) 0 4%, rgba(164,239,255,.7) 5%, transparent 14%),
    radial-gradient(ellipse at 27% 62%, #55c9ed 0 12%, transparent 13%),
    radial-gradient(ellipse at 72% 39%, #35a8d7 0 16%, transparent 17%),
    linear-gradient(145deg, #94e9ff 0%, #258fc4 34%, #114f86 63%, #07192f 100%);
  box-shadow: inset 0 1px rgba(255,255,255,.5), 0 16px 34px rgba(0,0,0,.32), 0 0 28px rgba(62,190,239,.28);
}
.orbit-stage .plan-node--basic .plan-node__aura { border-color: rgba(107,220,255,.46); box-shadow: 0 0 22px rgba(63,194,239,.28), inset 0 0 16px rgba(129,229,255,.12); }
.orbit-stage .plan-node--basic .plan-node__texture::before {
  width: 126%;
  height: 34%;
  left: -13%;
  top: 27%;
  border-top: 2px solid rgba(229,250,255,.42);
  border-bottom: 1px solid rgba(194,241,255,.2);
  border-radius: 50%;
  transform: rotate(-16deg);
  box-shadow: 0 12px 0 -10px rgba(230,251,255,.35), 0 23px 0 -11px rgba(161,227,250,.24);
}
.orbit-stage .plan-node--basic .plan-node__texture::after {
  inset: 0;
  background:
    radial-gradient(ellipse at 24% 60%, rgba(209,247,255,.35) 0 7%, transparent 8%),
    radial-gradient(ellipse at 68% 35%, rgba(189,239,255,.24) 0 9%, transparent 10%),
    radial-gradient(ellipse at 61% 74%, rgba(8,49,87,.36) 0 13%, transparent 14%);
}

.orbit-stage .plan-node--plus {
  --node-color: #72ddff;
  border-color: rgba(128,222,255,.66);
  background:
    radial-gradient(circle at 31% 20%, rgba(225,250,255,.9) 0 4%, transparent 13%),
    repeating-linear-gradient(168deg, rgba(123,221,255,.34) 0 7%, rgba(49,95,181,.08) 8% 16%),
    linear-gradient(145deg, #61bfe9 0%, #3a5fbb 38%, #2a2f82 64%, #101538 100%);
  box-shadow: inset 0 1px rgba(255,255,255,.45), 0 16px 34px rgba(0,0,0,.34), 0 0 30px rgba(83,172,240,.27);
}
.orbit-stage .plan-node--plus .plan-node__aura {
  inset: 31% -24%;
  border: 3px solid rgba(141,224,255,.6);
  border-left-color: rgba(122,171,255,.18);
  border-right-color: rgba(186,240,255,.82);
  border-radius: 50%;
  opacity: .88;
  transform: rotate(-16deg);
  box-shadow: 0 0 12px rgba(93,194,245,.3), inset 0 0 8px rgba(255,255,255,.16);
}
.orbit-stage .plan-node--plus .plan-node__texture::before {
  width: 126%;
  height: 56%;
  left: -13%;
  top: 20%;
  border-top: 3px solid rgba(199,242,255,.36);
  border-bottom: 4px solid rgba(30,47,117,.3);
  border-radius: 50%;
  transform: rotate(-12deg);
  box-shadow: inset 0 9px rgba(116,210,244,.15), 0 9px rgba(179,233,255,.12);
}
.orbit-stage .plan-node--plus .plan-node__texture::after {
  width: 18%;
  height: 9%;
  right: 18%;
  top: 57%;
  border-radius: 50%;
  background: rgba(205,241,255,.34);
  box-shadow: -35px -25px 0 -3px rgba(215,244,255,.24), 13px -31px 0 -5px rgba(255,255,255,.34);
  transform: rotate(-12deg);
}

.orbit-stage .plan-node--premium {
  --node-color: #f4d57d;
  border-color: rgba(255,224,139,.74);
  background:
    radial-gradient(circle at 30% 18%, rgba(255,255,237,.95) 0 5%, transparent 14%),
    radial-gradient(circle at 71% 34%, rgba(255,221,123,.36) 0 8%, transparent 9%),
    radial-gradient(circle at 28% 70%, rgba(112,62,18,.22) 0 12%, transparent 13%),
    linear-gradient(145deg, #ffe69b 0%, #d89c3d 39%, #93521c 67%, #362116 100%);
  box-shadow: inset 0 1px rgba(255,255,255,.52), 0 16px 34px rgba(0,0,0,.34), 0 0 30px rgba(238,185,76,.28);
}
.orbit-stage .plan-node--premium .plan-node__aura {
  inset: -9px;
  border-color: rgba(255,220,122,.5);
  box-shadow: 0 0 24px rgba(236,178,63,.3), 12px -7px 18px rgba(255,225,132,.09), inset 0 0 15px rgba(255,236,183,.1);
}
.orbit-stage .plan-node--premium .plan-node__texture::before {
  width: 112%;
  height: 35%;
  left: -6%;
  top: 37%;
  border-top: 2px solid rgba(255,237,180,.34);
  border-bottom: 1px solid rgba(92,50,17,.3);
  border-radius: 50%;
  transform: rotate(13deg);
  box-shadow: 0 10px 0 -8px rgba(255,220,125,.22);
}
.orbit-stage .plan-node--premium .plan-node__texture::after {
  width: 13px;
  height: 13px;
  right: 17%;
  top: 23%;
  border: 1px solid rgba(255,241,196,.25);
  border-radius: 50%;
  background: rgba(97,50,12,.12);
  box-shadow: -41px 34px 0 4px rgba(91,47,12,.16), -22px -1px 0 -3px rgba(255,241,194,.24), 8px 36px 0 -2px rgba(255,226,143,.18);
}

.orbit-stage .plan-node--full {
  --node-color: #dfe1ff;
  border-color: rgba(226,225,255,.76);
  background:
    radial-gradient(circle at 30% 18%, rgba(255,255,255,.98) 0 5%, transparent 14%),
    radial-gradient(circle at 73% 36%, rgba(105,233,241,.32) 0 13%, transparent 28%),
    radial-gradient(circle at 34% 73%, rgba(239,126,227,.28) 0 12%, transparent 31%),
    conic-gradient(from 28deg, #a9daf0, #c7b1ee 18%, #6a8fd4 36%, #d6a3da 58%, #75c5c9 76%, #9b9fd4 100%);
  box-shadow: inset 0 1px rgba(255,255,255,.62), 0 17px 36px rgba(0,0,0,.36), 0 0 32px rgba(166,155,237,.3);
}
.orbit-stage .plan-node--full .plan-node__aura {
  inset: -9px;
  border-color: rgba(205,199,255,.58);
  box-shadow: 0 0 26px rgba(149,135,235,.29), inset 0 0 16px rgba(107,230,236,.13);
}
.orbit-stage .plan-node--full .plan-node__texture::before {
  inset: 8%;
  border: 1px solid rgba(255,255,255,.26);
  border-left-color: rgba(107,235,242,.38);
  border-right-color: rgba(245,151,232,.34);
  border-radius: 48% 52% 46% 54%;
  transform: rotate(34deg);
  box-shadow: inset 8px 0 18px rgba(105,226,235,.12), inset -8px 0 18px rgba(242,137,223,.1);
}
.orbit-stage .plan-node--full .plan-node__texture::after {
  inset: 0;
  background:
    radial-gradient(circle at 25% 38%, rgba(255,255,255,.62) 0 1px, transparent 2px),
    radial-gradient(circle at 70% 27%, rgba(255,255,255,.5) 0 1px, transparent 2px),
    radial-gradient(circle at 73% 72%, rgba(255,255,255,.42) 0 1px, transparent 2px),
    radial-gradient(circle at 39% 76%, rgba(255,255,255,.34) 0 1px, transparent 2px);
}

.orbit-stage .plan-node--notes {
  --node-color: #66e0a0;
  border-color: rgba(132,239,180,.72);
  background:
    radial-gradient(circle at 29% 18%, rgba(237,255,243,.96) 0 5%, transparent 14%),
    radial-gradient(ellipse at 68% 34%, rgba(146,246,188,.28) 0 14%, transparent 15%),
    radial-gradient(ellipse at 31% 69%, rgba(15,82,72,.38) 0 13%, transparent 14%),
    linear-gradient(145deg, #7aebb0 0%, #2fa47c 38%, #17665f 65%, #0c2634 100%);
  box-shadow: inset 0 1px rgba(255,255,255,.5), 0 16px 34px rgba(0,0,0,.34), 0 0 30px rgba(75,211,143,.28);
}
.orbit-stage .plan-node--notes .plan-node__aura { border-color: rgba(102,224,160,.48); box-shadow: 0 0 24px rgba(73,209,141,.26), inset 0 0 16px rgba(152,246,192,.1); }
.orbit-stage .plan-node--notes .plan-node__texture::before {
  inset: 14% 24%;
  border: 1px solid rgba(226,255,237,.34);
  border-radius: 8px;
  transform: rotate(-9deg);
  box-shadow: inset 0 0 10px rgba(224,255,236,.08);
}
.orbit-stage .plan-node--notes .plan-node__texture::after {
  width: 42%;
  height: 1px;
  left: 31%;
  top: 40%;
  background: rgba(225,255,237,.38);
  transform: rotate(-9deg);
  box-shadow: 0 9px rgba(225,255,237,.27), 0 18px rgba(225,255,237,.18), -9px -14px 0 -1px rgba(225,255,237,.25);
}

.orbit-stage .plan-node--ai {
  --node-color: #f07add;
  border-color: rgba(249,156,232,.76);
  background:
    radial-gradient(circle at 29% 17%, rgba(255,247,255,.98) 0 4%, rgba(255,187,242,.62) 5%, transparent 14%),
    radial-gradient(circle at 72% 31%, rgba(255,101,221,.52) 0 7%, transparent 24%),
    radial-gradient(circle at 33% 72%, rgba(126,87,226,.38) 0 11%, transparent 28%),
    conic-gradient(from 210deg, #31135f, #8736b5 24%, #d94fc8 46%, #6e37b8 68%, #1b1745 100%);
  box-shadow: inset 0 1px rgba(255,255,255,.54), 0 17px 36px rgba(0,0,0,.36), 0 0 34px rgba(225,83,205,.34);
}
.orbit-stage .plan-node--ai .plan-node__aura {
  inset: -9px;
  border-color: rgba(246,126,225,.58);
  box-shadow: 0 0 28px rgba(225,75,203,.32), inset 0 0 17px rgba(176,107,255,.18);
}
.orbit-stage .plan-node--ai .plan-node__texture::before {
  inset: 13%;
  border: 1px solid rgba(255,220,250,.3);
  border-radius: 50%;
  transform: rotate(29deg) scaleX(.72);
  box-shadow: inset 0 0 20px rgba(255,255,255,.1), 0 0 12px rgba(240,102,217,.16);
}
.orbit-stage .plan-node--ai .plan-node__texture::after {
  width: 4px;
  height: 4px;
  left: 24%;
  top: 25%;
  border-radius: 50%;
  background: #fff;
  box-shadow: 41px 5px rgba(255,255,255,.8), 52px 38px rgba(255,255,255,.56), 12px 48px rgba(255,255,255,.52), 29px 25px 0 -1px rgba(255,207,247,.8);
}

.orbit-stage[data-state="opening"] .plan-node__aura { animation: planet-aura-awaken .82s ease-out var(--open-delay) both; }
.orbit-stage[data-focus] .plan-node.is-focused .plan-node__aura { animation: planet-focus-bloom .68s cubic-bezier(.2,.82,.22,1) both; }
.orbit-stage[data-focus-state="closing"] .plan-node.is-focused .plan-node__aura { animation: planet-absorb-pulse .94s cubic-bezier(.22,.72,.2,1) both; }
.orbit-stage[data-focus-state="closing"] .plan-node.is-focused .plan-node__texture { animation: planet-absorb-surface .94s cubic-bezier(.22,.72,.2,1) both; }

.feature-moon {
  isolation: isolate;
  overflow: visible;
  background: rgba(12,16,26,.9);
}
.feature-moon__surface {
  position: absolute;
  z-index: 0;
  inset: 3px;
  overflow: hidden;
  border-radius: 50%;
  background:
    radial-gradient(circle at 31% 20%, rgba(255,255,255,.78) 0 4%, transparent 13%),
    radial-gradient(circle at 66% 65%, color-mix(in srgb, var(--focus-color, #c78cff) 44%, #162032) 0 15%, transparent 31%),
    linear-gradient(145deg, color-mix(in srgb, var(--focus-color, #c78cff) 66%, #d9efff), color-mix(in srgb, var(--focus-color, #c78cff) 52%, #442c6b) 43%, #111725 100%);
  box-shadow: inset 7px 7px 11px rgba(255,255,255,.08), inset -11px -12px 16px rgba(0,0,0,.48), inset 0 0 0 1px rgba(255,255,255,.12), 0 0 15px color-mix(in srgb, var(--focus-color, #c78cff) 18%, transparent);
  pointer-events: none;
}
.feature-moon__surface::before,
.feature-moon__surface::after { content: ""; position: absolute; pointer-events: none; }
.feature-moon__surface::before {
  width: 120%;
  height: 38%;
  left: -10%;
  top: 31%;
  border-top: 1px solid rgba(255,255,255,.27);
  border-bottom: 1px solid rgba(255,255,255,.1);
  border-radius: 50%;
  transform: rotate(-14deg);
}
.feature-moon__surface::after {
  width: 7px;
  height: 7px;
  right: 19%;
  top: 23%;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
  box-shadow: -24px 27px 0 3px rgba(0,0,0,.13), 8px 25px 0 -2px rgba(255,255,255,.17);
}
.feature-moon__icon,
.feature-moon strong,
.feature-moon small { position: relative; z-index: 2; }
.feature-moon__icon { text-shadow: 0 0 12px color-mix(in srgb, var(--focus-color, #c78cff) 70%, transparent); }
.feature-moon:nth-child(2) .feature-moon__surface { filter: hue-rotate(18deg) saturate(1.12); }
.feature-moon:nth-child(2) .feature-moon__surface::before { height: 48%; top: 25%; border-top-width: 2px; transform: rotate(13deg); }
.feature-moon:nth-child(3) .feature-moon__surface { filter: hue-rotate(-18deg) saturate(.92); }
.feature-moon:nth-child(3) .feature-moon__surface::before { width: 78%; height: 78%; left: 11%; top: 11%; border: 1px solid rgba(255,255,255,.14); transform: rotate(28deg); }
.feature-moon:nth-child(4) .feature-moon__surface { filter: hue-rotate(36deg) saturate(1.04); }
.feature-moon:nth-child(4) .feature-moon__surface::before { height: 55%; top: 23%; border-top-color: rgba(255,255,255,.34); transform: rotate(-28deg); }
.feature-moon:nth-child(5) .feature-moon__surface { filter: hue-rotate(-38deg) saturate(1.18); }
.feature-moon:nth-child(5) .feature-moon__surface::after { width: 3px; height: 3px; border: 0; background: #fff; box-shadow: -25px 21px rgba(255,255,255,.5), 7px 22px rgba(255,255,255,.7), -7px 35px rgba(255,255,255,.42); }
.feature-moon.is-locked .feature-moon__surface { filter: grayscale(.92) brightness(.62); }

@keyframes planet-aura-awaken {
  0% { opacity: 0; filter: blur(8px); }
  100% { opacity: .76; filter: blur(0); }
}

@keyframes planet-focus-bloom {
  0% { opacity: .2; filter: blur(9px) brightness(1.35); }
  100% { opacity: .95; filter: blur(0) brightness(1); }
}

@keyframes planet-absorb-pulse {
  0%, 42% { opacity: .95; filter: brightness(1); }
  78% { opacity: 1; filter: brightness(1.72) drop-shadow(0 0 13px currentColor); }
  100% { opacity: .95; filter: brightness(1.08) drop-shadow(0 0 3px currentColor); }
}

@keyframes planet-absorb-surface {
  0%, 45% { filter: brightness(1) saturate(1); }
  80% { filter: brightness(1.45) saturate(1.24); }
  100% { filter: brightness(1.04) saturate(1); }
}

.orbit-stage.is-restoring .plan-node {
  transition: transform .72s cubic-bezier(.2,.82,.22,1), opacity .46s ease, filter .46s ease, box-shadow .46s ease !important;
}
.orbit-stage[data-motion="lite"] .feature-system.is-leaving .feature-moon {
  animation-duration: .24s;
  animation-delay: 0ms;
}
.orbit-stage[data-motion="lite"] .feature-system.is-leaving .feature-moons::before { animation-duration: .26s; }

.orbit-stage[data-motion="reduced"] .plan-node__aura,
.orbit-stage[data-motion="reduced"] .feature-moons::before,
.orbit-stage[data-motion="reduced"] .orb-mobile-back { animation: none !important; transition: none !important; opacity: .82; }
.orbit-stage[data-motion="reduced"] .feature-moons::before { transform: translate(-50%,-50%) scale(1); }

@media (min-width: 1024px) {
  .orbit-stage[data-motion="reduced"] .feature-moon {
    animation: none !important;
    opacity: 1;
    transform: translate(-50%,-50%) rotate(var(--moon-offset)) translateX(var(--moon-radius)) rotate(var(--moon-counter-offset)) rotate(var(--focus-counter-angle)) scale(1);
  }
}

@media (max-width: 1023px) {
  .orbit-stage[data-motion="reduced"] .feature-moon {
    animation: none !important;
    opacity: 1;
    transform: translate(-50%,-50%) rotate(var(--moon-angle)) translateX(var(--mobile-moon-radius)) rotate(calc(0deg - var(--moon-angle))) scale(1);
  }
}

/* Phase 3 — Today and Planner experience. Nova Orb rules above remain frozen. */
.today-experience,
.planner-experience { --experience-accent: var(--nk-area-today); }
.planner-experience { --experience-accent: var(--nk-area-planner); }
.today-kicker,
.planner-kicker { display: block; color: var(--experience-accent); font-size: .64rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.today-header__action { color: var(--nk-paper-ink); border-color: rgba(243,203,103,.72); background: var(--nk-gold); }
.today-workspace { display: grid; gap: 12px; }

.today-focus-card { min-height: 172px; padding: 22px; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-color: rgba(243,203,103,.28); background: radial-gradient(circle at 86% 10%,rgba(243,203,103,.17),transparent 32%),linear-gradient(145deg,#151c28,#090e16 70%); }
.today-focus-card::after { content: ""; width: 250px; height: 250px; position: absolute; right: -120px; bottom: -190px; border: 1px solid rgba(243,203,103,.22); border-radius: 50%; box-shadow: 0 0 0 34px rgba(243,203,103,.025),0 0 0 72px rgba(158,108,255,.025); }
.today-focus-card__copy { min-width: 0; position: relative; z-index: 1; }
.today-focus-card h2 { margin: 7px 0 5px; font-size: clamp(1.35rem,4vw,2rem); letter-spacing: -.035em; }
.today-focus-card p { margin: 0; color: var(--text-soft); font-size: .78rem; }
.today-focus-card p strong { color: var(--gold-bright); }
.today-focus-card a { width: fit-content; margin-top: 16px; display: flex; align-items: center; gap: 8px; color: var(--gold-bright); font-size: .72rem; font-weight: 650; text-decoration: none; }
.today-focus-card--empty { align-items: flex-start; }
.today-focus-card--empty p { max-width: 420px; }
.today-focus-card--empty .button { margin-top: 16px; }
.today-progress-ring { width: 92px; aspect-ratio: 1; position: relative; z-index: 1; flex: 0 0 auto; display: grid; place-items: center; align-content: center; border-radius: 50%; background: radial-gradient(circle at center,#0d131d 59%,transparent 61%),conic-gradient(var(--gold) var(--progress-width),rgba(255,255,255,.1) 0); box-shadow: 0 0 0 8px rgba(255,255,255,.025),0 18px 38px rgba(0,0,0,.28); }
.today-progress-ring strong,
.today-progress-ring span { display: block; }
.today-progress-ring strong { font-size: 1.12rem; }
.today-progress-ring span { margin-top: 2px; color: var(--text-muted); font-size: .5rem; text-transform: uppercase; }

.today-plan-card,
.planner-agenda-card { overflow: hidden; border: 1px solid var(--nk-border-paper); border-radius: var(--nk-radius-lg); color: var(--nk-paper-ink); background: linear-gradient(145deg,#fff,var(--nk-paper)); box-shadow: var(--nk-shadow-paper); }
.today-plan-card > header,
.planner-agenda-card > header { padding: 17px 18px 13px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--nk-border-paper); }
.today-plan-card > header h2,
.planner-agenda-card > header h2 { margin: 4px 0 0; font-size: 1.05rem; letter-spacing: -.025em; text-transform: capitalize; }
.today-plan-card > header button,
.today-plan-card > header a,
.planner-agenda-card > header a { padding: 0; border: 0; color: #6c51d5; background: transparent; cursor: pointer; font-size: .69rem; font-weight: 700; text-decoration: none; }
.today-plan-card .today-kicker,
.planner-agenda-card .planner-kicker { color: #7457de; }
.today-plan-list { padding: 7px 10px 10px; }
.today-plan-row { width: 100%; min-height: 68px; padding: 9px 7px; display: grid; grid-template-columns: 43px 26px minmax(0,1fr) auto; align-items: center; gap: 9px; border: 0; border-bottom: 1px solid rgba(21,27,37,.08); color: var(--nk-paper-ink); background: transparent; text-align: left; cursor: pointer; }
.today-plan-row:last-child { border-bottom: 0; }
.today-plan-row__time { color: var(--nk-paper-ink-soft); font-size: .64rem; font-variant-numeric: tabular-nums; }
.today-plan-row__mark { width: 22px; height: 22px; display: grid; place-items: center; border: 1.5px solid #9aa1ad; border-radius: 7px; color: #fff; font-size: .65rem; }
.today-plan-row__copy { min-width: 0; }
.today-plan-row__copy strong,
.today-plan-row__copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.today-plan-row__copy strong { font-size: .78rem; }
.today-plan-row__copy small { margin-top: 3px; color: var(--nk-paper-ink-soft); font-size: .62rem; }
.today-plan-row__state { padding: 4px 7px; border-radius: 999px; color: #7256d7; background: rgba(116,87,222,.1); font-size: .54rem; font-weight: 700; }
.today-plan-row.is-complete { opacity: .62; }
.today-plan-row.is-complete .today-plan-row__mark { border-color: #25815a; background: #25815a; }
.today-plan-row.is-complete .today-plan-row__copy strong { text-decoration: line-through; }
.today-plan-empty,
.planner-timeline-empty { padding: 36px 20px; display: grid; justify-items: center; gap: 7px; text-align: center; }
.today-plan-empty strong,
.planner-timeline-empty h3 { margin: 0; color: var(--nk-paper-ink); font-size: .82rem; line-height: 1.3; }
.today-plan-empty > span,
.planner-timeline-empty > span { width: 45px; height: 45px; display: grid; place-items: center; border-radius: 14px; color: #6d51d0; background: rgba(116,87,222,.1); font-size: 1.2rem; }
.today-plan-empty p,
.planner-timeline-empty p { margin: 0; color: var(--nk-paper-ink-soft); font-size: .69rem; }
.today-plan-empty button,
.planner-timeline-empty button { margin-top: 5px; padding: 8px 12px; border: 0; border-radius: 10px; color: #fff; background: #6d51d0; cursor: pointer; font-size: .66rem; font-weight: 700; }

.today-stats-card { padding: 18px; }
.today-stats-card > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.today-stats-card > header > strong { color: var(--gold); font-size: 1.2rem; }
.today-stats-meter,
.planner-focus-meter { height: 7px; margin-top: 14px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.08); }
.today-stats-meter i,
.planner-focus-meter i { width: var(--progress-width); height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg,var(--gold),var(--violet-bright)); }
.today-stats-grid { margin-top: 16px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.today-stats-grid > span { padding: 10px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.025); }
.today-stats-grid strong,
.today-stats-grid small { display: block; }
.today-stats-grid strong { font-size: .88rem; }
.today-stats-grid small { margin-top: 3px; color: var(--text-muted); font-size: .57rem; }
.today-stats-card > p { margin: 13px 0 0; color: var(--text-muted); font-size: .62rem; line-height: 1.5; }

.today-calendar-card,
.planner-month-card { padding: 17px; }
.today-calendar-card > header,
.planner-month-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.today-calendar-card h2,
.planner-month-card h2 { margin: 4px 0 0; font-size: .96rem; }
.today-calendar-card > header a,
.planner-month-card > header a { color: var(--cyan); font-size: .65rem; font-weight: 700; text-decoration: none; }
.today-calendar-weekdays,
.today-calendar-grid,
.planner-month-weekdays,
.planner-month-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 3px; }
.today-calendar-weekdays,
.planner-month-weekdays { margin: 14px 0 5px; color: var(--text-muted); font-size: .53rem; text-align: center; }
.today-calendar-grid a,
.planner-month-grid a { min-width: 0; aspect-ratio: 1; position: relative; display: grid; place-items: center; border: 1px solid transparent; border-radius: 8px; color: var(--text-soft); text-decoration: none; font-size: .59rem; }
.today-calendar-grid a.is-outside,
.planner-month-grid a.is-outside { opacity: .28; }
.today-calendar-grid a.is-today,
.planner-month-grid a.is-selected { border-color: rgba(87,213,223,.5); color: #071016; background: var(--cyan); font-weight: 800; }
.today-calendar-grid a.has-event::after,
.planner-month-grid a.has-events::after { content: ""; width: 3px; height: 3px; position: absolute; bottom: 2px; border-radius: 50%; background: var(--gold); }

.today-quick-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.today-quick-action { min-width: 0; min-height: 78px; padding: 13px; display: grid; grid-template-columns: 36px minmax(0,1fr) auto; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 17px; color: var(--text); background: rgba(255,255,255,.035); text-align: left; text-decoration: none; cursor: pointer; }
.today-quick-action > span:first-child { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 12px; color: #fff; background: rgba(158,108,255,.18); }
.today-quick-action--note > span:first-child { color: var(--emerald); background: rgba(100,211,153,.12); }
.today-quick-action strong,
.today-quick-action small { display: block; }
.today-quick-action strong { font-size: .73rem; }
.today-quick-action small { margin-top: 3px; color: var(--text-muted); font-size: .57rem; }
.today-quick-action b { color: var(--text-muted); font-size: .8rem; }

.planner-experience-header { margin-bottom: 18px; }
.planner-week-strip { padding: 7px; display: grid; grid-template-columns: repeat(7,minmax(50px,1fr)); gap: 5px; overflow-x: auto; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.025); scrollbar-width: none; }
.planner-week-strip::-webkit-scrollbar { display: none; }
.planner-week-strip a { min-width: 50px; min-height: 64px; position: relative; display: grid; place-items: center; align-content: center; gap: 4px; border: 1px solid transparent; border-radius: 14px; color: var(--text-muted); text-decoration: none; }
.planner-week-strip a span { font-size: .55rem; text-transform: uppercase; }
.planner-week-strip a strong { color: var(--text-soft); font-size: .86rem; }
.planner-week-strip a i { width: 4px; height: 4px; border-radius: 50%; background: transparent; }
.planner-week-strip a.has-events i { background: var(--cyan); }
.planner-week-strip a.is-today { border-color: rgba(87,213,223,.18); }
.planner-week-strip a.is-selected { border-color: rgba(158,108,255,.54); color: #fff; background: linear-gradient(145deg,#8355ea,#5140c9); box-shadow: 0 9px 25px rgba(87,58,190,.26); }
.planner-week-strip a.is-selected strong { color: #fff; }
.planner-week-strip a.is-selected i { background: #fff; }
.planner-workspace { margin-top: 12px; display: grid; gap: 12px; }
.planner-agenda-card > header { padding-block: 18px; }
.planner-timeline { padding: 13px 12px 16px; }
.planner-timeline-item { min-height: 84px; display: grid; grid-template-columns: 45px 15px minmax(0,1fr); align-items: stretch; }
.planner-timeline-sequence { padding-top: 16px; color: var(--nk-paper-ink-soft); font-size: .53rem; font-weight: 700; line-height: 1.2; text-transform: uppercase; }
.planner-timeline-item__dot { width: 9px; height: 9px; margin-top: 17px; position: relative; z-index: 1; border: 2px solid #fff; border-radius: 50%; background: #7152d9; box-shadow: 0 0 0 1px rgba(86,63,175,.25); }
.planner-timeline-item__dot::after { content: ""; width: 1px; position: absolute; top: 9px; bottom: -68px; left: 2px; background: rgba(88,96,112,.22); }
.planner-timeline-item:last-child .planner-timeline-item__dot::after { display: none; }
.planner-timeline-item__card { min-width: 0; margin: 0 0 10px 7px; padding: 12px 13px; position: relative; border: 1px solid rgba(21,27,37,.09); border-left: 3px solid #7152d9; border-radius: 13px; background: rgba(116,87,222,.055); }
.planner-timeline-item__card > span { color: #7256d7; font-size: .53rem; font-weight: 700; text-transform: uppercase; }
.planner-timeline-item__card > strong,
.planner-timeline-item__card > small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.planner-timeline-item__card > strong { margin-top: 3px; font-size: .75rem; }
.planner-timeline-item__card > small { margin-top: 3px; color: var(--nk-paper-ink-soft); font-size: .58rem; }
.planner-timeline-item__card > div { margin-top: 9px; display: flex; gap: 9px; }
.planner-timeline-item__card button,
.planner-timeline-item__card a { padding: 0; border: 0; color: #7256d7; background: transparent; cursor: pointer; font-size: .55rem; font-weight: 700; text-decoration: none; }
.planner-timeline-item__card button:last-child { color: #c34c58; }
.planner-timeline-item--exam .planner-timeline-item__dot { background: var(--gold); }
.planner-timeline-item--exam .planner-timeline-item__card { border-left-color: var(--gold); background: rgba(243,203,103,.08); }
.planner-timeline-item--exam .planner-timeline-item__card > span,
.planner-timeline-item--exam .planner-timeline-item__card a { color: #9a6b10; }
.planner-timeline-item.is-complete { opacity: .58; }
.planner-timeline-item.is-complete .planner-timeline-item__card > strong { text-decoration: line-through; }
.planner-insights { display: grid; gap: 12px; align-content: start; }
.planner-focus-card { padding: 18px; border-color: rgba(158,108,255,.24); background: radial-gradient(circle at 100% 0,rgba(158,108,255,.16),transparent 39%),rgba(255,255,255,.035); }
.planner-focus-card > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.planner-focus-card > header > strong { color: var(--violet-bright); font-size: 1.08rem; }
.planner-focus-card h2 { margin: 13px 0 4px; font-size: 1.03rem; }
.planner-focus-card > p { margin: 0; color: var(--text-muted); font-size: .64rem; }
.planner-focus-card > a { width: fit-content; margin-top: 14px; display: flex; align-items: center; gap: 8px; color: var(--violet-bright); font-size: .64rem; font-weight: 700; text-decoration: none; }
.planner-focus-meter i { background: linear-gradient(90deg,var(--cyan),var(--violet)); }
.planner-focus-facts { margin-top: 13px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.planner-focus-facts span { padding: 9px; border: 1px solid var(--line); border-radius: 11px; background: rgba(255,255,255,.025); }
.planner-focus-facts strong,
.planner-focus-facts small { display: block; }
.planner-focus-facts strong { font-size: .78rem; }
.planner-focus-facts small { color: var(--text-muted); font-size: .54rem; }
.planner-month-card footer { margin-top: 12px; display: flex; gap: 14px; color: var(--text-muted); font-size: .54rem; }
.planner-month-card footer span { display: flex; align-items: center; gap: 5px; }
.planner-month-card footer i { width: 6px; height: 6px; border-radius: 50%; background: var(--cyan); }
.planner-month-card footer i.is-exam { background: var(--gold); }
.planner-actions-strip { margin-top: 12px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.planner-actions-strip > button,
.planner-actions-strip > a { min-width: 0; min-height: 82px; padding: 12px; display: grid; grid-template-columns: 32px minmax(0,1fr); grid-template-rows: auto auto; align-items: center; column-gap: 9px; border: 1px solid var(--line); border-radius: 16px; color: var(--text); background: rgba(255,255,255,.03); text-align: left; text-decoration: none; cursor: pointer; }
.planner-actions-strip > * > span { width: 32px; height: 32px; grid-row: 1 / span 2; display: grid; place-items: center; border-radius: 10px; color: var(--cyan); background: rgba(87,213,223,.1); }
.planner-actions-strip strong,
.planner-actions-strip small { display: block; }
.planner-actions-strip strong { align-self: end; font-size: .69rem; }
.planner-actions-strip small { align-self: start; color: var(--text-muted); font-size: .53rem; }
.planner-section-heading { align-items: flex-end; }
.planner-section-heading .planner-kicker { margin-bottom: 4px; }

@media (hover:hover) and (pointer:fine) {
  .today-plan-row,
  .today-quick-action,
  .planner-week-strip a,
  .planner-actions-strip > *,
  .today-calendar-grid a,
  .planner-month-grid a { transition: transform var(--nk-motion-press) var(--nk-ease-standard),background-color var(--nk-motion-press) ease,border-color var(--nk-motion-press) ease; }
  .today-plan-row:hover { background: rgba(116,87,222,.05); }
  .today-quick-action:hover,
  .planner-actions-strip > *:hover { transform: translateY(-2px); border-color: var(--line-strong); background: rgba(255,255,255,.055); }
  .planner-week-strip a:hover:not(.is-selected),
  .today-calendar-grid a:hover,
  .planner-month-grid a:hover { background: rgba(255,255,255,.06); }
}

@media (min-width:700px) {
  .today-workspace { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .today-focus-card,
  .today-plan-card,
  .today-quick-actions { grid-column: 1 / -1; }
  .planner-actions-strip { grid-template-columns: repeat(4,minmax(0,1fr)); }
}

@media (min-width:1024px) {
  .today-workspace { grid-template-columns: repeat(12,minmax(0,1fr)); grid-auto-flow: dense; gap: 14px; }
  .today-focus-card { grid-column: 1 / span 8; min-height: 190px; padding: 28px; }
  .today-stats-card { grid-column: 9 / -1; }
  .today-plan-card { grid-column: 1 / span 8; align-self: start; }
  .today-calendar-card { grid-column: 9 / -1; }
  .today-quick-actions { grid-column: 9 / -1; grid-template-columns: 1fr; }
  .today-progress-ring { width: 108px; }
  .today-plan-row { min-height: 74px; padding-inline: 10px; grid-template-columns: 50px 28px minmax(0,1fr) auto; }
  .today-calendar-grid a,
  .planner-month-grid a { font-size: .62rem; }

  .planner-week-strip { padding: 8px; }
  .planner-week-strip a { min-height: 70px; }
  .planner-workspace { grid-template-columns: minmax(0,1.5fr) minmax(290px,.62fr); gap: 14px; }
  .planner-agenda-card { min-height: 390px; align-self: start; }
  .planner-timeline { padding: 16px 18px 20px; }
  .planner-timeline-item { min-height: 94px; grid-template-columns: 54px 17px minmax(0,1fr); }
  .planner-timeline-item__card { padding: 14px 16px; }
  .planner-actions-strip { gap: 10px; }
  .planner-actions-strip > button,
  .planner-actions-strip > a { min-height: 88px; }
  .planner-sections { grid-template-columns: repeat(4,minmax(0,1fr)); }
}

@media (max-width:699px) {
  .today-header__action { display: none; }
  .today-focus-card { min-height: 150px; padding: 18px; }
  .today-progress-ring { width: 78px; }
  .today-focus-card h2 { max-width: 180px; font-size: 1.2rem; }
  .today-focus-card p { font-size: .69rem; }
  .today-plan-row { grid-template-columns: 24px minmax(0,1fr) auto; }
  .today-plan-row__time { display: none; }
  .today-plan-row__state { display: none; }
  .today-quick-actions { grid-template-columns: 1fr; }
  .planner-experience-header .view-header__actions { width: 100%; justify-content: stretch; }
  .planner-experience-header .view-header__actions .button { flex: 1; }
  .planner-week-strip { margin-inline: -4px; grid-template-columns: repeat(7,minmax(47px,1fr)); }
  .planner-timeline-item__card > div { flex-wrap: wrap; }
  .planner-month-card { display: none; }
}

@media (prefers-reduced-motion:reduce) {
  .today-plan-row,
  .today-quick-action,
  .planner-week-strip a,
  .planner-actions-strip > *,
  .today-calendar-grid a,
  .planner-month-grid a { transition: none !important; }
}

/* Phase 3 dashboard v2 — indicatori completi e Novi. */
.today-dashboard-v2 { position: relative; }
.today-dashboard-header { margin-bottom: 18px; align-items: flex-end; }
.today-dashboard-header h1 { margin-bottom: 6px; font-size: clamp(1.8rem,2.2vw,2.2rem); }
.today-dashboard-header p { max-width: 620px; }
.today-dashboard-header .view-header__eyebrow { color: var(--nk-violet-bright); }
.today-quick-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.today-header-action { min-height: 38px; padding: 8px 11px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 1px solid var(--line); border-radius: 11px; color: var(--text-soft); background: rgba(255,255,255,.035); font: inherit; font-size: .62rem; font-weight: 650; text-decoration: none; cursor: pointer; }
.today-header-action span { color: var(--cyan); font-size: .8rem; }
.today-header-action:first-child { border-color: rgba(243,203,103,.38); color: #16191f; background: var(--gold); }
.today-header-action:first-child span { color: #16191f; }
.today-header-action.is-locked { border-color: rgba(156,165,180,.16); color: #8f99a9; background: rgba(107,116,132,.06); box-shadow: none; filter: saturate(.35); }
.today-header-action.is-locked span { color: #8994a5; }
.today-header-action--record:not(.is-locked) { border-color: rgba(67,214,219,.28); background: linear-gradient(145deg,rgba(16,54,69,.82),rgba(9,24,42,.92)); }
.today-header-action--record:not(.is-locked) span { color: #65e2e5; }
.today-header-action--record.is-recording { border-color: rgba(255,105,116,.58); color: #ffd9dc; background: rgba(89,25,39,.72); box-shadow: 0 0 0 3px rgba(255,89,103,.08); }
.today-header-action--record.is-recording span { color: #ff6f7d; animation: quick-recorder-pulse 1.2s ease-in-out infinite; }
.today-pulse { margin: 0 0 14px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); overflow: hidden; border: 1px solid var(--today-line,var(--line)); border-radius: 16px; background: linear-gradient(145deg,rgba(10,22,38,.94),rgba(5,13,24,.96)); box-shadow: 0 14px 34px rgba(0,3,10,.2),inset 0 1px rgba(255,255,255,.025); }
.today-pulse a { min-width: 0; min-height: 78px; padding: 13px 15px; display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: center; gap: 10px; color: inherit; text-decoration: none; transition: background var(--nk-motion-control) ease,border-color var(--nk-motion-control) ease; }
.today-pulse a + a { border-left: 1px solid var(--today-line,var(--line)); }
.today-pulse a:hover { background: rgba(112,106,255,.055); }
.today-pulse a > span:first-child { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid rgba(121,113,255,.25); border-radius: 11px; color: var(--today-indigo-bright,var(--violet-bright)); background: rgba(112,106,255,.09); }
.today-pulse a > span:last-child { min-width: 0; display: grid; grid-template-columns: auto minmax(0,1fr); align-items: baseline; column-gap: 7px; }
.today-pulse small { grid-column: 1 / -1; color: #8d9aad; font-size: .47rem; font-weight: 680; letter-spacing: .07em; text-transform: uppercase; }
.today-pulse strong { margin-top: 3px; color: #f5f7fb; font-size: .92rem; line-height: 1; }
.today-pulse em { min-width: 0; overflow: hidden; color: #8995a8; font-size: .47rem; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.today-priority-notice { min-height: 46px; margin: -3px 0 14px; padding: 9px 12px; display: grid; grid-template-columns: 28px minmax(0,1fr) auto; align-items: center; gap: 10px; border: 1px solid rgba(243,203,103,.24); border-radius: 13px; background: rgba(243,203,103,.055); }
.today-priority-notice > span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px; color: #f4ce72; background: rgba(243,203,103,.1); }
.today-priority-notice p { margin: 0; color: #aeb8c8; font-size: .54rem; line-height: 1.45; }
.today-priority-notice p strong { color: #edf0f6; }
.today-priority-notice a,
.today-priority-notice button { padding: 5px 7px; border: 0; border-radius: 8px; color: #e7c569; background: transparent; font: inherit; font-size: .52rem; font-weight: 720; text-decoration: none; cursor: pointer; }
.today-priority-notice button:hover,
.today-priority-notice button:focus-visible { background: rgba(243,203,103,.09); outline: none; }
.today-priority-notice--urgent { border-color: rgba(239,112,126,.24); background: rgba(239,112,126,.055); }
.today-priority-notice--urgent > span { color: #ff9ba7; background: rgba(239,112,126,.11); }
.today-priority-notice--urgent a,
.today-priority-notice--urgent button { color: #ff9ba7; }
.today-priority-notice--urgent button:hover,
.today-priority-notice--urgent button:focus-visible { background: rgba(239,112,126,.1); }

.today-triage-heading { padding-bottom: 4px; }
.today-triage-list { max-height: min(55vh,520px); display: grid; gap: 9px; overflow: auto; scrollbar-width: thin; }
.today-triage-row { min-width: 0; padding: 12px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 14px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.025); }
.today-triage-row > div:first-child { min-width: 0; display: grid; grid-template-columns: auto minmax(0,1fr); gap: 3px 8px; align-items: baseline; }
.today-triage-row span { grid-row: 1/3; align-self: center; padding: 5px 7px; border-radius: 8px; color: #ff9ba7; background: rgba(239,112,126,.08); font-size: .52rem; font-weight: 760; }
.today-triage-row strong,
.today-triage-row small { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.today-triage-row strong { color: #f4f6fb; font-size: .68rem; }
.today-triage-row small { color: var(--text-muted); font-size: .52rem; }
.today-triage-row__actions { display: flex; align-items: center; gap: 6px; }
.today-triage-row__actions button { min-height: 31px; padding: 6px 9px; border: 1px solid var(--line); border-radius: 9px; color: var(--text-soft); background: rgba(4,10,19,.6); font: inherit; font-size: .52rem; font-weight: 700; cursor: pointer; }
.today-triage-row__actions button:hover,
.today-triage-row__actions button:focus-visible { border-color: rgba(139,132,255,.46); color: #fff; background: rgba(139,132,255,.09); outline: none; }
.today-triage-row__actions button:last-child { border-color: rgba(94,222,160,.24); color: var(--emerald); }
.today-triage-footer { padding-top: 4px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.today-triage-footer > span { color: var(--text-muted); font-size: .55rem; }
.today-triage-complete { padding: 22px; display: grid; place-items: center; gap: 5px; border: 1px dashed rgba(94,222,160,.24); border-radius: 14px; color: var(--text-muted); text-align: center; }
.today-triage-complete > span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; color: #07130d; background: var(--emerald); font-size: .8rem; }
.today-triage-complete strong { color: #f4f6fb; font-size: .68rem; }
.today-triage-complete p { margin: 0; font-size: .54rem; }

.today-study-session {
  min-height: 124px;
  margin: 0 0 16px;
  padding: 0;
  display: block;
  overflow: hidden;
  position: relative;
  border: 1px solid var(--today-line);
  border-radius: 20px;
  color: var(--text);
  background:
    radial-gradient(circle at 5% 10%,rgba(112,106,255,.045),transparent 25%),
    linear-gradient(145deg,#1d222b,#171c24);
  box-shadow: 0 18px 38px rgba(0,0,0,.16),inset 0 1px rgba(255,255,255,.025);
}
.today-study-session__main {
  min-height: 76px;
  padding: 10px 13px;
  display: grid;
  grid-template-columns: minmax(155px,.65fr) minmax(215px,.95fr) minmax(124px,.48fr) auto;
  align-items: center;
  gap: 14px;
}
.today-study-session::before {
  content: "";
  width: 3px;
  position: absolute;
  inset: 10px auto 10px 0;
  border-radius: 0 4px 4px 0;
  background: linear-gradient(180deg,#55d7df,#746dff);
  box-shadow: 0 0 18px rgba(85,215,223,.34);
}
.today-study-session[data-status="running"] { border-color: rgba(112,106,255,.4); }
.today-study-session[data-status="running"]::before { background: linear-gradient(180deg,#a397ff,#665ef0); }
.today-study-session[data-status="break"] { border-color: rgba(88,218,172,.34); }
.today-study-session[data-status="break"]::before { background: linear-gradient(180deg,#66e0b2,#37b9b0); }
.today-study-session__identity { min-width: 0; display: flex; align-items: center; gap: 10px; }
.today-study-session__identity > span:last-child { min-width: 0; display: grid; gap: 2px; }
.today-study-session__identity small {
  overflow: hidden;
  color: #6fd9df;
  font-size: .45rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}
.today-study-session[data-status="running"] .today-study-session__identity small { color: #a59bff; }
.today-study-session[data-status="break"] .today-study-session__identity small { color: #73ddb4; }
.today-study-session__identity strong { font-size: .75rem; font-weight: 650; }
.today-study-session__icon {
  width: 39px;
  height: 39px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border: 1px solid rgba(91,210,223,.32);
  border-radius: 13px;
  color: #73e0e5;
  background: linear-gradient(145deg,rgba(57,203,215,.15),rgba(96,92,239,.1));
  box-shadow: inset 0 1px rgba(255,255,255,.06);
}
.today-study-session__time { min-width: 0; display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 13px; }
.today-study-session__time strong {
  min-width: 96px;
  color: #fff;
  font-size: 1.12rem;
  font-variant-numeric: tabular-nums;
  font-weight: 580;
  letter-spacing: .02em;
}
.today-study-session__time small {
  overflow: hidden;
  color: var(--text-muted);
  font-size: .49rem;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.today-study-session__schedule {
  min-width: 0;
  padding: 6px 9px;
  display: grid;
  grid-template-columns: minmax(39px,1fr) auto minmax(39px,1fr);
  align-items: center;
  gap: 7px;
  border: 1px solid rgba(118,133,166,.16);
  border-radius: 11px;
  background: rgba(3,10,20,.34);
}
.today-study-session__schedule > span { min-width: 0; display: grid; gap: 1px; }
.today-study-session__schedule small {
  color: #79869c;
  font-size: .35rem;
  font-weight: 690;
  letter-spacing: .065em;
  text-transform: uppercase;
}
.today-study-session__schedule time {
  color: #e8edf8;
  font-size: .57rem;
  font-variant-numeric: tabular-nums;
  font-weight: 630;
}
.today-study-session__schedule i { color: #625ed0; font-size: .53rem; font-style: normal; }
.today-study-session[data-status="running"] .today-study-session__schedule {
  border-color: rgba(112,106,255,.25);
  background: rgba(74,67,178,.07);
}
.today-study-session[data-status="break"] .today-study-session__schedule {
  border-color: rgba(88,218,172,.2);
  background: rgba(49,169,134,.055);
}
.today-study-session__context {
  min-height: 47px;
  padding: 7px 13px 8px;
  display: grid;
  grid-template-columns: minmax(250px,1.35fr) auto minmax(210px,.64fr) minmax(110px,.42fr);
  align-items: center;
  gap: 9px;
  position: relative;
  border-top: 1px solid rgba(128,142,169,.16);
  background: rgba(8,12,18,.2);
}
.today-study-session__context-label {
  padding: 0 5px;
  position: absolute;
  top: -6px;
  left: 13px;
  color: #8f9ab0;
  background: #1a1f28;
  font-size: .34rem;
  font-weight: 730;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.today-study-session__target {
  min-width: 0;
  padding: 3px 6px;
  display: grid;
  grid-template-columns: 25px minmax(0,1fr) auto;
  align-items: center;
  gap: 7px;
  border: 0;
  border-radius: 9px;
  color: #c7d0df;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.today-study-session__target:hover,
.today-study-session__target:focus-visible { color: #fff; background: rgba(255,255,255,.035); outline: none; }
.today-study-session__target > span:first-child {
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(124,135,160,.24);
  border-radius: 8px;
  color: #a7b0c0;
}
.today-study-session__target.is-linked > span:first-child {
  border-color: rgba(112,106,255,.32);
  color: #a99fff;
  background: rgba(112,106,255,.08);
}
.today-study-session__target > span:nth-child(2) { min-width: 0; display: grid; gap: 1px; }
.today-study-session__target strong,
.today-study-session__target small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.today-study-session__target strong { font-size: .51rem; font-weight: 650; }
.today-study-session__target small { color: #8f9aac; font-size: .4rem; }
.today-study-session__target > i { color: #8490a4; font-size: .58rem; font-style: normal; }
.today-study-session__change {
  min-height: 29px;
  padding: 5px 10px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(126,139,166,.21);
  border-radius: 9px;
  color: #bec7d6;
  background: rgba(3,8,15,.24);
  font: inherit;
  font-size: .44rem;
  cursor: pointer;
}
.today-study-session__change:hover,
.today-study-session__change:focus-visible { border-color: rgba(112,106,255,.42); color: #fff; outline: none; }
.today-study-session__kinds {
  padding: 2px;
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  border: 1px solid rgba(126,139,166,.16);
  border-radius: 9px;
  background: rgba(3,8,15,.22);
}
.today-study-session__kinds button {
  min-height: 25px;
  padding: 4px 8px;
  border: 0;
  border-radius: 7px;
  color: #8e99ad;
  background: transparent;
  font: inherit;
  font-size: .4rem;
  cursor: pointer;
}
.today-study-session__kinds button[aria-pressed="true"] {
  color: #fff;
  background: linear-gradient(135deg,#746eff,#5b50df);
  box-shadow: inset 0 1px rgba(255,255,255,.14);
}
.today-study-session__unlink {
  justify-self: end;
  border: 0;
  color: #55d7df;
  background: transparent;
  font: inherit;
  font-size: .4rem;
  cursor: pointer;
}
.today-study-session__unlink[hidden] { display: none; }
.today-study-session__unlink:hover,
.today-study-session__unlink:focus-visible { color: #8ee9ed; text-decoration: underline; outline: none; }
.today-study-session__actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
.today-study-session__actions > span {
  margin-right: 2px;
  padding: 5px 8px;
  border: 1px solid rgba(116,129,157,.18);
  border-radius: 999px;
  color: var(--text-soft);
  background: rgba(255,255,255,.025);
  font-size: .45rem;
  white-space: nowrap;
}
.today-study-session__actions button {
  min-height: 34px;
  padding: 7px 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border: 1px solid rgba(117,133,167,.22);
  border-radius: 10px;
  color: #cbd3e2;
  background: rgba(4,11,21,.64);
  font: inherit;
  font-size: .5rem;
  font-weight: 700;
  cursor: pointer;
}
.today-study-session__actions button[hidden] { display: none !important; }
.today-study-session__actions button:hover,
.today-study-session__actions button:focus-visible { border-color: rgba(139,132,255,.48); color: #fff; outline: none; transform: translateY(-1px); }
.today-study-session__actions .today-study-session__primary {
  border-color: rgba(112,106,255,.48);
  color: #fff;
  background: linear-gradient(135deg,#7771ff,#574edb);
  box-shadow: 0 8px 20px rgba(76,67,200,.2),inset 0 1px rgba(255,255,255,.16);
}
.today-study-session__actions .today-study-session__pause {
  border-color: rgba(88,218,172,.38);
  color: #8fe5c0;
  background: rgba(49,169,134,.11);
}
.today-study-session__actions .today-study-session__stop { color: #e5afba; }
.today-study-session__settings span { display: none; }

.today-attendance-quick {
  min-height: 82px;
  margin: 0 0 16px;
  padding: 9px 11px;
  display: grid;
  grid-template-columns: minmax(158px,.48fr) minmax(0,1.7fr) auto;
  align-items: center;
  gap: 11px;
  overflow: hidden;
  position: relative;
  border: 1px solid rgba(91,210,223,.2);
  border-radius: 18px;
  color: var(--text);
  background:
    radial-gradient(circle at 2% 18%,rgba(70,206,217,.07),transparent 29%),
    linear-gradient(145deg,#1d222b,#171c24);
  box-shadow: 0 16px 34px rgba(0,0,0,.14),inset 0 1px rgba(255,255,255,.025);
}
.today-attendance-quick::before { content: ""; width: 3px; position: absolute; inset: 9px auto 9px 0; border-radius: 0 4px 4px 0; background: linear-gradient(180deg,#5ad9df,#726bff); box-shadow: 0 0 16px rgba(85,215,223,.28); }
.today-attendance-quick.is-day-off { border-color: rgba(137,148,169,.2); }
.today-attendance-quick.is-day-off::before { background: linear-gradient(180deg,#9ba6b8,#687387); box-shadow: none; }
.today-attendance-quick__identity { min-width: 0; display: flex; align-items: center; gap: 9px; }
.today-attendance-quick__identity > span:first-child { width: 38px; height: 38px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid rgba(91,210,223,.28); border-radius: 12px; color: #70dce2; background: linear-gradient(145deg,rgba(57,203,215,.13),rgba(96,92,239,.08)); }
.today-attendance-quick__identity > span:last-child { min-width: 0; display: grid; gap: 1px; }
.today-attendance-quick__identity small { color: #6ed8de; font-size: .4rem; font-weight: 720; letter-spacing: .085em; text-transform: uppercase; }
.today-attendance-quick__identity strong { overflow: hidden; font-size: .68rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.today-attendance-quick__identity em { color: #8e9aac; font-size: .42rem; font-style: normal; }
.today-attendance-quick__subjects { min-width: 0; padding: 2px; display: flex; gap: 7px; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; scroll-snap-type: x proximity; }
.today-attendance-subject { --attendance-tone: #65dbe2; min-width: 226px; min-height: 52px; padding: 6px 7px; display: grid; grid-template-columns: 5px minmax(72px,1fr) auto; align-items: center; gap: 7px; scroll-snap-align: start; border: 1px solid color-mix(in srgb,var(--attendance-tone) 20%,rgba(125,139,166,.16)); border-radius: 12px; background: color-mix(in srgb,var(--attendance-tone) 4%,rgba(4,10,19,.5)); }
.today-attendance-subject--violet { --attendance-tone: #a190ff; }
.today-attendance-subject--emerald { --attendance-tone: #61d99b; }
.today-attendance-subject--gold { --attendance-tone: #f0c968; }
.today-attendance-subject--coral { --attendance-tone: #ff8d82; }
.today-attendance-subject > i { width: 5px; height: 28px; border-radius: 999px; background: var(--attendance-tone); box-shadow: 0 0 12px color-mix(in srgb,var(--attendance-tone) 32%,transparent); }
.today-attendance-subject > span { min-width: 0; display: grid; gap: 2px; }
.today-attendance-subject > span strong,
.today-attendance-subject > span small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.today-attendance-subject > span strong { color: #ecf0f7; font-size: .53rem; font-weight: 640; }
.today-attendance-subject > span small { color: #8f9bad; font-size: .4rem; }
.today-attendance-subject > div { display: flex; gap: 4px; }
.today-attendance-subject button { min-height: 29px; padding: 5px 7px; display: inline-flex; align-items: center; justify-content: center; gap: 4px; border: 1px solid rgba(126,139,166,.18); border-radius: 8px; color: #9ba6b8; background: rgba(3,9,17,.46); font: inherit; font-size: .39rem; font-weight: 650; cursor: pointer; }
.today-attendance-subject button:hover,
.today-attendance-subject button:focus-visible { border-color: color-mix(in srgb,var(--attendance-tone) 42%,rgba(126,139,166,.2)); color: #fff; outline: none; }
.today-attendance-subject button[data-quick-attendance-status="present"][aria-pressed="true"] { border-color: rgba(91,218,154,.5); color: #b8f6d2; background: rgba(54,175,113,.16); }
.today-attendance-subject button[data-quick-attendance-status="absent"][aria-pressed="true"] { border-color: rgba(255,111,126,.5); color: #ffc1c8; background: rgba(198,65,80,.16); }
.today-attendance-quick__actions { display: flex; align-items: center; gap: 5px; }
.today-attendance-quick__actions button,
.today-attendance-quick__actions a { min-height: 33px; padding: 6px 8px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; border: 1px solid rgba(126,139,166,.19); border-radius: 9px; color: #aeb8c8; background: rgba(4,10,19,.55); font: inherit; font-size: .42rem; font-weight: 650; text-decoration: none; cursor: pointer; white-space: nowrap; }
.today-attendance-quick__actions button:hover,
.today-attendance-quick__actions button:focus-visible,
.today-attendance-quick__actions a:hover,
.today-attendance-quick__actions a:focus-visible { border-color: rgba(91,210,223,.38); color: #fff; outline: none; }
.today-attendance-quick__actions button[aria-pressed="true"] { color: #dce3ef; background: rgba(129,141,160,.12); }
.today-attendance-quick__day-message { min-height: 50px; padding: 7px 10px; display: flex; align-items: center; gap: 9px; border: 1px solid rgba(126,139,166,.17); border-radius: 12px; background: rgba(5,11,20,.42); }
.today-attendance-quick__day-message > span:first-child { color: #9ca8b9; }
.today-attendance-quick__day-message > span:last-child { display: grid; gap: 2px; }
.today-attendance-quick__day-message strong { font-size: .55rem; }
.today-attendance-quick__day-message small { color: #8e9aab; font-size: .42rem; }
.today-attendance-quick.is-empty { grid-template-columns: minmax(158px,.48fr) minmax(0,1fr) auto; }
.today-attendance-quick.is-empty > p { margin: 0; color: #8f9bad; font-size: .47rem; line-height: 1.45; }
.today-attendance-quick.is-empty > a { min-height: 32px; padding: 7px 10px; border: 1px solid rgba(91,210,223,.25); border-radius: 9px; color: #75dce1; background: rgba(52,184,195,.06); font-size: .45rem; font-weight: 680; text-decoration: none; }

.study-target-picker { width: min(620px,calc(100vw - 36px)); display: grid; gap: 14px; }
.study-target-picker__tabs {
  padding: 3px;
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 3px;
  border: 1px solid rgba(126,139,166,.2);
  border-radius: 13px;
  background: rgba(4,10,19,.62);
}
.study-target-picker__tabs button {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 0;
  border-radius: 10px;
  color: #9ca7ba;
  background: transparent;
  font: inherit;
  font-size: .57rem;
  font-weight: 620;
  cursor: pointer;
}
.study-target-picker__tabs button[aria-pressed="true"] {
  color: #fff;
  background: linear-gradient(135deg,rgba(116,110,255,.9),rgba(88,79,218,.88));
  box-shadow: 0 8px 20px rgba(70,62,182,.17),inset 0 1px rgba(255,255,255,.13);
}
.study-target-picker__list {
  max-height: min(380px,48vh);
  padding: 3px;
  display: grid;
  gap: 6px;
  overflow: auto;
}
.study-target-option {
  min-width: 0;
  padding: 10px 11px;
  display: grid;
  grid-template-columns: 34px minmax(0,1fr) 22px;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(126,139,166,.18);
  border-radius: 12px;
  color: #d7ddea;
  background: rgba(13,21,34,.78);
  text-align: left;
  cursor: pointer;
}
.study-target-option:hover,
.study-target-option:focus-visible,
.study-target-option.is-selected { border-color: rgba(112,106,255,.42); background: rgba(112,106,255,.08); outline: none; }
.study-target-option > span:first-child { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; color: #a79dff; background: rgba(112,106,255,.09); }
.study-target-option > span:nth-child(2) { min-width: 0; display: grid; gap: 2px; }
.study-target-option strong,
.study-target-option small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.study-target-option strong { font-size: .6rem; }
.study-target-option small { color: #909caf; font-size: .48rem; }
.study-target-option > i { color: #8f86ff; font-size: .7rem; font-style: normal; text-align: center; }
.study-target-picker__empty { min-height: 150px; display: grid; place-items: center; align-content: center; gap: 6px; color: #8f9bad; text-align: center; }
.study-target-picker__empty > svg { color: #8f86ff; }
.study-target-picker__empty strong { color: #dce2ed; font-size: .63rem; }
.study-target-picker__empty p { margin: 0; font-size: .5rem; }

.today-dashboard-grid { display: grid; grid-template-areas: "focus" "activity" "exams" "progress" "calendar"; gap: 14px; }
.today-mobile-sections { display: none; }
.today-mobile-dashboard-tabs { display: none; }
.today-dashboard-grid > section { min-width: 0; border: 1px solid var(--line); border-radius: 20px; box-shadow: 0 18px 38px rgba(0,0,0,.16); }
.today-activity-panel { grid-area: activity; }
.today-focus-panel { grid-area: focus; }
.today-exam-panel { grid-area: exams; }
.today-week-panel { grid-area: progress; }
.today-calendar-panel { grid-area: calendar; }
.today-panel-heading { min-height: 58px; padding: 14px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid rgba(255,255,255,.07); }
.today-panel-heading > div { min-width: 0; display: flex; align-items: center; gap: 9px; }
.today-panel-heading h2 { margin: 0; font-size: .82rem; font-weight: 620; letter-spacing: -.015em; }
.today-panel-heading a { color: var(--violet-bright); font-size: .58rem; font-weight: 700; text-decoration: none; }
.today-panel-heading--paper { border-bottom-color: rgba(21,27,37,.1); }
.today-panel-heading--paper h2 { color: var(--nk-paper-ink); }
.today-panel-heading--paper a { color: #7052d4; }
.today-panel-icon { color: var(--violet-bright); font-size: .86rem; }
.today-panel-more { color: var(--text-muted); font-size: .66rem; letter-spacing: .08em; }
.today-period-chip { padding: 6px 8px; border: 1px solid var(--line); border-radius: 9px; color: var(--text-soft); background: rgba(255,255,255,.025); font-size: .52rem; }

.today-activity-panel { overflow: hidden; color: var(--nk-paper-ink); background: linear-gradient(145deg,#fff,var(--nk-paper)); box-shadow: var(--nk-shadow-paper); }
.today-activity-panel > header { padding: 14px 16px; }
.today-activity-list { padding: 5px 14px 10px; }
.today-activity-row { min-height: 58px; display: grid; grid-template-columns: 23px minmax(0,1fr) auto auto; align-items: center; gap: 9px; border-bottom: 1px solid rgba(21,27,37,.08); }
.today-activity-row:last-child { border-bottom: 0; }
.today-activity-check { width: 20px; height: 20px; padding: 0; display: grid; place-items: center; border: 1.5px solid #aeb4bf; border-radius: 5px; color: #fff; background: transparent; cursor: pointer; font-size: .63rem; }
.today-activity-row.is-complete .today-activity-check { border-color: #7355dc; background: #7355dc; }
.today-activity-copy { min-width: 0; }
.today-activity-copy strong,
.today-activity-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.today-activity-copy strong { font-size: .7rem; }
.today-activity-copy small { margin-top: 2px; color: var(--nk-paper-ink-soft); font-size: .52rem; }
.today-activity-row.is-complete .today-activity-copy strong { color: #89909b; text-decoration: line-through; }
.today-activity-row time { color: #697284; font-size: .53rem; white-space: nowrap; }
.today-priority { min-width: 52px; padding: 5px 7px; border-radius: 999px; font-size: .48rem; font-weight: 650; text-align: center; }
.today-priority--urgent { color: #a63040; background: #ffe4e5; }
.today-priority--high { color: #6246c2; background: #eee8ff; }
.today-priority--medium { color: #946717; background: #fff1d3; }
.today-priority--low { color: #19746f; background: #e0f5f2; }
.today-priority--complete { color: #17684c; background: #ddf4e8; }
.today-panel-empty { min-height: 230px; padding: 24px; display: grid; place-items: center; align-content: center; gap: 7px; text-align: center; }
.today-panel-empty > span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; color: var(--violet-bright); background: rgba(158,108,255,.1); }
.today-panel-empty strong { font-size: .75rem; }
.today-panel-empty p { margin: 0; color: var(--text-muted); font-size: .58rem; }
.today-panel-empty a,
.today-panel-empty button { margin-top: 4px; padding: 8px 11px; border: 0; border-radius: 9px; color: #fff; background: #7052d4; font: inherit; font-size: .57rem; font-weight: 700; text-decoration: none; cursor: pointer; }
.today-panel-empty--paper strong { color: var(--nk-paper-ink); }
.today-panel-empty--paper p { color: var(--nk-paper-ink-soft); }

.today-focus-panel { min-height: 0; padding: 0; display: block; overflow: hidden; background: radial-gradient(circle at 92% 10%,rgba(85,107,255,.11),transparent 36%),linear-gradient(145deg,#0d1522,#080d16); }
.today-focus-panel::after { display: none; }
.today-focus-main { min-height: 150px; padding: 16px 19px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.today-focus-main > div:first-child { min-width: 0; display: grid; }
.today-focus-subject { color: var(--violet-bright); font-size: 1.04rem; font-weight: 620; }
.today-focus-main > div:first-child small { margin-top: 15px; color: var(--text-muted); font-size: .56rem; }
.today-focus-main > div:first-child strong { max-width: 240px; margin-top: 6px; font-size: .76rem; font-weight: 520; line-height: 1.45; }
.today-metric-ring { width: 88px; aspect-ratio: 1; flex: 0 0 auto; display: grid; place-items: center; align-content: center; border-radius: 50%; background: radial-gradient(circle,#0b121e 58%,transparent 60%),conic-gradient(#6f68ff var(--progress-width),rgba(255,255,255,.08) 0); box-shadow: 0 0 0 7px rgba(255,255,255,.025); }
.today-metric-ring strong { font-size: 1.08rem; }
.today-metric-ring small { margin-top: 1px; color: var(--text-muted); font-size: .43rem; text-transform: uppercase; }
.today-focus-panel > footer { min-height: 64px; padding: 11px 18px; display: grid; grid-template-columns: 26px minmax(0,1fr) auto; align-items: center; gap: 10px; border-top: 1px solid rgba(255,255,255,.07); background: rgba(255,255,255,.018); }
.today-focus-panel > footer > span { color: #736cff; font-size: 1rem; }
.today-focus-panel > footer p { margin: 0; color: var(--text-soft); font-size: .61rem; line-height: 1.45; }
.today-focus-panel > footer a { width: auto; margin: 0; display: inline; color: var(--violet-bright); text-decoration: none; }

.today-exam-panel { overflow: hidden; background: linear-gradient(150deg,rgba(18,27,41,.96),rgba(9,14,23,.98)); }
.today-exam-list { padding: 5px 14px 12px; }
.today-exam-row { min-height: 70px; display: grid; grid-template-columns: 43px minmax(0,1fr) auto; align-items: center; gap: 11px; border-bottom: 1px solid rgba(255,255,255,.07); color: var(--text); text-decoration: none; }
.today-exam-row:last-child { border-bottom: 0; }
.today-exam-date { width: 42px; height: 48px; display: grid; place-items: center; align-content: center; border: 1px solid rgba(158,108,255,.34); border-radius: 10px; color: #fff; background: linear-gradient(145deg,rgba(112,82,212,.42),rgba(53,43,112,.26)); }
.today-exam-date strong { font-size: .84rem; line-height: 1; }
.today-exam-date small { margin-top: 4px; color: var(--violet-bright); font-size: .42rem; }
.today-exam-row > span:nth-child(2) { min-width: 0; }
.today-exam-row > span:nth-child(2) strong,
.today-exam-row > span:nth-child(2) small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.today-exam-row > span:nth-child(2) strong { font-size: .68rem; }
.today-exam-row > span:nth-child(2) small { margin-top: 4px; color: var(--text-muted); font-size: .52rem; }
.today-exam-row em { color: var(--text-soft); font-size: .52rem; font-style: normal; white-space: nowrap; }

.today-week-panel { padding: 0 0 12px; overflow: hidden; background: linear-gradient(150deg,rgba(17,25,39,.97),rgba(8,13,21,.99)); }
.today-week-summary { min-height: 112px; padding: 12px 18px 4px; display: flex; align-items: center; gap: 22px; }
.today-metric-ring--violet { width: 84px; background: radial-gradient(circle,#0b121e 58%,transparent 60%),conic-gradient(var(--violet) var(--progress-width),rgba(255,255,255,.08) 0); }
.today-week-summary dl { margin: 0; display: grid; gap: 6px; }
.today-week-summary dl > div { position: relative; padding-left: 14px; }
.today-week-summary dl > div::before { content: "›"; position: absolute; left: 0; color: var(--violet-bright); }
.today-week-summary dt { font-size: .78rem; font-weight: 650; }
.today-week-summary dd { margin: 1px 0 0; color: var(--text-muted); font-size: .5rem; }
.today-chart-heading { margin: 2px 18px 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.today-chart-heading strong { color: var(--text-soft); font-size: .54rem; font-weight: 650; }
.today-chart-heading small { color: var(--text-muted); font-size: .44rem; }
.today-week-chart { height: 82px; margin: 3px 18px 0; padding: 7px 5px 0; display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); align-items: end; gap: 5px; border-bottom: 1px solid rgba(255,255,255,.1); background: repeating-linear-gradient(to top,transparent 0,transparent 22px,rgba(255,255,255,.04) 23px,rgba(255,255,255,.04) 24px); }
.today-week-chart > span { height: 100%; display: grid; grid-template-rows: minmax(0,1fr) 18px; align-items: end; justify-items: center; }
.today-week-chart i { width: min(20px,72%); height: var(--metric-height,0%); min-height: 3px; border-radius: 4px 4px 1px 1px; background: linear-gradient(180deg,#8170ff,#5748d8); box-shadow: 0 0 15px rgba(99,81,224,.13); }
.today-week-chart small { color: var(--text-muted); font-size: .43rem; }
.today-week-note { margin: 7px 18px 0; color: var(--text-muted); font-size: .48rem; line-height: 1.4; }
.metric-height-0 { --metric-height: 0%; }
.metric-height-10 { --metric-height: 10%; }
.metric-height-20 { --metric-height: 20%; }
.metric-height-30 { --metric-height: 30%; }
.metric-height-40 { --metric-height: 40%; }
.metric-height-50 { --metric-height: 50%; }
.metric-height-60 { --metric-height: 60%; }
.metric-height-70 { --metric-height: 70%; }
.metric-height-80 { --metric-height: 80%; }
.metric-height-90 { --metric-height: 90%; }
.metric-height-100 { --metric-height: 100%; }

.today-calendar-panel { padding: 0; overflow: hidden; background: linear-gradient(150deg,rgba(18,27,41,.97),rgba(9,14,23,.99)); }
.today-calendar-panel .today-calendar-weekdays { margin: 13px 16px 5px; }
.today-calendar-panel .today-calendar-grid { margin: 0 14px 15px; gap: 4px; }
.today-calendar-panel .today-calendar-grid a { border-radius: 9px; font-size: .55rem; }
.today-calendar-panel .today-calendar-grid a.is-today { border-color: #5f5bea; color: #fff; background: linear-gradient(145deg,#7770ff,#5148d5); box-shadow: 0 7px 16px rgba(79,67,198,.24); }
.today-calendar-agenda { padding: 15px 17px 17px; border-top: 1px solid rgba(255,255,255,.07); background: rgba(255,255,255,.014); }
.today-calendar-agenda > header { margin-bottom: 8px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.today-calendar-agenda > header strong { font-size: .63rem; }
.today-calendar-agenda > header a { color: var(--cyan); font-size: .51rem; text-decoration: none; }
.today-calendar-agenda article { min-height: 51px; display: grid; grid-template-columns: 7px minmax(0,1fr); align-items: center; gap: 9px; border-bottom: 1px solid rgba(255,255,255,.055); }
.today-calendar-agenda article:last-child { border-bottom: 0; }
.today-calendar-agenda article > span { min-width: 0; }
.today-calendar-agenda article strong,
.today-calendar-agenda article small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.today-calendar-agenda article strong { font-size: .59rem; }
.today-calendar-agenda article small { margin-top: 3px; color: var(--text-muted); font-size: .47rem; }
.today-calendar-agenda > p { margin: 18px 0 6px; color: var(--text-muted); font-size: .55rem; }
.today-event-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--violet); }
.today-event-dot--cyan { background: var(--cyan); }
.today-event-dot--emerald { background: var(--emerald); }
.today-event-dot--gold { background: var(--gold); }

.today-novi-assistant { min-height: 230px; margin-top: 14px; position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: radial-gradient(circle at 90% 10%,rgba(158,108,255,.13),transparent 34%),rgba(255,255,255,.025); transition: opacity var(--nk-motion-panel) ease,transform var(--nk-motion-panel) var(--nk-ease-emphasized); }
.today-novi-character { width: 164px; height: auto; padding: 0; position: absolute; z-index: 1; right: -8px; bottom: -82px; border: 0; background: transparent; cursor: pointer; filter: drop-shadow(0 20px 25px rgba(0,0,0,.42)); transition: filter var(--nk-motion-control) ease; }
.today-novi-character:hover { filter: drop-shadow(0 20px 28px rgba(0,0,0,.45)) drop-shadow(0 0 15px rgba(112,106,255,.18)); }
.today-novi-character:focus-visible { outline: 2px solid var(--today-indigo-bright,var(--violet-bright)); outline-offset: -6px; border-radius: 42% 42% 18% 18%; }
.novi-character-art { display: block; width: 100%; position: relative; aspect-ratio: 2/3; overflow: visible; pointer-events: none; }
.novi-character-art__image { display: block; width: 100%; height: 100%; position: absolute; inset: 0; object-fit: contain; opacity: 0; transition: opacity .24s ease; }
.novi-character-art__image[hidden] { display: none; }
.novi-character-art.is-ready .novi-character-art__image { opacity: 1; }
.novi-character-art__eye-glow { width: 15%; height: 3.4%; position: absolute; z-index: 2; top: 9.5%; left: 42.5%; border-radius: 50%; background: radial-gradient(ellipse,rgba(103,226,255,.56),rgba(66,187,255,.16) 48%,transparent 72%); filter: blur(2px); opacity: 0; mix-blend-mode: screen; }
.novi-character-art__core-glow { width: 7%; position: absolute; z-index: 2; top: 22.2%; left: 46.5%; aspect-ratio: 1; background: radial-gradient(circle,rgba(255,255,255,.8),rgba(132,105,255,.42) 43%,transparent 72%); filter: blur(1.5px); opacity: 0; transform: rotate(45deg); mix-blend-mode: screen; }
.today-novi-character:hover .novi-character-art.is-ready .novi-character-art__eye-glow { opacity: .42; }
.today-novi-character:hover .novi-character-art.is-ready .novi-character-art__core-glow { opacity: .5; }
.novi-character-art__fallback { width: 70px; position: absolute; top: 9%; left: 50%; display: none; place-items: center; gap: 2px; aspect-ratio: 1; border: 1px solid rgba(112,106,255,.5); border-radius: 50%; color: var(--today-indigo-bright,var(--violet-bright)); background: radial-gradient(circle at 42% 32%,rgba(112,106,255,.22),rgba(3,9,21,.96) 68%); box-shadow: 0 0 24px rgba(112,106,255,.18); transform: translateX(-50%); }
.novi-character-art__fallback span { font-size: 1.1rem; line-height: 1; }
.novi-character-art__fallback strong { font-size: .58rem; }
.novi-character-art.is-image-unavailable .novi-character-art__fallback { display: grid; }
.today-novi-bubble { width: calc(100% - 135px); max-width: 330px; min-height: 138px; padding: 14px; position: absolute; z-index: 2; left: 13px; bottom: 24px; border: 1px solid rgba(158,108,255,.24); border-radius: 16px; background: rgba(9,14,23,.92); box-shadow: 0 16px 34px rgba(0,0,0,.24); backdrop-filter: blur(14px); }
.today-novi-bubble > header { display: flex; align-items: center; justify-content: space-between; }
.today-novi-bubble > header strong { color: var(--violet-bright); font-size: .65rem; }
.today-novi-bubble > header button { padding: 0; border: 0; color: var(--text-muted); background: transparent; cursor: pointer; font-size: .57rem; }
.today-novi-bubble > p { min-height: 38px; margin: 9px 0 12px; color: var(--text-soft); font-size: .57rem; line-height: 1.5; }
.today-novi-bubble > div { display: flex; gap: 7px; }
.today-novi-bubble > div button { min-height: 32px; padding: 7px 10px; border: 1px solid rgba(158,108,255,.35); border-radius: 9px; color: var(--violet-bright); background: transparent; cursor: pointer; font: inherit; font-size: .5rem; font-weight: 650; }
.today-novi-bubble > div button:last-child { color: var(--text-soft); border-color: var(--line); }
.today-novi-bubble menu { margin: 7px 0 0; padding: 7px 0 0; display: grid; gap: 6px; border-top: 1px solid var(--line); }
.today-novi-bubble menu[hidden] { display: none; }
.today-novi-bubble menu button { padding: 0; border: 0; color: var(--text-soft); background: transparent; cursor: pointer; font: inherit; font-size: .5rem; text-align: left; }
.today-novi-bubble menu button:last-child { color: var(--nk-coral); }

@media (min-width:700px) {
  .today-dashboard-grid { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-areas: "focus progress" "activity activity" "exams calendar"; align-items: start; }
  .today-activity-panel,
  .today-focus-panel { min-height: 320px; }
  .today-exam-panel,
  .today-week-panel { min-height: 335px; }
  .today-novi-assistant { min-height: 260px; }
  .today-novi-character { width: 205px; right: 2%; bottom: -112px; }
  .today-novi-bubble { width: 340px; max-width: calc(100% - 210px); left: 5%; bottom: 45px; }
}

@media (min-width:1280px) {
  .today-dashboard-header { min-height: 78px; }
  .today-dashboard-grid { grid-template-columns: minmax(0,1.08fr) minmax(0,.98fr) minmax(300px,1.02fr); grid-template-rows: 272px 306px; grid-template-areas: "activity focus calendar" "exams progress calendar"; align-items: stretch; }
  .today-activity-panel,
  .today-focus-panel { min-height: 0; height: 272px; }
  .today-exam-panel,
  .today-week-panel { min-height: 0; height: 306px; }
  .today-calendar-panel { height: 100%; }
  .today-novi-assistant { width: 450px; height: 286px; min-height: 0; margin: 0; position: fixed; z-index: 78; right: 0; bottom: 0; overflow: hidden; border: 0; background: transparent; pointer-events: none; }
  .today-novi-character { width: 340px; right: -38px; bottom: -290px; pointer-events: auto; }
  .today-novi-bubble { width: 236px; min-height: 138px; max-width: none; left: 0; bottom: 30px; pointer-events: auto; }
  .today-week-note { display: none; }
}

@media (max-width:699px) {
  .app-shell[data-route="today"] .app-view {
    height: calc(100dvh - var(--header-height));
    min-height: 0;
    padding: 9px 10px calc(var(--nav-height) + 13px);
    overflow: hidden;
  }
  .today-dashboard-v2 { height: 100%; display: flex; flex-direction: column; gap: 7px; overflow: hidden; }
  .today-dashboard-header { min-height: 45px; margin: 0; align-items: center; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
  .today-dashboard-header .view-header__eyebrow { margin-bottom: 2px; font-size: .43rem; letter-spacing: .08em; }
  .today-dashboard-header h1 { margin: 0; overflow: hidden; font-size: 1.08rem; font-weight: 580; line-height: 1.08; text-overflow: ellipsis; white-space: nowrap; }
  .today-dashboard-header p { display: none; }
  .today-quick-actions { width: auto; display: flex; flex-wrap: nowrap; justify-content: flex-end; gap: 4px; }
  .today-header-action { width: 38px; min-height: 36px; padding: 4px; border-radius: 10px; font-size: 0; }
  .today-header-action span { font-size: .8rem; }
  .today-header-action.is-locked::after { content: "Premium"; position: absolute; width: 1px; height: 1px; overflow: hidden; }
  .today-pulse { flex: 0 0 49px; margin: 0; grid-template-columns: repeat(4,minmax(0,1fr)); border-radius: 12px; }
  .today-pulse a { min-height: 49px; padding: 7px 5px; display: block; }
  .today-pulse a + a { border-left: 1px solid var(--today-line,var(--line)); }
  .today-pulse a:nth-child(3),
  .today-pulse a:nth-child(4) { border-top: 0; }
  .today-pulse a > span:first-child,
  .today-pulse em { display: none; }
  .today-pulse a > span:last-child { display: grid; place-items: center; gap: 3px; text-align: center; }
  .today-pulse small { color: #8f9caf; font-size: .38rem; font-weight: 620; letter-spacing: .035em; line-height: 1.1; }
  .today-pulse strong { margin: 0; font-size: .72rem; font-weight: 620; }
  .today-priority-notice { flex: 0 0 auto; min-height: 34px; margin: 0; padding: 5px 7px; grid-template-columns: 22px minmax(0,1fr) auto; gap: 6px; border-radius: 10px; }
  .today-priority-notice > span { width: 22px; height: 22px; border-radius: 7px; font-size: .58rem; }
  .today-priority-notice p { overflow: hidden; font-size: .45rem; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
  .today-priority-notice p strong { font-weight: 650; }
  .today-priority-notice a,
  .today-priority-notice button { grid-column: auto; font-size: .44rem; white-space: nowrap; }
  .today-study-session {
    min-height: 96px;
    flex: 0 0 96px;
    margin: 0;
    padding: 0;
    border-radius: 12px;
  }
  .today-study-session__main {
    min-height: 61px;
    padding: 7px 8px;
    grid-template-columns: minmax(68px,.62fr) minmax(67px,.75fr) minmax(66px,.58fr) auto;
    gap: 5px;
  }
  .today-study-session::before { inset-block: 8px; }
  .today-study-session__identity { gap: 6px; }
  .today-study-session__icon { width: 29px; height: 29px; border-radius: 9px; }
  .today-study-session__identity small { font-size: .31rem; letter-spacing: .045em; }
  .today-study-session__identity strong { font-size: .49rem; }
  .today-study-session__time { display: grid; grid-template-columns: 1fr; gap: 1px; }
  .today-study-session__time strong { min-width: 0; font-size: .72rem; }
  .today-study-session__time small { display: none; }
  .today-study-session__schedule { padding: 4px 5px; grid-template-columns: 1fr auto 1fr; gap: 3px; border-radius: 8px; }
  .today-study-session__schedule small { font-size: .26rem; letter-spacing: .025em; }
  .today-study-session__schedule time { font-size: .39rem; }
  .today-study-session__schedule i { font-size: .35rem; }
  .today-study-session__actions { gap: 4px; }
  .today-study-session__actions > span { display: none; }
  .today-study-session__actions button { width: 31px; min-height: 31px; padding: 4px; border-radius: 9px; font-size: 0; }
  .today-study-session__actions button span { display: none; }
  .today-study-session__settings span { display: none; }
  .today-study-session__context {
    min-height: 35px;
    padding: 4px 8px;
    display: block;
  }
  .today-study-session__context-label,
  .today-study-session__change,
  .today-study-session__kinds,
  .today-study-session__unlink { display: none; }
  .today-study-session__target {
    width: 100%;
    min-height: 27px;
    padding: 2px 5px;
    grid-template-columns: 22px minmax(0,1fr) auto;
    gap: 5px;
  }
  .today-study-session__target > span:first-child { width: 22px; height: 22px; border-radius: 7px; }
  .today-study-session__target strong { font-size: .43rem; }
  .today-study-session__target small { font-size: .32rem; }
  .today-attendance-quick {
    min-height: 68px;
    flex: 0 0 68px;
    margin: 0;
    padding: 6px 7px;
    grid-template-columns: minmax(83px,.52fr) minmax(0,1.48fr) 34px;
    gap: 5px;
    border-radius: 12px;
  }
  .today-attendance-quick::before { inset-block: 7px; }
  .today-attendance-quick__identity { gap: 5px; }
  .today-attendance-quick__identity > span:first-child { width: 28px; height: 28px; border-radius: 9px; }
  .today-attendance-quick__identity small { font-size: .29rem; letter-spacing: .045em; }
  .today-attendance-quick__identity strong { font-size: .45rem; }
  .today-attendance-quick__identity em { font-size: .31rem; }
  .today-attendance-quick__subjects { gap: 5px; }
  .today-attendance-subject { min-width: 165px; min-height: 48px; padding: 4px 5px; grid-template-columns: 4px minmax(51px,1fr) auto; gap: 5px; border-radius: 9px; }
  .today-attendance-subject > i { width: 4px; height: 24px; }
  .today-attendance-subject > span strong { font-size: .42rem; }
  .today-attendance-subject > span small { font-size: .31rem; }
  .today-attendance-subject > div { gap: 3px; }
  .today-attendance-subject button { width: 27px; min-height: 27px; padding: 3px; border-radius: 7px; font-size: 0; }
  .today-attendance-subject button span { display: none; }
  .today-attendance-quick__actions { display: block; }
  .today-attendance-quick__actions button { width: 32px; min-height: 32px; padding: 4px; border-radius: 9px; font-size: 0; }
  .today-attendance-quick__actions button span,
  .today-attendance-quick__actions a { display: none; }
  .today-attendance-quick__day-message { min-width: 180px; min-height: 46px; padding: 5px 7px; gap: 6px; border-radius: 9px; }
  .today-attendance-quick__day-message strong { font-size: .43rem; }
  .today-attendance-quick__day-message small { font-size: .31rem; }
  .today-attendance-quick.is-empty { min-height: 56px; flex-basis: 56px; grid-template-columns: minmax(95px,1fr) auto; }
  .today-attendance-quick.is-empty > p { display: none; }
  .today-attendance-quick.is-empty > a { min-height: 29px; padding: 5px 8px; font-size: .38rem; }
  .today-dashboard-grid { flex: 1 1 auto; min-height: 0; display: grid; grid-template-rows: minmax(98px,.8fr) minmax(110px,1fr); grid-template-areas: none; gap: 7px; }
  .today-dashboard-grid > section { display: none; grid-area: auto; }
  .today-dashboard-grid > section.is-mobile-primary { display: block; }
  .today-dashboard-grid--single { grid-template-rows: minmax(0,1fr); }
  .today-dashboard-grid > section { border-radius: 14px; }
  .today-panel-heading { min-height: 34px; padding: 7px 10px; }
  .today-panel-heading > div { gap: 6px; }
  .today-panel-heading h2 { font-size: .62rem; font-weight: 580; }
  .today-panel-heading a { font-size: .45rem; }
  .today-panel-icon { font-size: .65rem; }
  .today-panel-more { font-size: .5rem; }
  .today-focus-panel { min-height: 0; }
  .today-focus-main { min-height: 0; height: calc(100% - 34px); padding: 8px 12px; gap: 10px; }
  .today-focus-subject { font-size: .76rem; font-weight: 580; }
  .today-focus-main > div:first-child small { display: none; }
  .today-focus-main > div:first-child strong { margin-top: 4px; font-size: .51rem; font-weight: 470; line-height: 1.3; }
  .today-metric-ring { width: 54px; box-shadow: 0 0 0 4px rgba(109,105,255,.045); }
  .today-metric-ring strong { font-size: .72rem; }
  .today-metric-ring small { font-size: .31rem; }
  .today-focus-panel > footer { display: none; }
  .today-activity-panel { min-height: 0; }
  .today-activity-list { height: calc(100% - 34px); padding: 2px 9px 5px; overflow: hidden; }
  .today-activity-row { min-height: 38px; grid-template-columns: 18px minmax(0,1fr) auto; gap: 7px; }
  .today-activity-row:nth-child(n+3) { display: none; }
  .today-activity-check { width: 17px; height: 17px; border-radius: 5px; font-size: .5rem; }
  .today-activity-copy strong { font-size: .55rem; font-weight: 590; }
  .today-activity-copy small { margin-top: 1px; font-size: .41rem; }
  .today-activity-row time { font-size: .42rem; }
  .today-priority { display: none; }
  .today-panel-empty { min-height: 0; height: 100%; padding: 7px; grid-template-columns: 28px minmax(0,1fr) auto; place-items: center start; gap: 7px; text-align: left; }
  .today-panel-empty > span { width: 28px; height: 28px; border-radius: 9px; }
  .today-panel-empty strong { font-size: .55rem; }
  .today-panel-empty p { display: none; }
  .today-panel-empty a,
  .today-panel-empty button { margin: 0; padding: 6px 8px; font-size: .46rem; }
  .today-mobile-sections { flex: 0 0 49px; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 4px; }
  .today-mobile-sections a,
  .today-mobile-sections button { min-width: 0; padding: 5px 2px; display: grid; place-items: center; align-content: center; gap: 2px; border: 1px solid var(--today-line); border-radius: 11px; color: #aeb8ca; background: rgba(8,19,33,.82); font: inherit; text-decoration: none; cursor: pointer; }
  .today-mobile-sections button { border-color: rgba(87,213,223,.25); background: linear-gradient(145deg,rgba(87,213,223,.08),rgba(126,112,255,.08)); }
  .today-mobile-sections span { color: var(--today-indigo-bright); font-size: .7rem; }
  .today-mobile-sections strong { overflow: hidden; font-size: .42rem; font-weight: 570; text-overflow: ellipsis; white-space: nowrap; }
  .today-novi-assistant { width: 92px; height: 92px; min-height: 0; margin: 0; position: fixed; z-index: 89; right: 7px; bottom: calc(var(--nav-height) + 9px); overflow: visible; border: 0; background: transparent; pointer-events: none; }
  .today-novi-character { width: 88px; right: -4px; bottom: -43px; pointer-events: auto; }
  .today-novi-bubble { width: min(245px,calc(100vw - 112px)); min-height: 0; padding: 10px; position: fixed; left: auto; right: 73px; bottom: calc(var(--nav-height) + 17px); border-radius: 13px; pointer-events: auto; }
  .today-novi-bubble > header strong { font-size: .54rem; }
  .today-novi-bubble > p { min-height: 0; margin: 6px 0 8px; font-size: .48rem; line-height: 1.35; }
  .today-novi-bubble > div button { min-height: 27px; padding: 5px 7px; font-size: .43rem; }
}

/* The dashboard compacts cleanly when the user hides optional Today panels. */
@media (min-width:700px) {
  .today-dashboard-grid--adaptive {
    grid-template-columns: repeat(2,minmax(0,1fr));
    grid-template-rows: auto;
    grid-template-areas: none;
    align-items: stretch;
  }
  .today-dashboard-grid--adaptive > section {
    min-height: 280px;
    height: auto;
    grid-area: auto;
  }
  .today-dashboard-grid--adaptive.today-dashboard-grid--single > section { grid-column: 1 / -1; }
}

@media (min-width:1280px) {
  .today-dashboard-grid--adaptive {
    grid-template-columns: repeat(2,minmax(0,1fr));
    grid-auto-rows: minmax(280px,auto);
  }
  .today-dashboard-grid--adaptive > section {
    min-height: 280px;
    height: auto;
  }
}

html[data-ui-palette="contrast"] .today-dashboard-v2 {
  --today-night: #000;
  --today-panel: #090909;
  --today-panel-raised: #111;
  --today-line: rgba(255,255,255,.32);
  --today-indigo: #fff;
  --today-indigo-bright: #fff;
  --today-cyan: #7ff6ff;
}

html[data-ui-palette="color-safe"] .today-dashboard-v2 {
  --today-indigo: #8293ff;
  --today-indigo-bright: #a9b3ff;
  --today-cyan: #50d6cc;
  --today-gold: #f2b84b;
}

@media (max-width:699px) {
  html[data-ui-scale="large"] .app-shell[data-route="today"] .app-view {
    height: auto;
    min-height: calc(100dvh - var(--header-height));
    overflow: auto;
  }
  html[data-ui-scale="large"] .today-dashboard-v2 {
    height: auto;
    min-height: calc(100dvh - var(--header-height) - var(--nav-height) - 24px);
    overflow: visible;
  }
  html[data-ui-scale="large"] .today-dashboard-grid {
    flex: 0 0 auto;
    min-height: 330px;
  }
}

@media (max-width:390px) {
  .today-study-session__main { grid-template-columns: 29px minmax(68px,.85fr) minmax(65px,.72fr) auto; }
  .today-study-session__identity > span:last-child { display: none; }
  .today-study-session__identity small { display: none; }
  .today-activity-list { padding-inline: 10px; }
  .today-activity-row time { display: none; }
  .today-activity-row { grid-template-columns: 23px minmax(0,1fr); }
  .today-week-summary { padding-inline: 14px; }
  .today-metric-ring--violet { width: 84px; }
  .today-novi-bubble { width: calc(100% - 118px); left: 10px; }
  .today-novi-character { width: 144px; right: -18px; bottom: -77px; }
}

/* Today professional night palette — closer to the approved Novi concept. */
.today-dashboard-v2 {
  --today-night: #030915;
  --today-panel: #081321;
  --today-panel-raised: #0b1727;
  --today-line: rgba(115,139,184,.17);
  --today-line-strong: rgba(130,151,200,.25);
  --today-indigo: #706aff;
  --today-indigo-bright: #9b91ff;
}
.today-dashboard-header .view-header__eyebrow { color: var(--today-indigo-bright); }
.today-header-action { border-color: var(--today-line); color: #d6dceb; background: rgba(8,19,33,.82); box-shadow: inset 0 1px rgba(255,255,255,.025); }
.today-header-action:first-child { border-color: rgba(139,132,255,.46); color: #fff; background: linear-gradient(135deg,#7771ff,#544bd9); box-shadow: 0 10px 24px rgba(76,67,200,.2),inset 0 1px rgba(255,255,255,.18); }
.today-header-action:first-child span { color: #fff; }
.today-dashboard-grid > section { border-color: var(--today-line); box-shadow: 0 18px 42px rgba(0,3,10,.28),inset 0 1px rgba(255,255,255,.018); }
.today-panel-heading { border-bottom-color: var(--today-line); }
.today-panel-heading a { color: var(--today-indigo-bright); }
.today-panel-icon { color: #817bff; }
.today-period-chip { border-color: var(--today-line); color: #b8c1d2; background: rgba(2,8,18,.34); }
.today-activity-panel { background: linear-gradient(145deg,#fff,#f3f6fb); box-shadow: 0 20px 48px rgba(0,3,10,.28); }
.today-focus-panel { background: radial-gradient(circle at 92% 8%,rgba(89,96,255,.12),transparent 38%),linear-gradient(145deg,var(--today-panel-raised),#06101d); }
.today-focus-subject { color: #9488ff; }
.today-metric-ring { background: radial-gradient(circle,#06101d 58%,transparent 60%),conic-gradient(var(--today-indigo) var(--progress-width),rgba(118,139,177,.13) 0); box-shadow: 0 0 0 7px rgba(109,105,255,.045),0 0 28px rgba(74,69,220,.11); }
.today-focus-panel > footer { border-top-color: var(--today-line); background: rgba(4,12,23,.48); }
.today-exam-panel,
.today-week-panel,
.today-calendar-panel { background: linear-gradient(150deg,var(--today-panel-raised),#06101d); }
.today-metric-ring--violet { background: radial-gradient(circle,#06101d 58%,transparent 60%),conic-gradient(var(--today-indigo) var(--progress-width),rgba(118,139,177,.13) 0); }
.today-week-chart i { background: linear-gradient(180deg,#827cff,#5650d9); box-shadow: 0 0 15px rgba(93,84,232,.2); }
.today-calendar-panel .today-calendar-grid a.is-today { border-color: #7771ff; background: linear-gradient(145deg,#7d77ff,#5650d9); box-shadow: 0 8px 20px rgba(73,67,205,.3); }
.today-calendar-agenda { border-top-color: var(--today-line); background: rgba(3,10,20,.42); }
.today-novi-assistant { border-color: var(--today-line); background: radial-gradient(circle at 90% 10%,rgba(96,91,255,.11),transparent 35%),rgba(4,12,23,.72); }
.today-novi-bubble { border-color: rgba(112,106,255,.32); background: rgba(5,13,25,.94); box-shadow: 0 18px 42px rgba(0,3,10,.4),inset 0 1px rgba(255,255,255,.025); backdrop-filter: blur(16px); transition: opacity var(--nk-motion-panel) ease,visibility var(--nk-motion-panel) ease,transform var(--nk-motion-panel) var(--nk-ease-emphasized); transform-origin: right bottom; }
.today-novi-bubble > header strong { color: var(--today-indigo-bright); }
.today-novi-bubble > div button { border-color: rgba(112,106,255,.42); color: var(--today-indigo-bright); background: rgba(112,106,255,.035); }
.today-novi-assistant.is-bubble-hidden .today-novi-bubble { visibility: hidden; opacity: 0; pointer-events: none; }

@media (min-width:1280px) {
  .today-novi-assistant { border: 0; background: transparent; }
}

@media (prefers-reduced-motion:reduce) {
  .today-novi-assistant,
  .today-novi-character,
  .today-novi-bubble,
  .today-header-action,
  .today-activity-check,
  .today-exam-row { transition: none !important; }
  .today-pulse a { transition: none !important; }
  .today-novi-character,
  .novi-character-art,
  .novi-character-art__eye-glow,
  .novi-character-art__core-glow { animation: none !important; }
}

/* Nova AI studio — a focused workspace, separate from the Nova Orb artwork. */
.ai-studio-view {
  --ai-night: #030915;
  --ai-panel: #081321;
  --ai-panel-raised: #0b1727;
  --ai-line: rgba(122,143,184,.18);
  --ai-violet: #7771ff;
  --ai-violet-bright: #a99fff;
  --ai-paper: #f7f8fb;
  --ai-ink: #101522;
  --ai-ink-soft: #596174;
}
.ai-studio-view--overlay {
  width: 100%;
  height: 100%;
  padding: clamp(14px,1.35vw,22px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  overscroll-behavior: contain;
  background: radial-gradient(circle at 72% -5%,rgba(119,113,255,.1),transparent 34%),linear-gradient(145deg,#050c18,#020711 70%);
  scrollbar-width: thin;
}
.ai-studio-header { align-items: flex-end; }
.ai-studio-header h1 { letter-spacing: -.045em; }
.ai-studio-header__actions,
.ai-studio-header .view-header__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.ai-mobile-chat-toggle { display: none; }
.ai-studio-close span { margin-right: 4px; font-size: 1rem; line-height: 0; }
.ai-studio-shell { display: grid; gap: 14px; align-items: start; }
.ai-studio-view--overlay .ai-studio-header { flex: 0 0 auto; margin-bottom: 16px; align-items: center; }
.ai-studio-view--overlay .ai-studio-header .view-header__eyebrow { margin-bottom: 4px; font-size: .58rem; }
.ai-studio-view--overlay .ai-studio-header h1 { margin-bottom: 5px; font-size: clamp(1.8rem,2.5vw,2.35rem); }
.ai-studio-view--overlay .ai-studio-header p { font-size: .75rem; line-height: 1.45; }
.ai-studio-view--overlay .ai-studio-shell { flex: 1 1 auto; min-height: 0; align-items: stretch; }

.ai-chat-panel,
.ai-lab,
.ai-source-panel,
.ai-studio-result { min-width: 0; border: 1px solid var(--ai-line); border-radius: 20px; }
.ai-chat-panel {
  min-height: 520px;
  padding: 15px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow: hidden;
  background: radial-gradient(circle at 20% 0,rgba(119,113,255,.12),transparent 34%),linear-gradient(160deg,#071322,#030914 70%);
  box-shadow: 0 22px 48px rgba(0,3,10,.24),inset 0 1px rgba(255,255,255,.025);
}
.ai-chat-panel > header { display: flex; align-items: center; gap: 10px; padding-bottom: 12px; border-bottom: 1px solid var(--ai-line); }
.ai-chat-panel > header > div { min-width: 0; display: grid; gap: 2px; }
.ai-chat-panel > header strong { font-size: .82rem; }
.ai-chat-panel > header small { color: var(--text-muted); font-size: .58rem; line-height: 1.35; }
.ai-chat-mark { width: 36px; height: 36px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid rgba(119,113,255,.42); border-radius: 12px; color: #d9d5ff; background: rgba(119,113,255,.12); box-shadow: 0 0 20px rgba(96,87,232,.12); }
.ai-chat-feed { min-height: 172px; max-height: 330px; padding: 2px; display: grid; align-content: start; gap: 8px; overflow-y: auto; scrollbar-width: thin; }
.ai-chat-message { width: 92%; padding: 10px 11px; border: 1px solid var(--ai-line); border-radius: 13px 13px 13px 4px; background: rgba(255,255,255,.035); }
.ai-chat-message--user { margin-left: auto; border-color: rgba(119,113,255,.32); border-radius: 13px 13px 4px 13px; background: rgba(119,113,255,.11); }
.ai-chat-message strong { color: var(--ai-violet-bright); font-size: .6rem; }
.ai-chat-message--user strong { color: var(--cyan); }
.ai-chat-message p { margin: 4px 0 0; color: #cbd3e1; font-size: .66rem; line-height: 1.52; }
.ai-chat-suggestions { display: grid; gap: 6px; }
.ai-chat-suggestions button { min-height: 38px; padding: 8px 10px; border: 1px solid var(--ai-line); border-radius: 11px; color: #c8d0df; background: rgba(255,255,255,.025); font: inherit; font-size: .59rem; line-height: 1.35; text-align: left; cursor: pointer; transition: border-color .18s ease,background .18s ease,transform .18s ease; }
.ai-chat-suggestions button:hover { border-color: rgba(119,113,255,.48); background: rgba(119,113,255,.08); transform: translateX(2px); }
.ai-chat-composer { margin-top: auto; padding: 6px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 6px; border: 1px solid rgba(119,113,255,.32); border-radius: 14px; background: rgba(2,8,18,.82); }
.ai-chat-composer textarea { min-height: 58px; max-height: 130px; padding: 8px; resize: vertical; border: 0; outline: 0; color: #f2f4f8; background: transparent; font: inherit; font-size: .67rem; line-height: 1.45; }
.ai-chat-composer textarea::placeholder { color: #758096; }
.ai-chat-composer button { min-height: 40px; padding: 8px 11px; border: 0; border-radius: 10px; color: #fff; background: linear-gradient(145deg,#7c76ff,#554bd5); font: inherit; font-size: .61rem; font-weight: 700; cursor: pointer; }
.ai-chat-policy { margin: 0; color: var(--text-muted); font-size: .55rem; line-height: 1.45; }
.ai-chat-policy span { color: var(--cyan); }

.ai-lab { padding: 14px; background: linear-gradient(155deg,rgba(10,20,35,.95),rgba(4,10,19,.98)); box-shadow: 0 22px 48px rgba(0,3,10,.22),inset 0 1px rgba(255,255,255,.02); }
.ai-runtime-strip--studio { margin: 0 0 12px; border-color: var(--ai-line); color: #aeb8ca; background: rgba(2,8,18,.46); }
.ai-mode-tabs { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 8px; }
.ai-mode-tab { min-height: 92px; padding: 11px; display: grid; grid-template-columns: 27px minmax(0,1fr); grid-template-rows: auto 1fr; align-content: center; align-items: center; column-gap: 7px; border: 1px solid var(--ai-line); border-radius: 14px; color: #cdd4e0; background: rgba(255,255,255,.025); font: inherit; text-align: left; cursor: pointer; transition: border-color .2s ease,background .2s ease,transform .2s ease,box-shadow .2s ease; }
.ai-mode-tab > span { grid-row: 1 / span 2; width: 27px; height: 27px; display: grid; place-items: center; border-radius: 9px; color: var(--ai-violet-bright); background: rgba(119,113,255,.1); }
.ai-mode-tab strong { font-size: .68rem; }
.ai-mode-tab small { margin-top: 3px; overflow: hidden; color: var(--text-muted); font-size: .51rem; line-height: 1.3; }
.ai-mode-tab:hover { border-color: rgba(119,113,255,.42); transform: translateY(-1px); }
.ai-mode-tab.is-active { border-color: rgba(135,126,255,.64); color: #fff; background: linear-gradient(145deg,rgba(119,113,255,.18),rgba(78,69,201,.08)); box-shadow: 0 10px 28px rgba(72,62,196,.12),inset 0 1px rgba(255,255,255,.04); }
.ai-mode-tab.is-active > span { color: #fff; background: linear-gradient(145deg,#7f78ff,#5850d6); box-shadow: 0 7px 16px rgba(73,65,207,.22); }

.ai-studio-workspace { margin-top: 12px; display: grid; gap: 12px; align-items: stretch; }
.ai-source-panel { padding: clamp(16px,2.2vw,23px); display: grid; align-content: start; gap: 12px; background: radial-gradient(circle at 100% 0,rgba(119,113,255,.08),transparent 34%),var(--ai-panel-raised); }
.ai-source-panel > header,
.ai-studio-result > header { min-height: 48px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.ai-source-panel > header > div,
.ai-studio-result > header > div { min-width: 0; }
.ai-source-panel > header span:not(.chip),
.ai-studio-result > header span:not(.ai-result-local) { color: var(--ai-violet-bright); font-size: .55rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.ai-source-panel h2,
.ai-studio-result h2 { margin: 5px 0 0; font-size: 1.08rem; letter-spacing: -.025em; }
.ai-source-panel > label { display: grid; gap: 6px; color: #bfc7d6; font-size: .66rem; font-weight: 650; }
.ai-source-panel .field { border-color: var(--ai-line); background: rgba(2,8,18,.48); }
.ai-file-drop { padding: 11px; border: 1px dashed rgba(130,121,255,.38); border-radius: 14px; background: rgba(119,113,255,.035); }
.ai-file-drop > span { color: var(--text-muted); font-size: .57rem; font-weight: 500; line-height: 1.45; }
.ai-source-panel .ai-source-text { min-height: 236px; resize: vertical; line-height: 1.62; }
.ai-source-panel .ai-study-count[hidden],
.ai-source-panel [data-cancel-extraction][hidden],
.ai-source-panel [data-cancel-analysis][hidden] { display: none !important; }
.ai-analysis-progress {
  padding: 11px;
  display: grid;
  gap: 8px;
  border: 1px solid rgba(116,108,255,.25);
  border-radius: 13px;
  background: linear-gradient(145deg,rgba(113,101,255,.11),rgba(55,208,211,.045));
  box-shadow: inset 0 1px rgba(255,255,255,.035);
}
.ai-analysis-progress[hidden] { display: none !important; }
.ai-analysis-progress > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ai-analysis-progress > header strong { color: #e7e5ff; font-size: .61rem; }
.ai-analysis-progress > header > span { display: inline-flex; align-items: center; gap: 7px; }
.ai-analysis-progress > header b { color: #82e7ea; font-size: .58rem; font-variant-numeric: tabular-nums; }
.ai-analysis-progress [data-cancel-analysis] { padding: 4px 7px; border: 1px solid rgba(240,197,111,.28); border-radius: 7px; color: #f0cf8b; background: rgba(240,197,111,.08); font: inherit; font-size: .48rem; font-weight: 750; cursor: pointer; }
.ai-analysis-progress [data-cancel-analysis]:hover { border-color: rgba(240,197,111,.5); background: rgba(240,197,111,.14); }
.ai-analysis-progress [data-cancel-analysis]:disabled { cursor: wait; opacity: .58; }
.ai-analysis-progress progress { width: 100%; height: 5px; overflow: hidden; border: 0; border-radius: 999px; background: rgba(255,255,255,.08); accent-color: #7167f4; }
.ai-analysis-progress progress::-webkit-progress-bar { border-radius: 999px; background: rgba(255,255,255,.08); }
.ai-analysis-progress progress::-webkit-progress-value { border-radius: 999px; background: linear-gradient(90deg,#6f64f2,#49d1d5); box-shadow: 0 0 14px rgba(86,197,225,.28); }
.ai-analysis-progress progress::-moz-progress-bar { border-radius: 999px; background: linear-gradient(90deg,#6f64f2,#49d1d5); }
.ai-analysis-progress__steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; }
.ai-analysis-progress__steps span { min-width: 0; padding: 5px 4px; border: 1px solid rgba(255,255,255,.07); border-radius: 8px; color: #738096; background: rgba(1,7,16,.24); font-size: .48rem; font-weight: 700; text-align: center; }
.ai-analysis-progress__steps span.is-active { border-color: rgba(119,109,255,.42); color: #d9d5ff; background: rgba(112,101,242,.14); }
.ai-analysis-progress__steps span.is-complete { border-color: rgba(73,209,213,.24); color: #71d9dc; background: rgba(54,193,197,.08); }
.ai-analysis-progress > small { overflow: hidden; color: #95a1b4; font-size: .51rem; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.ai-source-status { min-height: 18px; margin: 0; color: var(--text-soft); font-size: .62rem; line-height: 1.45; }
.ai-source-status[data-kind="success"] { color: #8ce1b3; }
.ai-source-status[data-kind="warning"] { color: #f0c56f; }
.ai-source-status[data-kind="error"] { color: #ffaaaa; }
.ai-studio-view.is-processing .ai-studio-result { opacity: .72; }

.ai-studio-result { padding: clamp(17px,2.3vw,26px); overflow: hidden; color: var(--ai-ink); background: linear-gradient(145deg,#fff,var(--ai-paper)); box-shadow: 0 20px 45px rgba(0,3,10,.22); }
.ai-studio-result h2 { color: var(--ai-ink); }
.ai-result-local { min-height: 29px; padding: 6px 9px; display: inline-flex; align-items: center; gap: 6px; border: 1px solid rgba(37,154,116,.18); border-radius: 999px; color: #267e65; background: rgba(63,190,147,.08); font-size: .56rem; font-weight: 700; white-space: nowrap; }
.ai-result-local i { width: 6px; height: 6px; border-radius: 50%; background: #4dcc9f; box-shadow: 0 0 0 4px rgba(77,204,159,.11); }
.ai-result--studio { min-height: 430px; margin-top: 14px; padding-top: 16px; border-top-color: rgba(16,21,34,.1); }
.ai-result-placeholder { min-height: 390px; display: grid; place-items: center; align-content: center; gap: 8px; text-align: center; }
.ai-result-placeholder > span { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 16px; color: #665ee7; background: #eceafd; font-size: 1.15rem; }
.ai-result-placeholder strong { color: var(--ai-ink); font-size: .86rem; }
.ai-result-placeholder p { max-width: 330px; margin: 0; color: var(--ai-ink-soft); font-size: .68rem; line-height: 1.5; }
.ai-result-placeholder small { color: #858c9c; font-size: .57rem; }
.ai-studio-result .ai-result__header h3 { color: var(--ai-ink); }
.ai-studio-result .ai-summary { border-color: rgba(100,89,224,.14); background: #f0effd; }
.ai-studio-result .ai-summary p { color: #303747; }
.ai-studio-result .ai-source-reference { color: #6259d9; background: rgba(98,89,217,.055); }
.ai-studio-result .ai-result-card { border-color: rgba(16,21,34,.1); background: #fff; box-shadow: 0 8px 20px rgba(15,20,33,.035); }
.ai-studio-result .ai-result-card strong { color: var(--ai-ink); }
.ai-studio-result .ai-result-card p,
.ai-studio-result .ai-deck-save p,
.ai-studio-result .ai-disclaimer { color: var(--ai-ink-soft); }
.ai-studio-result .ai-result-card details { color: #6259d9; }
.ai-studio-result .ai-result-card--selectable:has([data-ai-card-select]:checked) { border-color: rgba(98,89,217,.34); }
.ai-studio-result .ai-result-card--selectable > label:not(.ai-result-card__select) { color: var(--ai-ink-soft); }
.ai-studio-result .ai-result-card--selectable textarea,
.ai-studio-result .ai-deck-save .field { border-color: rgba(16,21,34,.13); color: var(--ai-ink); background: #f6f7fa; }
.ai-studio-result .ai-result-card__select { color: #6159d8; }
.ai-studio-result .ai-deck-save { border-color: rgba(98,89,217,.2); background: linear-gradient(145deg,#f2f1fd,#f7f8fb); }
.ai-studio-result .ai-deck-save h4 { color: var(--ai-ink); }
.ai-studio-result .ai-deck-save > label { color: var(--ai-ink-soft); }
.ai-studio-result .ai-deck-locked { border-color: rgba(16,21,34,.1); color: var(--ai-ink-soft); background: rgba(16,21,34,.025); }
.ai-studio-result .chip { color: #574fc7; background: #eceafd; }

@media (min-width:1024px) {
  .ai-studio-shell { grid-template-columns: minmax(225px,250px) minmax(0,1fr); }
  .ai-chat-panel { position: sticky; top: 82px; max-height: calc(100dvh - 105px); }
  .ai-studio-view--overlay .ai-studio-shell { grid-template-columns: minmax(230px,260px) minmax(0,1fr); }
  .ai-studio-view--overlay .ai-chat-panel { position: static; top: auto; min-height: 0; height: 100%; max-height: none; }
  .ai-studio-view--overlay .ai-lab { min-height: 0; height: 100%; overflow: auto; scrollbar-width: thin; }
  .ai-studio-view--overlay .ai-mode-tab { min-height: 76px; }
  .ai-studio-view--overlay .ai-result--studio { min-height: 390px; }
  .ai-studio-view--overlay .ai-result-placeholder { min-height: 350px; }
}
@media (min-width:1280px) {
  .ai-studio-workspace { grid-template-columns: minmax(270px,.78fr) minmax(328px,1.22fr); }
  .ai-studio-view--overlay .ai-studio-workspace { grid-template-columns: minmax(280px,.72fr) minmax(430px,1.28fr); }
  .ai-source-panel .ai-source-text { min-height: 274px; }
  .ai-result--studio { min-height: 548px; }
  .ai-result-placeholder { min-height: 508px; }
}
@media (max-width:1023px) {
  .ai-studio-view--overlay { display: block; overflow: auto; }
  .ai-mobile-chat-toggle { display: inline-flex; }
  .ai-chat-panel { display: none; min-height: auto; }
  .ai-studio-view.is-chat-open .ai-chat-panel { display: flex; }
  .ai-chat-feed { max-height: 260px; }
}
@media (max-width:699px) {
  .ai-studio-view--overlay { padding: 12px; }
  .ai-studio-header { align-items: stretch; }
  .ai-studio-header .view-header__actions { justify-content: stretch; }
  .ai-studio-header .view-header__actions > * { flex: 1; }
  .ai-lab { padding: 9px; border-radius: 17px; }
  .ai-mode-tabs { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ai-mode-tab { min-height: 76px; }
  .ai-mode-tab small { font-size: .49rem; }
  .ai-source-panel,
  .ai-studio-result { padding: 15px; border-radius: 17px; }
  .ai-source-panel .ai-source-text { min-height: 220px; }
  .ai-text-meta { display: grid; }
  .ai-result--studio { min-height: 350px; }
  .ai-result-placeholder { min-height: 310px; }
  .ai-result-grid--selectable { grid-template-columns: 1fr; }
  .ai-deck-save { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion:reduce) {
  .ai-chat-suggestions button,
  .ai-mode-tab,
  .ai-studio-result { transition: none !important; }
}

/* Nova AI workspace v2 — the document and result stay central; chat opens separately. */
.ai-studio-view {
  --ai-night: #030813;
  --ai-panel: #081322;
  --ai-panel-raised: #0b1727;
  --ai-line: rgba(132,151,191,.2);
  --ai-violet: #736cff;
  --ai-violet-bright: #a99fff;
  --ai-paper: #f7f8fb;
  --ai-ink: #101522;
  --ai-ink-soft: #596174;
  --ai-mode-accent: #655df0;
  --ai-mode-accent-2: #a45be9;
  --ai-mode-soft: rgba(101,93,240,.1);
}
.ai-studio-view[data-ai-mode-active="explain"] { --ai-mode-accent:#159eae; --ai-mode-accent-2:#55cfd5; --ai-mode-soft:rgba(21,158,174,.1); }
.ai-studio-view[data-ai-mode-active="flashcards"] { --ai-mode-accent:#865ef0; --ai-mode-accent-2:#d052aa; --ai-mode-soft:rgba(186,73,171,.1); }
.ai-studio-view[data-ai-mode-active="quiz"] { --ai-mode-accent:#dd8f2f; --ai-mode-accent-2:#f26767; --ai-mode-soft:rgba(221,143,47,.11); }
.ai-studio-view[data-ai-mode-active="concept-map"] { --ai-mode-accent:#397bd7; --ai-mode-accent-2:#24c5b4; --ai-mode-soft:rgba(44,166,193,.11); }
.ai-studio-view[data-ai-mode-active="glossary"] { --ai-mode-accent:#9a63db; --ai-mode-accent-2:#e46ca9; --ai-mode-soft:rgba(171,91,203,.11); }
.ai-studio-view[data-ai-mode-active="compare"] { --ai-mode-accent:#c47a2b; --ai-mode-accent-2:#655de8; --ai-mode-soft:rgba(196,122,43,.1); }
.ai-studio-view--overlay {
  padding: 0;
  background: radial-gradient(circle at 70% -12%,rgba(110,92,255,.13),transparent 36%),linear-gradient(145deg,#06101d,#020711 72%);
}
.ai-studio-view--overlay .ai-studio-header { margin-bottom: 0; }
.ai-studio-header {
  min-height: 78px;
  padding: 11px clamp(14px,1.5vw,22px);
  display: grid;
  grid-template-columns: minmax(190px,1fr) auto;
  grid-template-rows: auto auto;
  align-items: center;
  gap: clamp(10px,1.1vw,18px);
  border-bottom: 1px solid var(--ai-line);
  background: rgba(2,8,18,.78);
  box-shadow: 0 12px 34px rgba(0,0,0,.14);
  backdrop-filter: blur(18px);
}
.ai-studio-brand { min-width: 0; display: flex; align-items: center; gap: 10px; }
.ai-studio-brand__mark { width: 39px; height: 39px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid rgba(134,123,255,.36); border-radius: 13px; color: #d9d5ff; background: radial-gradient(circle at 36% 30%,rgba(255,255,255,.18),transparent 28%),linear-gradient(145deg,rgba(119,113,255,.24),rgba(65,55,174,.08)); box-shadow: 0 0 28px rgba(91,77,223,.2); }
.ai-studio-brand > div { min-width: 0; }
.ai-studio-brand > div > span { display: block; color: #9e96ef; font-size: .54rem; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; }
.ai-studio-view .ai-studio-brand h1 { margin: 2px 0 0; font-size: 1.22rem; line-height: 1; letter-spacing: -.04em; }
.ai-studio-header .ai-mode-tabs { width: 100%; min-width: 0; padding: 4px; grid-column: 1 / -1; grid-row: 2; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 3px; overflow: hidden; border: 1px solid var(--ai-line); border-radius: 14px; background: rgba(7,16,30,.84); }
.ai-studio-header .ai-mode-tab { min-width: 0; min-height: 43px; padding: 7px 8px; display: flex; justify-content: center; gap: 6px; overflow: hidden; border: 0; border-radius: 10px; text-align: center; }
.ai-studio-header .ai-mode-tab > span { width: 22px; height: 22px; flex: 0 0 auto; border-radius: 7px; }
.ai-studio-header .ai-mode-tab strong { min-width: 0; font-size: .62rem; white-space: nowrap; }
.ai-studio-header .ai-mode-tab[data-ai-mode="summary"] > span { color:#bcb6ff; background:rgba(101,93,240,.13); }
.ai-studio-header .ai-mode-tab[data-ai-mode="explain"] > span { color:#73e3e8; background:rgba(21,158,174,.13); }
.ai-studio-header .ai-mode-tab[data-ai-mode="flashcards"] > span { color:#e69bd5; background:rgba(208,82,170,.12); }
.ai-studio-header .ai-mode-tab[data-ai-mode="quiz"] > span { color:#ffd37f; background:rgba(221,143,47,.13); }
.ai-studio-header .ai-mode-tab[data-ai-mode="concept-map"] > span { color:#70e5dc; background:rgba(36,197,180,.12); }
.ai-studio-header .ai-mode-tab[data-ai-mode="glossary"] > span { color:#f0a8d2; background:rgba(228,108,169,.12); }
.ai-studio-header .ai-mode-tab[data-ai-mode="compare"] > span { color:#ffcc78; background:rgba(233,164,58,.12); }
.ai-studio-header .ai-mode-tab.is-active { background: linear-gradient(135deg,var(--ai-mode-accent),var(--ai-mode-accent-2)); box-shadow: 0 8px 22px rgba(83,64,214,.3),inset 0 1px rgba(255,255,255,.18); }
.ai-studio-header .ai-mode-tab.is-active > span { background: rgba(255,255,255,.14); box-shadow: none; }
.ai-studio-header__actions { min-width: 0; grid-column: 2; grid-row: 1; display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
.ai-device-badge { min-height: 38px; padding: 8px 10px; display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--ai-line); border-radius: 12px; color: #c7cfdd; background: rgba(255,255,255,.025); font-size: .59rem; font-weight: 650; white-space: nowrap; }
.ai-device-badge i { width: 7px; height: 7px; border-radius: 50%; background: #55d6a2; box-shadow: 0 0 0 4px rgba(85,214,162,.1); }
.ai-chat-launch,
.ai-studio-close { min-height: 38px; padding: 8px 11px; border-color: var(--ai-line); border-radius: 12px; font-size: .61rem; white-space: nowrap; }
.ai-chat-launch > span { color: #8de8ee; }
.ai-chat-launch small { margin-left: 3px; padding: 2px 5px; border-radius: 999px; color: #aeb6c6; background: rgba(255,255,255,.06); font-size: .45rem; }
.ai-chat-launch.is-active { border-color: rgba(130,119,255,.58); color: #fff; background: linear-gradient(135deg,rgba(101,93,240,.84),rgba(164,91,233,.72)); box-shadow: 0 8px 22px rgba(83,64,214,.24); }
.ai-chat-launch.is-locked,
.ai-chat-launch.is-locked.is-active { border-color: rgba(165,173,188,.18); color: #aeb6c4; background: rgba(255,255,255,.025); box-shadow: none; }
.ai-chat-launch.is-locked > span { color: #8b95a5; }
.ai-studio-close > span { margin: 0 3px 0 0; }
.ai-studio-header .ai-mode-tab:focus-visible,
.ai-chat-launch:focus-visible,
.ai-studio-close:focus-visible,
.ai-chat-thread-panel > header .button:focus-visible { outline: 2px solid var(--ai-mode-accent,#7c70ff); outline-offset: 2px; }

.ai-studio-view--locked { min-height: calc(100dvh - 120px); display: flex; flex-direction: column; color: #eef1f7; }
.ai-studio-view--locked.ai-studio-view--overlay { min-height: 0; }
.ai-studio-header--locked { grid-template-columns: minmax(180px,1fr) auto; }
.ai-studio-header--locked .ai-studio-header__actions { grid-column: 2; }
.ai-plan-lock {
  width: min(100%,840px);
  min-height: 0;
  margin: auto;
  padding: clamp(24px,5vw,54px);
  display: grid;
  place-items: center;
  align-content: center;
  gap: 10px;
  border: 1px solid rgba(127,116,255,.2);
  border-radius: 25px;
  text-align: center;
  background:
    radial-gradient(circle at 50% 0,rgba(124,105,246,.2),transparent 38%),
    radial-gradient(circle at 100% 100%,rgba(74,210,219,.1),transparent 31%),
    linear-gradient(145deg,rgba(10,18,33,.98),rgba(4,10,20,.98));
  box-shadow: 0 28px 75px rgba(0,0,0,.3),inset 0 1px rgba(255,255,255,.045);
}
.ai-plan-lock__visual { width: 88px; height: 88px; position: relative; display: grid; place-items: center; filter: drop-shadow(0 16px 24px rgba(75,54,207,.28)); }
.ai-plan-lock__visual::before { content:""; position:absolute; inset:5px; border-radius:50%; background:radial-gradient(circle,rgba(102,79,231,.2),rgba(41,189,205,.055) 46%,transparent 72%); filter:blur(5px); }
.ai-plan-lock__visual .nova-ai-emblem { position:relative; z-index:1; width:100%; height:100%; }
.ai-plan-lock__identity { display:grid; justify-items:center; gap:2px; }
.ai-plan-lock__identity strong { color:#f5f3ff; font-size:1.16rem; letter-spacing:-.025em; }
.ai-plan-lock__identity span { color:#aab5c6; font-size:.61rem; line-height:1.4; }
.ai-plan-lock__tier { min-height:28px; padding:5px 10px; display:inline-flex; align-items:center; gap:6px; border:1px solid rgba(158,126,255,.34); border-radius:999px; color:#cbbcff; background:rgba(119,83,218,.1); font-size:.56rem; font-weight:650; letter-spacing:.01em; }
.ai-plan-lock__tier .nk-icon { color:#9d88ff; stroke-width:1.7; }
.ai-plan-lock > h1 { max-width: 650px; margin: 7px 0 0; font-size: clamp(1.45rem,3vw,2.25rem); letter-spacing: -.045em; }
.ai-plan-lock > p { max-width: 670px; margin: 0; color: #a9b3c3; font-size: .72rem; line-height: 1.65; }
.ai-plan-lock__features { width: 100%; margin: 8px 0 4px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.ai-plan-lock__features > span { min-width: 0; min-height: 94px; padding: 12px 8px; display: grid; place-items: center; align-content: center; gap: 4px; border: 1px solid rgba(255,255,255,.09); border-radius: 14px; background: rgba(255,255,255,.035); }
.ai-plan-lock__features b { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 10px; color: #bcb4ff; background: rgba(119,103,239,.13); font-size: .66rem; }
.ai-plan-lock__features strong { color: #eef1f7; font-size: .59rem; }
.ai-plan-lock__features small { color: #8793a6; font-size: .47rem; line-height: 1.35; }
.ai-plan-lock > .button { min-height: 39px; padding: 8px 16px; font-size: .61rem; }
.ai-plan-lock > small { color: #7f8b9f; font-size: .5rem; }

.ai-studio-view .ai-lab {
  flex: 1 1 auto;
  min-height: 0;
  padding: 10px clamp(10px,1vw,15px) clamp(10px,1vw,15px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.ai-studio-view .ai-runtime-strip--studio { flex: 0 0 auto; min-height: 30px; margin: 0 0 9px; padding: 7px 10px; border-radius: 10px; font-size: .55rem; }
.ai-studio-view .ai-studio-workspace {
  flex: 1 1 auto;
  min-height: 0;
  margin: 0;
  grid-template-columns: minmax(260px,.78fr) minmax(450px,1.68fr) minmax(220px,.7fr);
  gap: 10px;
  align-items: stretch;
}
.ai-studio-view.is-source-collapsed .ai-studio-workspace {
  grid-template-columns: minmax(520px,1.8fr) minmax(240px,.72fr);
}
.ai-studio-view.is-source-collapsed .ai-source-panel { display: none; }
.ai-studio-view .ai-source-panel,
.ai-studio-view .ai-studio-result,
.ai-insights-panel { height: 100%; min-height: 0; border-radius: 18px; }
.ai-studio-view .ai-source-panel {
  padding: clamp(14px,1.4vw,20px);
  gap: 10px;
  overflow: auto;
  scrollbar-width: thin;
  background: radial-gradient(circle at 100% 0,rgba(119,113,255,.1),transparent 32%),linear-gradient(160deg,#0b1829,#06101e 74%);
}
.ai-studio-view .ai-source-panel { border-color: rgba(16,21,34,.1); color: var(--ai-ink); background: linear-gradient(155deg,#fbfbfd,#f3f5f9); box-shadow: 0 20px 45px rgba(0,3,10,.18); }
.ai-source-panel > header { min-height: 44px; }
.ai-source-panel > header span:not(.chip):not(.ai-source-private) { color: #746be2; }
.ai-source-panel h2 { color: var(--ai-ink); font-size: .98rem; }
.ai-source-private { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid rgba(16,21,34,.1); border-radius: 10px; color: #357f86; background: rgba(82,216,223,.09); font-size: .9rem; }
.ai-source-panel > label { gap: 5px; color: #303747; font-size: .61rem; }
.ai-source-panel .field { min-height: 38px; padding: 8px 10px; border-color: rgba(16,21,34,.12); border-radius: 11px; color: var(--ai-ink); background: rgba(255,255,255,.82); font-size: .64rem; font-weight: 450; }
.ai-source-panel .field::placeholder { color: #8a91a1; }
.ai-source-panel .ai-source-text { min-height: 150px; padding: 11px; line-height: 1.55; }
.ai-source-panel .ai-file-drop { padding: 9px; display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: center; gap: 8px; }
.ai-compare-source { padding: 12px; display: grid; gap: 10px; border: 1px solid rgba(99,91,215,.2); border-radius: 14px; background: linear-gradient(145deg,rgba(237,234,255,.7),rgba(255,255,255,.72)); }
.ai-compare-source[hidden] { display: none !important; }
.ai-compare-source > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ai-compare-source > header span { color: #746be2; font-size: .55rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.ai-compare-source > header strong { color: var(--ai-ink); font-size: .72rem; }
.ai-compare-source > label { display: grid; gap: 5px; color: #303747; font-size: .61rem; font-weight: 650; }
.ai-compare-source .ai-source-text { min-height: 118px; }
.ai-file-drop__icon { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid rgba(99,91,215,.22); border-radius: 10px; color: #635bd7; background: #eeecff; font-size: .9rem; }
.ai-file-drop > span:nth-child(2) { min-width: 0; display: grid; gap: 2px; }
.ai-file-drop strong { color: var(--ai-ink); font-size: .61rem; }
.ai-file-drop small { color: var(--ai-ink-soft); font-size: .51rem; font-weight: 500; line-height: 1.35; }
.ai-file-drop .ai-file-input { grid-column: 1 / -1; width: 100%; min-height: 34px; padding: 5px 7px; }
.ai-source-panel .field-hint { margin: -4px 0 0; font-size: .53rem; line-height: 1.4; }
.ai-source-panel .ai-text-meta { margin-top: -6px; font-size: .53rem; }
.ai-source-panel .ai-text-meta,
.ai-source-panel .field-hint { color: #727b8d; }
.ai-prompt-suggestions { margin-top: -4px; display: flex; flex-wrap: wrap; gap: 5px; }
.ai-prompt-suggestions button { min-height: 29px; padding: 5px 8px; border: 1px solid color-mix(in srgb,var(--ai-mode-accent) 24%,transparent); border-radius: 999px; color: color-mix(in srgb,var(--ai-mode-accent) 78%,#273043); background: var(--ai-mode-soft); font: inherit; font-size: .49rem; font-weight: 680; line-height: 1.2; cursor: pointer; transition: transform .16s ease,border-color .16s ease,background .16s ease; }
.ai-prompt-suggestions button:hover { transform: translateY(-1px); border-color: color-mix(in srgb,var(--ai-mode-accent) 48%,transparent); background: color-mix(in srgb,var(--ai-mode-accent) 15%,#fff); }
.ai-prompt-suggestions button:focus-visible { outline: 2px solid var(--ai-mode-accent); outline-offset: 2px; }
.ai-source-panel .check-row { min-height: 38px; padding: 8px 9px; border-color: rgba(16,21,34,.1); border-radius: 11px; color: #454d5e; background: rgba(255,255,255,.62); font-size: .56rem; line-height: 1.35; }
.ai-source-panel .button--ghost { border-color: rgba(16,21,34,.12); color: var(--ai-ink-soft); background: rgba(255,255,255,.7); }
.ai-source-panel .dialog-actions { margin-top: auto; }
.ai-source-panel .dialog-actions .button { min-height: 38px; padding: 8px 12px; font-size: .61rem; }

.ai-studio-view .ai-studio-result {
  padding: clamp(18px,1.7vw,27px);
  display: grid;
  grid-template-rows: auto minmax(0,1fr);
  overflow: hidden;
  background: linear-gradient(145deg,#fff,#f7f8fb);
}
.ai-studio-result > header { min-height: 46px; }
.ai-studio-result h2 { font-size: 1.02rem; }
.ai-result-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
.ai-result-header-actions > button {
  min-height: 29px;
  padding: 6px 9px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid rgba(99,91,215,.16);
  border-radius: 999px;
  color: #5f58ce;
  background: rgba(238,236,255,.72);
  font: inherit;
  font-size: .54rem;
  font-weight: 700;
  cursor: pointer;
}
.ai-result-header-actions > button:hover { border-color: rgba(99,91,215,.34); background: #eeecff; }
.ai-speech-controls {
  min-height: 29px;
  padding: 2px;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  border: 1px solid rgba(82,202,214,.23);
  border-radius: 999px;
  background: linear-gradient(135deg,rgba(236,253,255,.9),rgba(241,237,255,.86));
}
.ai-speech-controls button {
  min-height: 25px;
  padding: 4px 7px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border: 0;
  border-radius: 999px;
  color: #5148c7;
  background: transparent;
  font: inherit;
  font-size: .52rem;
  font-weight: 760;
  cursor: pointer;
}
.ai-speech-controls button[data-state="speaking"],
.ai-speech-controls button[data-state="paused"] { color: #fff; background: linear-gradient(135deg,#6356e8,#8854df); box-shadow: 0 5px 13px rgba(91,72,211,.22); }
.ai-speech-controls button:disabled { color: #9299aa; cursor: not-allowed; opacity: .68; }
.ai-speech-controls button:focus-visible { outline: 2px solid #6356e8; outline-offset: 2px; }
.ai-speech-controls [data-ai-speech-stop] { width: 25px; padding: 4px; color: #7b5bd5; }
.ai-selection-toolbar {
  position: absolute;
  z-index: 12;
  left: 50%;
  bottom: 20px;
  width: max-content;
  max-width: calc(100% - 32px);
  padding: 6px;
  display: flex;
  align-items: center;
  gap: 5px;
  border: 1px solid rgba(127,105,239,.35);
  border-radius: 15px;
  color: #eef3ff;
  background: linear-gradient(145deg,rgba(11,17,33,.97),rgba(26,22,55,.97));
  box-shadow: 0 18px 42px rgba(4,7,19,.32),0 0 0 1px rgba(255,255,255,.04) inset;
  transform: translateX(-50%);
  backdrop-filter: blur(15px);
  animation: aiSelectionArrive .2s ease-out both;
}
.ai-selection-toolbar[hidden],
.ai-selection-source-notice[hidden] { display: none !important; }
.ai-selection-toolbar > div { min-width: 118px; padding: 1px 7px 1px 3px; display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: 6px; }
.ai-selection-toolbar > div > span { grid-row: 1 / 3; color: #65d8e0; }
.ai-selection-toolbar strong { font-size: .56rem; }
.ai-selection-toolbar small { color: #9ca8bf; font-size: .46rem; }
.ai-selection-toolbar button {
  min-height: 32px;
  padding: 6px 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border: 1px solid rgba(153,132,255,.22);
  border-radius: 10px;
  color: #e9e5ff;
  background: rgba(118,90,224,.14);
  font: inherit;
  font-size: .52rem;
  font-weight: 730;
  cursor: pointer;
}
.ai-selection-toolbar button:hover { border-color: rgba(109,218,225,.48); background: rgba(96,77,205,.28); transform: translateY(-1px); }
.ai-selection-toolbar button:focus-visible { outline: 2px solid #65d8e0; outline-offset: 2px; }
.ai-selection-toolbar button:disabled { color: #7d8496; cursor: not-allowed; opacity: .6; transform: none; }
.ai-selection-toolbar [data-ai-selection-dismiss] { width: 31px; padding: 5px; color: #aab3c5; background: transparent; }
.ai-selection-toolbar[data-state="too-long"] { border-color: rgba(236,151,93,.48); }
.ai-selection-toolbar[data-state="too-long"] small { color: #ffc58e; }
.ai-selection-source-notice {
  min-height: 43px;
  padding: 7px 8px;
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(104,91,223,.17);
  border-radius: 11px;
  color: #3f379d;
  background: linear-gradient(135deg,rgba(237,235,255,.88),rgba(231,250,252,.8));
}
.ai-selection-source-notice > span { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 9px; color: #5b55d8; background: rgba(255,255,255,.72); }
.ai-selection-source-notice > div { display: grid; gap: 2px; }
.ai-selection-source-notice strong { font-size: .54rem; }
.ai-selection-source-notice small { color: #71798c; font-size: .46rem; }
.ai-selection-source-notice button { min-height: 29px; padding: 5px 7px; border: 1px solid rgba(91,83,211,.2); border-radius: 9px; color: #514ac2; background: rgba(255,255,255,.72); font: inherit; font-size: .47rem; font-weight: 720; cursor: pointer; }
@keyframes aiSelectionArrive { from { opacity: 0; transform: translate(-50%,8px) scale(.98); } to { opacity: 1; transform: translate(-50%,0) scale(1); } }
.ai-studio-view .ai-result--studio { min-height: 0; margin-top: 10px; padding: 15px 3px 3px 0; overflow: auto; scrollbar-width: thin; }
.ai-studio-view .ai-result-placeholder { min-height: 100%; }
.ai-studio-view .ai-result-placeholder > span { width: 48px; height: 48px; border-radius: 15px; }
.ai-studio-view .ai-result-placeholder strong { font-size: .82rem; }
.ai-studio-view .ai-result-placeholder p { max-width: 300px; font-size: .63rem; }
.ai-studio-view .ai-result-placeholder small { font-size: .53rem; }
.ai-studio-view .ai-result__header h3 { margin: 7px 0 10px; font-size: 1.02rem; }
.ai-studio-view .ai-summary { padding: 12px; border-radius: 13px; }
.ai-studio-view .ai-summary p { font-size: .7rem; line-height: 1.58; }
.ai-studio-view .ai-result-card { padding: 10px; }
.ai-studio-view .ai-result-card strong { font-size: .69rem; }
.ai-studio-view .ai-result-card p { font-size: .66rem; }
.ai-studio-view .ai-result-grid--selectable { grid-template-columns: 1fr; }
.ai-studio-view .ai-keywords .chip { min-height: 25px; padding: 4px 8px; font-size: .57rem; }
.ai-studio-view .ai-disclaimer { font-size: .56rem; }

.ai-insights-panel {
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow: auto;
  border: 1px solid rgba(16,21,34,.1);
  color: var(--ai-ink);
  background: linear-gradient(155deg,#fbfbfd,#f2f4f8);
  box-shadow: 0 20px 45px rgba(0,3,10,.18);
  scrollbar-width: thin;
}
.ai-insights-empty { min-height: 210px; padding: 18px 10px; display: grid; place-items: center; align-content: center; gap: 8px; text-align: center; }
.ai-insights-empty > span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; color: #665ee7; background: #eceafd; }
.ai-insights-empty strong { font-size: .71rem; }
.ai-insights-empty p { margin: 0; color: var(--ai-ink-soft); font-size: .57rem; line-height: 1.5; }

/* The initial AI state is a guided workspace, not an empty canvas. */
.ai-studio-view .ai-source-panel,
.ai-studio-view .ai-studio-result,
.ai-insights-panel { position: relative; border-top: 2px solid color-mix(in srgb,var(--ai-mode-accent) 62%,transparent); }
.ai-studio-view .ai-source-panel { background: radial-gradient(circle at 5% 0,rgba(119,108,255,.12),transparent 29%),linear-gradient(155deg,#fdfdff,#f2f5fa 76%); }
.ai-studio-view .ai-studio-result { background: radial-gradient(circle at 88% 4%,rgba(85,213,220,.09),transparent 25%),radial-gradient(circle at 10% 96%,rgba(140,93,244,.08),transparent 31%),linear-gradient(145deg,#fff,#f7f8fc); }
.ai-insights-panel { border-top-color: rgba(82,216,223,.58); background: radial-gradient(circle at 100% 0,rgba(82,216,223,.1),transparent 28%),linear-gradient(155deg,#fbfcff,#f2f4f9); }
.ai-studio-view .ai-result-placeholder--welcome {
  min-height: 100%;
  padding: clamp(17px,2vw,29px);
  display: grid;
  grid-template-columns: minmax(0,1fr);
  place-items: stretch;
  align-content: center;
  gap: clamp(13px,1.5vw,20px);
  border: 1px solid rgba(108,98,231,.11);
  border-radius: 18px;
  text-align: left;
  background: linear-gradient(145deg,rgba(255,255,255,.84),rgba(246,246,255,.72));
  box-shadow: inset 0 1px rgba(255,255,255,.9),0 18px 40px rgba(42,36,116,.06);
  animation: aiWelcomeIn .55s cubic-bezier(.2,.75,.25,1) both;
}
.ai-result-welcome__visual { position: relative; width: 70px; height: 70px; display: grid; place-items: center; }
.ai-result-welcome__visual > span { position: relative; z-index: 2; width: 52px; height: 52px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.54); border-radius: 17px; color: #fff; background: radial-gradient(circle at 30% 24%,rgba(255,255,255,.28),transparent 27%),linear-gradient(145deg,var(--ai-mode-accent),var(--ai-mode-accent-2)); box-shadow: 0 13px 30px color-mix(in srgb,var(--ai-mode-accent) 30%,transparent); font-size: 1.08rem; }
.ai-result-welcome__visual > i { position: absolute; inset: 4px; border: 1px solid rgba(112,99,235,.25); border-radius: 50%; opacity: 0; animation: aiOrbitArrive .75s .1s ease-out forwards; }
.ai-result-welcome__visual > i:last-child { inset: -4px; border-color: rgba(82,216,223,.28); animation-delay: .22s; }
.ai-result-welcome__copy { display: grid; gap: 5px; }
.ai-result-welcome__copy > small { color: #746be2; font-size: .54rem; font-weight: 760; letter-spacing: .12em; text-transform: uppercase; }
.ai-result-welcome__copy > strong { color: var(--ai-ink); font-size: clamp(1.15rem,1.6vw,1.48rem); letter-spacing: -.035em; }
.ai-result-welcome__copy > p { max-width: 540px; margin: 0; color: var(--ai-ink-soft); font-size: .67rem; line-height: 1.55; }
.ai-result-welcome__flow { padding: 10px 12px; display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: 8px; border: 1px solid rgba(16,21,34,.08); border-radius: 14px; background: rgba(255,255,255,.66); }
.ai-result-welcome__flow > span { min-width: 0; display: grid; grid-template-columns: 27px minmax(0,1fr); align-items: center; gap: 7px; }
.ai-result-welcome__flow > span > b { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 9px; color: #655de0; background: #eceafd; font-size: .55rem; }
.ai-result-welcome__flow > span > span { min-width: 0; display: grid; gap: 2px; }
.ai-result-welcome__flow strong { color: #252c3b; font-size: .57rem; }
.ai-result-welcome__flow small { color: #81899a; font-size: .47rem; white-space: nowrap; }
.ai-result-welcome__flow > i { color: #a19aad; font-size: .9rem; font-style: normal; }
.ai-result-welcome__actions { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.ai-result-welcome__actions button { min-width: 0; min-height: 72px; padding: 10px; display: grid; grid-template-columns: 31px minmax(0,1fr); align-items: center; gap: 8px; border: 1px solid rgba(16,21,34,.09); border-radius: 13px; color: var(--ai-ink); background: rgba(255,255,255,.76); font: inherit; text-align: left; cursor: pointer; transition: transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease; }
.ai-result-welcome__actions button:hover { transform: translateY(-2px); border-color: rgba(105,94,232,.34); background: #fff; box-shadow: 0 11px 25px rgba(55,45,145,.1); }
.ai-result-welcome__actions button > span:first-child { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 10px; color: #665ee7; background: #eceafd; font-size: .72rem; }
.ai-result-welcome__actions button:first-child > span:first-child { color: #157980; background: #e3f8f8; }
.ai-result-welcome__actions button > span:last-child { min-width: 0; display: grid; gap: 3px; }
.ai-result-welcome__actions strong { color: var(--ai-ink); font-size: .59rem; }
.ai-result-welcome__actions small { color: var(--ai-ink-soft); font-size: .48rem; line-height: 1.3; }
.ai-result-welcome__privacy { margin: -2px 0 0 !important; color: #6d7687 !important; font-size: .5rem !important; }
.ai-result-welcome__privacy span { margin-right: 5px; color: #4bd09b; }

.ai-insights-panel .ai-insights-start { min-height: 100%; padding: 4px 0; display: flex; place-items: initial; align-content: initial; flex-direction: column; gap: 13px; text-align: left; }
.ai-insights-start > header { display: flex; align-items: center; gap: 9px; }
.ai-insights-start > header > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 11px; color: #fff; background: linear-gradient(145deg,#665ee7,#9b59df); box-shadow: 0 8px 19px rgba(86,70,214,.18); }
.ai-insights-start > header > div { display: grid; gap: 2px; }
.ai-insights-start > header strong { color: var(--ai-ink); font-size: .68rem; }
.ai-insights-start > header small { color: var(--ai-ink-soft); font-size: .49rem; }
.ai-insights-start > ol { margin: 0; padding: 10px; display: grid; gap: 3px; border: 1px solid rgba(16,21,34,.08); border-radius: 13px; list-style: none; background: rgba(255,255,255,.64); }
.ai-insights-start > ol li { min-height: 50px; padding: 7px; display: grid; grid-template-columns: 27px minmax(0,1fr); align-items: center; gap: 8px; border-radius: 10px; }
.ai-insights-start > ol li + li { border-top: 1px solid rgba(16,21,34,.065); }
.ai-insights-start > ol b { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 9px; color: #655de0; background: #eceafd; font-size: .48rem; }
.ai-insights-start > ol span { display: grid; gap: 2px; }
.ai-insights-start > ol strong { color: #282f3e; font-size: .59rem; }
.ai-insights-start > ol small { color: #768092; font-size: .48rem; line-height: 1.3; }
.ai-insights-start > section { display: grid; gap: 6px; }
.ai-insights-start > section > span { color: #746be2; font-size: .49rem; font-weight: 760; letter-spacing: .11em; text-transform: uppercase; }
.ai-insights-start > section button { min-height: 49px; padding: 8px; display: grid; grid-template-columns: 29px minmax(0,1fr) auto; align-items: center; gap: 7px; border: 1px solid rgba(16,21,34,.08); border-radius: 11px; color: var(--ai-ink); background: rgba(255,255,255,.74); font: inherit; text-align: left; cursor: pointer; transition: transform .18s ease,border-color .18s ease,background .18s ease; }
.ai-insights-start > section button:hover { transform: translateX(2px); border-color: rgba(99,91,215,.28); background: #fff; }
.ai-insights-start > section button > i { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 9px; color: #655de0; background: #eceafd; font-size: .62rem; font-style: normal; }
.ai-insights-start > section button > span { min-width: 0; display: grid; gap: 1px; }
.ai-insights-start > section button strong { color: #2b3241; font-size: .56rem; }
.ai-insights-start > section button small { color: #7b8495; font-size: .46rem; }
.ai-insights-start > section button > b { color: #655de0; font-size: .85rem; font-weight: 500; }
.ai-insights-start > p { margin-top: auto !important; padding: 10px; display: grid; grid-template-columns: auto minmax(0,1fr); gap: 2px 7px; border: 1px solid rgba(62,197,160,.16); border-radius: 11px; background: rgba(69,208,169,.065); }
.ai-insights-start > p > span { grid-row: 1 / span 2; color: #39bf91; }
.ai-insights-start > p strong { color: #277a65; font-size: .51rem; }
.ai-insights-start > p small { color: #6e7f79; font-size: .46rem; }

@keyframes aiWelcomeIn { from { opacity: 0; transform: translateY(9px) scale(.99); } to { opacity: 1; transform: none; } }
@keyframes aiOrbitArrive { from { opacity: 0; transform: scale(.65) rotate(-18deg); } to { opacity: 1; transform: scale(1) rotate(0); } }
.ai-insights-section { display: grid; gap: 8px; }
.ai-insights-section + .ai-insights-section { padding-top: 11px; border-top: 1px solid rgba(16,21,34,.09); }
.ai-insights-section > header { display: flex; align-items: center; gap: 8px; }
.ai-insights-section > header > span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px; color: #665ee7; background: #eceafd; font-size: .68rem; }
.ai-insights-section > header > div { min-width: 0; display: grid; gap: 1px; }
.ai-insights-section > header strong { font-size: .68rem; }
.ai-insights-section > header small { color: var(--ai-ink-soft); font-size: .51rem; }
.ai-concept-list { display: grid; gap: 6px; }
.ai-insights-source__metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; }
.ai-insights-source__metrics > span { min-width: 0; padding: 7px 4px; display: grid; gap: 2px; border: 1px solid rgba(16,21,34,.08); border-radius: 10px; text-align: center; background: rgba(255,255,255,.7); }
.ai-insights-source__metrics strong { overflow: hidden; color: #343b4a; font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
.ai-insights-source__metrics small { color: #7c8494; font-size: .43rem; }
.ai-insights-source > button { min-height: 35px; padding: 7px 9px; display: flex; align-items: center; justify-content: space-between; gap: 8px; border: 1px solid rgba(99,91,215,.16); border-radius: 10px; color: #5e56c9; background: rgba(238,236,255,.68); font: inherit; font-size: .51rem; font-weight: 700; cursor: pointer; }
.ai-insights-source > button:hover { border-color: rgba(99,91,215,.32); background: #eeecff; }
.ai-insights-source > button b { font-size: .85rem; font-weight: 500; }
.ai-insights-no-concepts { margin: 0; padding: 10px; border: 1px dashed rgba(16,21,34,.1); border-radius: 11px; color: var(--ai-ink-soft); font-size: .5rem; line-height: 1.45; }
.ai-concept-card { min-height: 54px; padding: 8px; display: grid; grid-template-columns: 28px minmax(0,1fr); align-items: center; gap: 8px; border: 1px solid rgba(16,21,34,.09); border-radius: 12px; background: rgba(255,255,255,.72); }
.ai-concept-card > span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px; color: #635bd7; background: #eeecff; font-size: .58rem; font-weight: 750; }
.ai-concept-card > div { min-width: 0; display: grid; gap: 2px; }
.ai-concept-card strong { overflow: hidden; font-size: .61rem; text-overflow: ellipsis; white-space: nowrap; }
.ai-concept-card small { color: var(--ai-ink-soft); font-size: .48rem; line-height: 1.25; }
.ai-insights-actions > button { width: 100%; min-height: 52px; padding: 8px; display: grid; grid-template-columns: 30px minmax(0,1fr) auto; align-items: center; gap: 8px; border: 1px solid rgba(16,21,34,.09); border-radius: 12px; color: var(--ai-ink); background: rgba(255,255,255,.76); font: inherit; text-align: left; cursor: pointer; transition: transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.ai-insights-actions > button:hover { transform: translateY(-1px); border-color: rgba(99,91,215,.28); box-shadow: 0 8px 20px rgba(49,43,135,.08); }
.ai-insights-actions > button > span:first-child { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; color: #635bd7; background: #eeecff; }
.ai-insights-actions > button > span:nth-child(2) { min-width: 0; display: grid; gap: 2px; }
.ai-insights-actions > button strong { font-size: .61rem; }
.ai-insights-actions > button small { color: var(--ai-ink-soft); font-size: .48rem; }
.ai-insights-actions > button b { color: #635bd7; font-size: 1rem; font-weight: 500; }

.ai-studio-view .ai-lab[hidden],
.ai-chat-workspace[hidden] { display: none !important; }
.ai-chat-workspace {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  padding: 10px clamp(10px,1vw,15px) clamp(10px,1vw,15px);
  display: grid;
  grid-template-columns: minmax(220px,.66fr) minmax(460px,1.7fr) minmax(240px,.76fr);
  gap: 10px;
  overflow: hidden;
}
.ai-chat-workspace.is-access-locked > .ai-chat-history-panel,
.ai-chat-workspace.is-access-locked > .ai-chat-thread-panel,
.ai-chat-workspace.is-access-locked > .ai-chat-context-panel { opacity: .24; filter: grayscale(.6) blur(3px); pointer-events: none; user-select: none; }
.ai-chat-access-lock {
  width: min(90%,620px);
  max-height: calc(100% - 44px);
  padding: clamp(22px,3vw,38px);
  position: absolute;
  z-index: 5;
  inset: 50% auto auto 50%;
  display: grid;
  place-items: center;
  gap: 11px;
  overflow: auto;
  transform: translate(-50%,-50%);
  border: 1px solid rgba(133,120,255,.32);
  border-radius: 22px;
  color: #edf0f7;
  text-align: center;
  background:
    radial-gradient(circle at 50% 0,rgba(130,105,247,.22),transparent 38%),
    linear-gradient(150deg,rgba(12,21,37,.99),rgba(5,12,23,.99));
  box-shadow: 0 30px 80px rgba(0,0,0,.46),inset 0 1px rgba(255,255,255,.055);
}
.ai-chat-access-lock__visual { width: 72px; height: 72px; position: relative; display: grid; place-items: center; }
.ai-chat-access-lock__visual > span { position: relative; z-index: 2; width: 52px; height: 52px; display: grid; place-items: center; border-radius: 17px; color: #fff; background: linear-gradient(145deg,#695ff1,#a658e0); box-shadow: 0 13px 30px rgba(91,70,220,.3); }
.ai-chat-access-lock__visual i { position: absolute; inset: 2px; border: 1px solid rgba(130,117,255,.28); border-radius: 50%; }
.ai-chat-access-lock h2 { max-width: 490px; margin: 2px 0 0; font-size: clamp(1.2rem,2.2vw,1.65rem); letter-spacing: -.035em; }
.ai-chat-access-lock > p { max-width: 510px; margin: 0; color: #a7b1c1; font-size: .67rem; line-height: 1.58; }
.ai-chat-access-lock ul { margin: 2px 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; list-style: none; }
.ai-chat-access-lock li { padding: 6px 9px; border: 1px solid rgba(255,255,255,.09); border-radius: 999px; color: #c8cfdb; background: rgba(255,255,255,.035); font-size: .5rem; }
.ai-chat-access-lock > .button { min-height: 37px; margin-top: 3px; padding: 8px 13px; font-size: .57rem; }
.ai-chat-access-lock > a { color: #a9a1ff; font-size: .55rem; font-weight: 700; }
.ai-chat-access-lock > small { color: #7f8b9d; font-size: .47rem; line-height: 1.4; }
.ai-chat-history-panel,
.ai-chat-thread-panel,
.ai-chat-context-panel { min-width: 0; min-height: 0; height: 100%; border: 1px solid var(--ai-line); border-radius: 18px; overflow: hidden; }
.ai-chat-history-panel { padding: 14px; display: flex; flex-direction: column; background: radial-gradient(circle at 100% 0,rgba(119,113,255,.1),transparent 34%),linear-gradient(160deg,#0b1829,#06101e 74%); }
.ai-chat-history-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 9px; }
.ai-chat-history-panel > header > div { min-width: 0; }
.ai-chat-history-panel > header span { color: #9c93f1; font-size: .52rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.ai-chat-history-panel > header h2 { margin: 3px 0 0; font-size: .88rem; }
.ai-chat-history-panel > header button { width: 34px; height: 34px; border: 1px solid rgba(130,119,255,.34); border-radius: 10px; color: #d8d4ff; background: rgba(119,113,255,.12); font: inherit; cursor: pointer; }
.ai-chat-history-list { min-height: 0; margin-top: 13px; display: grid; align-content: start; gap: 6px; overflow: auto; scrollbar-width: thin; }
.ai-chat-history-empty { min-height: 210px; padding: 16px 8px; display: grid; place-items: center; align-content: center; gap: 7px; text-align: center; }
.ai-chat-history-empty > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; color: #c9c4ff; background: rgba(119,113,255,.12); }
.ai-chat-history-empty strong { font-size: .66rem; }
.ai-chat-history-empty p { margin: 0; color: #8490a3; font-size: .52rem; line-height: 1.45; }
.ai-chat-history-row { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; border: 1px solid transparent; border-radius: 12px; overflow: hidden; background: rgba(255,255,255,.025); }
.ai-chat-history-row.is-active { border-color: rgba(130,119,255,.36); background: rgba(119,113,255,.1); }
.ai-chat-history-row > button { min-width: 0; border: 0; color: #dfe4ed; background: transparent; font: inherit; cursor: pointer; }
.ai-chat-history-row > button:first-child { min-height: 54px; padding: 8px; display: grid; grid-template-columns: 27px minmax(0,1fr); align-items: center; gap: 7px; text-align: left; }
.ai-chat-history-row > button:first-child > span:first-child { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 8px; color: #aaa3ff; background: rgba(119,113,255,.09); }
.ai-chat-history-row > button:first-child > span:last-child { min-width: 0; display: grid; gap: 2px; }
.ai-chat-history-row strong,
.ai-chat-history-row small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ai-chat-history-row strong { font-size: .59rem; }
.ai-chat-history-row small { color: #8290a3; font-size: .48rem; }
.ai-chat-history-row > button:last-child { width: 28px; height: 28px; margin-right: 5px; border-radius: 8px; color: #7f8a9c; }
.ai-chat-history-row > button:last-child:hover { color: #ffb3b5; background: rgba(255,115,120,.09); }
.ai-chat-history-panel > p { margin: auto 0 0; padding-top: 10px; color: #8490a3; font-size: .5rem; }
.ai-chat-history-panel > p span { color: #59d7a5; }

.ai-chat-thread-panel { display: grid; grid-template-rows: auto minmax(0,1fr) auto auto; color: var(--ai-ink); background: linear-gradient(145deg,#fff,#f7f8fb); box-shadow: 0 20px 45px rgba(0,3,10,.2); }
.ai-chat-thread-panel > header { min-height: 64px; padding: 13px 17px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid rgba(16,21,34,.09); }
.ai-chat-thread-panel > header span { color: #746be2; font-size: .52rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.ai-chat-thread-panel > header h2 { margin: 3px 0 0; font-size: .95rem; }
.ai-chat-thread-panel > header h2,
.ai-chat-welcome h2 { color: var(--ai-ink); }
.ai-chat-thread-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.ai-chat-mobile-history { display: none; }
.ai-chat-thread-panel > header .button { min-height: 34px; padding: 7px 10px; border-color: rgba(16,21,34,.1); color: #50596b; background: rgba(255,255,255,.8); font-size: .56rem; }
.ai-chat-thread { min-height: 0; padding: clamp(16px,2vw,27px); display: grid; align-content: start; gap: 12px; overflow: auto; scrollbar-width: thin; }
.ai-chat-welcome { min-height: 100%; display: grid; place-items: center; align-content: center; gap: 9px; text-align: center; }
.ai-chat-welcome > span { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 17px; color: #655de0; background: #eeecff; font-size: 1.05rem; }
.ai-chat-welcome h2 { margin: 2px 0 0; font-size: 1.18rem; }
.ai-chat-welcome p { max-width: 420px; margin: 0; color: var(--ai-ink-soft); font-size: .67rem; line-height: 1.55; }
.ai-chat-thread-message { max-width: 88%; display: grid; grid-template-columns: 32px minmax(0,1fr); align-items: start; gap: 9px; }
.ai-chat-thread-message > span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 10px; color: #655de0; background: #eeecff; font-size: .6rem; font-weight: 750; }
.ai-chat-thread-message > div { min-width: 0; padding: 10px 12px; border: 1px solid rgba(16,21,34,.09); border-radius: 4px 13px 13px; background: rgba(255,255,255,.8); }
.ai-chat-thread-message strong { font-size: .58rem; }
.ai-chat-thread-message p { margin: 5px 0 0; color: #343c4d; font-size: .68rem; line-height: 1.58; white-space: pre-line; }
.ai-chat-thread-message--user { margin-left: auto; grid-template-columns: minmax(0,1fr) 32px; }
.ai-chat-thread-message--user > span { grid-column: 2; grid-row: 1; color: #fff; background: linear-gradient(135deg,#655df0,#a45be9); }
.ai-chat-thread-message--user > div { grid-column: 1; grid-row: 1; border-color: rgba(101,93,240,.16); border-radius: 13px 4px 13px 13px; background: #f0effd; }
.ai-chat-thread-composer { margin: 0 17px; padding: 6px; display: grid; grid-template-columns: minmax(0,1fr) 38px; align-items: end; gap: 4px 6px; border: 1px solid rgba(101,93,240,.26); border-radius: 14px; background: #fff; box-shadow: 0 10px 26px rgba(44,37,132,.08); }
.ai-chat-thread-composer textarea { min-height: 48px; max-height: 120px; padding: 8px; resize: vertical; border: 0; outline: 0; color: var(--ai-ink); background: transparent; font: inherit; font-size: .66rem; line-height: 1.45; }
.ai-chat-thread-composer textarea::placeholder { color: #8b93a3; }
.ai-chat-thread-composer button { width: 38px; height: 38px; border: 0; border-radius: 11px; color: #fff; background: linear-gradient(135deg,#655df0,#a45be9); font: inherit; cursor: pointer; }
.ai-chat-thread-composer button:disabled { cursor: wait; opacity: .55; }
.ai-chat-composer-meta { grid-column: 1 / -1; padding: 0 7px 3px; display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #8a92a1; font-size: .43rem; }
.ai-chat-composer-meta > span:first-child { color: #655dd6; font-weight: 700; }
.ai-chat-thread-status { min-height: 27px; margin: 0; padding: 7px 20px 8px; color: #7b8495; font-size: .51rem; }

.ai-chat-context-panel { padding: 14px; display: flex; flex-direction: column; gap: 11px; overflow: auto; color: var(--ai-ink); background: linear-gradient(155deg,#fbfbfd,#f2f4f8); box-shadow: 0 20px 45px rgba(0,3,10,.18); scrollbar-width: thin; }
.ai-chat-context-panel > section { display: grid; gap: 8px; }
.ai-chat-context-panel > section + section { padding-top: 11px; border-top: 1px solid rgba(16,21,34,.09); }
.ai-chat-context-panel section > header { display: flex; align-items: center; gap: 8px; }
.ai-chat-context-panel section > header > span { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 9px; color: #635bd7; background: #eeecff; font-size: .66rem; }
.ai-chat-context-panel section > header > div { min-width: 0; display: grid; gap: 1px; }
.ai-chat-context-panel section > header strong { font-size: .66rem; }
.ai-chat-context-panel section > header small { color: var(--ai-ink-soft); font-size: .49rem; }
.ai-chat-context-panel label { display: grid; gap: 5px; color: #454d5e; font-size: .56rem; font-weight: 650; }
.ai-chat-context-panel .field { min-height: 38px; padding: 8px 9px; border-color: rgba(16,21,34,.11); color: var(--ai-ink); background: #fff; font-size: .58rem; }
.ai-chat-context-panel section > p { margin: 0; color: #737c8e; font-size: .5rem; line-height: 1.4; }
.ai-chat-prompt-list { display: grid; gap: 6px; }
.ai-chat-prompt-list button { min-height: 45px; padding: 8px 9px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 7px; border: 1px solid rgba(16,21,34,.09); border-radius: 11px; color: #303747; background: rgba(255,255,255,.78); font: inherit; font-size: .56rem; line-height: 1.35; text-align: left; cursor: pointer; }
.ai-chat-prompt-list button:hover { border-color: rgba(99,91,215,.28); background: #fff; }
.ai-chat-prompt-list b { color: #635bd7; font-size: .9rem; font-weight: 500; }
.ai-chat-safety-note { margin-top: auto; padding: 11px; border: 1px solid rgba(82,216,223,.16); border-radius: 12px; background: rgba(82,216,223,.055); }
.ai-chat-safety-note strong { color: #277b82; font-size: .59rem; }
.ai-chat-safety-note p { margin-top: 4px !important; }

@media (max-width:1199px) {
  .ai-studio-header { grid-template-columns: minmax(170px,.7fr) minmax(300px,1.3fr); }
  .ai-studio-header__actions { grid-column: 2; grid-row: 1; }
  .ai-studio-header .ai-mode-tabs { grid-column: 1 / -1; }
  .ai-studio-view .ai-studio-workspace { grid-template-columns: minmax(250px,.75fr) minmax(0,1.4fr); }
  .ai-studio-view.is-source-collapsed .ai-studio-workspace { grid-template-columns: minmax(0,1fr); }
  .ai-studio-view.is-source-collapsed .ai-insights-panel { grid-column: auto; grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  .ai-insights-panel { grid-column: 1 / -1; height: auto; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  .ai-insights-empty { min-height: 150px; grid-column: 1 / -1; }
  .ai-chat-workspace { grid-template-columns: minmax(220px,.62fr) minmax(0,1.38fr); overflow: auto; }
  .ai-chat-context-panel { grid-column: 1 / -1; height: auto; display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); }
  .ai-chat-safety-note { grid-column: 1 / -1; }
}
@media (max-width:799px) {
  .ai-studio-view--overlay { display: block; overflow: auto; }
  .ai-studio-header { position: sticky; top: 0; z-index: 3; grid-template-columns: minmax(0,1fr) auto; }
  .ai-device-badge { display: none; }
  .ai-studio-header__actions { grid-column: 2; }
  .ai-studio-view .ai-lab { overflow: visible; }
  .ai-studio-view .ai-studio-workspace { display: grid; grid-template-columns: 1fr; }
  .ai-studio-view.is-source-collapsed .ai-studio-workspace { grid-template-columns: 1fr; }
  .ai-studio-view .ai-source-panel,
  .ai-studio-view .ai-studio-result,
  .ai-insights-panel { height: auto; overflow: visible; }
  .ai-studio-view .ai-studio-result { min-height: 560px; }
  .ai-studio-view .ai-result--studio { overflow: visible; }
  .ai-studio-view .ai-result-placeholder--welcome { min-height: 520px; }
  .ai-result-welcome__flow { grid-template-columns: 1fr; }
  .ai-result-welcome__flow > i { display: none; }
  .ai-result-welcome__actions { grid-template-columns: 1fr; }
  .ai-result-welcome__actions button { min-height: 61px; }
  .ai-insights-panel { grid-column: auto; grid-template-columns: 1fr; }
  .ai-studio-view.is-source-collapsed .ai-insights-panel { grid-template-columns: 1fr; }
  .ai-chat-workspace { display: grid; grid-template-columns: 1fr; overflow: visible; }
  .ai-chat-history-panel,
  .ai-chat-thread-panel,
  .ai-chat-context-panel { height: auto; }
  .ai-chat-history-panel { display: none; min-height: 250px; max-height: 390px; order: 0; }
  .ai-studio-view.is-history-open .ai-chat-history-panel { display: flex; }
  .ai-chat-thread-panel { height: max(520px,calc(100dvh - 260px)); min-height: 0; max-height: 720px; order: 1; }
  .ai-chat-context-panel { grid-column: auto; grid-template-columns: 1fr; order: 2; }
  .ai-chat-safety-note { grid-column: auto; }
  .ai-chat-mobile-history { display: inline-flex; }
}
@media (max-width:599px) {
  .ai-studio-header { min-height: 0; padding: 9px; gap: 8px; }
  .ai-studio-brand__mark { width: 34px; height: 34px; }
  .ai-studio-brand > div > span { display: none; }
  .ai-studio-view .ai-studio-brand h1 { font-size: 1.02rem; }
  .ai-chat-launch small { display: none; }
  .ai-chat-launch,
  .ai-studio-close { min-height: 44px; padding: 8px 10px; }
  .ai-studio-header .ai-mode-tabs { padding: 3px; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(108px,1fr); overflow-x: auto; scrollbar-width: thin; overscroll-behavior-inline: contain; }
  .ai-studio-header .ai-mode-tab { min-height: 44px; }
  .ai-studio-view .ai-lab { padding: 8px; }
  .ai-studio-view .ai-runtime-strip--studio { margin-bottom: 7px; }
  .ai-studio-view .ai-source-panel,
  .ai-studio-view .ai-studio-result,
  .ai-insights-panel { border-radius: 15px; }
  .ai-studio-view .ai-studio-result { min-height: 500px; padding: 16px; }
  .ai-studio-result > header { align-items: flex-start; }
  .ai-result-header-actions { align-items: flex-end; flex-direction: column-reverse; }
  .ai-result-header-actions > button { min-height: 36px; }
  .ai-studio-view .ai-result-placeholder--welcome { min-height: 0; padding: 16px; }
  .ai-result-welcome__visual { width: 61px; height: 61px; }
  .ai-result-welcome__visual > span { width: 47px; height: 47px; }
  .ai-chat-workspace { padding: 8px; }
  .ai-chat-history-panel,
  .ai-chat-thread-panel,
  .ai-chat-context-panel { border-radius: 15px; }
  .ai-chat-thread-panel { height: max(470px,calc(100dvh - 300px)); min-height: 0; max-height: 640px; }
  .ai-chat-thread-panel > header { align-items: flex-start; }
  .ai-chat-thread-header-actions { align-items: stretch; flex-direction: column; }
  .ai-chat-thread-panel > header .button { min-height: 44px; padding: 8px 10px; }
  .ai-prompt-suggestions button { min-height: 44px; padding: 8px 11px; }
  .ai-chat-thread { padding: 15px; }
  .ai-chat-thread-message { max-width: 96%; }
  .ai-chat-thread-composer { margin: 0 10px; }
  .ai-chat-composer-meta > span:last-child { display: none; }
  .ai-chat-thread-status { padding-inline: 13px; }
}
@media (prefers-reduced-motion:reduce) {
  .ai-insights-actions > button,
  .ai-result-placeholder--welcome,
  .ai-result-welcome__visual > i,
  .ai-result-welcome__actions button,
  .ai-insights-start > section button,
  .ai-prompt-suggestions button { animation: none !important; transition: none !important; }
}

/* Structured Nova AI results: each study mode has a distinct, source-first layout. */
.ai-result-shell {
  --ai-result-ink: #eef1f7;
  --ai-result-soft: #9da7b8;
  --ai-result-line: rgba(255,255,255,.1);
  --ai-result-surface: rgba(255,255,255,.035);
  --ai-result-accent: #9e8bff;
  display: grid;
  gap: 14px;
  animation: aiResultReveal .32s ease both;
}
.ai-studio-result .ai-result-shell {
  --ai-result-ink: #171c29;
  --ai-result-soft: #667084;
  --ai-result-line: rgba(17,23,37,.1);
  --ai-result-surface: #f6f7fa;
  --ai-result-accent: #655de0;
}
.ai-result-title { min-width: 0; display: grid; grid-template-columns: 40px minmax(0,1fr) auto; align-items: center; gap: 10px; }
.ai-result-title > span:first-child { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid rgba(119,105,237,.18); border-radius: 13px; color: #fff; background: linear-gradient(145deg,#665ee7,#9e59df); box-shadow: 0 9px 22px rgba(91,72,205,.2); font-size: .83rem; }
.ai-result-title > div { min-width: 0; }
.ai-result-title small,
.ai-result-section header small,
.ai-result-lead header small,
.ai-result-mode-intro small,
.ai-result-concepts small,
.ai-quiz-question small { color: var(--ai-result-accent); font-size: .51rem; font-weight: 780; letter-spacing: .1em; text-transform: uppercase; }
.ai-result-title h3 { margin: 3px 0 0; color: var(--ai-result-ink); font-size: 1.03rem; letter-spacing: -.025em; }
.ai-result-verified { min-height: 28px; padding: 5px 8px; display: inline-flex; align-items: center; gap: 6px; border: 1px solid rgba(56,181,139,.2); border-radius: 999px; color: #31856d; background: rgba(69,201,157,.07); font-size: .52rem; font-weight: 720; white-space: nowrap; }
.ai-result-verified i { width: 6px; height: 6px; border-radius: 50%; background: #4dcc9f; box-shadow: 0 0 0 3px rgba(77,204,159,.1); }
.ai-result-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1px solid var(--ai-result-line); border-radius: 13px; overflow: hidden; background: var(--ai-result-surface); }
.ai-result-metrics span { min-height: 47px; padding: 8px; display: grid; place-content: center; gap: 2px; color: var(--ai-result-soft); font-size: .48rem; text-align: center; }
.ai-result-metrics span + span { border-left: 1px solid var(--ai-result-line); }
.ai-result-metrics strong { color: var(--ai-result-ink); font-size: .61rem; font-weight: 760; }
.ai-summary-depth { padding: 10px; display: grid; gap: 6px; border: 1px solid rgba(111,96,230,.18); border-radius: 13px; background: linear-gradient(135deg,rgba(102,93,231,.09),rgba(69,205,211,.04)); }
.ai-summary-depth > span { color: #7770dc; font-size: .55rem; font-weight: 780; letter-spacing: .05em; text-transform: uppercase; }
.ai-summary-depth .field { min-height: 38px; background-color: rgba(255,255,255,.76); }
.ai-result-coverage { padding: 12px 14px; display: grid; grid-template-columns: 58px minmax(0,1fr); align-items: center; gap: 12px; border: 1px solid rgba(62,190,151,.18); border-radius: 15px; background: linear-gradient(135deg,rgba(61,194,151,.08),rgba(105,94,232,.035)); }
.ai-result-coverage.has-warning { border-color: rgba(224,168,72,.24); background: linear-gradient(135deg,rgba(224,168,72,.09),rgba(105,94,232,.035)); }
.ai-result-coverage__ring { position: relative; width: 54px; height: 54px; display: grid; place-items: center; border-radius: 50%; background: var(--ai-result-surface); }
.ai-result-coverage__ring svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.ai-result-coverage__ring circle { fill: none; stroke-width: 3.4; }
.ai-result-coverage__track { stroke: rgba(118,128,146,.18); }
.ai-result-coverage__value { stroke: #48c99b; stroke-linecap: round; }
.ai-result-coverage.has-warning .ai-result-coverage__value { stroke: #e0a848; }
.ai-result-coverage__ring strong { position: relative; z-index: 1; color: var(--ai-result-ink); font-size: .67rem; }
.ai-result-coverage small { color: #3a9e7c; font-size: .49rem; font-weight: 780; letter-spacing: .08em; text-transform: uppercase; }
.ai-result-coverage.has-warning small { color: #b87a22; }
.ai-result-coverage h4 { margin: 2px 0 0; color: var(--ai-result-ink); font-size: .68rem; }
.ai-result-coverage p { margin: 3px 0 0; color: var(--ai-result-soft); font-size: .54rem; line-height: 1.45; }
.ai-result-lead { padding: clamp(15px,2vw,21px); display: grid; gap: 12px; border: 1px solid rgba(104,91,222,.16); border-radius: 17px; background: radial-gradient(circle at 100% 0,rgba(153,91,226,.1),transparent 38%),linear-gradient(145deg,rgba(105,94,232,.1),rgba(105,94,232,.035)); }
.ai-result-lead header,
.ai-result-section > header { display: flex; align-items: center; gap: 9px; }
.ai-result-lead header > span,
.ai-result-section > header > span { width: 32px; height: 32px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 10px; color: var(--ai-result-accent); background: rgba(105,94,232,.1); font-size: .7rem; }
.ai-result-lead header > div,
.ai-result-section header > div { min-width: 0; }
.ai-result-lead h4,
.ai-result-section h4,
.ai-result-mode-intro h4,
.ai-result-concepts h4 { margin: 3px 0 0; color: var(--ai-result-ink); font-size: .78rem; letter-spacing: -.01em; }
.ai-result-lead > p { margin: 0; color: var(--ai-result-ink); font-size: .72rem; line-height: 1.68; }
.ai-document-synthesis { padding: clamp(15px,2vw,21px); display: grid; gap: 14px; border: 1px solid rgba(104,91,222,.18); border-radius: 18px; background: radial-gradient(circle at 92% 4%,rgba(87,207,213,.09),transparent 31%),linear-gradient(145deg,rgba(105,94,232,.1),rgba(255,255,255,.02)); }
.ai-document-synthesis__header { display: grid; grid-template-columns: 36px minmax(0,1fr); align-items: center; gap: 10px; }
.ai-document-synthesis__header > span { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 11px; color: #fff; background: linear-gradient(145deg,#625ae3,#37b8c3); box-shadow: 0 8px 19px rgba(83,75,199,.17); }
.ai-document-synthesis__header small,
.ai-document-synthesis__themes > header small,
.ai-document-theme header small { color: var(--ai-result-accent); font-size: .49rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.ai-document-synthesis__header h4,
.ai-document-synthesis__themes > header h4 { margin: 2px 0 0; color: var(--ai-result-ink); font-size: .76rem; }
.ai-document-synthesis__header p { margin: 3px 0 0; color: var(--ai-result-soft); font-size: .53rem; line-height: 1.45; }
.ai-document-synthesis__overview { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; list-style: none; }
.ai-document-synthesis__overview li { min-width: 0; padding: 10px; display: grid; grid-template-columns: 25px minmax(0,1fr); align-items: start; gap: 8px; border: 1px solid var(--ai-result-line); border-radius: 11px; background: rgba(255,255,255,.45); }
.ai-document-synthesis__overview li > span { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 8px; color: var(--ai-result-accent); background: rgba(105,94,232,.1); font-size: .46rem; font-weight: 800; }
.ai-document-synthesis__overview small,
.ai-document-theme__evidence small { display: block; color: var(--ai-result-accent); font-size: .47rem; font-weight: 720; }
.ai-document-synthesis__overview p,
.ai-document-theme__evidence p { margin: 3px 0 0; color: var(--ai-result-soft); font-size: .57rem; line-height: 1.5; overflow-wrap: anywhere; }
.ai-document-synthesis__overview em { display: block; margin-top: 5px; color: #148b97; font-size: .45rem; font-style: normal; font-weight: 720; }
.ai-document-synthesis__themes { display: grid; gap: 8px; }
.ai-document-synthesis__themes > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.ai-document-theme { min-width: 0; padding: 11px; display: grid; gap: 8px; border: 1px solid rgba(41,176,188,.17); border-radius: 12px; background: linear-gradient(145deg,rgba(57,190,199,.065),rgba(105,94,232,.035)); }
.ai-document-theme > header { display: flex; align-items: start; justify-content: space-between; gap: 8px; }
.ai-document-theme h5 { margin: 2px 0 0; color: var(--ai-result-ink); font-size: .68rem; }
.ai-document-theme > header > strong { color: #148b97; font-size: .48rem; white-space: nowrap; }
.ai-document-theme__chapters { display: flex; flex-wrap: wrap; gap: 4px; }
.ai-document-theme__chapters span { padding: 4px 6px; border-radius: 999px; color: #4f56a4; background: rgba(105,94,232,.09); font-size: .45rem; }
.ai-document-theme__evidence { margin: 0; padding: 0; display: grid; gap: 6px; list-style: none; }
.ai-document-theme__evidence li { padding-top: 6px; border-top: 1px solid var(--ai-result-line); }
.ai-document-synthesis__dedup { margin: 0; color: var(--ai-result-soft); font-size: .49rem; text-align: right; }
.ai-result-section { padding: 15px; display: grid; gap: 12px; border: 1px solid var(--ai-result-line); border-radius: 16px; background: var(--ai-result-surface); }
.ai-result-points,
.ai-explain-steps { margin: 0; padding: 0; display: grid; gap: 4px; list-style: none; }
.ai-result-points li,
.ai-explain-steps li { min-width: 0; padding: 9px 4px; display: grid; grid-template-columns: 27px minmax(0,1fr); align-items: start; gap: 9px; }
.ai-result-points li + li,
.ai-explain-steps li + li { border-top: 1px solid var(--ai-result-line); }
.ai-result-points li > span,
.ai-explain-steps li > span { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 9px; color: #fff; background: linear-gradient(145deg,#665ee7,#a25ddd); font-size: .53rem; font-weight: 780; }
.ai-result-points p,
.ai-explain-steps p { margin: 3px 0 0; color: var(--ai-result-soft); font-size: .65rem; line-height: 1.58; }
.ai-result-section--chapters { gap: 10px; }
.ai-result-chapters { display: grid; gap: 7px; }
.ai-result-chapter { overflow: hidden; border: 1px solid var(--ai-result-line); border-radius: 12px; background: rgba(255,255,255,.025); }
.ai-result-chapter > summary { min-height: 48px; padding: 9px 11px; display: grid; grid-template-columns: 30px minmax(0,1fr) auto; align-items: center; gap: 9px; cursor: pointer; list-style: none; }
.ai-result-chapter > summary::-webkit-details-marker { display: none; }
.ai-result-chapter > summary > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; color: var(--ai-result-accent); background: rgba(105,94,232,.1); font-size: .51rem; font-weight: 800; }
.ai-result-chapter > summary strong { display: block; color: var(--ai-result-ink); font-size: .64rem; }
.ai-result-chapter > summary small { display: block; margin-top: 2px; color: var(--ai-result-soft); font-size: .49rem; }
.ai-result-chapter > summary > i { color: var(--ai-result-accent); font-style: normal; transition: transform .18s ease; }
.ai-result-chapter[open] > summary > i { transform: rotate(180deg); }
.ai-result-chapter > .ai-result-points { padding: 0 11px 8px; border-top: 1px solid var(--ai-result-line); }
.ai-result-chapter--group > .ai-result-chapter__lead { padding: 0 11px 9px; border-top: 1px solid var(--ai-result-line); }
.ai-result-subchapters { padding: 0 9px 9px; display: grid; gap: 6px; }
.ai-result-subchapter { overflow: hidden; border: 1px solid color-mix(in srgb, var(--ai-result-line) 82%, transparent); border-radius: 10px; background: color-mix(in srgb, var(--ai-result-paper) 94%, var(--ai-result-accent) 6%); }
.ai-result-subchapter > summary { min-height: 42px; padding: 7px 9px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 8px; cursor: pointer; list-style: none; }
.ai-result-subchapter > summary::-webkit-details-marker { display: none; }
.ai-result-subchapter > summary strong { display: block; color: var(--ai-result-ink); font-size: .59rem; }
.ai-result-subchapter > summary small { display: block; margin-top: 2px; color: var(--ai-result-soft); font-size: .46rem; }
.ai-result-subchapter > summary i { color: var(--ai-result-accent); font-style: normal; transition: transform .18s ease; }
.ai-result-subchapter[open] > summary i { transform: rotate(180deg); }
.ai-result-subchapter > .ai-study-guide { padding: 0 9px 9px; border-top: 1px solid var(--ai-result-line); }
.ai-result-chapter__warning { margin: 0 9px 9px; padding: 9px 10px; border: 1px solid color-mix(in srgb, #e5a83b 48%, var(--ai-result-line)); border-radius: 10px; background: color-mix(in srgb, #fff4d8 62%, var(--ai-result-paper)); }
.ai-result-chapter__warning strong { display: block; color: color-mix(in srgb, #9b6413 82%, var(--ai-result-ink)); font-size: .55rem; }
.ai-result-chapter__warning p { margin: 3px 0 0; color: var(--ai-result-soft); font-size: .48rem; line-height: 1.45; }
.ai-study-guide { padding: 11px; display: grid; gap: 9px; border-top: 1px solid var(--ai-result-line); }
.ai-study-guide__overview { padding: 11px 12px; border: 1px solid rgba(99,88,222,.16); border-radius: 11px; background: linear-gradient(135deg,rgba(105,94,232,.095),rgba(84,213,218,.045)); }
.ai-study-guide__overview small,
.ai-study-guide__group header strong { color: var(--ai-result-accent); font-size: .51rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.ai-study-guide__overview p { margin: 5px 0 0; color: var(--ai-result-ink); font-size: .65rem; line-height: 1.58; }
.ai-study-guide__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.ai-study-guide__group { min-width: 0; padding: 10px 11px; border: 1px solid var(--ai-result-line); border-radius: 11px; background: rgba(255,255,255,.035); }
.ai-study-guide__group header { padding-bottom: 7px; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; border-bottom: 1px solid var(--ai-result-line); }
.ai-study-guide__group header small { color: var(--ai-result-soft); font-size: .45rem; text-align: right; }
.ai-study-guide__group ul { margin: 0; padding: 0; list-style: none; }
.ai-study-guide__group li { position: relative; padding: 8px 0 7px 13px; }
.ai-study-guide__group li + li { border-top: 1px solid var(--ai-result-line); }
.ai-study-guide__group li::before { content: ""; position: absolute; top: 14px; left: 1px; width: 5px; height: 5px; border-radius: 50%; background: var(--ai-result-accent); box-shadow: 0 0 0 3px rgba(105,94,232,.09); }
.ai-study-guide__group p { margin: 0; color: var(--ai-result-soft); font-size: .59rem; line-height: 1.52; overflow-wrap: anywhere; }
.ai-study-guide__group[data-guide-kind="formula"] { border-color: rgba(43,174,188,.2); background: linear-gradient(145deg,rgba(64,202,211,.07),rgba(255,255,255,.025)); }
.ai-study-guide__group[data-guide-kind="formula"] header strong { color: #168e9d; }
.ai-study-guide__group[data-guide-kind="formula"] li::before { background: #38b9c4; box-shadow: 0 0 0 3px rgba(56,185,196,.1); }
.ai-study-guide__group[data-guide-kind="example"] { border-color: rgba(222,165,63,.2); background: linear-gradient(145deg,rgba(231,177,77,.065),rgba(255,255,255,.025)); }
.ai-study-guide__group[data-guide-kind="example"] header strong { color: #a87318; }
.ai-study-guide__group[data-guide-kind="example"] li::before { background: #dca13c; box-shadow: 0 0 0 3px rgba(220,161,60,.1); }
.ai-explain-steps strong { color: var(--ai-result-ink); font-size: .63rem; }
.ai-result-mode-intro { padding: 14px; display: grid; grid-template-columns: 38px minmax(0,1fr); align-items: center; gap: 10px; border: 1px solid rgba(104,91,222,.16); border-radius: 15px; background: linear-gradient(145deg,rgba(105,94,232,.1),rgba(105,94,232,.035)); }
.ai-result-mode-intro > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; color: #fff; background: linear-gradient(145deg,#665ee7,#9e59df); }
.ai-result-mode-intro p { margin: 4px 0 0; color: var(--ai-result-soft); font-size: .58rem; line-height: 1.45; }
.ai-flashcard-grid { margin-top: 0; }
.ai-flashcard-editor { position: relative; border-top: 3px solid rgba(101,93,224,.5); }
.ai-quiz-list { display: grid; gap: 8px; }
.ai-quiz-question { padding: 13px; display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: start; gap: 10px; border: 1px solid var(--ai-result-line); border-radius: 14px; background: var(--ai-result-surface); transition: transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.ai-quiz-question:hover { transform: translateY(-1px); border-color: rgba(101,93,224,.28); box-shadow: 0 8px 20px rgba(48,39,135,.06); }
.ai-quiz-question > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 11px; color: var(--ai-result-accent); background: rgba(105,94,232,.1); font-size: .57rem; font-weight: 780; }
.ai-quiz-question h4 { margin: 4px 0 0; color: var(--ai-result-ink); font-size: .68rem; line-height: 1.45; }
.ai-quiz-options { margin: 10px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; list-style: none; }
.ai-quiz-options li { min-width: 0; padding: 7px 9px; display: grid; grid-template-columns: 22px minmax(0,1fr); align-items: start; gap: 7px; border: 1px solid rgba(105,94,232,.14); border-radius: 10px; background: rgba(105,94,232,.045); }
.ai-quiz-options li > span { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 7px; color: #5e51d4; background: rgba(105,94,232,.11); font-size: .5rem; font-weight: 800; }
.ai-quiz-options p { margin: 2px 0 0; color: var(--ai-result-soft); font-size: .57rem; line-height: 1.4; overflow-wrap: anywhere; }
.ai-quiz-question details { margin-top: 9px; color: var(--ai-result-accent); font-size: .58rem; }
.ai-quiz-question summary { cursor: pointer; font-weight: 740; }
.ai-quiz-question details p { margin: 7px 0 0; color: var(--ai-result-soft); font-size: .63rem; line-height: 1.55; }
.ai-study-launch {
  padding: 13px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border: 1px solid rgba(93,81,220,.2);
  border-radius: 15px;
  background:
    radial-gradient(circle at 100% 0,rgba(84,218,222,.12),transparent 34%),
    linear-gradient(135deg,rgba(101,93,224,.12),rgba(101,93,224,.035));
}
.ai-study-launch > div { min-width: 0; display: grid; grid-template-columns: 38px minmax(0,1fr); align-items: center; gap: 10px; }
.ai-study-launch > div > span { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(128,116,255,.26); border-radius: 12px; color: #b8aeff; background: rgba(104,92,227,.13); font-size: .8rem; }
.ai-studio-result .ai-study-launch > div > span { color: #6259dd; background: #eeecff; }
.ai-study-launch small,
.ai-study-progress small,
.ai-study-summary small { color: var(--ai-result-accent); font-size: .49rem; font-weight: 780; letter-spacing: .1em; text-transform: uppercase; }
.ai-study-launch h4 { margin: 2px 0 0; color: var(--ai-result-ink); font-size: .7rem; }
.ai-study-launch p { margin: 3px 0 0; color: var(--ai-result-soft); font-size: .53rem; line-height: 1.4; }
.ai-study-launch > .button { min-height: 35px; flex: 0 0 auto; padding: 7px 11px; font-size: .56rem; }

.ai-study-session {
  padding: clamp(14px,1.7vw,20px);
  display: grid;
  border: 1px solid rgba(105,94,232,.22);
  border-radius: 19px;
  background:
    radial-gradient(circle at 8% 0,rgba(113,98,244,.16),transparent 32%),
    radial-gradient(circle at 100% 90%,rgba(82,216,223,.1),transparent 30%),
    linear-gradient(145deg,#0b1220,#11182a);
  box-shadow: 0 20px 42px rgba(19,16,65,.18);
}
.ai-study-session[hidden],
.ai-study-player[hidden],
.ai-study-summary[hidden],
.ai-study-rating[hidden] { display: none; }
.ai-study-player { display: grid; gap: 12px; }
.ai-study-progress { display: grid; grid-template-columns: minmax(86px,.35fr) minmax(150px,1fr) auto; align-items: center; gap: 12px; }
.ai-study-progress > div { display: grid; gap: 2px; }
.ai-study-progress strong { color: #f4f6fb; font-size: .65rem; }
.ai-study-progress progress { width: 100%; height: 7px; overflow: hidden; border: 0; border-radius: 999px; color: #7569f3; background: rgba(255,255,255,.09); }
.ai-study-progress progress::-webkit-progress-bar { border-radius: 999px; background: rgba(255,255,255,.09); }
.ai-study-progress progress::-webkit-progress-value { border-radius: 999px; background: linear-gradient(90deg,#665df0,#b55cdd,#52d8df); transition: width .24s ease; }
.ai-study-progress progress::-moz-progress-bar { border-radius: 999px; background: linear-gradient(90deg,#665df0,#b55cdd,#52d8df); }
.ai-study-progress__meta { justify-items: end; }
.ai-study-progress__meta > span { color: #9ba6b9; font-size: .51rem; white-space: nowrap; }
.ai-study-progress__meta > strong { padding: 4px 7px; border: 1px solid rgba(95,216,222,.25); border-radius: 999px; color: #72e3e5; background: rgba(63,195,204,.09); font-size: .44rem; letter-spacing: .04em; white-space: nowrap; }
.ai-study-progress__meta > strong[hidden] { display: none; }

.ai-study-card {
  width: min(100%,660px);
  min-height: clamp(230px,30vh,310px);
  margin: 2px auto 0;
  padding: 0;
  position: relative;
  border: 0;
  border-radius: 22px;
  outline: 0;
  color: inherit;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
  perspective: 1200px;
}
.ai-study-card:focus-visible { outline: 3px solid rgba(82,216,223,.65); outline-offset: 4px; }
.ai-study-card__inner { width: 100%; height: 100%; min-height: inherit; position: relative; display: grid; transform-style: preserve-3d; transition: transform .62s cubic-bezier(.2,.78,.2,1); }
.ai-study-card.is-revealed .ai-study-card__inner { transform: rotateY(180deg); }
.ai-study-card__face {
  position: absolute;
  inset: 0;
  padding: clamp(24px,4vw,42px);
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 13px;
  overflow: auto;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 22px;
  backface-visibility: hidden;
  text-align: center;
  box-shadow: inset 0 1px rgba(255,255,255,.1),0 20px 45px rgba(0,0,0,.22);
}
.ai-study-card__face--front {
  background:
    radial-gradient(circle at 15% 12%,rgba(145,100,246,.28),transparent 33%),
    radial-gradient(circle at 90% 100%,rgba(74,210,219,.13),transparent 31%),
    linear-gradient(145deg,#171d31,#0e1525);
}
.ai-study-player[data-difficulty="2"] .ai-study-card__face--front { border-color: rgba(151,116,255,.34); box-shadow: inset 0 1px rgba(255,255,255,.1),0 20px 45px rgba(0,0,0,.22),0 0 28px rgba(119,103,239,.08); }
.ai-study-player[data-difficulty="3"] .ai-study-card__face--front { border-color: rgba(231,173,94,.36); background: radial-gradient(circle at 15% 12%,rgba(194,117,238,.3),transparent 33%),radial-gradient(circle at 90% 100%,rgba(236,176,82,.12),transparent 31%),linear-gradient(145deg,#1d1930,#101525); }
.ai-study-player.is-recovery .ai-study-card__face--front { border-color: rgba(82,216,223,.4); box-shadow: inset 0 1px rgba(255,255,255,.1),0 20px 45px rgba(0,0,0,.22),0 0 32px rgba(69,207,218,.11); }
.ai-study-card__face--back {
  transform: rotateY(180deg);
  background:
    radial-gradient(circle at 85% 10%,rgba(78,213,219,.24),transparent 32%),
    radial-gradient(circle at 0 100%,rgba(142,91,235,.16),transparent 36%),
    linear-gradient(145deg,#111d2c,#0c1422);
}
.ai-study-card__face small { color: #9b8cff; font-size: .53rem; font-weight: 780; letter-spacing: .11em; text-transform: uppercase; }
.ai-study-card__face--back small { color: #62dce2; }
.ai-study-card__face strong { max-width: 560px; color: #f7f8fc; font-size: clamp(.86rem,1.45vw,1.18rem); font-weight: 690; line-height: 1.5; letter-spacing: -.018em; }
.ai-study-card__source { padding: 5px 9px; display: inline-flex; align-items: center; border: 1px solid rgba(92,220,224,.28); border-radius: 999px; color: #79e2e5; background: rgba(56,187,197,.09); font-size: .48rem; font-weight: 720; letter-spacing: .02em; }
.ai-study-card__source[hidden] { display: none; }
.ai-study-card__face em { color: #8f9bae; font-size: .53rem; font-style: normal; }
.ai-study-help { min-height: 17px; margin: 0; color: #9aa5b8; font-size: .53rem; text-align: center; }
.ai-study-navigation { display: flex; justify-content: space-between; gap: 8px; }
.ai-study-navigation .button { min-height: 34px; padding: 7px 10px; border-color: rgba(255,255,255,.12); color: #c4cad6; background: rgba(255,255,255,.045); font-size: .54rem; }
.ai-study-navigation .button:disabled { cursor: not-allowed; opacity: .35; }
.ai-study-rating { width: min(100%,660px); margin: 0 auto; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.ai-study-rating button { min-height: 60px; padding: 9px 12px; display: grid; grid-template-columns: 32px minmax(0,1fr); grid-template-rows: auto auto; align-items: center; gap: 1px 9px; border: 1px solid rgba(255,255,255,.12); border-radius: 13px; color: #eef1f7; background: rgba(255,255,255,.045); font: inherit; text-align: left; cursor: pointer; transition: transform .18s ease,border-color .18s ease,background .18s ease;
}
.ai-study-rating button:hover { transform: translateY(-1px); border-color: rgba(129,116,255,.46); background: rgba(119,103,239,.12); }
.ai-study-rating button:last-child:hover { border-color: rgba(74,207,163,.45); background: rgba(67,197,155,.1); }
.ai-study-rating button > span { width: 32px; height: 32px; grid-row: 1 / span 2; display: grid; place-items: center; border-radius: 10px; color: #c1b8ff; background: rgba(119,103,239,.14); }
.ai-study-rating button:last-child > span { color: #70e2bb; background: rgba(67,197,155,.12); }
.ai-study-rating strong { font-size: .6rem; }
.ai-study-rating small { color: #8f9aad; font-size: .48rem; }

.ai-study-summary { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 14px; }
.ai-study-summary > header { min-width: 0; display: grid; grid-template-columns: 42px minmax(0,1fr); align-items: center; gap: 10px; }
.ai-study-summary > header > span { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(141,126,255,.35); border-radius: 13px; color: #d4ceff; background: rgba(119,103,239,.14); }
.ai-study-summary h4 { margin: 3px 0 0; color: #f7f8fc; font-size: 1rem; }
.ai-study-summary header p { margin: 4px 0 0; color: #9ba6b8; font-size: .55rem; line-height: 1.45; }
.ai-study-summary__score { width: 96px; height: 96px; display: grid; place-content: center; gap: 2px; border: 7px solid rgba(119,103,239,.34); border-radius: 50%; text-align: center; box-shadow: 0 0 0 1px rgba(255,255,255,.08),0 0 32px rgba(107,89,239,.18); }
.ai-study-summary__score strong { color: #fff; font-size: 1.25rem; }
.ai-study-summary__score span { max-width: 68px; color: #909caf; font-size: .42rem; line-height: 1.25; }
.ai-study-summary__metrics { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); overflow: hidden; border: 1px solid rgba(255,255,255,.1); border-radius: 13px; background: rgba(255,255,255,.035); }
.ai-study-summary__metrics.is-adaptive { grid-template-columns: repeat(4,minmax(0,1fr)); }
.ai-study-summary__metrics span { min-height: 57px; padding: 9px; display: grid; place-content: center; gap: 3px; color: #929db0; font-size: .47rem; text-align: center; }
.ai-study-summary__metrics span + span { border-left: 1px solid rgba(255,255,255,.1); }
.ai-study-summary__metrics strong { color: #f5f6fa; font-size: .75rem; }
.ai-study-summary__list { grid-column: 1 / -1; max-height: 260px; margin: 0; padding: 0; display: grid; gap: 6px; overflow: auto; list-style: none; scrollbar-width: thin; }
.ai-study-summary__list li { padding: 10px; display: grid; grid-template-columns: 30px minmax(0,1fr); align-items: start; gap: 9px; border: 1px solid rgba(255,255,255,.08); border-radius: 12px; background: rgba(255,255,255,.035); }
.ai-study-summary__list li > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; }
.ai-study-summary__list li.is-known > span { color: #6ce1b8; background: rgba(65,199,155,.12); }
.ai-study-summary__list li.is-review > span { color: #ffbb86; background: rgba(239,147,78,.12); }
.ai-study-summary__list li.is-recovered > span { color: #69dce3; background: rgba(66,199,208,.12); }
.ai-study-summary__list strong { display: block; color: #eef1f7; font-size: .58rem; line-height: 1.4; }
.ai-study-summary__list p { margin: 4px 0 0; color: #929eb1; font-size: .52rem; line-height: 1.48; }
.ai-study-summary__list small { display: block; margin-top: 5px; color: #70d5dc; font-size: .45rem; letter-spacing: .01em; text-transform: none; }
.ai-study-summary > .button { grid-column: 1 / -1; justify-self: center; min-height: 36px; padding: 7px 12px; font-size: .56rem; }
.ai-study-summary__actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.ai-study-summary__actions .button { min-height: 36px; padding: 7px 12px; font-size: .56rem; }
.ai-study-summary > [data-ai-errors-status] { grid-column: 1 / -1; margin: 0; text-align: center; }
.ai-result-save-note { padding: 13px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid rgba(121,105,239,.28); border-radius: 15px; background: radial-gradient(circle at 100% 0,rgba(83,217,221,.11),transparent 38%),linear-gradient(135deg,rgba(119,103,239,.12),rgba(255,255,255,.025)); }
.ai-result-save-note > div { min-width: 0; display: grid; grid-template-columns: 38px minmax(0,1fr); align-items: center; gap: 10px; }
.ai-result-save-note > div > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; color: #d9d4ff; background: rgba(119,103,239,.15); }
.ai-result-save-note small { color: #a99cff; font-size: .48rem; font-weight: 760; letter-spacing: .08em; text-transform: uppercase; }
.ai-result-save-note h4 { margin: 2px 0; color: #f7f8fc; font-size: .72rem; }
.ai-result-save-note p { margin: 0; color: #98a4b6; font-size: .52rem; line-height: 1.45; }
.ai-result-save-note .button { flex: 0 0 auto; min-height: 36px; padding: 7px 12px; display: inline-flex; align-items: center; gap: 7px; font-size: .54rem; }
.ai-result-save-note .button[data-saved="true"] { border-color: rgba(73,204,158,.42); color: #eafff7; background: linear-gradient(135deg,#238c70,#35b58d); box-shadow: 0 9px 22px rgba(35,140,112,.18); }
.ai-study-recovery { min-height: 170px; margin: 16px; padding: 22px; display: grid; grid-template-columns: 54px minmax(0,1fr) auto auto; align-items: center; gap: 14px; border: 1px solid rgba(128,112,255,.35); border-radius: 20px; background: radial-gradient(circle at 15% 20%,rgba(121,104,239,.18),transparent 42%),rgba(9,16,31,.94); box-shadow: 0 18px 48px rgba(0,0,0,.24); }
.ai-study-recovery > span { width: 54px; height: 54px; display: grid; place-items: center; border: 1px solid rgba(148,134,255,.4); border-radius: 17px; color: #c7bdff; background: rgba(117,98,239,.14); font-size: 1.3rem; }
.ai-study-recovery small { color: #a99cff; font-size: .52rem; font-weight: 780; letter-spacing: .1em; text-transform: uppercase; }
.ai-study-recovery h3 { margin: 4px 0; color: #f7f8fc; font-size: 1rem; }
.ai-study-recovery p { margin: 0; color: #9aa6b8; font-size: .58rem; }
.ai-study-recovery .button { min-height: 38px; padding: 8px 13px; font-size: .56rem; }
.ai-result-concepts { padding: 13px; display: grid; grid-template-columns: minmax(130px,.4fr) minmax(0,1fr); align-items: center; gap: 12px; border: 1px solid var(--ai-result-line); border-radius: 14px; background: var(--ai-result-surface); }
.ai-result-concepts > div:last-child { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.ai-result-concepts > div:last-child span { padding: 4px 7px; border-radius: 999px; color: var(--ai-result-accent); background: rgba(105,94,232,.1); font-size: .53rem; font-weight: 680; }
.ai-concept-map { padding: 14px; border: 1px solid var(--ai-result-line); border-radius: 16px; background: radial-gradient(circle at 50% 48%,rgba(57,123,215,.12),transparent 38%),linear-gradient(145deg,#fafbff,#f3f8fb); }
.ai-concept-map__canvas { min-height: 290px; position: relative; display: grid; place-items: center; overflow: hidden; border: 1px solid rgba(57,123,215,.12); border-radius: 14px; background: radial-gradient(circle at 50% 50%,rgba(36,197,180,.1),transparent 30%),radial-gradient(circle at 50% 50%,transparent 0 33%,rgba(57,123,215,.12) 33.4% 33.8%,transparent 34.2% 52%,rgba(154,99,219,.09) 52.4% 52.8%,transparent 53.2%); }
.ai-concept-map__center,.ai-concept-map__node { max-width: 145px; min-height: 34px; padding: 8px 11px; position: absolute; z-index: 2; display: grid; place-items: center; border: 1px solid rgba(57,123,215,.28); border-radius: 999px; color: #273258; background: rgba(255,255,255,.96); box-shadow: 0 9px 24px rgba(38,60,115,.1); font-size: .57rem; line-height: 1.25; text-align: center; }
.ai-concept-map__center { max-width: 180px; min-height: 48px; padding: 10px 17px; color: #fff; background: linear-gradient(135deg,#397bd7,#24aeb4); box-shadow: 0 13px 32px rgba(57,123,215,.25); font-size: .66rem; }
.ai-concept-map__node::before { content:""; width: clamp(38px,6vw,88px); height: 1px; position: absolute; right: 100%; top: 50%; z-index: -1; background: linear-gradient(90deg,rgba(57,123,215,.08),rgba(57,123,215,.42)); transform-origin: right center; }
.ai-concept-map__node[data-map-position="1"] { left: 9%; top: 13%; }.ai-concept-map__node[data-map-position="1"]::before { left:100%; right:auto; transform:rotate(25deg); transform-origin:left center; }
.ai-concept-map__node[data-map-position="2"] { right: 9%; top: 13%; }.ai-concept-map__node[data-map-position="2"]::before { transform:rotate(-25deg); }
.ai-concept-map__node[data-map-position="3"] { left: 5%; top: 44%; }.ai-concept-map__node[data-map-position="3"]::before { left:100%; right:auto; transform:rotate(0); transform-origin:left center; }
.ai-concept-map__node[data-map-position="4"] { right: 5%; top: 44%; }
.ai-concept-map__node[data-map-position="5"] { left: 11%; bottom: 12%; }.ai-concept-map__node[data-map-position="5"]::before { left:100%; right:auto; transform:rotate(-25deg); transform-origin:left center; }
.ai-concept-map__node[data-map-position="6"] { right: 11%; bottom: 12%; }.ai-concept-map__node[data-map-position="6"]::before { transform:rotate(25deg); }
.ai-concept-map__node[data-map-position="7"] { left: 39%; top: 5%; }.ai-concept-map__node[data-map-position="7"]::before { width:60px; left:50%; right:auto; top:100%; transform:rotate(90deg); transform-origin:left center; }
.ai-concept-map__node[data-map-position="8"] { left: 39%; bottom: 5%; }.ai-concept-map__node[data-map-position="8"]::before { width:60px; left:50%; right:auto; top:auto; bottom:100%; transform:rotate(-90deg); transform-origin:left center; }
.ai-concept-relations { margin: 0; padding: 0; display: grid; gap: 7px; list-style: none; }
.ai-concept-relations li { padding: 10px; display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 9px; border: 1px solid var(--ai-result-line); border-radius: 12px; background: #fff; }
.ai-concept-relations li > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; color: #287f92; background: rgba(36,197,180,.11); font-size: .5rem; font-weight: 760; }
.ai-concept-relations h4 { margin: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 5px; color: var(--ai-result-ink); font-size: .6rem; }
.ai-concept-relations h4 em { padding: 3px 7px; border-radius: 999px; color: #3973a6; background: rgba(57,123,215,.09); font-size: .48rem; font-style: normal; font-weight: 650; }
.ai-concept-relations p { margin: 5px 0 0; color: var(--ai-result-soft); font-size: .55rem; line-height: 1.52; }
.ai-glossary-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.ai-glossary-card { min-width: 0; padding: 13px; display: grid; align-content: start; gap: 9px; border: 1px solid var(--ai-result-line); border-radius: 15px; background: linear-gradient(145deg,#fff,#faf8ff); box-shadow: 0 8px 22px rgba(65,47,112,.045); }
.ai-glossary-card header { display: grid; grid-template-columns: 33px minmax(0,1fr); align-items: center; gap: 9px; }
.ai-glossary-card header > span { width: 33px; height: 33px; display: grid; place-items: center; border-radius: 10px; color: #a14f8b; background: rgba(228,108,169,.1); }
.ai-glossary-card small { color: #9566b4; font-size: .45rem; font-weight: 760; letter-spacing: .06em; text-transform: uppercase; }
.ai-glossary-card h4 { margin: 2px 0 0; color: var(--ai-result-ink); font-size: .67rem; }
.ai-glossary-card p { margin: 0; color: var(--ai-result-soft); font-size: .56rem; line-height: 1.55; }
.ai-glossary-card footer { min-height: 19px; display: flex; align-items: center; }
.ai-comparison-list { display: grid; gap: 10px; }
.ai-comparison-card { overflow: hidden; border: 1px solid var(--ai-result-line); border-radius: 16px; background: linear-gradient(145deg,#fff,#fbfaff); box-shadow: 0 9px 24px rgba(50,42,100,.05); }
.ai-comparison-card > header { padding: 11px 13px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--ai-result-line); background: rgba(103,91,224,.045); }
.ai-comparison-card > header small,.ai-comparison-unique header small { color: #7669d5; font-size: .45rem; font-weight: 780; letter-spacing: .08em; text-transform: uppercase; }
.ai-comparison-card > header h4,.ai-comparison-unique header h4 { margin: 2px 0 0; color: var(--ai-result-ink); font-size: .69rem; }
.ai-comparison-card > header > span { padding: 5px 8px; display: inline-flex; align-items: center; gap: 5px; border: 1px solid rgba(219,145,42,.25); border-radius: 999px; color: #8d5c17; background: rgba(255,196,92,.16); font-size: .47rem; font-weight: 720; }
.ai-comparison-card__sources { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.ai-comparison-card__sources section { min-width: 0; padding: 13px; }
.ai-comparison-card__sources section + section { border-left: 1px solid var(--ai-result-line); background: rgba(54,190,194,.035); }
.ai-comparison-card__sources strong { color: #5e55c9; font-size: .54rem; }
.ai-comparison-card__sources p { margin: 7px 0 9px; color: var(--ai-result-soft); font-size: .57rem; line-height: 1.55; }
.ai-comparison-card__sources footer { min-height: 19px; }
.ai-comparison-unique { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.ai-comparison-unique > article { padding: 13px; border: 1px solid var(--ai-result-line); border-radius: 15px; background: #fff; }
.ai-comparison-unique ul { margin: 10px 0 0; padding: 0; display: grid; gap: 8px; list-style: none; }
.ai-comparison-unique li { padding-top: 8px; border-top: 1px solid var(--ai-result-line); }
.ai-comparison-unique li > strong { color: var(--ai-result-ink); font-size: .57rem; }
.ai-comparison-unique li p { margin: 4px 0; color: var(--ai-result-soft); font-size: .53rem; line-height: 1.5; }
.ai-comparison-unique li small,.ai-comparison-empty { color: #7e8797; font-size: .47rem; }
.ai-result-shell .ai-disclaimer { margin: 0; padding: 9px 11px; border: 1px solid rgba(55,184,140,.14); border-radius: 11px; color: var(--ai-result-soft); background: rgba(61,194,151,.05); font-size: .53rem; }
.ai-result-shell .ai-disclaimer > span { margin-right: 5px; color: #46c798; }
@keyframes aiResultReveal { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }

@media (max-width:599px) {
  .ai-result-title { grid-template-columns: 36px minmax(0,1fr); }
  .ai-result-title > span:first-child { width: 36px; height: 36px; }
  .ai-result-verified { grid-column: 1 / -1; width: max-content; }
  .ai-result-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ai-result-metrics span:nth-child(3) { border-left: 0; border-top: 1px solid var(--ai-result-line); }
  .ai-result-metrics span:nth-child(4) { border-top: 1px solid var(--ai-result-line); }
  .ai-result-coverage { grid-template-columns: 48px minmax(0,1fr); }
  .ai-result-coverage__ring { width: 46px; height: 46px; }
  .ai-result-concepts { grid-template-columns: 1fr; }
  .ai-result-concepts > div:last-child { justify-content: flex-start; }
  .ai-glossary-grid { grid-template-columns: 1fr; }
  .ai-comparison-card__sources,.ai-comparison-unique { grid-template-columns: 1fr; }
  .ai-comparison-card__sources section + section { border-top: 1px solid var(--ai-result-line); border-left: 0; }
  .ai-concept-map { padding: 8px; }
  .ai-concept-map__canvas { min-height: 250px; }
  .ai-concept-map__center,.ai-concept-map__node { max-width: 108px; min-height: 30px; padding: 6px 8px; font-size: .48rem; }
  .ai-concept-map__node[data-map-position="1"],.ai-concept-map__node[data-map-position="5"] { left: 3%; }
  .ai-concept-map__node[data-map-position="2"],.ai-concept-map__node[data-map-position="6"] { right: 3%; }
  .ai-concept-map__node[data-map-position="7"],.ai-concept-map__node[data-map-position="8"] { left: 35%; }
  .ai-study-guide__grid { grid-template-columns: 1fr; }
  .ai-document-synthesis__overview,
  .ai-document-synthesis__themes > div { grid-template-columns: 1fr; }
  .ai-study-guide__group header { align-items: flex-start; flex-direction: column; gap: 2px; }
  .ai-study-guide__group header small { text-align: left; }
  .ai-quiz-options { grid-template-columns: 1fr; }
  .ai-study-launch { align-items: stretch; flex-direction: column; }
  .ai-study-launch > .button { width: 100%; }
  .ai-study-session { padding: 12px; border-radius: 16px; }
  .ai-study-progress { grid-template-columns: minmax(75px,.45fr) minmax(100px,1fr); gap: 8px; }
  .ai-study-progress__meta { grid-column: 1 / -1; grid-template-columns: minmax(0,1fr) auto; align-items: center; justify-items: start; }
  .ai-study-progress__meta > span { justify-self: end; }
  .ai-study-card { min-height: 250px; }
  .ai-study-card__face { padding: 22px 17px; border-radius: 18px; }
  .ai-study-card__face strong { font-size: .86rem; }
  .ai-study-rating { grid-template-columns: 1fr; }
  .ai-study-summary { grid-template-columns: minmax(0,1fr) 76px; }
  .ai-study-summary__score { width: 76px; height: 76px; border-width: 6px; }
  .ai-study-summary__score strong { font-size: 1rem; }
  .ai-study-summary__metrics.is-adaptive { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ai-study-summary__metrics.is-adaptive span:nth-child(3) { border-left: 0; border-top: 1px solid rgba(255,255,255,.1); }
  .ai-study-summary__metrics.is-adaptive span:nth-child(4) { border-top: 1px solid rgba(255,255,255,.1); }
  .ai-result-save-note { align-items: stretch; flex-direction: column; }
  .ai-result-save-note .button { width: 100%; }
  .ai-study-recovery { grid-template-columns: 46px minmax(0,1fr); margin: 10px; padding: 16px; }
  .ai-study-recovery > span { width: 46px; height: 46px; }
  .ai-study-recovery .button { grid-column: 1 / -1; width: 100%; }
}
@media (prefers-reduced-motion:reduce) {
  .ai-result-shell,
  .ai-quiz-question,
  .ai-study-card__inner,
  .ai-study-rating button,
  .ai-study-progress progress::-webkit-progress-value { animation: none !important; transition: none !important; }
}

@media (max-width:599px) {
  .ai-studio-header--locked { position: static; grid-template-columns: minmax(0,1fr) auto; }
  .ai-plan-lock { width: 100%; padding: 22px 15px; border-radius: 18px; }
  .ai-plan-lock__visual { width: 76px; height: 76px; }
  .ai-plan-lock__identity strong { font-size: 1.04rem; }
  .ai-plan-lock__identity span { max-width: 260px; font-size: .58rem; }
  .ai-plan-lock__features { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ai-plan-lock__features > span { min-height: 86px; }
  .ai-chat-access-lock { width: calc(100% - 22px); max-height: calc(100% - 22px); padding: 20px 14px; border-radius: 17px; }
  .ai-chat-access-lock ul { display: grid; grid-template-columns: 1fr; }
}

/* Centro dei piani: quattro dashboard scorrevoli, route Planner compatibile. */
.plan-center { --plan-center-accent: var(--gold); max-width: none; }
.plan-center-header { align-items: flex-end; }
.plan-center-header h1 { margin-bottom: 6px; font-size: clamp(1.75rem,2.4vw,2.35rem); }
.plan-center-header p { max-width: 670px; }
.plan-center-controls { display: flex; gap: 7px; }
.plan-center-controls button { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 12px; color: var(--text-soft); background: rgba(255,255,255,.035); font: inherit; cursor: pointer; }
.plan-center-controls button:disabled { opacity: .32; cursor: default; }
.plan-center-tabs { margin-bottom: 14px; padding: 5px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 5px; border: 1px solid var(--line); border-radius: 17px; background: rgba(3,8,15,.5); }
.plan-center-tab { min-width: 0; min-height: 54px; padding: 8px 10px; display: grid; grid-template-columns: 20px minmax(0,1fr); grid-template-rows: auto auto; align-items: center; column-gap: 7px; border: 1px solid transparent; border-radius: 12px; color: var(--text-soft); background: transparent; text-align: left; cursor: pointer; }
.plan-center-tab > span { grid-row: 1 / span 2; color: var(--tab-accent,var(--gold)); font-size: .57rem; }
.plan-center-tab strong,
.plan-center-tab small { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.plan-center-tab strong { align-self: end; font-size: .68rem; }
.plan-center-tab small { align-self: start; color: var(--text-muted); font-size: .49rem; }
.plan-center-tab--basic { --tab-accent: var(--gold); }
.plan-center-tab--plus { --tab-accent: var(--cyan); }
.plan-center-tab--premium { --tab-accent: var(--violet-bright); }
.plan-center-tab--full { --tab-accent: var(--emerald); }
.plan-center-tab[aria-current="page"] { border-color: color-mix(in srgb,var(--tab-accent) 48%,transparent); background: color-mix(in srgb,var(--tab-accent) 12%,transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb,var(--tab-accent) 11%,transparent); }
.plan-center-tab.is-locked { filter: grayscale(1); opacity: .55; }
.plan-center-viewport { overflow: hidden; border-radius: 24px; }
.plan-center-track { display: flex; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth; overscroll-behavior-inline: contain; scrollbar-width: none; outline: none; }
.plan-center-track::-webkit-scrollbar { display: none; }
.plan-center-track:focus-visible { outline: 2px solid color-mix(in srgb,var(--violet-bright) 72%,#fff); outline-offset: -3px; border-radius: 24px; }
.plan-center-tab:focus-visible,
.plan-center-controls button:focus-visible,
.plan-center-tool:focus-visible,
.plan-page-lock button:focus-visible { outline: 2px solid var(--tab-accent,var(--page-accent,var(--cyan))); outline-offset: 2px; }
.plan-center-page { --page-accent: var(--gold); --page-glow: rgba(243,203,103,.11); min-width: 100%; min-height: 690px; padding: clamp(15px,2.1vw,25px); position: relative; overflow: hidden; scroll-snap-align: start; scroll-snap-stop: always; border: 1px solid color-mix(in srgb,var(--page-accent) 26%,var(--line)); border-radius: 24px; background: radial-gradient(circle at 95% 0,var(--page-glow),transparent 35%),linear-gradient(145deg,rgba(16,23,35,.98),rgba(6,11,19,.99)); }
.plan-center-page--plus { --page-accent: var(--cyan); --page-glow: rgba(87,213,223,.12); }
.plan-center-page--premium { --page-accent: var(--violet-bright); --page-glow: rgba(158,108,255,.15); }
.plan-center-page--full { --page-accent: var(--emerald); --page-glow: rgba(68,210,153,.12); }
.plan-center-page.is-owned { box-shadow: inset 0 0 0 1px color-mix(in srgb,var(--page-accent) 12%,transparent),0 20px 60px rgba(0,0,0,.18); }
.plan-page-header { margin-bottom: 18px; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.plan-page-kicker { color: var(--page-accent); font-size: .54rem; font-weight: 760; letter-spacing: .13em; text-transform: uppercase; }
.plan-page-header h2 { margin: 5px 0 4px; font-size: clamp(1.35rem,2vw,1.9rem); letter-spacing: -.04em; }
.plan-page-header p { margin: 0; color: var(--text-muted); font-size: .67rem; }
.plan-page-state { padding: 6px 9px; flex: 0 0 auto; border: 1px solid color-mix(in srgb,var(--page-accent) 35%,transparent); border-radius: 999px; color: var(--page-accent); background: color-mix(in srgb,var(--page-accent) 9%,transparent); font-size: .52rem; font-weight: 750; }
.plan-page-content { position: relative; z-index: 1; }
.plan-page-hero { min-height: 155px; padding: 22px; display: flex; align-items: center; justify-content: space-between; gap: 22px; overflow: hidden; border: 1px solid color-mix(in srgb,var(--page-accent) 24%,var(--line)); border-radius: 20px; background: radial-gradient(circle at 80% 20%,color-mix(in srgb,var(--page-accent) 19%,transparent),transparent 31%),rgba(255,255,255,.03); }
.plan-page-hero span { color: var(--page-accent); font-size: .52rem; font-weight: 760; letter-spacing: .11em; text-transform: uppercase; }
.plan-page-hero h3 { max-width: 620px; margin: 7px 0; font-size: clamp(1.1rem,2vw,1.6rem); }
.plan-page-hero p { max-width: 600px; margin: 0; color: var(--text-muted); font-size: .65rem; line-height: 1.55; }
.plan-page-hero > strong { width: 92px; aspect-ratio: 1; flex: 0 0 auto; display: grid; place-content: center; border: 7px solid color-mix(in srgb,var(--page-accent) 70%,#1a2330); border-radius: 50%; color: #fff; font-size: 1.12rem; text-align: center; box-shadow: 0 0 0 8px rgba(255,255,255,.025); }
.plan-page-hero > strong small { margin-top: 2px; display: block; color: var(--text-muted); font-size: .42rem; font-weight: 600; }
.plan-page-grid { margin-top: 13px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.plan-page-grid--plus .plan-center-tool:last-child { grid-column: 1 / -1; }
.plan-center-tool { min-width: 0; min-height: 92px; padding: 13px; display: grid; grid-template-columns: 39px minmax(0,1fr) auto; align-items: center; gap: 11px; border: 1px solid var(--line); border-radius: 16px; color: var(--text); background: rgba(255,255,255,.03); text-decoration: none; }
.plan-center-tool__icon { width: 39px; height: 39px; display: grid; place-items: center; border-radius: 12px; color: var(--page-accent); background: color-mix(in srgb,var(--page-accent) 11%,transparent); font-size: .92rem; }
.plan-center-tool strong,
.plan-center-tool small { display: block; }
.plan-center-tool strong { font-size: .72rem; }
.plan-center-tool small { margin-top: 4px; color: var(--text-muted); font-size: .55rem; line-height: 1.35; }
.plan-center-tool > b { max-width: 100px; color: var(--page-accent); font-size: .57rem; text-align: right; }
.plan-center-tool > i { color: var(--text-muted); font-style: normal; }
.plan-premium-layout,
.plan-full-top { display: grid; gap: 12px; }
.plan-analytics-card { min-width: 0; padding: 17px; border: 1px solid var(--line); border-radius: 19px; background: rgba(255,255,255,.027); }
.plan-analytics-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.plan-analytics-card > header span { color: var(--page-accent); font-size: .49rem; font-weight: 760; letter-spacing: .1em; text-transform: uppercase; }
.plan-analytics-card > header h3 { margin: 4px 0 0; font-size: .9rem; }
.plan-analytics-card > header b { color: var(--page-accent); font-size: 1.1rem; }
.plan-premium-stack { display: grid; gap: 8px; }
.plan-radar { max-width: 470px; margin: 3px auto 0; }
.plan-radar svg { width: 100%; height: auto; overflow: visible; }
.plan-radar__grid polygon,
.plan-radar__grid line { fill: none; stroke: rgba(184,196,216,.17); stroke-width: 1; }
.plan-radar__target { fill: rgba(87,213,223,.055); stroke: rgba(87,213,223,.62); stroke-width: 1.4; stroke-dasharray: 4 4; }
.plan-radar__value { fill: color-mix(in srgb,var(--page-accent) 22%,transparent); stroke: var(--page-accent); stroke-width: 2.2; filter: drop-shadow(0 0 8px color-mix(in srgb,var(--page-accent) 32%,transparent)); }
.plan-radar circle { fill: #fff; stroke: var(--page-accent); stroke-width: 2; }
.plan-radar__labels text { fill: var(--text-soft); font-size: 9px; text-anchor: middle; }
.plan-radar footer { display: flex; justify-content: center; gap: 16px; color: var(--text-muted); font-size: .48rem; }
.plan-radar footer span { display: flex; align-items: center; gap: 5px; }
.plan-radar footer i { width: 8px; height: 8px; border-radius: 3px; background: var(--page-accent); }
.plan-radar footer span:last-child i { border: 1px dashed var(--cyan); background: transparent; }
.plan-full-top { grid-template-columns: minmax(0,1.15fr) minmax(300px,.85fr); }
.plan-full-top .plan-radar { max-width: 390px; }
.plan-priority-layout { min-height: 300px; display: grid; grid-template-columns: minmax(150px,.8fr) minmax(150px,1fr); align-items: center; gap: 16px; }
.plan-priority-chart { width: min(190px,100%); aspect-ratio: 1; margin: auto; display: grid; place-items: center; border-radius: 50%; box-shadow: 0 0 35px rgba(85,214,223,.12); }
.plan-priority-chart--low { background: radial-gradient(circle,#0c1420 0 48%,transparent 50%),conic-gradient(#ff6373 0 15%,#f3c65f 15% 55%,#55d6df 55% 100%); }
.plan-priority-chart--medium { background: radial-gradient(circle,#0c1420 0 48%,transparent 50%),conic-gradient(#ff6373 0 25%,#f3c65f 25% 70%,#55d6df 70% 100%); }
.plan-priority-chart--high { background: radial-gradient(circle,#0c1420 0 48%,transparent 50%),conic-gradient(#ff6373 0 35%,#f3c65f 35% 80%,#55d6df 80% 100%); }
.plan-priority-chart > div { text-align: center; }
.plan-priority-chart strong,
.plan-priority-chart span { display: block; }
.plan-priority-chart strong { font-size: 1.2rem; }
.plan-priority-chart span { margin-top: 2px; color: var(--text-muted); font-size: .48rem; }
.plan-priority-layout ul { margin: 0; padding: 0; display: grid; gap: 9px; list-style: none; }
.plan-priority-layout li { display: grid; grid-template-columns: 8px minmax(0,1fr) auto; align-items: center; gap: 7px; color: var(--text-muted); font-size: .52rem; }
.plan-priority-layout li i { width: 8px; height: 8px; border-radius: 3px; background: #ff6373; }
.plan-priority-layout li:nth-child(2) i { background: #f3c65f; }
.plan-priority-layout li:nth-child(3) i { background: #55d6df; }
.plan-priority-layout li strong { color: var(--text-soft); font-size: .59rem; }
.plan-priority-layout .plan-priority-errors { grid-template-columns: 1fr; margin-top: 6px; padding-top: 8px; border-top: 1px solid var(--line); color: #ff8d98; }
.plan-page-grid--full { grid-template-columns: repeat(4,minmax(0,1fr)); }
.plan-page-grid--full .plan-center-tool { grid-template-columns: 34px minmax(0,1fr); min-height: 85px; }
.plan-page-grid--full .plan-center-tool__icon { width: 34px; height: 34px; }
.plan-page-grid--full .plan-center-tool > b,
.plan-page-grid--full .plan-center-tool > i { grid-column: 2; justify-self: start; }
.plan-center-page.is-locked { filter: grayscale(.92); }
.plan-center-page.is-locked .plan-page-content { opacity: .22; pointer-events: none; user-select: none; }
.plan-center-page.is-locked .plan-page-header { opacity: .55; }
.plan-page-lock { width: min(390px,calc(100% - 30px)); padding: 24px; position: absolute; z-index: 4; top: 50%; left: 50%; display: grid; justify-items: center; gap: 7px; transform: translate(-50%,-42%); border: 1px solid rgba(255,255,255,.16); border-radius: 21px; background: rgba(11,16,24,.93); box-shadow: 0 24px 70px rgba(0,0,0,.42); text-align: center; backdrop-filter: blur(14px); }
.plan-page-lock > span { width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 14px; color: var(--text-soft); background: rgba(255,255,255,.05); font-size: 1.1rem; }
.plan-page-lock strong { margin-top: 4px; font-size: 1rem; }
.plan-page-lock p { margin: 0; color: var(--text-muted); font-size: .6rem; line-height: 1.5; }
.plan-page-lock button { margin-top: 7px; padding: 9px 12px; border: 1px solid var(--line-strong); border-radius: 11px; color: var(--text); background: rgba(255,255,255,.06); font: inherit; font-size: .58rem; font-weight: 700; cursor: pointer; }
.plan-center-hint { margin: 10px 4px 0; color: var(--text-muted); font-size: .55rem; text-align: center; }
.plan-center-hint span { margin-right: 5px; color: var(--cyan); }

@media (hover:hover) and (pointer:fine) {
  .plan-center-tab,
  .plan-center-controls button,
  .plan-center-tool,
  .plan-page-lock button { transition: transform var(--nk-motion-press) var(--nk-ease-standard),border-color var(--nk-motion-press) ease,background-color var(--nk-motion-press) ease; }
  .plan-center-tab:hover,
  .plan-center-controls button:hover,
  .plan-page-lock button:hover { border-color: var(--line-strong); background: rgba(255,255,255,.07); }
  .plan-center-tool:hover { transform: translateY(-2px); border-color: color-mix(in srgb,var(--page-accent) 35%,var(--line)); background: rgba(255,255,255,.05); }
}
@media (min-width:800px) {
  .plan-premium-layout { grid-template-columns: minmax(0,1.35fr) minmax(290px,.65fr); }
}
@media (max-width:1023px) {
  .plan-full-top { grid-template-columns: 1fr; }
  .plan-page-grid--full { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width:699px) {
  .plan-center-header { align-items: flex-start; }
  .plan-center-controls { display: none; }
  .plan-center-tabs { margin-inline: -3px; padding: 4px; gap: 3px; border-radius: 14px; }
  .plan-center-tab { min-height: 47px; padding: 7px 5px; display: block; text-align: center; }
  .plan-center-tab > span { display: none; }
  .plan-center-tab strong { font-size: .57rem; }
  .plan-center-tab small { margin-top: 2px; display: block; font-size: .41rem; }
  .plan-center-viewport { margin-inline: calc(var(--page-pad-mobile, 0px) * -1); border-radius: 19px; }
  .plan-center-page { min-height: 650px; padding: 14px; border-radius: 19px; }
  .plan-page-header { margin-bottom: 13px; }
  .plan-page-header p { max-width: 220px; font-size: .57rem; }
  .plan-page-state { padding: 5px 7px; font-size: .43rem; }
  .plan-page-hero { min-height: 135px; padding: 16px; }
  .plan-page-hero > strong { width: 70px; border-width: 5px; font-size: .9rem; }
  .plan-page-grid,
  .plan-page-grid--full { grid-template-columns: 1fr; }
  .plan-page-grid--plus .plan-center-tool:last-child { grid-column: auto; }
  .plan-center-tool { min-height: 76px; padding: 11px; }
  .plan-premium-layout { grid-template-columns: 1fr; }
  .plan-radar__labels text { font-size: 8px; }
  .plan-priority-layout { min-height: 235px; grid-template-columns: minmax(130px,.8fr) minmax(120px,1fr); gap: 10px; }
  .plan-priority-chart { max-width: 145px; }
  .plan-center-hint { display: none; }
}
@media (prefers-reduced-motion:reduce) {
  .plan-center-track { scroll-behavior: auto; }
  .plan-center-tab,
  .plan-center-controls button,
  .plan-center-tool,
  .plan-page-lock button { transition: none !important; }
}

/* Nova Notes library: raccolta visiva distinta dall'editor. */
.notes-view { max-width: none; }
.notes-library-shell { min-height: calc(100dvh - 126px); display: grid; grid-template-columns: 225px minmax(0,1fr); overflow: hidden; border: 1px solid rgba(255,255,255,.09); border-radius: 24px; background: #050912; box-shadow: 0 24px 70px rgba(0,0,0,.24); }
.notes-library-sidebar { min-width: 0; padding: 18px 13px; display: flex; flex-direction: column; border-right: 1px solid rgba(255,255,255,.075); background: linear-gradient(180deg,#111620,#0b1018); }
.notes-library-brand { padding: 2px 8px 17px; display: grid; grid-template-columns: 38px minmax(0,1fr); align-items: center; gap: 9px; border-bottom: 1px solid rgba(255,255,255,.075); }
.notes-library-brand > span { width: 38px; height: 38px; display: grid; place-items: center; position: relative; border: 1px solid rgba(239,202,109,.42); border-radius: 50%; color: var(--gold); background: radial-gradient(circle at 70% 25%,rgba(157,98,255,.28),transparent 28%),#101622; font: 1.5rem Georgia,serif; box-shadow: 0 0 22px rgba(157,98,255,.12); }
.notes-library-brand strong, .notes-library-brand small { display: block; }
.notes-library-brand strong { font-size: .72rem; }
.notes-library-brand small { margin-top: 2px; overflow: hidden; color: var(--text-muted); font-size: .4rem; text-overflow: ellipsis; white-space: nowrap; }
.notes-library-nav { padding: 13px 0 11px; display: grid; gap: 3px; border-bottom: 1px solid rgba(255,255,255,.075); }
.notes-library-nav__item, .notes-library-sidebar .folder-card { width: 100%; min-width: 0; min-height: 42px; padding: 8px 9px; display: grid; grid-template-columns: 24px minmax(0,1fr) auto; align-items: center; gap: 7px; border: 1px solid transparent; border-radius: 11px; color: var(--text-soft); background: transparent !important; font: inherit; text-align: left; cursor: pointer; }
.notes-library-nav__item > span, .notes-library-sidebar .folder-card > span { color: #adb7c7; font-size: .66rem; text-align: center; }
.notes-library-nav__item strong, .notes-library-sidebar .folder-card strong { margin: 0; overflow: hidden; font-size: .55rem; font-weight: 620; text-overflow: ellipsis; white-space: nowrap; }
.notes-library-nav__item small, .notes-library-sidebar .folder-card small { margin: 0; color: var(--text-muted); font-size: .43rem; }
.notes-library-nav__item[aria-pressed="true"], .notes-library-sidebar .folder-card[aria-pressed="true"] { border-color: rgba(82,216,223,.17); color: #fff; background: rgba(82,216,223,.075) !important; }
.notes-library-nav__item[aria-pressed="true"] > span, .notes-library-sidebar .folder-card[aria-pressed="true"] > span { color: var(--cyan); }
.notes-library-folders { min-height: 0; padding-top: 12px; display: flex; flex: 1; flex-direction: column; }
.notes-library-folders > header { min-height: 30px; padding: 0 8px; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--text-muted); font-size: .43rem; font-weight: 740; letter-spacing: .1em; text-transform: uppercase; }
.notes-library-folders > header button { width: 27px; height: 27px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 8px; color: var(--cyan); background: rgba(82,216,223,.05); cursor: pointer; }
.notes-library-sidebar .folder-strip { min-height: 0; padding: 2px 0; display: flex; flex: 1; flex-direction: column; gap: 3px; overflow-x: hidden; overflow-y: auto; scrollbar-width: thin; }
.notes-library-sidebar .folder-card > span { color: var(--emerald); }
.notes-library-folders__empty { padding: 12px 8px; color: var(--text-muted); font-size: .45rem; line-height: 1.5; }
.notes-library-plan { margin-top: 10px; padding: 10px; display: grid; gap: 6px; border: 1px solid rgba(98,217,154,.15); border-radius: 12px; background: rgba(98,217,154,.035); }
.notes-library-plan .chip { width: fit-content; }
.notes-library-plan small { color: var(--text-muted); font-size: .4rem; line-height: 1.45; }

.notes-library-main { min-width: 0; padding: clamp(18px,2.2vw,28px); background: radial-gradient(circle at 86% 0,rgba(157,98,255,.07),transparent 30%),#050912; }
.notes-library-header { min-height: 68px; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.notes-library-kicker { display: block; color: #b79aff; font-size: .42rem; font-weight: 760; letter-spacing: .12em; text-transform: uppercase; }
.notes-library-header h1 { margin: 4px 0 3px; color: #f6f8fc; font-size: clamp(1.25rem,2vw,1.7rem); font-weight: 620; letter-spacing: -.035em; }
.notes-library-header p { margin: 0; color: var(--text-muted); font-size: .48rem; }
.notes-library-header__actions { display: flex; gap: 7px; }
.notes-library-header__actions .button { min-height: 36px; padding: 7px 11px; font-size: .5rem; }
.notes-library-toolbar { min-height: 48px; margin: 11px 0 14px; padding: 6px; display: grid; grid-template-columns: minmax(190px,1fr) auto auto; align-items: center; gap: 7px; border: 1px solid rgba(255,255,255,.085); border-radius: 14px; background: rgba(255,255,255,.025); }
.notes-library-search { min-width: 0; padding: 0 9px; display: grid; grid-template-columns: 20px minmax(0,1fr); align-items: center; gap: 5px; color: var(--text-muted); }
.notes-library-search input { width: 100%; min-width: 0; padding: 7px 0; border: 0; outline: 0; color: var(--text); background: transparent; font: inherit; font-size: .51rem; }
.notes-library-sort { min-height: 34px; padding: 0 8px; display: flex; align-items: center; gap: 6px; border-left: 1px solid var(--line); color: var(--text-muted); font-size: .42rem; }
.notes-library-sort select { max-width: 125px; padding: 5px 22px 5px 6px; border: 0; outline: 0; color: var(--text-soft); background: #111722; font: inherit; font-size: .46rem; }
.notes-library-view-switch { padding: 3px; display: flex; gap: 2px; border: 1px solid var(--line); border-radius: 9px; }
.notes-library-view-switch button { width: 29px; height: 27px; border: 0; border-radius: 6px; color: var(--text-muted); background: transparent; cursor: pointer; }
.notes-library-view-switch button[aria-pressed="true"] { color: #fff; background: rgba(157,98,255,.2); }
.recording-library-filters { margin: -4px 0 14px; display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.recording-library-filters button { min-height: 31px; padding: 6px 11px; border: 1px solid var(--line); border-radius: 999px; color: var(--text-muted); background: rgba(255,255,255,.025); font: inherit; font-size: .44rem; white-space: nowrap; cursor: pointer; }
.recording-library-filters button[aria-pressed="true"] { border-color: rgba(82,213,223,.42); color: #b9f7f5; background: rgba(82,213,223,.1); box-shadow: 0 0 18px rgba(82,213,223,.06); }
.notes-library-main > .folder-management { margin-bottom: 12px; }
.notes-library-collection { min-height: 420px; }
.recording-library-overview { margin-bottom: 14px; padding: 11px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; border: 1px solid rgba(255,255,255,.08); border-radius: 16px; background: linear-gradient(120deg,rgba(82,213,223,.055),rgba(118,87,255,.055)); }
.recording-library-overview span { min-width: 0; padding: 8px 10px; display: grid; gap: 2px; border-right: 1px solid rgba(255,255,255,.065); }
.recording-library-overview span:last-child { border-right: 0; }
.recording-library-overview strong { color: #f5f8ff; font-size: .72rem; }
.recording-library-overview small { overflow: hidden; color: var(--text-muted); font-size: .4rem; text-overflow: ellipsis; white-space: nowrap; }
.recording-library-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(245px,1fr)); gap: 10px; }
.recording-library-card { min-width: 0; min-height: 122px; padding: 12px; display: grid; grid-template-columns: 82px minmax(0,1fr) auto; grid-template-rows: 1fr auto; gap: 9px 12px; border: 1px solid rgba(255,255,255,.085); border-radius: 17px; color: var(--text); background: linear-gradient(145deg,#151b26,#0e141e); font: inherit; text-align: left; }
.recording-library-card__art { width: 82px; min-height: 82px; grid-row: 1 / span 2; display: grid; grid-template-columns: minmax(0,1fr) auto; grid-template-rows: 1fr auto auto; align-items: center; gap: 4px 5px; padding: 9px; position: relative; overflow: hidden; appearance: none; border: 1px solid rgba(82,213,223,.2); border-radius: 13px; color: #81e9ea; background: radial-gradient(circle at 20% 20%,rgba(82,213,223,.16),transparent 43%),#0b1520; font: inherit; text-align: left; }
button.recording-library-card__art { cursor: pointer; }
.recording-library-card__art i { display: grid; place-items: center; font-style: normal; }
.recording-library-card__art > span { width: 27px; height: 27px; display: grid; place-items: center; justify-self: end; border: 1px solid rgba(157,117,255,.42); border-radius: 999px; color: #f7f4ff; background: linear-gradient(145deg,#8064ff,#6849df); box-shadow: 0 5px 14px rgba(75,45,190,.28); }
.recording-library-card__art b { align-self: end; color: #dce7f0; font-size: .43rem; font-weight: 720; }
.recording-library-card__art small { justify-self: end; color: #86dfe4; font-size: .35rem; font-weight: 680; }
.recording-library-card__art em { height: 15px; grid-column: 1 / -1; opacity: .65; background: linear-gradient(90deg,transparent 0 2%,#53d5df 2% 4%,transparent 4% 8%,#7657ff 8% 11%,transparent 11% 16%,#53d5df 16% 18%,transparent 18% 23%,#9d75ff 23% 27%,transparent 27% 33%,#53d5df 33% 35%,transparent 35% 40%,#7657ff 40% 44%,transparent 44% 49%,#53d5df 49% 52%,transparent 52% 58%,#9d75ff 58% 60%,transparent 60% 66%,#53d5df 66% 70%,transparent 70% 76%,#7657ff 76% 80%,transparent 80% 86%,#53d5df 86% 89%,transparent 89%); mask:linear-gradient(0deg,transparent 0,#000 18% 82%,transparent 100%); transform-origin:center; }
.recording-library-card__art[data-playback-state="playing"] { border-color: rgba(82,213,223,.56); background: radial-gradient(circle at 24% 20%,rgba(82,213,223,.25),transparent 48%),#0b1520; box-shadow: inset 0 0 26px rgba(82,213,223,.06),0 0 20px rgba(82,213,223,.08); }
.recording-library-card__art[data-playback-state="playing"] > span { border-color: rgba(82,213,223,.58); background: linear-gradient(145deg,#50d6df,#337dbe); }
.recording-library-card__art[data-playback-state="playing"] em { animation: recording-wave 1s ease-in-out infinite alternate; opacity: 1; }
.recording-library-card__art[data-playback-state="loading"] { opacity: .65; cursor: progress; }
.recording-library-card__art.is-locked { cursor: default; filter: grayscale(.55); }
.recording-library-card__art.is-locked i { grid-column: 1 / -1; justify-self: center; }
.recording-library-card__art.is-locked small { color: var(--text-muted); }
@keyframes recording-wave { to { transform: scaleY(.62); filter: brightness(1.35); } }
.recording-library-card__copy { min-width: 0; display: grid; align-content: center; gap: 3px; }
.recording-library-card__copy > small,.recording-library-card__copy > strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.recording-library-card__copy > small { color: var(--text-muted); font-size: .39rem; }
.recording-library-card__copy > strong { color: #f4f7fc; font-size: .62rem; }
.recording-library-card__copy > span { color: #86dfe4; font-size: .42rem; }
.recording-library-card__status { align-self: start; padding: 5px 7px; border: 1px solid rgba(255,255,255,.1); border-radius: 999px; color: var(--text-muted); background: rgba(255,255,255,.03); font-size: .38rem; white-space: nowrap; }
.recording-library-card--reviewed .recording-library-card__status { border-color: rgba(239,201,108,.28); color: #f0cf7a; background: rgba(239,201,108,.07); }
.recording-library-card--ai-ready .recording-library-card__status { border-color: rgba(157,117,255,.38); color: #c9b7ff; background: rgba(157,117,255,.1); }
.recording-library-card__actions { min-width: 0; grid-column: 2 / -1; align-self: end; display: flex; flex-wrap: wrap; gap: 5px; }
.recording-library-card__actions button { min-height: 28px; padding: 5px 8px; display: inline-flex; align-items: center; gap: 5px; border: 1px solid rgba(255,255,255,.1); border-radius: 9px; color: #d8e2ee; background: rgba(255,255,255,.035); font: inherit; font-size: .38rem; font-weight: 700; white-space: nowrap; cursor: pointer; }
.recording-library-card__actions button[data-recording-transcribe] { border-color: rgba(82,213,223,.22); color: #9ceef0; background: rgba(82,213,223,.055); }
.recording-library-card__actions button[data-recording-ai] { border-color: rgba(157,117,255,.3); color: #c9b5ff; background: rgba(157,117,255,.075); }
.recording-library-card.is-plan-frozen { opacity: .56; filter: grayscale(.42); }
.recording-library-card button:focus-visible { outline: 2px solid #8e72ff; outline-offset: 2px; }
.recording-library-empty { min-height: 300px; }
.notes-collection { display: grid; gap: 16px 13px; }
.notes-collection--grid { grid-template-columns: repeat(auto-fill,minmax(165px,1fr)); }
.note-preview-card { min-width: 0; padding: 0; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px; border: 0; color: var(--text); background: transparent; font: inherit; text-align: left; cursor: pointer; }
.note-preview-card__paper { grid-column: 1/-1; min-height: 155px; padding: 13px; display: block; overflow: hidden; border: 1px solid rgba(255,255,255,.075); border-radius: 17px; color: #d7dce5; background: linear-gradient(150deg,#252a33,#191e27); box-shadow: 0 13px 25px rgba(0,0,0,.13); font-size: .55rem; line-height: 1.55; white-space: pre-wrap; }
.note-preview-card:nth-child(4n+2) .note-preview-card__paper { background: linear-gradient(150deg,#262431,#1b1b26); }
.note-preview-card:nth-child(4n+3) .note-preview-card__paper { background: linear-gradient(150deg,#202b2f,#172023); }
.note-preview-card:nth-child(4n+4) .note-preview-card__paper { background: linear-gradient(150deg,#2c2924,#201e1a); }
.note-preview-card__meta { min-width: 0; padding-left: 3px; }
.note-preview-card__meta strong, .note-preview-card__meta small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.note-preview-card__meta strong { font-size: .56rem; }
.note-preview-card__meta small { margin-top: 3px; color: var(--text-muted); font-size: .4rem; }
.note-preview-card__status { padding-right: 3px; color: var(--gold); font-size: .56rem; }
.note-preview-card__status .note-favorite-star { fill: currentColor; stroke-width: 1.45; filter: drop-shadow(0 0 5px rgba(243,203,93,.2)); }
.note-preview-card.is-protected .note-preview-card__paper { display: grid; place-content: center; justify-items: center; gap: 7px; color: var(--text-muted); background: linear-gradient(150deg,#20232b,#151820); }
.note-preview-card.is-protected .note-preview-card__paper i { color: #c6a8ff; font-size: 1rem; font-style: normal; }
.note-preview-card.is-protected .note-preview-card__paper small { font-size: .46rem; }
.note-preview-card.is-plan-frozen { opacity: .52; filter: grayscale(.45); }
.notes-collection--list { grid-template-columns: 1fr; gap: 5px; }
.notes-collection--list .note-preview-card { min-height: 68px; padding: 7px; grid-template-columns: 78px minmax(0,1fr) auto; align-items: center; border: 1px solid transparent; border-radius: 12px; }
.notes-collection--list .note-preview-card__paper { width: 72px; min-height: 52px; max-height: 52px; grid-column: 1; grid-row: 1; padding: 7px; border-radius: 9px; font-size: .36rem; line-height: 1.3; }
.notes-collection--list .note-preview-card__meta { grid-column: 2; grid-row: 1; }
.notes-collection--list .note-preview-card__status { grid-column: 3; grid-row: 1; }
.notes-library-empty { min-height: 420px; display: grid; place-content: center; justify-items: center; gap: 8px; text-align: center; }
.notes-library-empty > div { width: 52px; height: 52px; display: grid; place-items: center; border: 1px solid rgba(157,98,255,.24); border-radius: 16px; color: #c9b4ff; background: rgba(157,98,255,.07); font-size: 1.2rem; }
.notes-library-empty h3 { margin: 4px 0 0; font-size: .8rem; }
.notes-library-empty p { margin: 0 0 4px; color: var(--text-muted); font-size: .5rem; }

.notes-editor-screen { min-height: calc(100dvh - 126px); display: grid; grid-template-rows: auto 1fr; gap: 10px; }
.notes-editor-header { min-height: 52px; padding: 8px 11px; display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 15px; background: rgba(7,12,20,.82); }
.notes-editor-back { min-height: 34px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 10px; color: var(--text-soft); background: rgba(255,255,255,.035); font: inherit; font-size: .5rem; cursor: pointer; }
.notes-editor-header > div { min-width: 0; }
.notes-editor-header > div small, .notes-editor-header > div strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.notes-editor-header > div small { color: var(--text-muted); font-size: .39rem; }
.notes-editor-header > div strong { margin-top: 2px; font-size: .55rem; }
.notes-editor-heading input {
  width: min(100%,520px);
  display: block;
  margin-top: 1px;
  padding: 0;
  overflow: hidden;
  border: 0;
  outline: 0;
  color: #f5f7fb;
  background: transparent;
  font: inherit;
  font-size: .56rem;
  font-weight: 680;
  text-overflow: ellipsis;
}
.notes-editor-heading input::placeholder { color: var(--text-muted); }
.notes-editor-privacy { color: var(--emerald); font-size: .43rem; }
.notes-editor-screen .note-editor-shell { min-height: calc(100dvh - 190px); border-color: rgba(255,255,255,.09); background: linear-gradient(145deg,#111721,#0b1018); }
.notes-editor-screen .note-title { color: #f6f8fc; }

@media (hover:hover) and (pointer:fine) {
  .note-preview-card, .notes-library-nav__item, .notes-library-sidebar .folder-card { transition: transform .17s ease,border-color .17s ease,background-color .17s ease; }
  .note-preview-card:hover { transform: translateY(-3px); }
  .note-preview-card:hover .note-preview-card__paper { border-color: rgba(157,98,255,.32); box-shadow: 0 17px 35px rgba(0,0,0,.2); }
  .notes-collection--list .note-preview-card:hover { transform: none; border-color: var(--line); background: rgba(255,255,255,.025); }
  .recording-library-card { transition: transform .17s ease,border-color .17s ease,box-shadow .17s ease; }
  .recording-library-card:hover { transform: translateY(-2px); border-color: rgba(82,213,223,.28); box-shadow: 0 14px 34px rgba(0,0,0,.2); }
  .recording-library-card__art, .recording-library-card__actions button { transition: border-color .17s ease,background-color .17s ease,transform .17s ease; }
  .recording-library-card__art:hover, .recording-library-card__actions button:hover { border-color: rgba(157,117,255,.48); }
  .recording-library-card__actions button:hover { transform: translateY(-1px); background: rgba(157,117,255,.11); }
}
@media (max-width: 799px) {
  .notes-library-shell { min-height: 0; display: block; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
  .notes-library-sidebar { padding: 0; display: block; border: 0; background: transparent; }
  .notes-library-brand, .notes-library-plan { display: none; }
  .notes-library-nav { padding: 0 0 8px; display: flex; gap: 5px; overflow-x: auto; border: 0; scrollbar-width: none; }
  .notes-library-nav__item { min-width: 105px; grid-template-columns: 20px minmax(0,1fr) auto; border-color: var(--line); background: rgba(255,255,255,.025) !important; }
  .notes-library-folders { padding: 0 0 10px; display: block; }
  .notes-library-folders > header { padding: 0 2px 5px; }
  .notes-library-sidebar .folder-strip { padding-bottom: 2px; flex-direction: row; overflow-x: auto; overflow-y: hidden; }
  .notes-library-sidebar .folder-card { width: auto; min-width: 130px; border-color: var(--line); background: rgba(255,255,255,.025) !important; }
  .notes-library-main { padding: 12px 0 0; background: transparent; }
  .notes-library-header { min-height: 62px; }
  .notes-library-toolbar { grid-template-columns: minmax(0,1fr) auto; }
  .notes-library-sort { display: none; }
  .notes-collection--grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .note-preview-card__paper { min-height: 135px; }
  .recording-library-overview { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .recording-library-overview span:nth-child(2) { border-right: 0; }
}
@media (max-width: 480px) {
  .notes-library-header { align-items: stretch; flex-direction: column; }
  .notes-library-header__actions .button { flex: 1; }
  .notes-library-header__actions .button--ghost { display: none; }
  .notes-library-toolbar { margin-top: 14px; }
  .notes-library-view-switch { display: none; }
  .notes-collection--grid { gap: 14px 9px; }
  .note-preview-card__paper { min-height: 122px; padding: 10px; font-size: .49rem; }
  .recording-library-grid { grid-template-columns: 1fr; }
  .recording-library-card { min-height: 112px; grid-template-columns: 72px minmax(0,1fr); gap: 8px 10px; }
  .recording-library-card__art { width: 72px; min-height: 78px; }
  .recording-library-card__status { display: none; }
  .recording-library-card__actions { grid-column: 2; gap: 4px; }
  .recording-library-card__actions button { min-height: 27px; padding: 5px 7px; }
  .notes-editor-header { grid-template-columns: auto minmax(0,1fr); }
  .notes-editor-privacy { display: none; }
  .notes-editor-screen .note-editor-shell { min-height: calc(100dvh - 165px); }
}
@media (prefers-reduced-motion:reduce) {
  .note-preview-card, .notes-library-nav__item, .notes-library-sidebar .folder-card { transition: none; }
  .recording-library-card__art[data-playback-state="playing"] em { animation: none; }
}

/* Nova Notes: editor immersivo e cartelle personalizzabili */
.folder-color--emerald { --folder-color:#55d7a0; }
.folder-color--cyan { --folder-color:#53d5df; }
.folder-color--violet { --folder-color:#9d75ff; }
.folder-color--blue { --folder-color:#5d8cff; }
.folder-color--gold { --folder-color:#efc96c; }
.folder-color--coral { --folder-color:#ff806f; }
.folder-color--rose { --folder-color:#ee7fc7; }
.folder-color--lime { --folder-color:#a4d866; }
.folder-color--orange { --folder-color:#f49a56; }
.folder-color--red { --folder-color:#ed6670; }
.folder-color--sky { --folder-color:#70bff1; }
.folder-color--indigo { --folder-color:#6f79e8; }
.notes-library-sidebar .folder-card { border-left: 2px solid color-mix(in srgb,var(--folder-color) 78%,transparent); }
.folder-card__icon {
  width: 24px;
  height: 17px;
  display: block;
  position: relative;
  border: 2px solid var(--folder-color);
  border-radius: 4px;
  color: var(--folder-color);
  background: color-mix(in srgb,var(--folder-color) 8%,transparent);
  box-shadow: 0 5px 13px color-mix(in srgb,var(--folder-color) 12%,transparent);
}
.folder-card__icon::before {
  content: "";
  position: absolute;
  top: -7px;
  left: -2px;
  width: 11px;
  height: 7px;
  border: 2px solid var(--folder-color);
  border-bottom: 0;
  border-radius: 4px 4px 0 0;
  background: color-mix(in srgb,var(--folder-color) 12%,#111722);
}
.folder-card__icon i {
  position: absolute;
  right: 3px;
  bottom: 3px;
  width: 5px;
  height: 2px;
  border-radius: 99px;
  background: currentColor;
  box-shadow: -8px 0 0 currentColor;
  opacity: .8;
}
.folder-card.is-pinned .folder-card__icon::after {
  content: "•";
  position: absolute;
  top: -12px;
  right: -7px;
  width: 12px;
  height: 12px;
  display: grid;
  place-items: center;
  border: 1px solid color-mix(in srgb,var(--folder-color) 55%,#fff);
  border-radius: 50%;
  color: #fff;
  background: var(--folder-color);
  font-size: .46rem;
  line-height: 1;
}
.notes-library-sidebar .folder-card > .folder-card__icon { color: var(--folder-color); }
.notes-library-sidebar .folder-card[aria-pressed="true"] { border-color: color-mix(in srgb,var(--folder-color) 38%,transparent); border-left-color: var(--folder-color); background: color-mix(in srgb,var(--folder-color) 8%,transparent) !important; }
.note-preview-card__paper { border-top: 2px solid color-mix(in srgb,var(--folder-color) 65%,transparent); }
.note-preview-card__meta small { color: color-mix(in srgb,var(--folder-color) 66%,var(--text-muted)); }
.folder-management { border-left: 3px solid var(--folder-color); }
.folder-management__copy > .folder-card__icon { flex: 0 0 auto; color: var(--folder-color); }
.folder-color-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.folder-color-fieldset legend { margin-bottom: 8px; color: var(--text-soft); font-size: .72rem; font-weight: 650; }
.folder-color-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
.folder-color-choice { min-width: 0; padding: 8px 5px; display: grid !important; justify-items: center; gap: 5px !important; border: 1px solid var(--line); border-radius: 11px; color: var(--text-muted) !important; background: rgba(255,255,255,.025); cursor: pointer; }
.folder-color-choice input { position: absolute; opacity: 0; pointer-events: none; }
.folder-color-choice > span { width: 22px; height: 22px; border: 1px solid rgba(255,255,255,.28); border-radius: 7px; background: var(--folder-color); box-shadow: 0 5px 14px color-mix(in srgb,var(--folder-color) 22%,transparent); }
.folder-color-choice small { overflow: hidden; font-size: .56rem; text-overflow: ellipsis; white-space: nowrap; }
.folder-color-choice:has(input:checked) { border-color: var(--folder-color); color: #fff !important; background: color-mix(in srgb,var(--folder-color) 10%,transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb,var(--folder-color) 20%,transparent); }

@media (max-width: 799px) {
  .notes-library-sidebar .folder-card {
    min-width: 168px;
    min-height: 76px;
    padding: 12px 13px;
    grid-template-columns: 47px minmax(0,1fr);
    grid-template-rows: auto auto;
    gap: 3px 10px;
    border-left-width: 2px;
    border-radius: 15px;
    background: linear-gradient(145deg,color-mix(in srgb,var(--folder-color) 9%,#111722),#0c111a) !important;
  }
  .notes-library-sidebar .folder-card > .folder-card__icon {
    width: 43px;
    height: 32px;
    grid-row: 1 / 3;
    border-width: 2px;
    border-radius: 7px;
  }
  .notes-library-sidebar .folder-card > .folder-card__icon::before {
    top: -10px;
    width: 19px;
    height: 10px;
    border-width: 2px;
    border-bottom: 0;
  }
  .notes-library-sidebar .folder-card strong {
    align-self: end;
    font-size: .58rem;
  }
  .notes-library-sidebar .folder-card small {
    align-self: start;
    font-size: .42rem;
  }
}

.notes-view--editor { margin: clamp(-10px,-1vw,-4px); }
.notes-editor-screen { min-height: calc(100dvh - 105px); gap: 7px; }
.notes-editor-header { min-height: 42px; padding: 5px 8px; border-radius: 11px; background: rgba(5,9,17,.92); }
.notes-editor-back { min-height: 29px; padding: 5px 8px; border-radius: 8px; font-size: .44rem; }
.notes-editor-header > div small { font-size: .34rem; }
.notes-editor-header > div strong { font-size: .48rem; }
.notes-editor-privacy { font-size: .38rem; }
.notes-editor-screen .note-editor-shell { min-height: calc(100dvh - 153px); padding: 0; overflow: hidden; border-radius: 14px; background: #0b0f16; }
.note-editor--writing { min-height: inherit; padding: 0; display: grid; grid-template-rows: auto minmax(0,1fr); }
.note-editor__commandbar { min-height: 40px; padding: 4px 7px; display: flex; align-items: center; gap: 2px; overflow-x: auto; border-bottom: 1px solid rgba(255,255,255,.08); background: #080c13; scrollbar-width: none; }
.note-editor__commandbar::-webkit-scrollbar { display: none; }
.note-editor__commandbar .note-editor__state { margin-right: auto; padding: 5px 8px; color: var(--emerald); font-size: .41rem; font-weight: 720; white-space: nowrap; }
.note-editor__commandbar .note-editor__state.is-locked { color: #c1a5ff; }
.note-editor__commandbar button, .note-editor__locked-tool { min-height: 29px; padding: 5px 8px; border: 0; border-left: 1px solid rgba(255,255,255,.08); border-radius: 0; color: var(--text-soft); background: transparent; font: inherit; font-size: .42rem; white-space: nowrap; cursor: pointer; }
.note-editor__commandbar button:hover { color: #fff; background: rgba(255,255,255,.04); }
.note-editor__commandbar button.is-danger { color: #ff9d9d; }
.note-editor__locked-tool { display: inline-flex; align-items: center; color: var(--text-muted); cursor: default; }
.note-paper-picker { min-height: 29px; padding: 0 7px; display: inline-flex; align-items: center; gap: 5px; border-left: 1px solid rgba(255,255,255,.08); color: var(--text-muted); font-size: .39rem; white-space: nowrap; }
.note-paper-picker select { max-width: 108px; padding: 4px 18px 4px 4px; border: 0; outline: 0; color: var(--text-soft); background: #101620; font: inherit; font-size: .42rem; }
.note-writing-stage { min-height: 0; padding: clamp(8px,1.4vw,18px); overflow: auto; background: #2b2d32; scrollbar-width: thin; }
.note-paper { --note-paper-bg:#fbfbfa; --note-paper-ink:#151922; --note-paper-soft:#667080; --note-paper-line:rgba(44,56,74,.12); width: min(100%,1180px); min-height: 0; margin: 0 auto; padding: 0; color: var(--note-paper-ink); background: transparent; box-shadow: none; }
.note-paper--white { --note-paper-bg:#fbfbfa; --note-paper-ink:#151922; --note-paper-soft:#667080; --note-paper-line:rgba(44,56,74,.12); }
.note-paper--dark { --note-paper-bg:#07090d; --note-paper-ink:#f2f4f7; --note-paper-soft:#aab1bc; --note-paper-line:rgba(255,255,255,.085); }
.note-paper--ruled { --note-paper-bg:#fcfcfb; --note-paper-ink:#18202b; --note-paper-soft:#657083; --note-paper-line:rgba(85,118,168,.17); }
.note-paper--grid { --note-paper-bg:#fafbf9; --note-paper-ink:#17202a; --note-paper-soft:#657083; --note-paper-line:rgba(75,132,148,.15); }
.note-paper .note-title { width: 100%; min-height: 52px; margin: 0 0 16px; padding: 0 0 11px; border: 0; border-bottom: 1px solid var(--note-paper-line); border-radius: 0; outline: 0; color: var(--note-paper-ink); background: transparent; font: inherit; font-size: clamp(1.35rem,2.5vw,2.05rem); font-weight: 680; }
.note-paper .note-title::placeholder { color: var(--note-paper-soft); opacity: .6; }

@media (max-width:799px) {
  .notes-view--editor { margin: 0; }
  .notes-editor-screen { min-height: calc(100dvh - 92px); }
  .notes-editor-screen .note-editor-shell { min-height: calc(100dvh - 140px); border: 0; border-radius: 0; }
  .notes-editor-header { position: sticky; top: 0; z-index: 5; border-radius: 0; }
  .note-editor__commandbar { position: sticky; top: 0; z-index: 4; }
  .note-writing-stage { padding: 7px; background: #292c31; }
  .note-paper { width: 100%; min-height: 0; padding: 0; box-shadow: none; }
}

@media (max-width:480px) {
  .folder-color-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .folder-color-choice small { display: none; }
  .notes-editor-header > div { display: block; }
  .notes-editor-header { grid-template-columns: auto minmax(0,1fr); }
  .notes-editor-privacy { display: block; justify-self: end; }
  .notes-editor-heading { grid-column: 2; grid-row: 1; }
  .notes-editor-heading small { display: none !important; }
  .notes-editor-heading input { width: 100%; font-size: .52rem; }
  .notes-editor-privacy { display: none; }
  .note-editor__commandbar .note-editor__state { display: none; }
  .note-paper-picker { margin-right: auto; border-left: 0; }
  .note-editor__commandbar button, .note-editor__locked-tool { font-size: .4rem; }
  .note-paper .note-title { font-size: 1.32rem; }
}

/* Quando una nota è aperta, Nova Notes diventa l'intero spazio del dispositivo. */
html.notes-writing-mode,
html.notes-writing-mode body { min-height: 100%; overflow: hidden; background: #080b11; }
html.notes-writing-mode .skip-link,
html.notes-writing-mode .app-header,
html.notes-writing-mode .bottom-nav { display: none !important; }
html.notes-writing-mode .app-shell {
  width: 100%;
  min-height: 100dvh;
  padding: 0;
  display: block;
  background: #080b11;
}
html.notes-writing-mode .app-view {
  width: 100%;
  max-width: none;
  height: 100dvh;
  min-height: 100dvh;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
html.notes-writing-mode .notes-view--editor { width: 100%; height: 100dvh; margin: 0; }
html.notes-writing-mode .notes-editor-screen { height: 100dvh; min-height: 100dvh; grid-template-rows: 46px minmax(0,1fr); gap: 0; }
html.notes-writing-mode .notes-editor-header { min-height: 46px; border-width: 0 0 1px; border-radius: 0; }
html.notes-writing-mode .notes-editor-screen .note-editor-shell { min-height: 0; height: 100%; border: 0; border-radius: 0; }
html.notes-writing-mode .note-editor--writing { height: 100%; min-height: 0; }
html.notes-writing-mode .note-writing-stage { height: 100%; }

@media (max-width:799px) {
  html.notes-writing-mode .notes-editor-screen { grid-template-rows: calc(44px + env(safe-area-inset-top)) minmax(0,1fr); }
  html.notes-writing-mode .notes-editor-header { min-height: calc(44px + env(safe-area-inset-top)); padding-top: env(safe-area-inset-top); }
  html.notes-writing-mode .note-paper { min-height: 0; }
}

/* Nova Notes: una sola barra superiore, simile a un editor desktop. */
.notes-editor-screen,
html.notes-writing-mode .notes-editor-screen {
  grid-template-rows: minmax(0,1fr);
}
.notes-editor-screen .note-editor-shell {
  height: 100%;
  min-height: 0;
}
.note-editor--writing {
  position: relative;
  grid-template-rows: 54px auto minmax(0,1fr);
}
.note-editor__commandbar {
  min-height: 54px;
  padding: 0 9px;
  display: grid;
  grid-template-columns: 38px minmax(120px,1fr) auto auto;
  gap: 7px;
  overflow: visible;
  color: #f3f5f8;
  background: #05070a;
}
.notes-editor-back--icon {
  width: 44px;
  height: 44px;
  min-height: 44px !important;
  display: grid;
  place-items: center;
  padding: 0 !important;
  border: 0 !important;
}
.notes-editor-heading--inline {
  min-width: 0;
  align-self: center;
}
.notes-editor-heading--inline small {
  color: #858d9b;
  font-size: .32rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.notes-editor-heading--inline input {
  width: min(100%,420px);
  min-width: 0;
  margin: 0;
  overflow: hidden;
  color: #f6f7fa;
  font-size: .63rem;
  text-overflow: ellipsis;
}
.note-editor__top-actions {
  min-width: 0;
  height: 100%;
  display: flex;
  align-items: stretch;
  gap: 0;
}
.note-editor__commandbar .note-top-action {
  min-height: 53px;
  padding: 6px 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 0;
  border-left: 0;
  border-radius: 0;
  color: #d7dbe3;
  background: transparent;
  font: inherit;
  font-size: .42rem;
  white-space: nowrap;
  cursor: pointer;
}
.note-editor__commandbar .note-top-action:hover,
.note-editor__commandbar .note-top-action[aria-pressed="true"] {
  color: #fff;
  background: rgba(255,255,255,.055);
}
.notes-editor-back--icon:focus-visible,
.note-editor__commandbar .note-top-action:focus-visible,
.note-editor-more > summary:focus-visible {
  outline: 2px solid #9f82ff;
  outline-offset: -3px;
  border-radius: 8px;
}
.note-top-action__icon {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.note-editor__commandbar > .save-status {
  max-width: 125px;
  align-self: center;
  overflow: hidden;
  color: #7e8795;
  font-size: .35rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.note-recovery-banner {
  min-height: 48px;
  padding: 8px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border-bottom: 1px solid rgba(84,215,161,.22);
  color: #dcebe5;
  background: linear-gradient(90deg,rgba(30,88,68,.42),rgba(10,25,25,.96));
}
.note-recovery-banner[hidden] { display: none; }
.note-recovery-banner > div:first-child { min-width: 0; display: grid; gap: 2px; }
.note-recovery-banner strong { color: #7ee4b7; font-size: .48rem; }
.note-recovery-banner span { color: #aab9b4; font-size: .4rem; }
.note-recovery-banner__actions { display: flex; align-items: center; gap: 6px; }
.note-recovery-banner__actions button {
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid rgba(126,228,183,.26);
  border-radius: 8px;
  color: #dff8ed;
  background: rgba(126,228,183,.08);
  font: inherit;
  font-size: .4rem;
  font-weight: 700;
  cursor: pointer;
}
.note-recovery-banner__actions button:last-child {
  border-color: rgba(255,255,255,.1);
  color: #aab3bf;
  background: rgba(255,255,255,.025);
}
.note-editor-more {
  position: relative;
  height: 100%;
}
.note-editor-more > summary {
  width: 44px;
  height: 100%;
  list-style: none;
}
.note-editor-more > summary::-webkit-details-marker { display: none; }
.note-editor-more__menu {
  position: absolute;
  top: 49px;
  right: 3px;
  z-index: 40;
  width: 205px;
  padding: 6px;
  display: grid;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
  background: #11151d;
  box-shadow: 0 18px 38px rgba(0,0,0,.36);
}
.note-editor-more__mobile-tools { display: none; }
.note-editor__commandbar .note-editor-more__menu button,
.note-editor__commandbar .note-editor-more__menu .note-editor__locked-tool {
  min-height: 35px;
  padding: 7px 9px;
  border: 0;
  border-radius: 6px;
  color: #d8dde6;
  background: transparent;
  font: inherit;
  font-size: .43rem;
  text-align: left;
}
.note-editor__commandbar .note-editor-more__menu button:hover { background: rgba(255,255,255,.06); }
.note-editor__commandbar .note-editor-more__menu button.is-danger { color: #ffaaa5; }

.note-writing-stage {
  padding: 18px 18px 28px;
  transition: padding-right .22s ease;
}
.note-editor[data-drawer-open="true"] .note-writing-stage { padding-right: 368px; }

@media (max-width:1450px) {
  .note-editor__commandbar .note-top-action { padding-inline: 8px; }
  .note-editor__commandbar .note-top-action span { display: none; }
  .note-editor__commandbar > .save-status { display: none; }
  .note-editor__commandbar { grid-template-columns: 38px minmax(120px,1fr) auto; }
}

@media (max-width:799px) {
  .note-editor--writing { grid-template-rows: calc(50px + env(safe-area-inset-top)) auto minmax(0,1fr); }
  .note-editor__commandbar {
    min-height: calc(50px + env(safe-area-inset-top));
    padding: env(safe-area-inset-top) 5px 0;
    grid-template-columns: 44px minmax(90px,1fr) auto;
  }
  .notes-editor-heading--inline small { display: none; }
  .notes-editor-heading--inline input { font-size: .58rem; }
  .note-editor__top-actions { max-width: 132px; }
  .note-editor__commandbar .note-top-action { min-height: 49px; width: 42px; padding: 0; }
  .note-editor__top-actions > .note-top-action { display: none; }
  .note-editor__top-actions > [data-note-open-drawer="style"],
  .note-editor__top-actions > [data-note-open-drawer="insert"] { display: inline-flex; }
  .note-editor-more > summary { width: 44px; }
  .note-editor-more__mobile-tools {
    display: grid;
    margin-bottom: 5px;
    padding-bottom: 5px;
    border-bottom: 1px solid rgba(255,255,255,.09);
  }
  .note-writing-stage,
  .note-editor[data-drawer-open="true"] .note-writing-stage { padding: 7px; }
  .note-recovery-banner { padding: 7px 9px; gap: 8px; }
  .note-recovery-banner span { display: none; }
}

@media (max-width:359px) {
  .note-editor__top-actions { max-width: 120px; }
  .note-editor__commandbar .note-top-action,
  .note-editor-more > summary { width: 40px; }
}

/* Account: conflitti cloud espliciti, mai risolti con una sovrascrittura silenziosa. */
.sync-conflict-row.has-conflicts {
  border-color: rgba(242,189,91,.2);
  background: linear-gradient(90deg, rgba(242,189,91,.075), transparent 72%);
}

.sync-conflict-row.has-conflicts .setting-row__icon {
  border-color: rgba(242,189,91,.3);
  color: #f2bd5b;
  background: rgba(242,189,91,.08);
  box-shadow: 0 0 24px rgba(242,189,91,.08);
}

.setting-row__value.is-alert {
  color: #ffd477;
  font-weight: 750;
}

.sync-conflict-center { display: grid; gap: 18px; }
.sync-conflict-list { display: grid; gap: 12px; }
.sync-conflict-card {
  padding: 17px;
  display: grid;
  gap: 14px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 18px;
  background: rgba(255,255,255,.035);
  box-shadow: inset 0 1px rgba(255,255,255,.025);
}

.sync-conflict-card > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.sync-conflict-card > header > div { min-width: 0; }
.sync-conflict-card > header span:not(.chip) {
  color: #a590e6;
  font-size: .59rem;
  font-weight: 720;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.sync-conflict-card h3 {
  margin: 4px 0 0;
  color: #f0f2f6;
  font-size: .93rem;
  letter-spacing: -.025em;
}

.sync-conflict-comparison {
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.075);
  border-radius: 14px;
  background: rgba(3,8,16,.34);
}

.sync-conflict-comparison__heading,
.sync-conflict-diff-row {
  display: grid;
  grid-template-columns: minmax(110px,.72fr) minmax(0,1fr) minmax(0,1fr);
  gap: 10px;
  align-items: start;
}

.sync-conflict-comparison__heading {
  padding: 9px 11px;
  border-bottom: 1px solid rgba(255,255,255,.075);
  color: #9fa9b8;
  background: rgba(255,255,255,.025);
  font-size: .58rem;
}

.sync-conflict-comparison__heading strong { color: #cfd5df; }
.sync-conflict-diff-row {
  padding: 10px 11px;
  border-bottom: 1px solid rgba(255,255,255,.055);
  color: #c6ced9;
  font-size: .63rem;
  line-height: 1.45;
}

.sync-conflict-diff-row:last-child { border-bottom: 0; }
.sync-conflict-diff-row > strong { color: #8f9bad; }
.sync-conflict-diff-row > span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.sync-conflict-delete-note {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 8px;
}

.sync-conflict-delete-note > span {
  min-height: 76px;
  padding: 12px;
  display: grid;
  align-content: center;
  gap: 3px;
  border: 1px solid rgba(87,213,223,.16);
  border-radius: 13px;
  color: #b7c1ce;
  background: rgba(87,213,223,.045);
  font-size: .63rem;
}

.sync-conflict-delete-note > span.is-deleted {
  border-color: rgba(255,113,105,.18);
  color: #d7aaa7;
  background: rgba(255,113,105,.05);
}

.sync-conflict-delete-note strong { color: #f0f2f6; font-size: .68rem; }
.sync-conflict-no-differences {
  margin: 0;
  padding: 13px;
  color: #9aa5b5;
  font-size: .63rem;
  line-height: 1.5;
}

.sync-conflict-card__actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.sync-conflict-confirm-summary,
.sync-conflict-empty {
  padding: 15px;
  display: grid;
  gap: 4px;
  border: 1px solid rgba(158,108,255,.16);
  border-radius: 15px;
  background: rgba(158,108,255,.055);
}

.sync-conflict-confirm-summary span { color: #a993e8; font-size: .61rem; text-transform: uppercase; }
.sync-conflict-confirm-summary strong { color: #eff1f6; font-size: .82rem; }
.sync-conflict-empty {
  min-height: 150px;
  place-items: center;
  align-content: center;
  text-align: center;
}

.sync-conflict-empty > span {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  color: #8ff0d1;
  background: rgba(77,211,167,.1);
  font-size: 1.25rem;
}

.sync-conflict-empty strong { color: #f0f2f6; }
.sync-conflict-empty small { max-width: 480px; color: #8994a4; line-height: 1.5; }

@media (max-width: 699px) {
  .sync-conflict-card { padding: 13px; }
  .sync-conflict-card > header { display: grid; }
  .sync-conflict-comparison__heading { display: none; }
  .sync-conflict-diff-row {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 12px;
  }
  .sync-conflict-diff-row > span {
    padding: 7px 9px;
    border-radius: 9px;
    background: rgba(255,255,255,.035);
  }
  .sync-conflict-diff-row > span::before {
    display: block;
    margin-bottom: 2px;
    color: #7f8a9a;
    font-size: .51rem;
    font-weight: 700;
    text-transform: uppercase;
  }
  .sync-conflict-diff-row > span:nth-child(2)::before { content: "Questo dispositivo"; }
  .sync-conflict-diff-row > span:nth-child(3)::before { content: "Altro dispositivo"; }
  .sync-conflict-delete-note { grid-template-columns: 1fr; }
  .sync-conflict-card__actions { display: grid; grid-template-columns: 1fr; }
  .sync-conflict-card__actions .button { width: 100%; }
}

@media (max-width: 699px) {
  .ai-result-header-actions { gap: 4px; }
  .ai-speech-controls { min-height: 27px; padding: 1px; }
  .ai-speech-controls button { min-height: 25px; padding: 4px 6px; }
  .ai-speech-controls [data-ai-speech-label],
  .ai-result-header-actions [data-ai-source-toggle-label] { display: none; }
  .ai-selection-toolbar { left: 10px; bottom: 10px; width: calc(100% - 20px); max-width: none; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)) auto; transform: none; }
  .ai-selection-toolbar > div { grid-column: 1 / -1; min-width: 0; }
  .ai-selection-toolbar button { min-height: 38px; padding: 6px; }
  .ai-selection-source-notice { grid-template-columns: auto minmax(0,1fr); }
  .ai-selection-source-notice button { grid-column: 1 / -1; width: 100%; }
  @keyframes aiSelectionArrive { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
  .today-priority-notice a,
  .today-panel-heading a,
  .today-focus-panel > footer a,
  .today-calendar-agenda > header a,
  .hub-summary-card__header a,
  .elite-hub-card__action {
    min-height: 36px;
    padding-block: 8px;
    display: inline-flex;
    align-items: center;
  }
  .today-activity-check { width: 32px; height: 32px; }
  .today-novi-bubble > header button {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 10px;
  }
  .notes-library-search input,
  .notes-library-sort select,
  .notes-editor-heading--inline input,
  .ai-chat-composer textarea,
  .ai-chat-thread-composer textarea,
  .ai-result-card--selectable textarea {
    font-size: 16px;
  }
  .notes-editor-heading--inline input { min-height: 36px; }
}

/* Mobile focus pass: compact, task-first Nova AI. */
@media (max-width:699px) {
  .app-shell[data-route="today"],
  .app-shell[data-route="ai"] {
    height: 100dvh;
    min-height: 0;
    padding-bottom: 0;
    overflow: hidden;
  }
  .app-shell[data-route="ai"] { --header-height: 0px; }
  .app-shell[data-route="ai"] .app-header { display: none; }
  .app-shell[data-route="ai"] .app-view {
    width: 100%;
    height: 100dvh;
    min-height: 0;
    padding: 5px 5px calc(var(--nav-height) + 12px);
    overflow: hidden;
  }
  .app-shell[data-route="ai"] .ai-studio-view {
    height: 100%;
    min-height: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid rgba(122,143,184,.18);
    border-radius: 17px;
    background: radial-gradient(circle at 76% -8%,rgba(119,113,255,.12),transparent 42%),linear-gradient(145deg,#050c18,#020711 72%);
  }
  .app-shell[data-route="ai"] .ai-studio-header {
    flex: 0 0 auto;
    min-height: 0;
    padding: 7px;
    position: static;
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 6px;
    border-bottom: 1px solid var(--ai-line);
    background: rgba(3,9,21,.9);
  }
  .app-shell[data-route="ai"] .ai-studio-view.is-study-plan-view .ai-studio-header {
    display: none;
  }
  .app-shell[data-route="ai"] .ai-studio-view.is-study-plan-view .ai-study-plan-workspace {
    flex: 1 1 auto;
    min-height: 0;
  }
  .app-shell[data-route="ai"] .ai-studio-brand { min-width: 0; gap: 7px; }
  .app-shell[data-route="ai"] .ai-studio-brand__mark { width: 29px; height: 29px; border-radius: 9px; font-size: .72rem; }
  .app-shell[data-route="ai"] .ai-studio-brand > div > span { display: none; }
  .app-shell[data-route="ai"] .ai-studio-brand h1 { margin: 0; font-size: .87rem; font-weight: 590; letter-spacing: -.025em; }
  .app-shell[data-route="ai"] .ai-studio-header__actions { grid-column: 2; grid-row: 1; flex-wrap: nowrap; gap: 4px; }
  .app-shell[data-route="ai"] .ai-chat-launch,
  .app-shell[data-route="ai"] .ai-studio-close { min-height: 30px; padding: 5px 7px; border-radius: 9px; font-size: .48rem; }
  .app-shell[data-route="ai"] .ai-chat-launch small,
  .app-shell[data-route="ai"] .ai-studio-close > span { display: none; }
  .app-shell[data-route="ai"] .ai-mode-tabs { grid-column: 1 / -1; grid-row: 2; padding: 3px; grid-template-columns: repeat(4,minmax(0,1fr)); grid-auto-flow: row; grid-auto-columns: auto; gap: 2px; overflow-x: visible; scrollbar-width: auto; border-radius: 11px; }
  .app-shell[data-route="ai"] .ai-mode-tab { min-height: 35px; padding: 4px 2px; gap: 4px; border-radius: 8px; }
  .app-shell[data-route="ai"] .ai-mode-tab > span { width: 17px; height: 17px; border-radius: 6px; font-size: .5rem; }
  .app-shell[data-route="ai"] .ai-mode-tab strong { font-size: .43rem; font-weight: 590; }
  .app-shell[data-route="ai"] .ai-lab { flex: 1 1 auto; min-height: 0; padding: 6px; overflow: hidden; }
  .app-shell[data-route="ai"] .ai-runtime-strip--studio { display: none; }
  .app-shell[data-route="ai"] .ai-studio-workspace,
  .app-shell[data-route="ai"] .is-source-collapsed .ai-studio-workspace { height: 100%; min-height: 0; display: block; }
  .app-shell[data-route="ai"] .ai-source-panel,
  .app-shell[data-route="ai"] .ai-studio-result { height: 100%; min-height: 0; border-radius: 13px; overflow: auto; }
  .app-shell[data-route="ai"] .ai-source-panel { padding: 10px; gap: 7px; }
  .app-shell[data-route="ai"] .ai-source-panel > header { min-height: 33px; }
  .app-shell[data-route="ai"] .ai-source-panel > header span:not(.chip):not(.ai-source-private) { font-size: .43rem; }
  .app-shell[data-route="ai"] .ai-source-panel h2 { margin-top: 2px; font-size: .77rem; font-weight: 590; }
  .app-shell[data-route="ai"] .ai-source-private { width: 27px; height: 27px; border-radius: 8px; font-size: .68rem; }
  .app-shell[data-route="ai"] .ai-source-panel > label { gap: 3px; font-size: .49rem; }
  .app-shell[data-route="ai"] .ai-source-panel .field { min-height: 34px; padding: 7px 8px; border-radius: 9px; font-size: .56rem; }
  .app-shell[data-route="ai"] .ai-source-panel .ai-file-drop { padding: 7px; grid-template-columns: 28px minmax(0,1fr); gap: 6px; }
  .app-shell[data-route="ai"] .ai-file-drop__icon { width: 28px; height: 28px; border-radius: 8px; font-size: .68rem; }
  .app-shell[data-route="ai"] .ai-file-drop strong { font-size: .53rem; }
  .app-shell[data-route="ai"] .ai-file-drop small,
  .app-shell[data-route="ai"] .ai-source-panel .field-hint,
  .app-shell[data-route="ai"] .ai-source-panel .ai-text-meta { font-size: .43rem; }
  .app-shell[data-route="ai"] .ai-source-panel .ai-source-text { min-height: 92px; padding: 8px; line-height: 1.45; }
  .app-shell[data-route="ai"] .ai-prompt-suggestions { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .app-shell[data-route="ai"] .ai-prompt-suggestions button { min-height: 27px; padding: 5px 7px; flex: 0 0 auto; font-size: .43rem; }
  .app-shell[data-route="ai"] .ai-source-panel .check-row { min-height: 31px; padding: 6px 7px; font-size: .46rem; }
  .app-shell[data-route="ai"] .ai-source-panel .dialog-actions { position: sticky; bottom: -10px; padding: 5px 0 1px; background: linear-gradient(180deg,transparent,#f3f5f9 24%); }
  .app-shell[data-route="ai"] .ai-source-panel .dialog-actions .button { min-height: 34px; padding: 7px 9px; font-size: .52rem; }
  .app-shell[data-route="ai"] .ai-studio-view:not(.is-source-collapsed) .ai-studio-result,
  .app-shell[data-route="ai"] .ai-insights-panel { display: none; }
  .app-shell[data-route="ai"] .ai-studio-result { min-height: 0; padding: 10px; grid-template-rows: auto minmax(0,1fr); }
  .app-shell[data-route="ai"] .ai-studio-result > header { min-height: 35px; align-items: center; }
  .app-shell[data-route="ai"] .ai-studio-result > header > div > span { font-size: .41rem; }
  .app-shell[data-route="ai"] .ai-studio-result h2 { margin-top: 2px; font-size: .76rem; font-weight: 590; }
  .app-shell[data-route="ai"] .ai-result-header-actions { align-items: center; flex-direction: row; }
  .app-shell[data-route="ai"] .ai-result-header-actions > button { min-height: 27px; padding: 5px 7px; font-size: .44rem; }
  .app-shell[data-route="ai"] .ai-result-local { min-height: 25px; padding: 5px 7px; font-size: .42rem; }
  .app-shell[data-route="ai"] .ai-result--studio { min-height: 0; margin-top: 5px; padding: 5px 0 0; overflow: auto; }
  .app-shell[data-route="ai"] .ai-result-placeholder--welcome { min-height: 100%; padding: 12px; align-content: center; gap: 10px; border-radius: 13px; }
  .app-shell[data-route="ai"] .ai-studio-view.is-source-collapsed:not(.has-analysis) .ai-studio-result {
    height: min(360px,100%);
    overflow: hidden;
  }
  .app-shell[data-route="ai"] .ai-studio-view.is-source-collapsed:not(.has-analysis) .ai-result-placeholder--welcome {
    min-height: 0;
    height: 100%;
    grid-template-columns: 45px minmax(0,1fr);
    align-content: start;
  }
  .app-shell[data-route="ai"] .ai-studio-view.is-source-collapsed:not(.has-analysis) .ai-result-welcome__visual { grid-column: 1; }
  .app-shell[data-route="ai"] .ai-studio-view.is-source-collapsed:not(.has-analysis) .ai-result-welcome__copy { grid-column: 2; align-self: center; }
  .app-shell[data-route="ai"] .ai-studio-view.is-source-collapsed:not(.has-analysis) .ai-result-welcome__actions,
  .app-shell[data-route="ai"] .ai-studio-view.is-source-collapsed:not(.has-analysis) .ai-result-welcome__privacy { grid-column: 1 / -1; }
  .app-shell[data-route="ai"] .ai-studio-view.is-source-collapsed:not(.has-analysis) .ai-result--studio { overflow: hidden; }
  .app-shell[data-route="ai"] .ai-result-welcome__visual { width: 45px; height: 45px; }
  .app-shell[data-route="ai"] .ai-result-welcome__visual > span { width: 37px; height: 37px; border-radius: 12px; font-size: .78rem; }
  .app-shell[data-route="ai"] .ai-result-welcome__copy { gap: 3px; }
  .app-shell[data-route="ai"] .ai-result-welcome__copy > small { font-size: .42rem; }
  .app-shell[data-route="ai"] .ai-result-welcome__copy > strong { font-size: .94rem; font-weight: 610; }
  .app-shell[data-route="ai"] .ai-result-welcome__copy > p { font-size: .52rem; line-height: 1.4; }
  .app-shell[data-route="ai"] .ai-result-welcome__flow { display: none; }
  .app-shell[data-route="ai"] .ai-result-welcome__actions { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; }
  .app-shell[data-route="ai"] .ai-result-welcome__actions button { min-height: 63px; padding: 7px 5px; grid-template-columns: 1fr; place-items: center; align-content: center; gap: 4px; border-radius: 10px; text-align: center; }
  .app-shell[data-route="ai"] .ai-result-welcome__actions button > span:first-child { width: 25px; height: 25px; border-radius: 8px; font-size: .58rem; }
  .app-shell[data-route="ai"] .ai-result-welcome__actions strong { font-size: .46rem; }
  .app-shell[data-route="ai"] .ai-result-welcome__actions small { display: none; }
  .app-shell[data-route="ai"] .ai-result-welcome__privacy { font-size: .42rem !important; }
  .app-shell[data-route="ai"] .ai-summary p,
  .app-shell[data-route="ai"] .ai-result-card p { font-size: .58rem; line-height: 1.48; }
  .app-shell[data-route="ai"] .ai-chat-workspace { height: 100%; min-height: 0; padding: 6px; overflow: hidden; }
  .app-shell[data-route="ai"] .ai-chat-thread-panel { height: 100%; min-height: 0; max-height: none; }
  .app-shell[data-route="ai"] .ai-chat-context-panel { display: none; }
  .app-shell[data-route="today"] .today-dashboard-grid {
    flex: 0 0 auto;
    grid-template-rows: 135px 150px;
  }
  .app-shell[data-route="today"] .today-activity-row { grid-template-columns: 32px minmax(0,1fr) auto; }
  .app-shell[data-route="today"] .today-activity-check { width: 32px; height: 32px; }
}

/* Novi compact: resta disponibile senza occupare la dashboard. */
.today-novi-assistant {
  width: auto;
  height: auto;
  min-height: 0;
  margin: 0;
  position: fixed;
  z-index: 90;
  right: 22px;
  bottom: 22px;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  pointer-events: none;
}

.today-novi-launcher {
  min-width: 104px;
  height: 52px;
  padding: 5px 13px 5px 6px;
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid rgba(126,119,255,.42);
  border-radius: 15px;
  color: #edf1ff;
  background: linear-gradient(145deg,rgba(15,27,47,.98),rgba(5,12,24,.98));
  box-shadow: 0 12px 28px rgba(0,3,12,.38),inset 0 1px rgba(255,255,255,.06);
  cursor: pointer;
  pointer-events: auto;
  font: inherit;
  font-size: .64rem;
  font-weight: 650;
  transition: border-color var(--nk-motion-control) ease,box-shadow var(--nk-motion-control) ease,transform var(--nk-motion-control) var(--nk-ease-standard);
}

.today-novi-launcher:hover,
.today-novi-launcher[aria-expanded="true"] {
  border-color: rgba(148,139,255,.72);
  box-shadow: 0 14px 32px rgba(0,3,12,.44),0 0 24px rgba(112,106,255,.16),inset 0 1px rgba(255,255,255,.08);
  transform: translateY(-2px);
}

.today-novi-launcher__mark {
  width: 39px;
  height: 39px;
  position: relative;
  flex: 0 0 auto;
  overflow: hidden;
  border: 1px solid rgba(225,191,105,.55);
  border-radius: 11px 11px 13px 13px;
  background: radial-gradient(circle at 50% 43%,rgba(100,219,255,.17),transparent 42%),linear-gradient(155deg,#1b2a42,#060c17 72%);
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.025),0 0 14px rgba(112,106,255,.14);
}

.today-novi-launcher__mark img {
  width: 120px;
  max-width: none;
  height: auto;
  display: block;
  position: absolute;
  top: -5px;
  left: 50%;
  object-fit: contain;
  transform: translateX(-50%);
}

.today-novi-launcher__status {
  width: 6px;
  height: 6px;
  position: absolute;
  top: 5px;
  right: 5px;
  border-radius: 50%;
  background: var(--emerald);
  box-shadow: 0 0 0 3px rgba(100,211,153,.08),0 0 8px rgba(100,211,153,.6);
}
.today-novi-assistant[data-novi-tone="urgent"] .today-novi-launcher__status {
  background: #ff8a72;
  box-shadow: 0 0 0 3px rgba(255,119,93,.1),0 0 9px rgba(255,119,93,.68);
}
.today-novi-assistant[data-novi-tone="success"] .today-novi-launcher__status {
  background: #70e2a3;
  box-shadow: 0 0 0 3px rgba(112,226,163,.1),0 0 10px rgba(112,226,163,.7);
}
.today-novi-assistant[data-novi-tone="notice"] .today-novi-launcher__status {
  background: #e9c66d;
  box-shadow: 0 0 0 3px rgba(233,198,109,.1),0 0 9px rgba(233,198,109,.66);
}

.today-novi-suggestion {
  width: min(320px,calc(100vw - 32px));
  padding: 14px;
  position: absolute;
  z-index: 4;
  right: 0;
  bottom: 58px;
  visibility: hidden;
  border: 1px solid rgba(126,119,255,.34);
  border-radius: 17px;
  opacity: 0;
  color: #dfe5f2;
  background: linear-gradient(150deg,rgba(12,24,42,.98),rgba(4,11,22,.99));
  box-shadow: 0 22px 54px rgba(0,3,12,.48),inset 0 1px rgba(255,255,255,.05);
  pointer-events: none;
  transform: translateY(8px) scale(.98);
  transform-origin: right bottom;
  transition: opacity var(--nk-motion-panel) ease,visibility var(--nk-motion-panel) ease,transform var(--nk-motion-panel) var(--nk-ease-emphasized);
}

.today-novi-assistant.is-suggestion-open .today-novi-suggestion {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: none;
}

.today-novi-suggestion__close {
  width: 28px;
  height: 28px;
  padding: 0;
  position: absolute;
  top: 8px;
  right: 8px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 9px;
  color: #8f9bae;
  background: rgba(255,255,255,.035);
  cursor: pointer;
  font-size: .9rem;
}

.today-novi-suggestion__eyebrow,
.today-novi-panel__eyebrow {
  color: #9c92ff;
  font-size: .52rem;
  font-weight: 720;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.today-novi-suggestion__title {
  margin: 6px 26px 0 0;
  display: block;
  color: #f1f3f8;
  font-size: .72rem;
  font-weight: 680;
  line-height: 1.28;
}

.today-novi-suggestion > p {
  margin: 6px 24px 11px 0;
  color: #d1d8e6;
  font-size: .66rem;
  line-height: 1.45;
}

.today-novi-suggestion > div { display: flex; gap: 7px; }
.today-novi-suggestion > div button {
  min-height: 32px;
  padding: 7px 10px;
  border: 1px solid rgba(126,119,255,.4);
  border-radius: 9px;
  color: #b8b0ff;
  background: rgba(112,106,255,.06);
  cursor: pointer;
  font: inherit;
  font-size: .54rem;
  font-weight: 650;
}
.today-novi-suggestion > div button:last-child {
  color: #b5bfce;
  border-color: rgba(139,157,188,.2);
  background: rgba(255,255,255,.025);
}

.today-novi-backdrop {
  position: fixed;
  z-index: 5;
  inset: 0;
  visibility: hidden;
  border: 0;
  opacity: 0;
  background: rgba(1,5,13,.48);
  backdrop-filter: blur(5px);
  pointer-events: none;
  transition: opacity var(--nk-motion-panel) ease,visibility var(--nk-motion-panel) ease;
}

.today-novi-panel {
  width: min(390px,calc(100vw - 36px));
  max-height: calc(100dvh - 112px);
  position: fixed;
  z-index: 6;
  right: 18px;
  bottom: 80px;
  visibility: hidden;
  overflow: auto;
  overscroll-behavior: contain;
  border: 1px solid rgba(126,119,255,.36);
  border-radius: 22px;
  opacity: 0;
  color: #e6eaf3;
  background:
    radial-gradient(circle at 86% -5%,rgba(112,106,255,.18),transparent 42%),
    linear-gradient(155deg,#0c192b,#040b16 72%);
  box-shadow: 0 30px 80px rgba(0,3,12,.58),inset 0 1px rgba(255,255,255,.055);
  pointer-events: none;
  transform: translateY(14px) scale(.98);
  transform-origin: right bottom;
  transition: opacity var(--nk-motion-panel) ease,visibility var(--nk-motion-panel) ease,transform var(--nk-motion-panel) var(--nk-ease-emphasized);
}

.today-novi-assistant.is-panel-open .today-novi-backdrop,
.today-novi-assistant.is-panel-open .today-novi-panel {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}
.today-novi-assistant.is-panel-open .today-novi-panel { transform: none; }

.today-novi-panel__header {
  min-height: 76px;
  padding: 10px 12px;
  display: grid;
  grid-template-columns: 54px minmax(0,1fr) 32px;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid rgba(126,143,178,.16);
}

.today-novi-panel__portrait {
  width: 54px;
  height: 54px;
  display: block;
  overflow: hidden;
  border: 1px solid rgba(225,191,105,.4);
  border-radius: 17px;
  background: radial-gradient(circle at 50% 28%,rgba(106,207,255,.12),transparent 40%),#06101d;
}
.today-novi-panel__portrait .novi-character-art { width: 64px; height: 86px; left: -5px; aspect-ratio: auto; }
.today-novi-panel__portrait .novi-character-art__image { object-fit: cover; object-position: center top; }
.today-novi-panel__portrait .novi-character-art__fallback { width: 42px; top: 5px; }
.today-novi-panel__header > span:nth-child(2) { min-width: 0; display: grid; gap: 3px; }
.today-novi-panel__header strong { font-size: .84rem; }
.today-novi-panel__header small { color: #8996a9; font-size: .55rem; }
.today-novi-panel__header > button {
  width: 32px;
  height: 32px;
  padding: 0;
  display: grid;
  place-items: center;
  border: 1px solid rgba(140,156,184,.18);
  border-radius: 10px;
  color: #a9b3c3;
  background: rgba(255,255,255,.025);
  cursor: pointer;
  font-size: 1rem;
}

.today-novi-panel__body { padding: 16px; }
.today-novi-panel__body > h2 { margin: 7px 0 0; color: #f3f5f9; font-size: .91rem; font-weight: 670; line-height: 1.25; }
.today-novi-panel__body > p { margin: 7px 0 15px; color: #d3dae7; font-size: .71rem; line-height: 1.5; }
.today-novi-explanation {
  margin: 0 0 12px;
  padding: 11px;
  display: grid;
  gap: 8px;
  border: 1px solid rgba(126,119,255,.2);
  border-radius: 14px;
  background: linear-gradient(145deg,rgba(112,106,255,.075),rgba(255,255,255,.018));
}
.today-novi-explanation > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.today-novi-explanation > header strong { color: #f0f2f7; font-size: .58rem; font-weight: 680; }
.today-novi-explanation > header span {
  padding: 4px 7px;
  border-radius: 999px;
  color: #9fd9c2;
  background: rgba(85,215,160,.08);
  font-size: .43rem;
  font-weight: 650;
  text-transform: capitalize;
}
.today-novi-explanation > p { margin: 0; color: #aeb8c9; font-size: .55rem; line-height: 1.48; }
.today-novi-explanation > div { display: flex; flex-wrap: wrap; gap: 5px; }
.today-novi-explanation > div span {
  padding: 4px 7px;
  border: 1px solid rgba(132,145,175,.14);
  border-radius: 999px;
  color: #c8cfdb;
  background: rgba(255,255,255,.025);
  font-size: .43rem;
}
.today-novi-explanation > ol {
  margin: 0;
  padding: 0;
  display: grid;
  gap: 5px;
  list-style: none;
  counter-reset: novi-path;
}
.today-novi-explanation > ol li {
  display: grid;
  grid-template-columns: 18px minmax(0,1fr);
  align-items: center;
  gap: 7px;
  color: #d7dde7;
  font-size: .49rem;
  line-height: 1.35;
  counter-increment: novi-path;
}
.today-novi-explanation > ol li::before {
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  color: #c2bbff;
  background: rgba(112,106,255,.13);
  content: counter(novi-path);
  font-size: .42rem;
  font-weight: 720;
}
.today-novi-panel__actions { display: grid; gap: 7px; }
.today-novi-panel__actions button {
  min-height: 54px;
  padding: 9px 10px;
  display: grid;
  grid-template-columns: 32px minmax(0,1fr);
  grid-template-rows: auto auto;
  column-gap: 9px;
  align-items: center;
  border: 1px solid rgba(135,151,181,.16);
  border-radius: 13px;
  color: #e4e8f1;
  background: rgba(255,255,255,.025);
  cursor: pointer;
  font: inherit;
  text-align: left;
}
.today-novi-panel__actions button:hover { border-color: rgba(126,119,255,.4); background: rgba(112,106,255,.07); }
.today-novi-panel__actions button > span { width: 32px; height: 32px; grid-row: 1 / 3; display: grid; place-items: center; border-radius: 10px; color: #a99fff; background: rgba(112,106,255,.1); }
.today-novi-panel__actions strong { font-size: .62rem; font-weight: 650; }
.today-novi-panel__actions small { color: #8793a6; font-size: .5rem; }

.today-novi-panel__settings {
  padding: 10px 12px 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  border-top: 1px solid rgba(126,143,178,.14);
}
.today-novi-panel__settings button {
  min-height: 30px;
  padding: 6px 8px;
  border: 1px solid rgba(135,151,181,.16);
  border-radius: 9px;
  color: #96a2b4;
  background: rgba(255,255,255,.02);
  cursor: pointer;
  font: inherit;
  font-size: .48rem;
}
.today-novi-panel__settings button:last-child { margin-left: auto; color: #ef9a9a; }

@media (max-width:699px) {
  .today-novi-assistant {
    right: 8px;
    bottom: calc(var(--nav-height) + 8px);
  }
  .today-novi-launcher {
    min-width: 50px;
    width: 50px;
    height: 50px;
    padding: 5px;
    border-radius: 15px;
  }
  .today-novi-launcher > span:nth-child(2) { display: none; }
  .today-novi-launcher__mark { width: 38px; height: 38px; }
  .today-novi-suggestion {
    width: min(290px,calc(100vw - 24px));
    right: 0;
    bottom: 56px;
    padding: 12px;
    border-radius: 15px;
  }
  .today-novi-suggestion > p { font-size: .58rem; }
  .today-novi-suggestion__title { font-size: .64rem; }
  .today-novi-panel {
    width: auto;
    max-height: calc(100dvh - var(--nav-height) - 24px);
    right: 8px;
    bottom: calc(var(--nav-height) + 8px);
    left: 8px;
    border-radius: 20px;
  }
  .today-novi-panel__header { min-height: 66px; padding: 8px 10px; grid-template-columns: 47px minmax(0,1fr) 32px; }
  .today-novi-panel__portrait { width: 47px; height: 47px; border-radius: 15px; }
  .today-novi-panel__portrait .novi-character-art { width: 56px; height: 76px; }
  .today-novi-panel__body { padding: 12px; }
  .today-novi-panel__body > h2 { font-size: .76rem; }
  .today-novi-panel__body > p { margin-bottom: 11px; font-size: .61rem; }
  .today-novi-explanation { margin-bottom: 9px; padding: 9px; gap: 6px; }
  .today-novi-explanation > header strong { font-size: .52rem; }
  .today-novi-explanation > p { font-size: .49rem; }
  .today-novi-explanation > ol li { font-size: .46rem; }
  .today-novi-panel__actions { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
  .today-novi-panel__actions button {
    min-height: 88px;
    padding: 8px 5px;
    grid-template-columns: 1fr;
    grid-template-rows: 30px auto;
    place-items: center;
    align-content: center;
    gap: 5px;
    text-align: center;
  }
  .today-novi-panel__actions button > span { width: 30px; height: 30px; grid-row: 1; }
  .today-novi-panel__actions strong { font-size: .51rem; }
  .today-novi-panel__actions small { display: none; }
  .today-novi-panel__settings { padding: 8px 10px 10px; }
  .today-novi-panel__settings button { min-height: 28px; padding: 5px 7px; font-size: .43rem; }
}

@media (prefers-reduced-motion:reduce) {
  .today-novi-launcher,
  .today-novi-suggestion,
  .today-novi-backdrop,
  .today-novi-panel { transition: none !important; }
}

/* Novi contestuale: Nova AI e Nova Notes */
.section-novi-assistant {
  --section-novi-accent: #8175ff;
  position: fixed;
  z-index: 95;
  right: 18px;
  bottom: 18px;
  display: grid;
  justify-items: end;
  font-family: var(--font-sans);
}
.section-novi-assistant[data-section-novi-placement="left"] {
  right: auto;
  left: 18px;
  justify-items: start;
}
.section-novi-assistant[data-novi-tone="success"] { --section-novi-accent: #55d7a0; }
.section-novi-assistant[data-novi-tone="notice"] { --section-novi-accent: #efc96c; }
.section-novi-assistant[data-novi-tone="urgent"] { --section-novi-accent: #ff806f; }
.section-novi-launcher {
  min-width: 96px;
  height: 58px;
  padding: 4px 13px 4px 5px;
  display: grid;
  grid-template-columns: 47px auto 7px;
  align-items: center;
  gap: 8px;
  border: 1px solid color-mix(in srgb,var(--section-novi-accent) 44%,rgba(128,147,181,.25));
  border-radius: 19px;
  color: #f6f7fb;
  background:
    radial-gradient(circle at 18% 25%,color-mix(in srgb,var(--section-novi-accent) 18%,transparent),transparent 44%),
    rgba(5,12,25,.94);
  box-shadow: 0 18px 50px rgba(0,0,0,.38),0 0 24px color-mix(in srgb,var(--section-novi-accent) 12%,transparent);
  backdrop-filter: blur(18px);
  cursor: pointer;
  font: inherit;
  font-size: .66rem;
  font-weight: 720;
  transition: border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.section-novi-launcher:hover,
.section-novi-launcher:focus-visible {
  border-color: color-mix(in srgb,var(--section-novi-accent) 78%,white 12%);
  box-shadow: 0 20px 55px rgba(0,0,0,.44),0 0 30px color-mix(in srgb,var(--section-novi-accent) 22%,transparent);
  transform: translateY(-2px);
}
.section-novi-launcher:focus-visible { outline: 2px solid color-mix(in srgb,var(--section-novi-accent) 65%,white); outline-offset: 3px; }
.section-novi-launcher > i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--section-novi-accent);
  box-shadow: 0 0 12px var(--section-novi-accent);
}
.section-novi-launcher__portrait {
  width: 47px;
  height: 48px;
  position: relative;
  display: block;
  overflow: hidden;
  border: 1px solid color-mix(in srgb,var(--section-novi-accent) 58%,rgba(255,255,255,.12));
  border-radius: 15px;
  background: linear-gradient(145deg,rgba(18,30,53,.96),rgba(4,10,22,.98));
}
.section-novi-launcher__portrait .novi-character-art {
  width: 61px;
  height: 82px;
  left: -7px;
  aspect-ratio: auto;
}
.section-novi-launcher__portrait .novi-character-art__image {
  object-fit: cover;
  object-position: center top;
}
.section-novi-launcher__portrait .novi-character-art__fallback { width: 40px; top: 3px; }
.section-novi-launcher:hover .novi-character-art.is-ready .novi-character-art__eye-glow,
.section-novi-assistant.is-open .novi-character-art.is-ready .novi-character-art__eye-glow { opacity: .5; }
.section-novi-launcher:hover .novi-character-art.is-ready .novi-character-art__core-glow,
.section-novi-assistant.is-open .novi-character-art.is-ready .novi-character-art__core-glow { opacity: .56; }
.section-novi-bubble {
  width: min(330px,calc(100vw - 32px));
  max-height: calc(100dvh - 100px);
  margin-bottom: 10px;
  padding: 17px;
  position: absolute;
  right: 0;
  bottom: 58px;
  display: grid;
  gap: 7px;
  border: 1px solid color-mix(in srgb,var(--section-novi-accent) 36%,rgba(128,147,181,.25));
  border-radius: 19px;
  color: #eef2f8;
  background:
    radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--section-novi-accent) 12%,transparent),transparent 46%),
    rgba(5,12,25,.97);
  box-shadow: 0 24px 70px rgba(0,0,0,.5);
  backdrop-filter: blur(24px);
  overflow: auto;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px) scale(.985);
  transform-origin: right bottom;
  transition: opacity .18s ease,visibility .18s ease,transform .18s ease;
}
[data-section-novi-placement="left"] .section-novi-bubble {
  right: auto;
  left: 0;
  transform-origin: left bottom;
}
.section-novi-assistant.is-open .section-novi-bubble {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}
.section-novi-bubble > button[data-section-novi-close] {
  width: 29px;
  height: 29px;
  padding: 0;
  position: absolute;
  top: 10px;
  right: 10px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(145,160,188,.2);
  border-radius: 10px;
  color: #aab5c7;
  background: rgba(255,255,255,.025);
  cursor: pointer;
  font-size: .9rem;
}
.section-novi-bubble > span {
  padding-right: 31px;
  color: var(--section-novi-accent);
  font-size: .49rem;
  font-weight: 760;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.section-novi-bubble > strong {
  padding-right: 24px;
  font-size: .81rem;
  font-weight: 690;
  line-height: 1.24;
}
.section-novi-bubble > p {
  margin: 0 0 4px;
  color: #b9c3d3;
  font-size: .59rem;
  line-height: 1.52;
}
.section-novi-reason {
  padding: 8px 9px;
  border: 1px solid rgba(126,119,255,.18);
  border-radius: 11px;
  background: rgba(112,106,255,.045);
}
.section-novi-reason > summary {
  color: #c7c1ff;
  cursor: pointer;
  font-size: .5rem;
  font-weight: 670;
  list-style-position: inside;
}
.section-novi-reason[open] > summary { margin-bottom: 7px; }
.section-novi-reason > p { margin: 0 0 7px; color: #aeb8c8; font-size: .49rem; line-height: 1.46; }
.section-novi-reason > div { display: flex; flex-wrap: wrap; gap: 4px; }
.section-novi-reason > div span {
  padding: 3px 6px;
  border-radius: 999px;
  color: #cbd2df;
  background: rgba(255,255,255,.04);
  font-size: .42rem;
}
.section-novi-reason > ol { margin: 7px 0 0; padding-left: 18px; color: #d9dee8; }
.section-novi-reason > ol li { padding: 2px 0; font-size: .46rem; line-height: 1.4; }
.section-novi-bubble > div { display: flex; flex-wrap: wrap; gap: 7px; }
.section-novi-bubble > div > button {
  min-height: 34px;
  padding: 7px 10px;
  border: 1px solid rgba(139,154,184,.2);
  border-radius: 10px;
  color: #aab5c7;
  background: rgba(255,255,255,.025);
  cursor: pointer;
  font: inherit;
  font-size: .51rem;
  font-weight: 640;
}
.section-novi-bubble > div > button[data-section-novi-action] {
  border-color: color-mix(in srgb,var(--section-novi-accent) 55%,transparent);
  color: #f8f9fc;
  background: color-mix(in srgb,var(--section-novi-accent) 17%,rgba(255,255,255,.02));
}
.section-novi-bubble > div > button:hover { border-color: color-mix(in srgb,var(--section-novi-accent) 62%,rgba(255,255,255,.12)); }

@media (max-width:699px) {
  .section-novi-assistant {
    right: 9px;
    bottom: calc(var(--nav-height) + 8px);
  }
  .notes-writing-mode .section-novi-assistant { bottom: 10px; }
  .section-novi-assistant[data-section-novi-placement="left"] { right: auto; left: 9px; }
  .section-novi-launcher {
    min-width: 50px;
    width: 50px;
    height: 50px;
    padding: 4px;
    grid-template-columns: 1fr;
    border-radius: 15px;
  }
  .section-novi-launcher > span:nth-child(2),
  .section-novi-launcher > i { display: none; }
  .section-novi-launcher__portrait { width: 40px; height: 40px; border-radius: 12px; }
  .section-novi-launcher__portrait .novi-character-art { width: 52px; height: 70px; left: -6px; }
  .section-novi-bubble {
    width: min(300px,calc(100vw - 20px));
    bottom: 50px;
    margin-bottom: 8px;
    padding: 14px;
    border-radius: 16px;
  }
  .section-novi-bubble > strong { font-size: .71rem; }
  .section-novi-bubble > p { font-size: .55rem; }
}

@media (prefers-reduced-motion:reduce) {
  .section-novi-launcher,
  .section-novi-bubble { transition: none !important; }
}

/* Nova AI workspace v3 — deep-space shell, bright study paper and visible reasoning path. */
.ai-studio-view--overlay {
  background:
    radial-gradient(circle at 53% -8%,rgba(100,78,240,.22),transparent 31%),
    radial-gradient(circle at 92% 46%,rgba(19,156,174,.1),transparent 25%),
    radial-gradient(circle at 16% 92%,rgba(106,66,204,.1),transparent 28%),
    linear-gradient(145deg,#050a15,#020610 72%);
}
.ai-studio-view--overlay::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .34;
  background-image:
    radial-gradient(circle,rgba(151,137,255,.52) 0 1px,transparent 1.5px),
    radial-gradient(circle,rgba(82,216,223,.4) 0 1px,transparent 1.5px);
  background-position: 0 0,34px 22px;
  background-size: 76px 76px,109px 109px;
  mask-image: linear-gradient(to bottom,rgba(0,0,0,.72),transparent 88%);
}
.ai-studio-view--overlay > * { position: relative; z-index: 1; }
.ai-studio-header {
  border-bottom-color: rgba(129,139,181,.16);
  background:
    radial-gradient(circle at 16% 0,rgba(119,105,246,.1),transparent 36%),
    rgba(3,8,18,.86);
}
.ai-studio-brand__mark {
  width: 46px;
  height: 46px;
  position: relative;
  overflow: visible;
  border: 0;
  border-radius: 0;
  color: #f4f1ff;
  background: transparent;
  box-shadow: none;
}
.ai-studio-brand__mark .nova-ai-emblem {
  width: 100%;
  height: 100%;
  overflow: visible;
  filter: drop-shadow(0 8px 15px rgba(76,58,205,.34));
  transition: transform .24s var(--nk-ease-standard),filter .24s ease;
}
.ai-studio-brand:hover .nova-ai-emblem {
  transform: translateY(-1px) rotate(-2deg);
  filter: drop-shadow(0 10px 18px rgba(77,65,226,.46));
}
.nova-ai-emblem__core {
  fill: #0b1630;
  stroke: #776dff;
  stroke-width: 1.8;
}
.nova-ai-emblem__orbit,
.nova-ai-emblem__ring {
  stroke: #55d4df;
  stroke-width: 1.35;
}
.nova-ai-emblem__orbit { opacity: .72; }
.nova-ai-emblem__book {
  fill: rgba(127,113,255,.22);
  stroke: #f4f1ff;
  stroke-width: 1.45;
  stroke-linejoin: round;
}
.nova-ai-emblem__book-seam,
.nova-ai-emblem__fold,
.nova-ai-emblem__node-link {
  stroke: #8fe8ed;
  stroke-width: 1.25;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.nova-ai-emblem__node { fill: #e492ef; }
.nova-ai-emblem__star { fill: #f8edff; filter: drop-shadow(0 0 4px #b172ff); }
.nova-ai-emblem--studio .nova-ai-emblem__spark {
  transform-box:fill-box;
  transform-origin:center;
  filter:drop-shadow(0 0 5px rgba(88,156,255,.4));
}
.nova-ai-emblem--studio .nova-ai-emblem__spark--main { fill:#4b83df; }
.nova-ai-emblem--studio .nova-ai-emblem__spark--cyan { fill:#2cd4d0; }
.nova-ai-emblem--studio .nova-ai-emblem__spark--violet { fill:#8f6fff; }
.nova-ai-emblem--studio .nova-ai-emblem__spark--mint { fill:#55dcc4; }
.nova-ai-emblem--studio .nova-ai-emblem__node { fill:#9b8cff; }
.nk-ai-cluster__main { fill:#4b83df !important; }
.nk-ai-cluster__cyan { fill:#2cd4d0 !important; }
.nk-ai-cluster__violet { fill:#8f6fff !important; }
.nk-ai-cluster__node { fill:#55dcc4 !important; }
.nova-ai-emblem__orbit--access { opacity:.62; stroke:#53cedb; stroke-width:1.35; }
.nova-ai-emblem__access-node { fill:#e68ce6; filter:drop-shadow(0 0 5px rgba(230,140,230,.75)); }
.nova-ai-emblem--access .nova-ai-emblem__spark--main { fill:#4b83df; filter:drop-shadow(0 0 5px rgba(75,131,223,.5)); }
.nova-ai-emblem--access .nova-ai-emblem__spark--cyan { fill:#2cd4d0; }
.nova-ai-emblem--access .nova-ai-emblem__spark--violet { fill:#9a75ff; }
.nova-ai-emblem--access .nova-ai-emblem__spark--mint { fill:#55dcc4; }
.ai-plan-lock__visual:hover .nova-ai-emblem--access { transform:scale(1.025); }
.ai-mode-tab .nk-icon,
.ai-plan-lock__features .nk-icon,
.ai-result-welcome__actions .nk-icon,
.ai-insights-panel .nk-icon,
.ai-chat-workspace .nk-icon,
.ai-result-shell .nk-icon { display:block; flex:0 0 auto; }
.ai-mode-tab[data-ai-mode="summary"] .nk-icon { stroke-width:1.65; }
.ai-mode-tab[data-ai-mode="explain"] .nk-icon { stroke-width:1.75; }
.ai-mode-tab[data-ai-mode="flashcards"] .nk-icon { stroke-width:1.65; }
.ai-mode-tab[data-ai-mode="quiz"] .nk-icon { stroke-width:1.7; }
.ai-plan-lock__features > span:nth-child(1) b { color:#b9b2ff; background:rgba(102,93,238,.13); }
.ai-plan-lock__features > span:nth-child(2) b { color:#74e0e7; background:rgba(34,173,185,.12); }
.ai-plan-lock__features > span:nth-child(3) b { color:#ed9bd7; background:rgba(205,77,164,.12); }
.ai-plan-lock__features > span:nth-child(4) b { color:#ffd27c; background:rgba(220,145,52,.12); }
@media (prefers-reduced-motion:reduce) {
  .ai-studio-brand__mark .nova-ai-emblem,
  .ai-plan-lock__visual .nova-ai-emblem { transition:none; }
}

/* Iconografia prodotto: cambia soltanto i simboli dei pianeti, non il Nova Orb o le sue animazioni. */
.plan-node__icon {
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  font-size:0 !important;
}
.plan-node__icon::before {
  width:100%;
  height:100%;
  content:"";
  display:block;
  background:currentColor;
  -webkit-mask:var(--planet-symbol) center / contain no-repeat;
  mask:var(--planet-symbol) center / contain no-repeat;
  filter:drop-shadow(0 0 7px currentColor);
}
.plan-node--basic .plan-node__icon {
  --planet-symbol:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 3h9l3 3v15H6zM15 3v4h4M9 11h6M9 15h6M9 19h4' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.plan-node--plus .plan-node__icon {
  --planet-symbol:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 5h10a3 3 0 0 1 3 3v10H10a3 3 0 0 1-3-3zM7 8H6a3 3 0 0 0-3 3v8h11v-1M13.5 9v5M11 11.5h5' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.plan-node--premium .plan-node__icon {
  --planet-symbol:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 8l4 4 4-7 4 7 4-4-2 11H6zM7 16h10M12 5v-2' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.plan-node--full .plan-node__icon {
  --planet-symbol:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3l8 6-3 10H7L4 9zM4 9h16M8 9l4 10 4-10M8 9l4-6 4 6' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.plan-node--notes .plan-node__icon {
  --planet-symbol:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3h11l3 3v15H5zM16 3v4h4M9 11h5M9 15h3M14 18l5-5 2 2-5 5-3 1z' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.plan-node--ai .plan-node__icon {
  width:46px;
  height:46px;
  color:#61d8e1;
  --planet-symbol:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M36 8c1.35 8.5 4.15 11.3 12.65 12.65C40.15 22 37.35 24.8 36 33.3 34.65 24.8 31.85 22 23.35 20.65 31.85 19.3 34.65 16.5 36 8ZM16 7c.6 3.75 1.85 5 5.6 5.6-3.75.6-5 1.85-5.6 5.6-.6-3.75-1.85-5-5.6-5.6C14.15 12 15.4 10.75 16 7Zm31 28c.8 5.15 2.55 6.9 7.7 7.7-5.15.8-6.9 2.55-7.7 7.7-.8-5.15-2.55-6.9-7.7-7.7 5.15-.8 6.9-2.55 7.7-7.7ZM22 28c.9 5.75 2.8 7.65 8.55 8.55C24.8 37.45 22.9 39.35 22 45.1c-.9-5.75-2.8-7.65-8.55-8.55C19.2 35.65 21.1 33.75 22 28Z' fill='black'/%3E%3Ccircle cx='12' cy='47' r='2.2' fill='black'/%3E%3C/svg%3E");
}
.plan-node--ai .plan-node__icon::before {
  background:linear-gradient(135deg,#38ddd2 5%,#4c88df 52%,#ac72ff 94%);
  filter:drop-shadow(0 0 8px rgba(62,218,216,.65));
}
.notes-library-nav__item > span .nk-icon,
.note-preview-card__status .nk-icon,
.note-preview-card__paper i .nk-icon { margin:auto; }
.ai-studio-view .ai-lab::before {
  content: "";
  position: absolute;
  inset: 7px 18% auto;
  height: 72px;
  pointer-events: none;
  background: radial-gradient(ellipse,rgba(106,84,248,.12),transparent 68%);
  filter: blur(18px);
}
.ai-studio-view .ai-runtime-strip--studio {
  border-color: rgba(128,145,181,.14);
  color: #8f9aae;
  background: rgba(3,10,22,.62);
  box-shadow: inset 0 1px rgba(255,255,255,.025);
}
.ai-studio-view .ai-studio-workspace {
  grid-template-columns: minmax(260px,.78fr) minmax(450px,1.68fr) minmax(220px,.7fr);
}
.ai-studio-center {
  height: 100%;
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0,1fr);
  gap: 9px;
}
.ai-studio-center .ai-studio-result { height: auto; }

.ai-reasoning-path {
  min-width: 0;
  margin: 0;
  padding: 7px 12px;
  position: relative;
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(128,139,187,.14);
  border-radius: 15px;
  list-style: none;
  background:
    radial-gradient(circle at 50% 150%,rgba(119,94,255,.18),transparent 59%),
    rgba(5,13,27,.78);
  box-shadow: inset 0 1px rgba(255,255,255,.025),0 13px 34px rgba(0,0,0,.13);
  overflow: hidden;
}
.ai-reasoning-path::before {
  content: "";
  height: 1px;
  position: absolute;
  left: 12%;
  right: 12%;
  top: 50%;
  background: linear-gradient(90deg,rgba(82,216,223,.16),rgba(130,101,255,.5),rgba(226,100,207,.34));
  box-shadow: 0 0 12px rgba(110,91,246,.25);
}
.ai-reasoning-path li {
  min-width: 0;
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 29px minmax(0,1fr);
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 7px;
  color: #dce2ed;
}
.ai-reasoning-path li > span {
  width: 29px;
  height: 29px;
  grid-row: 1 / span 2;
  display: grid;
  place-items: center;
  border: 1px solid rgba(135,116,255,.38);
  border-radius: 50%;
  color: #9e93ff;
  background: #071326;
  box-shadow: 0 0 0 4px rgba(117,96,255,.045),0 0 16px rgba(90,72,225,.14);
  font-size: .46rem;
  font-weight: 800;
}
.ai-reasoning-path strong {
  overflow: hidden;
  font-size: .5rem;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ai-reasoning-path small {
  overflow: hidden;
  color: #7e899d;
  font-size: .41rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ai-studio-view.is-processing .ai-reasoning-path li > span {
  animation: aiReasoningPulse 1.35s ease-in-out infinite;
}
.ai-studio-view.is-processing .ai-reasoning-path li:nth-child(2) > span { animation-delay: .18s; }
.ai-studio-view.is-processing .ai-reasoning-path li:nth-child(3) > span { animation-delay: .36s; }
.ai-studio-view.is-processing .ai-reasoning-path li:nth-child(4) > span { animation-delay: .54s; }
.ai-studio-view.has-analysis .ai-reasoning-path li > span {
  border-color: color-mix(in srgb,var(--ai-mode-accent) 70%,#91f1f4);
  color: #fff;
  background: linear-gradient(145deg,var(--ai-mode-accent),var(--ai-mode-accent-2));
  box-shadow: 0 0 18px color-mix(in srgb,var(--ai-mode-accent) 32%,transparent);
}

.ai-studio-view .ai-source-panel {
  border: 1px solid rgba(123,142,180,.19);
  border-top: 2px solid color-mix(in srgb,var(--ai-mode-accent) 65%,transparent);
  color: #edf1f8;
  background:
    radial-gradient(circle at 2% 0,rgba(116,92,245,.18),transparent 32%),
    linear-gradient(155deg,rgba(10,22,40,.98),rgba(4,12,25,.98) 76%);
  box-shadow: inset 0 1px rgba(255,255,255,.025),0 24px 54px rgba(0,2,9,.27);
}
.ai-source-panel h2 { color: #f5f7fb; }
.ai-source-panel > header span:not(.chip):not(.ai-source-private) { color: #a9a0ff; }
.ai-source-private {
  border-color: rgba(85,213,220,.18);
  color: #7ee4ea;
  background: rgba(82,216,223,.075);
}
.ai-source-panel > label { color: #c5cedc; }
.ai-source-panel .field {
  border-color: rgba(135,153,188,.2);
  color: #edf2f8;
  background: rgba(1,8,19,.58);
  box-shadow: inset 0 1px rgba(255,255,255,.02);
}
.ai-source-panel select.field { color-scheme: dark; }
.ai-source-panel .field:focus {
  border-color: color-mix(in srgb,var(--ai-mode-accent) 70%,#83e7ec);
  box-shadow: 0 0 0 3px color-mix(in srgb,var(--ai-mode-accent) 15%,transparent);
}
.ai-source-panel .field::placeholder { color: #657188; }
.ai-file-drop__icon {
  border-color: rgba(136,116,255,.3);
  color: #b6acff;
  background: rgba(117,95,241,.12);
}
.ai-file-drop strong { color: #edf1f8; }
.ai-file-drop small,
.ai-source-panel .ai-text-meta,
.ai-source-panel .field-hint { color: #7f8ba0; }
.ai-source-panel .check-row {
  border-color: rgba(126,145,180,.16);
  color: #aeb9ca;
  background: rgba(255,255,255,.025);
}
.ai-source-panel .button--ghost {
  border-color: rgba(136,153,187,.18);
  color: #9eabbd;
  background: rgba(255,255,255,.025);
}
.ai-prompt-suggestions button {
  color: color-mix(in srgb,var(--ai-mode-accent) 52%,#dfe4ee);
  background: color-mix(in srgb,var(--ai-mode-accent) 11%,rgba(255,255,255,.02));
}
.ai-prompt-suggestions button:hover {
  color: #fff;
  background: color-mix(in srgb,var(--ai-mode-accent) 22%,rgba(255,255,255,.03));
}

.ai-studio-view .ai-studio-result {
  border: 1px solid rgba(255,255,255,.82);
  border-top: 2px solid color-mix(in srgb,var(--ai-mode-accent) 62%,#fff);
  background:
    radial-gradient(circle at 92% 2%,color-mix(in srgb,var(--ai-mode-accent) 9%,transparent),transparent 26%),
    radial-gradient(circle at 7% 100%,rgba(82,216,223,.075),transparent 29%),
    linear-gradient(145deg,#fff,#f5f6fa);
  box-shadow: 0 26px 60px rgba(0,2,10,.28),inset 0 1px #fff;
}
.ai-studio-result > header {
  padding-bottom: 11px;
  border-bottom: 1px solid rgba(17,23,37,.08);
}
.ai-studio-result h2 { color: #121826; }
.ai-result-header-actions > button {
  border-color: rgba(100,91,219,.15);
  color: #6259d6;
  background: rgba(239,237,255,.72);
}
.ai-studio-view .ai-result-placeholder--welcome {
  border-color: rgba(104,93,225,.13);
  background:
    radial-gradient(circle at 88% 12%,rgba(209,99,219,.08),transparent 28%),
    linear-gradient(145deg,rgba(255,255,255,.9),rgba(244,245,253,.8));
}

.ai-insights-panel {
  border: 1px solid rgba(120,140,177,.18);
  border-top: 2px solid rgba(82,216,223,.58);
  color: #eef2f8;
  background:
    radial-gradient(circle at 100% 0,rgba(82,216,223,.13),transparent 29%),
    radial-gradient(circle at 10% 100%,rgba(121,94,244,.1),transparent 30%),
    linear-gradient(155deg,rgba(10,21,38,.98),rgba(4,12,24,.98));
  box-shadow: inset 0 1px rgba(255,255,255,.025),0 24px 54px rgba(0,2,9,.27);
}
.ai-insights-start > header strong,
.ai-insights-section > header strong { color: #eef2f8; }
.ai-insights-start > header small,
.ai-insights-section > header small,
.ai-insights-empty p,
.ai-insights-no-concepts { color: #8390a5; }
.ai-insights-start > ol {
  border-color: rgba(130,148,183,.14);
  background: rgba(255,255,255,.025);
}
.ai-insights-start > ol li + li,
.ai-insights-section + .ai-insights-section { border-color: rgba(131,150,184,.12); }
.ai-insights-start > ol b,
.ai-insights-section > header > span {
  color: #b4a9ff;
  background: rgba(113,94,231,.12);
}
.ai-insights-start > ol strong,
.ai-insights-start > section button strong,
.ai-insights-actions > button strong { color: #e6ebf3; }
.ai-insights-start > ol small,
.ai-insights-start > section button small,
.ai-insights-actions > button small { color: #78869b; }
.ai-insights-start > section button,
.ai-insights-actions > button {
  border-color: rgba(127,146,181,.14);
  color: #eef2f8;
  background: rgba(255,255,255,.027);
}
.ai-insights-start > section button:hover,
.ai-insights-actions > button:hover {
  border-color: color-mix(in srgb,var(--ai-mode-accent) 44%,transparent);
  background: color-mix(in srgb,var(--ai-mode-accent) 12%,rgba(255,255,255,.03));
}
.ai-insights-start > section button > i,
.ai-insights-actions > button > span:first-child {
  color: #b4a9ff;
  background: rgba(113,94,231,.12);
}
.ai-insights-start > p {
  border-color: rgba(67,207,167,.14);
  background: rgba(64,202,164,.045);
}
.ai-insights-start > p strong { color: #6edbb9; }
.ai-insights-start > p small { color: #728f88; }
.ai-insights-source__metrics > span {
  border-color: rgba(128,146,180,.13);
  background: rgba(255,255,255,.028);
}
.ai-insights-source__metrics strong { color: #edf1f7; }
.ai-insights-source__metrics small { color: #748197; }
.ai-insights-source > button {
  border-color: rgba(129,112,245,.22);
  color: #b6acff;
  background: rgba(114,94,231,.09);
}
.ai-insights-source > button:hover {
  border-color: rgba(142,126,255,.42);
  background: rgba(114,94,231,.15);
}
.ai-insights-no-concepts { border-color: rgba(131,149,182,.14); }
.ai-concept-card {
  border-color: rgba(129,147,181,.14);
  background: rgba(255,255,255,.025);
}
.ai-concept-card strong { color: #e9edf5; }
.ai-concept-card small { color: #758399; }

@keyframes aiReasoningPulse {
  0%,100% { transform: scale(1); border-color: rgba(135,116,255,.38); color: #9e93ff; }
  50% { transform: scale(1.08); border-color: color-mix(in srgb,var(--ai-mode-accent) 82%,#8cf3f5); color: #fff; box-shadow: 0 0 22px color-mix(in srgb,var(--ai-mode-accent) 42%,transparent); }
}

@media (max-width:1199px) {
  .ai-studio-view .ai-studio-workspace {
    grid-template-columns: minmax(250px,.75fr) minmax(0,1.4fr);
  }
  .ai-studio-view.is-source-collapsed .ai-studio-workspace { grid-template-columns: minmax(0,1fr); }
  .ai-insights-panel {
    grid-column: 1 / -1;
    height: auto;
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  }
  .ai-studio-center { min-height: 560px; }
  .ai-studio-view.is-source-collapsed .ai-studio-center { min-height: 0; }
}
@media (max-width:799px) {
  .ai-studio-view .ai-studio-workspace,
  .ai-studio-view.is-source-collapsed .ai-studio-workspace { grid-template-columns: 1fr; }
  .ai-studio-center { height: auto; min-height: 0; }
  .ai-studio-center .ai-studio-result { height: auto; }
  .ai-insights-panel { grid-column: auto; grid-template-columns: 1fr; }
  .ai-reasoning-path { padding: 7px; gap: 5px; }
  .ai-reasoning-path li { grid-template-columns: 27px minmax(0,1fr); column-gap: 5px; }
  .ai-reasoning-path li > span { width: 27px; height: 27px; }
  .ai-reasoning-path small { display: none; }
}
@media (max-width:599px) {
  .ai-reasoning-path {
    border-radius: 12px;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .ai-reasoning-path::-webkit-scrollbar { display: none; }
  .ai-reasoning-path::before { left: 11%; right: 11%; }
  .ai-reasoning-path li {
    min-width: 0;
    display: grid;
    grid-template-columns: 1fr;
    place-items: center;
    gap: 3px;
    text-align: center;
  }
  .ai-reasoning-path li > span { grid-row: auto; }
  .ai-reasoning-path strong { width: 100%; font-size: .42rem; }
}
@media (min-width:1024px) {
  .app-shell[data-route="ai"] .app-view {
    width: 100%;
    max-width: none;
    height: calc(100dvh - var(--header-height));
    min-height: 0;
    padding: 10px 14px 14px;
    overflow: hidden;
  }
  .app-shell[data-route="ai"] .ai-studio-view {
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid rgba(126,143,178,.15);
    border-radius: 21px;
    background: transparent;
  }
}
@media (max-width:699px) {
  .app-shell[data-route="ai"] .ai-studio-view:not(.is-source-collapsed) .ai-studio-center { display: none; }
  .app-shell[data-route="ai"] .ai-studio-view.is-source-collapsed .ai-studio-center {
    height: 100%;
    min-height: 0;
    display: grid;
    grid-template-rows: auto minmax(0,1fr);
  }
  .app-shell[data-route="ai"] .ai-studio-center .ai-studio-result {
    height: auto;
    min-height: 0;
  }
  .app-shell[data-route="ai"] .ai-result--studio { overflow-x: hidden; overflow-y: auto; }
  .app-shell[data-route="ai"] .ai-reasoning-path {
    min-height: 46px;
    padding: 5px;
    border-radius: 10px;
  }
  .app-shell[data-route="ai"] .ai-reasoning-path li > span {
    width: 24px;
    height: 24px;
    font-size: .4rem;
  }
  .app-shell[data-route="ai"] .ai-reasoning-path strong { font-size: .39rem; }
}
@media (prefers-reduced-motion:reduce) {
  .ai-studio-view.is-processing .ai-reasoning-path li > span { animation: none !important; }
}

/* Nova AI: comprensione semantica locale facoltativa */
.ai-runtime-strip--studio [data-ai-semantic-settings] {
  min-height: 22px;
  margin: -3px -5px -3px auto;
  padding: 3px 8px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid rgba(126,111,245,.25);
  border-radius: 8px;
  color: #bdb6ff;
  background: rgba(112,91,232,.1);
  font: inherit;
  cursor: pointer;
}
.ai-runtime-strip--studio [data-ai-semantic-settings] i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #8793a8;
  box-shadow: 0 0 0 3px rgba(135,147,168,.1);
}
.ai-runtime-strip--studio [data-ai-semantic-settings] b { font-weight: 700; }
.ai-runtime-strip--studio [data-ai-semantic-settings][data-state="ready"] i {
  background: #5be0b0;
  box-shadow: 0 0 0 3px rgba(91,224,176,.12),0 0 12px rgba(91,224,176,.35);
}
.ai-runtime-strip--studio [data-ai-semantic-settings][data-state="loading"] i {
  background: #a883ff;
  animation: aiSemanticPulse 1.25s ease-in-out infinite;
}
.ai-runtime-strip--studio [data-ai-semantic-settings]:hover {
  border-color: rgba(149,132,255,.46);
  background: rgba(112,91,232,.17);
}
.ai-semantic-compact {
  width: 38px;
  min-width: 38px;
  padding: 0 !important;
  display: none;
  place-items: center;
  color: #9e94ff;
}
.ai-semantic-compact[data-state="ready"] {
  color: #65e6c1;
  border-color: rgba(90,220,178,.35);
  background: rgba(47,171,137,.1);
}
.ai-semantic-dialog {
  display: grid;
  gap: 14px;
}
.ai-semantic-dialog__model {
  padding: 14px;
  display: grid;
  grid-template-columns: 44px minmax(0,1fr) auto;
  align-items: center;
  gap: 12px;
  border: 1px solid rgba(138,118,255,.25);
  border-radius: 16px;
  background: linear-gradient(135deg,rgba(113,88,231,.13),rgba(33,198,207,.06));
}
.ai-semantic-dialog__model > span {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  color: #b5a8ff;
  background: rgba(116,90,235,.16);
}
.ai-semantic-dialog__model div { min-width: 0; display: grid; gap: 3px; }
.ai-semantic-dialog__model strong { color: var(--text-strong,#f7f8fb); font-size: .92rem; }
.ai-semantic-dialog__model small { color: var(--text-muted,#9aa5b8); line-height: 1.4; }
.ai-semantic-dialog__model > b {
  padding: 6px 9px;
  border-radius: 999px;
  color: #cbc3ff;
  background: rgba(116,90,235,.12);
  font-size: .7rem;
  white-space: nowrap;
}
.ai-semantic-dialog ul {
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 8px;
  list-style: none;
}
.ai-semantic-dialog li {
  padding: 9px 10px 9px 30px;
  position: relative;
  border: 1px solid rgba(130,148,181,.14);
  border-radius: 12px;
  color: var(--text-muted,#a5afc0);
  background: rgba(255,255,255,.025);
  font-size: .76rem;
  line-height: 1.4;
}
.ai-semantic-dialog li::before {
  content: "✓";
  position: absolute;
  left: 10px;
  color: #57dcae;
  font-weight: 800;
}
.ai-semantic-dialog__compatibility {
  margin: 0;
  padding: 10px 12px;
  border-radius: 12px;
  font-size: .76rem;
  line-height: 1.45;
}
.ai-semantic-dialog__compatibility.is-ready {
  border: 1px solid rgba(84,218,170,.22);
  color: #a7e9d0;
  background: rgba(44,165,128,.08);
}
.ai-semantic-dialog__compatibility.is-blocked {
  border: 1px solid rgba(244,157,107,.24);
  color: #f0b796;
  background: rgba(198,98,50,.08);
}
.ai-semantic-dialog__progress { display: grid; gap: 7px; }
.ai-semantic-dialog__progress[hidden] { display: none; }
.ai-semantic-dialog__progress progress {
  width: 100%;
  height: 7px;
  appearance: none;
  overflow: hidden;
  border: 0;
  border-radius: 99px;
  background: rgba(129,145,177,.15);
}
.ai-semantic-dialog__progress progress::-webkit-progress-bar {
  border-radius: inherit;
  background: rgba(129,145,177,.15);
}
.ai-semantic-dialog__progress progress::-webkit-progress-value {
  border-radius: inherit;
  background: linear-gradient(90deg,#6555ef,#b96ae8,#47d9d5);
}
.ai-semantic-dialog__progress progress::-moz-progress-bar {
  border-radius: inherit;
  background: linear-gradient(90deg,#6555ef,#b96ae8,#47d9d5);
}
.ai-semantic-dialog__progress small,
.ai-semantic-dialog__status { margin: 0; color: var(--text-muted,#98a5b9); font-size: .72rem; }

@keyframes aiSemanticPulse {
  0%,100% { opacity: .55; transform: scale(.85); }
  50% { opacity: 1; transform: scale(1.12); }
}

@media (max-width:699px) {
  .app-shell[data-route="ai"] .ai-semantic-compact { display: grid; }
  .ai-semantic-dialog__model { grid-template-columns: 38px minmax(0,1fr); }
  .ai-semantic-dialog__model > span { width: 38px; height: 38px; }
  .ai-semantic-dialog__model > b { grid-column: 2; justify-self: start; }
  .ai-semantic-dialog ul { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion:reduce) {
  .ai-runtime-strip--studio [data-ai-semantic-settings][data-state="loading"] i { animation: none; }
}
/* Piano Studio AI */
.ai-study-plan-workspace {
  min-height: 0;
  overflow: auto;
  padding: 18px;
  background:
    radial-gradient(circle at 18% 0%, rgba(75, 210, 227, .08), transparent 28rem),
    radial-gradient(circle at 82% 0%, rgba(133, 86, 255, .12), transparent 32rem),
    #070d18;
}

.ai-study-plan-shell {
  width: min(1720px, 100%);
  margin: 0 auto;
  color: #eef2fb;
}

.ai-study-plan-header,
.ai-study-plan-header__identity,
.ai-study-plan-header__actions,
.ai-study-structure > header,
.ai-study-preview > header,
.ai-study-day > header,
.ai-study-apply,
.ai-study-confirm,
.ai-study-chat > header {
  display: flex;
  align-items: center;
}

.ai-study-plan-header {
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 16px;
  padding: 18px 20px;
  border: 1px solid rgba(143, 159, 193, .2);
  border-radius: 22px;
  background: linear-gradient(125deg, rgba(18, 29, 49, .96), rgba(16, 20, 39, .94));
}

.ai-study-plan-header__identity {
  min-width: 0;
  gap: 14px;
}

.ai-study-plan-header__identity > span {
  display: grid;
  flex: 0 0 50px;
  width: 50px;
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid rgba(122, 103, 255, .58);
  border-radius: 16px;
  color: #a989ff;
  background: linear-gradient(145deg, rgba(104, 72, 255, .22), rgba(59, 218, 224, .1));
  box-shadow: 0 12px 34px rgba(79, 54, 210, .2);
}

.ai-study-plan-header small,
.ai-study-setup header span,
.ai-study-structure > header span,
.ai-study-preview > header span,
.ai-study-chat header small {
  color: #ae8eff;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.ai-study-plan-header h2,
.ai-study-setup h3,
.ai-study-structure h3,
.ai-study-preview h3,
.ai-study-chat h3 {
  margin: 3px 0 0;
}

.ai-study-plan-header h2 { font-size: clamp(1.2rem, 2vw, 1.62rem); }
.ai-study-plan-header p { margin: 4px 0 0; color: #9ba8bd; font-size: .82rem; }
.ai-study-plan-header__actions { flex: 0 0 auto; gap: 10px; }

.ai-study-plan-tier {
  padding: 8px 12px;
  border: 1px solid rgba(82, 215, 220, .32);
  border-radius: 999px;
  color: #71e5e8;
  background: rgba(34, 172, 183, .09);
  font-size: .72rem;
  font-weight: 750;
}

.ai-study-plan-grid {
  display: grid;
  grid-template-columns: minmax(270px, .72fr) minmax(320px, .84fr) minmax(440px, 1.35fr);
  gap: 14px;
  align-items: stretch;
}

.ai-study-setup,
.ai-study-structure,
.ai-study-preview,
.ai-study-chat {
  min-width: 0;
  border: 1px solid rgba(143, 159, 193, .2);
  border-radius: 22px;
  background: rgba(17, 24, 39, .95);
  box-shadow: 0 18px 54px rgba(0, 0, 0, .18);
}

.ai-study-setup {
  display: grid;
  align-content: start;
  gap: 11px;
  padding: 17px;
}

.ai-study-setup label,
.ai-study-weekdays {
  display: grid;
  gap: 5px;
  margin: 0;
  color: #c8d1e0;
  font-size: .72rem;
  font-weight: 700;
}

.ai-study-setup .field {
  min-height: 42px;
  border-color: rgba(143, 159, 193, .2);
  background: #0a1220;
  color: #f4f7fd;
  font-size: .78rem;
}

.ai-study-setup textarea.field { min-height: 118px; resize: vertical; line-height: 1.55; }
.ai-study-setup label > small { justify-self: end; color: #78869d; font-weight: 500; }

.ai-study-file {
  grid-template-columns: auto 1fr !important;
  align-items: center;
  position: relative;
  padding: 12px;
  border: 1px dashed rgba(122, 103, 255, .55);
  border-radius: 14px;
  background: rgba(80, 62, 174, .08);
  cursor: pointer;
}

.ai-study-file > span:first-child { color: #a98aff; }
.ai-study-file strong,
.ai-study-file small { display: block; }
.ai-study-file small { margin-top: 2px; color: #7f8ba0; font-size: .66rem; }
.ai-study-file input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.ai-study-file-status,
.ai-study-form-status { min-height: 16px; margin: -4px 0 0; color: #8492a8; font-size: .66rem; line-height: 1.4; }
.ai-study-form-status { color: #8edee4; }

.ai-study-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ai-study-form-row--three { grid-template-columns: .9fr .75fr .9fr; }

.ai-study-weekdays {
  grid-template-columns: repeat(7, 1fr);
  padding: 0;
  border: 0;
}

.ai-study-weekdays legend { grid-column: 1 / -1; margin-bottom: 5px; }
.ai-study-weekdays label { display: block; }
.ai-study-weekdays input { position: absolute; opacity: 0; pointer-events: none; }
.ai-study-weekdays span {
  display: grid;
  min-height: 34px;
  place-items: center;
  border: 1px solid rgba(143, 159, 193, .17);
  border-radius: 9px;
  background: #0a1220;
  color: #8490a5;
  cursor: pointer;
}

.ai-study-weekdays input:checked + span {
  border-color: rgba(123, 99, 255, .72);
  color: #fff;
  background: linear-gradient(145deg, #6250dc, #854fe6);
}

.ai-study-generate { justify-content: center; gap: 8px; min-height: 44px; margin-top: 2px; }

.ai-study-structure,
.ai-study-preview {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  min-height: 610px;
  overflow: hidden;
}

.ai-study-structure > header,
.ai-study-preview > header {
  justify-content: space-between;
  gap: 12px;
  padding: 16px 18px;
  border-bottom: 1px solid rgba(143, 159, 193, .16);
}

.ai-study-structure > header > small,
.ai-study-preview > header > small { color: #7f8ba0; font-size: .66rem; }
.ai-study-section-list,
.ai-study-preview-body { min-height: 0; overflow: auto; padding: 13px; }

.ai-study-empty {
  display: grid;
  min-height: 250px;
  place-content: center;
  justify-items: center;
  padding: 28px;
  text-align: center;
  color: #7e899d;
}

.ai-study-empty > span {
  display: grid;
  width: 58px;
  aspect-ratio: 1;
  place-items: center;
  margin-bottom: 13px;
  border-radius: 18px;
  color: #9e7cff;
  background: rgba(119, 88, 240, .13);
}

.ai-study-empty strong { color: #dce4f1; }
.ai-study-empty p { max-width: 300px; margin: 7px 0 0; font-size: .75rem; line-height: 1.55; }

.ai-study-section {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 9px;
  align-items: start;
  padding: 12px 0;
  border-bottom: 1px solid rgba(143, 159, 193, .12);
}

.ai-study-section:last-child { border-bottom: 0; }
.ai-study-section.is-disabled { opacity: .45; }
.ai-study-section__toggle { display: block; cursor: pointer; }
.ai-study-section__toggle input { position: absolute; opacity: 0; }
.ai-study-section__toggle span {
  display: grid;
  width: 32px;
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid rgba(143, 159, 193, .22);
  border-radius: 10px;
  color: #7f8ca2;
  font-size: .66rem;
}
.ai-study-section__toggle input:checked + span { border-color: #7661ef; color: #fff; background: #6550df; }

.ai-study-section__body input {
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  color: #edf2fa;
  font: inherit;
  font-size: .8rem;
  font-weight: 750;
}
.ai-study-section__body input:focus { box-shadow: 0 1px 0 #8768ff; }
.ai-study-section__body p { margin: 5px 0; color: #909cb0; font-size: .68rem; line-height: 1.45; }
.ai-study-section__body small { color: #65738a; font-size: .62rem; }
.ai-study-section__minutes { display: flex; align-items: center; gap: 3px; color: #7f8ba0; font-size: .61rem; }
.ai-study-section__minutes input {
  width: 48px;
  min-height: 31px;
  border: 1px solid rgba(143, 159, 193, .17);
  border-radius: 9px;
  background: #0a1220;
  color: #dfe7f3;
  text-align: center;
}

.ai-study-plan-summary {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 7px;
  margin-bottom: 10px;
}
.ai-study-plan-summary > span {
  display: grid;
  gap: 2px;
  padding: 9px;
  border: 1px solid rgba(143, 159, 193, .14);
  border-radius: 12px;
  background: #0a1220;
}
.ai-study-plan-summary b { font-size: .78rem; }
.ai-study-plan-summary small { color: #77849a; font-size: .59rem; }
.ai-study-plan-summary .is-ready b { color: #67dfae; }
.ai-study-plan-summary .is-warning b { color: #f6c96b; }

.ai-study-plan-warning {
  display: flex;
  gap: 8px;
  margin-bottom: 10px;
  padding: 10px;
  border: 1px solid rgba(242, 188, 86, .25);
  border-radius: 12px;
  color: #f5cf84;
  background: rgba(151, 94, 17, .1);
  font-size: .68rem;
  line-height: 1.45;
}

.ai-study-day-list { display: grid; gap: 9px; }
.ai-study-day {
  overflow: hidden;
  border: 1px solid rgba(143, 159, 193, .15);
  border-radius: 14px;
  background: #0b1321;
}
.ai-study-day > header { justify-content: space-between; padding: 9px 11px; background: rgba(93, 75, 181, .11); }
.ai-study-day > header strong { text-transform: capitalize; font-size: .74rem; }
.ai-study-day > header small { display: block; margin-top: 2px; color: #748198; font-size: .58rem; }
.ai-study-day > header > b { color: #9d84ff; font-size: .69rem; }
.ai-study-day ol { margin: 0; padding: 0; list-style: none; }
.ai-study-day li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 9px 11px;
  border-top: 1px solid rgba(143, 159, 193, .1);
}
.ai-study-day li > span { color: #7e67f1; }
.ai-study-day li[data-kind="review"] > span,
.ai-study-day li[data-kind="final-review"] > span { color: #48d5dc; }
.ai-study-day li strong { display: block; color: #dce4f0; font-size: .69rem; }
.ai-study-day li small { color: #68768c; font-size: .58rem; }
.ai-study-day li > b { color: #93a0b4; font-size: .63rem; }

.ai-study-apply {
  justify-content: space-between;
  gap: 12px;
  padding: 13px 15px;
  border-top: 1px solid rgba(143, 159, 193, .16);
  background: #0b1321;
}
.ai-study-apply strong,
.ai-study-apply small { display: block; }
.ai-study-apply strong { font-size: .75rem; }
.ai-study-apply small { margin-top: 3px; color: #748198; font-size: .61rem; }
.ai-study-apply .button { flex: 0 0 auto; }

.ai-study-confirm {
  gap: 8px;
  margin: 0 13px 13px;
  padding: 11px;
  border: 1px solid rgba(126, 99, 255, .45);
  border-radius: 14px;
  background: rgba(80, 59, 166, .17);
}
.ai-study-confirm[hidden] { display: none; }
.ai-study-confirm > div { flex: 1; }
.ai-study-confirm strong,
.ai-study-confirm small { display: block; }
.ai-study-confirm strong { font-size: .74rem; }
.ai-study-confirm small { margin-top: 3px; color: #9ca7b9; font-size: .61rem; }
.ai-study-confirm .button { min-height: 35px; padding: 7px 11px; font-size: .66rem; }

.ai-study-chat {
  display: grid;
  grid-template-columns: minmax(240px, .75fr) 1.2fr 1fr;
  gap: 16px;
  align-items: center;
  margin-top: 14px;
  padding: 15px 18px;
  background: linear-gradient(115deg, rgba(28, 25, 61, .97), rgba(10, 22, 35, .97));
}
.ai-study-chat > header { gap: 10px; }
.ai-study-chat > header > span { color: #a987ff; }
.ai-study-chat h3 { font-size: .88rem; }
.ai-study-chat-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}
.ai-study-chat-suggestions button {
  flex: 0 0 auto;
  padding: 8px 10px;
  border: 1px solid rgba(135, 105, 255, .28);
  border-radius: 999px;
  color: #cbbdff;
  background: rgba(103, 74, 219, .1);
  font: inherit;
  font-size: .64rem;
  cursor: pointer;
}
.ai-study-chat form { display: grid; grid-template-columns: 1fr auto; gap: 7px; }
.ai-study-chat form .field { min-height: 40px; background: #080f1b; color: #edf2fa; }
.ai-study-chat form .button { gap: 6px; }
.ai-study-chat > p,
.ai-study-chat form + p { margin: 0; color: #8794a8; font-size: .67rem; line-height: 1.45; }
.ai-study-chat form + p { grid-column: 3; margin-top: -10px; }
.ai-study-chat.is-locked { grid-template-columns: minmax(240px, .75fr) 1.2fr 1fr; opacity: .9; }
.ai-study-chat.is-locked .ai-study-chat-suggestions button { cursor: default; }

.ai-studio-view.is-study-plan-view .section-novi,
.ai-studio-view.is-study-plan-view [data-section-novi] { display: none; }

@media (max-width: 1320px) {
  .ai-study-plan-grid { grid-template-columns: minmax(270px, .72fr) minmax(0, 1.4fr); }
  .ai-study-preview { grid-column: 1 / -1; min-height: 560px; }
  .ai-study-chat { grid-template-columns: minmax(190px, .65fr) minmax(0, 1.35fr); }
  .ai-study-chat form,
  .ai-study-chat > p { grid-column: 1 / -1; }
  .ai-study-chat form + p { margin-top: -8px; }
}

@media (max-width: 799px) {
  .ai-study-plan-workspace { padding: 8px; }
  .ai-study-plan-header { align-items: flex-start; padding: 13px; border-radius: 17px; }
  .ai-study-plan-header__identity > span { flex-basis: 42px; width: 42px; border-radius: 13px; }
  .ai-study-plan-header p,
  .ai-study-plan-tier { display: none; }
  .ai-study-plan-header__actions .button { min-height: 36px; padding: 7px 9px; font-size: .66rem; }
  .ai-study-plan-grid { display: grid; grid-template-columns: 1fr; gap: 9px; }
  .ai-study-setup,
  .ai-study-structure,
  .ai-study-preview,
  .ai-study-chat { border-radius: 17px; }
  .ai-study-setup { padding: 13px; }
  .ai-study-form-row,
  .ai-study-form-row--three { grid-template-columns: 1fr 1fr; }
  .ai-study-form-row--three label:last-child { grid-column: 1 / -1; }
  .ai-study-structure,
  .ai-study-preview { grid-column: auto; min-height: 430px; }
  .ai-study-structure { min-height: 390px; }
  .ai-study-section-list { max-height: 390px; }
  .ai-study-plan-summary { grid-template-columns: 1fr 1fr; }
  .ai-study-confirm { flex-wrap: wrap; }
  .ai-study-confirm > div { flex-basis: 100%; }
  .ai-study-chat,
  .ai-study-chat.is-locked { grid-template-columns: 1fr; margin-top: 9px; padding: 13px; }
  .ai-study-chat form,
  .ai-study-chat > p,
  .ai-study-chat form + p { grid-column: auto; margin-top: 0; }
  .ai-study-chat-suggestions { margin: 0 -2px; }
}

/* Nova AI mobile refinement: compact header and reachable chat tools. */
.ai-study-plan-launch {
  min-height: 38px;
  padding: 8px 11px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-color: var(--ai-line);
  border-radius: 12px;
  font-size: .61rem;
  white-space: nowrap;
}
.ai-study-plan-launch > span:first-child { color: #c4a4ff; }
.ai-study-plan-launch small {
  padding: 2px 5px;
  border-radius: 999px;
  color: #b8c0ce;
  background: rgba(255,255,255,.06);
  font-size: .45rem;
}
.ai-study-plan-launch.is-active {
  border-color: rgba(130,119,255,.58);
  color: #fff;
  background: linear-gradient(135deg,rgba(101,93,240,.84),rgba(164,91,233,.72));
  box-shadow: 0 8px 22px rgba(83,64,214,.24);
}
.ai-chat-mobile-context,
.ai-chat-context-mobile-header,
[data-close-ai-history] { display: none; }
.ai-chat-sheet-actions { display: flex; align-items: center; gap: 6px; }

@media (max-width:699px) {
  .app-shell[data-route="ai"] .ai-studio-header__actions {
    display: grid;
    grid-template-columns: repeat(4,30px);
    justify-content: end;
    gap: 4px;
  }
  .app-shell[data-route="ai"] .ai-semantic-compact,
  .app-shell[data-route="ai"] .ai-study-plan-launch,
  .app-shell[data-route="ai"] .ai-chat-launch,
  .app-shell[data-route="ai"] .ai-studio-close {
    width: 30px;
    min-width: 30px;
    min-height: 30px;
    height: 30px;
    padding: 0 !important;
    display: grid;
    place-items: center;
    border-radius: 9px;
  }
  .app-shell[data-route="ai"] .ai-study-plan-launch > span:first-child,
  .app-shell[data-route="ai"] .ai-chat-launch > span:first-child,
  .app-shell[data-route="ai"] .ai-studio-close > span:first-child { display: grid; place-items: center; }
  .app-shell[data-route="ai"] .ai-header-action__label,
  .app-shell[data-route="ai"] .ai-study-plan-launch small,
  .app-shell[data-route="ai"] .ai-chat-launch small { display: none; }

  .app-shell[data-route="ai"] .ai-chat-thread-panel > header {
    min-height: 55px;
    padding: 9px 10px;
    align-items: center;
  }
  .app-shell[data-route="ai"] .ai-chat-thread-panel > header > div:first-child {
    min-width: 0;
    flex: 1 1 auto;
  }
  .app-shell[data-route="ai"] .ai-chat-thread-panel > header h2 {
    overflow: hidden;
    font-size: .78rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .app-shell[data-route="ai"] .ai-chat-thread-header-actions {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    flex-direction: row;
    gap: 4px;
  }
  .app-shell[data-route="ai"] .ai-chat-thread-header-actions .button {
    width: 34px;
    min-width: 34px;
    min-height: 34px;
    padding: 0;
    display: grid;
    place-items: center;
    border-radius: 10px;
  }
  .app-shell[data-route="ai"] .ai-chat-mobile-history,
  .app-shell[data-route="ai"] .ai-chat-mobile-context { display: grid; }
  .app-shell[data-route="ai"] .ai-mobile-action-label { display: none; }

  .app-shell[data-route="ai"] .ai-chat-history-panel,
  .app-shell[data-route="ai"] .ai-chat-context-panel {
    height: auto;
    max-height: none;
    position: absolute;
    z-index: 7;
    inset: 6px;
    border-radius: 14px;
    box-shadow: 0 24px 70px rgba(0,0,0,.42);
  }
  .app-shell[data-route="ai"] .ai-chat-history-panel { display: none; padding: 12px; }
  .app-shell[data-route="ai"] .ai-studio-view.is-history-open .ai-chat-history-panel { display: flex; }
  .app-shell[data-route="ai"] .ai-chat-history-panel > header { flex: 0 0 auto; }
  .app-shell[data-route="ai"] .ai-chat-history-list { flex: 1 1 auto; }
  .app-shell[data-route="ai"] [data-close-ai-history] { display: grid; place-items: center; }

  .app-shell[data-route="ai"] .ai-chat-context-panel { display: none; padding: 12px; }
  .app-shell[data-route="ai"] .ai-studio-view.is-context-open .ai-chat-context-panel { display: flex; }
  .app-shell[data-route="ai"] .ai-chat-context-mobile-header {
    min-height: 44px;
    padding-bottom: 9px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border-bottom: 1px solid rgba(16,21,34,.09);
  }
  .app-shell[data-route="ai"] .ai-chat-context-mobile-header > div { display: grid; gap: 2px; }
  .app-shell[data-route="ai"] .ai-chat-context-mobile-header span {
    color: #746be2;
    font-size: .45rem;
    font-weight: 750;
    letter-spacing: .1em;
    text-transform: uppercase;
  }
  .app-shell[data-route="ai"] .ai-chat-context-mobile-header strong { color: var(--ai-ink); font-size: .76rem; }
  .app-shell[data-route="ai"] .ai-chat-context-mobile-header button {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(16,21,34,.1);
    border-radius: 10px;
    color: #5d6678;
    background: #fff;
  }
  .app-shell[data-route="ai"] .ai-chat-context-panel > section { flex: 0 0 auto; }
  .app-shell[data-route="ai"] .ai-chat-prompt-list { grid-template-columns: 1fr 1fr; }
  .app-shell[data-route="ai"] .ai-chat-prompt-list button { min-height: 48px; font-size: .53rem; }

  .app-shell[data-route="ai"] .ai-chat-thread { padding: 12px; }
  .app-shell[data-route="ai"] .ai-chat-welcome { min-height: 100%; padding: 10px; }
  .app-shell[data-route="ai"] .ai-chat-welcome > span { width: 44px; height: 44px; border-radius: 14px; }
  .app-shell[data-route="ai"] .ai-chat-welcome h2 { font-size: 1rem; }
  .app-shell[data-route="ai"] .ai-chat-welcome p { max-width: 280px; font-size: .6rem; }
  .app-shell[data-route="ai"] .ai-chat-thread-composer { margin: 0 8px; padding: 5px; }
  .app-shell[data-route="ai"] .ai-chat-thread-composer textarea { min-height: 44px; line-height: 1.4; }
}

@media (max-width:349px) {
  .app-shell[data-route="ai"] .ai-studio-brand > div { display: none; }
  .app-shell[data-route="ai"] .ai-studio-header { grid-template-columns: 30px minmax(0,1fr); }
  .app-shell[data-route="ai"] .ai-studio-header__actions { grid-template-columns: repeat(4,29px); }
  .app-shell[data-route="ai"] .ai-semantic-compact,
  .app-shell[data-route="ai"] .ai-study-plan-launch,
  .app-shell[data-route="ai"] .ai-chat-launch,
  .app-shell[data-route="ai"] .ai-studio-close { width: 29px; min-width: 29px; }
  .app-shell[data-route="ai"] .ai-chat-prompt-list { grid-template-columns: 1fr; }
}

/* Piano Studio and long-result mobile flow: one focused task at a time. */
.ai-study-mobile-nav,
.ai-result-mobile-nav { display: none; }

@media (max-width:799px) {
  .app-shell[data-route="ai"] {
    width: 100%;
    height: 100dvh;
    position: fixed;
    inset: 0;
    overflow: hidden;
  }
  .app-shell[data-route="ai"] .ai-study-plan-workspace {
    padding: 5px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scroll-behavior: smooth;
    scrollbar-width: none;
  }
  .app-shell[data-route="ai"] .ai-study-plan-workspace::-webkit-scrollbar { display: none; }
  .app-shell[data-route="ai"] .ai-study-plan-shell {
    min-height: 100%;
    display: flex;
    flex-direction: column;
  }
  .app-shell[data-route="ai"] .ai-study-plan-header {
    min-height: 54px;
    margin-bottom: 5px;
    padding: 8px 9px;
    align-items: center;
    gap: 8px;
    border-radius: 13px;
  }
  .app-shell[data-route="ai"] .ai-study-plan-header__identity { gap: 8px; }
  .app-shell[data-route="ai"] .ai-study-plan-header__identity > span {
    width: 34px;
    flex-basis: 34px;
    border-radius: 10px;
  }
  .app-shell[data-route="ai"] .ai-study-plan-header__identity > span .nk-icon { width: 19px; height: 19px; }
  .app-shell[data-route="ai"] .ai-study-plan-header__identity small { font-size: .43rem; letter-spacing: .09em; }
  .app-shell[data-route="ai"] .ai-study-plan-header h2 { margin-top: 1px; font-size: .78rem; }
  .app-shell[data-route="ai"] .ai-study-plan-header__actions .button {
    min-height: 32px;
    padding: 6px 8px;
    border-radius: 9px;
    font-size: .52rem;
  }
  .app-shell[data-route="ai"] .ai-study-mobile-nav {
    margin-bottom: 5px;
    padding: 3px;
    position: sticky;
    z-index: 8;
    top: 0;
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 3px;
    border: 1px solid rgba(143,159,193,.18);
    border-radius: 12px;
    background: rgba(7,13,24,.96);
    box-shadow: 0 9px 24px rgba(0,0,0,.2);
  }
  .app-shell[data-route="ai"] .ai-study-mobile-nav button {
    min-width: 0;
    min-height: 46px;
    padding: 5px 4px;
    display: grid;
    grid-template-columns: 20px minmax(0,1fr);
    align-items: center;
    gap: 1px 5px;
    border: 0;
    border-radius: 9px;
    color: #7f8ca2;
    background: transparent;
    font: inherit;
    text-align: left;
  }
  .app-shell[data-route="ai"] .ai-study-mobile-nav button > span {
    width: 20px;
    height: 20px;
    grid-row: 1 / span 2;
    display: grid;
    place-items: center;
    border-radius: 7px;
    color: #9381e8;
    background: rgba(117,91,226,.12);
    font-size: .43rem;
    font-weight: 800;
  }
  .app-shell[data-route="ai"] .ai-study-mobile-nav strong {
    overflow: hidden;
    font-size: .53rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .app-shell[data-route="ai"] .ai-study-mobile-nav small {
    overflow: hidden;
    color: #66738a;
    font-size: .4rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .app-shell[data-route="ai"] .ai-study-mobile-nav button[aria-selected="true"] {
    color: #fff;
    background: linear-gradient(135deg,rgba(94,75,216,.82),rgba(119,70,220,.68));
    box-shadow: 0 6px 15px rgba(73,48,184,.2);
  }
  .app-shell[data-route="ai"] .ai-study-mobile-nav button[aria-selected="true"] > span {
    color: #fff;
    background: rgba(255,255,255,.13);
  }
  .app-shell[data-route="ai"] .ai-study-mobile-nav button[aria-selected="true"] small { color: #d3caef; }
  .app-shell[data-route="ai"] .ai-study-plan-grid { display: block; }
  .app-shell[data-route="ai"] .ai-study-plan-shell [data-study-mobile-panel] { display: none; }
  .app-shell[data-route="ai"] .ai-study-plan-shell[data-study-mobile-step="setup"] [data-study-mobile-panel="setup"] { display: grid; }
  .app-shell[data-route="ai"] .ai-study-plan-shell[data-study-mobile-step="structure"] [data-study-mobile-panel="structure"],
  .app-shell[data-route="ai"] .ai-study-plan-shell[data-study-mobile-step="preview"] [data-study-mobile-panel="preview"] { display: grid; }
  .app-shell[data-route="ai"] .ai-study-setup,
  .app-shell[data-route="ai"] .ai-study-structure,
  .app-shell[data-route="ai"] .ai-study-preview,
  .app-shell[data-route="ai"] .ai-study-chat { border-radius: 14px; }
  .app-shell[data-route="ai"] .ai-study-setup { padding: 11px; gap: 9px; }
  .app-shell[data-route="ai"] .ai-study-setup header span,
  .app-shell[data-route="ai"] .ai-study-structure > header span,
  .app-shell[data-route="ai"] .ai-study-preview > header span { font-size: .48rem; }
  .app-shell[data-route="ai"] .ai-study-setup h3,
  .app-shell[data-route="ai"] .ai-study-structure h3,
  .app-shell[data-route="ai"] .ai-study-preview h3 { font-size: .78rem; }
  .app-shell[data-route="ai"] .ai-study-setup label,
  .app-shell[data-route="ai"] .ai-study-weekdays { font-size: .57rem; }
  .app-shell[data-route="ai"] .ai-study-setup .field,
  .app-shell[data-route="ai"] .ai-study-section__body input,
  .app-shell[data-route="ai"] .ai-study-section__minutes input,
  .app-shell[data-route="ai"] .ai-study-chat .field { font-size: 16px; }
  .app-shell[data-route="ai"] .ai-study-setup textarea.field { min-height: 104px; }
  .app-shell[data-route="ai"] .ai-study-form-row,
  .app-shell[data-route="ai"] .ai-study-form-row--three { grid-template-columns: 1fr 1fr; }
  .app-shell[data-route="ai"] .ai-study-form-row--three label:last-child { grid-column: 1 / -1; }
  .app-shell[data-route="ai"] .ai-study-structure,
  .app-shell[data-route="ai"] .ai-study-preview { min-height: 0; }
  .app-shell[data-route="ai"] .ai-study-structure > header,
  .app-shell[data-route="ai"] .ai-study-preview > header { padding: 11px 12px; }
  .app-shell[data-route="ai"] .ai-study-structure > header > small,
  .app-shell[data-route="ai"] .ai-study-preview > header > small { max-width: 43%; font-size: .46rem; text-align: right; }
  .app-shell[data-route="ai"] .ai-study-section-list,
  .app-shell[data-route="ai"] .ai-study-preview-body {
    max-height: none;
    padding: 9px;
    overflow: visible;
  }
  .app-shell[data-route="ai"] .ai-study-section { padding: 10px 0; }
  .app-shell[data-route="ai"] .ai-study-section__body p { font-size: .56rem; }
  .app-shell[data-route="ai"] .ai-study-section__body small { font-size: .48rem; }
  .app-shell[data-route="ai"] .ai-study-plan-summary { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 4px; }
  .app-shell[data-route="ai"] .ai-study-plan-summary > span { padding: 7px 5px; }
  .app-shell[data-route="ai"] .ai-study-plan-summary b { font-size: .62rem; }
  .app-shell[data-route="ai"] .ai-study-plan-summary small { font-size: .43rem; }
  .app-shell[data-route="ai"] .ai-study-day li { padding: 8px 9px; }
  .app-shell[data-route="ai"] .ai-study-apply {
    padding: 10px;
    position: sticky;
    bottom: 0;
    z-index: 3;
  }
  .app-shell[data-route="ai"] .ai-study-apply strong { font-size: .63rem; }
  .app-shell[data-route="ai"] .ai-study-apply small { font-size: .48rem; }
  .app-shell[data-route="ai"] .ai-study-apply .button { min-height: 34px; padding: 7px 9px; font-size: .52rem; }
  .app-shell[data-route="ai"] .ai-study-plan-shell .ai-study-chat { display: none; }
  .app-shell[data-route="ai"] .ai-study-plan-shell[data-study-mobile-step="preview"] .ai-study-chat { display: grid; }
  .app-shell[data-route="ai"] .ai-study-chat,
  .app-shell[data-route="ai"] .ai-study-chat.is-locked { grid-template-columns: 1fr; margin-top: 5px; padding: 10px; gap: 8px; }
  .app-shell[data-route="ai"] .ai-study-chat h3 { font-size: .68rem; }
  .app-shell[data-route="ai"] .ai-study-chat-suggestions { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .app-shell[data-route="ai"] .ai-study-chat-suggestions button { padding: 7px 8px; font-size: .5rem; white-space: nowrap; }
}

@media (max-width:699px) {
  .app-shell[data-route="ai"] .ai-result--studio { scroll-behavior: smooth; }
  .app-shell[data-route="ai"] .ai-result-shell { gap: 9px; padding-bottom: 8px; }
  .app-shell[data-route="ai"] .ai-result-mobile-nav {
    margin: 0 -1px;
    padding: 4px;
    position: sticky;
    z-index: 6;
    top: -5px;
    display: flex;
    gap: 3px;
    overflow-x: auto;
    border: 1px solid rgba(105,94,232,.13);
    border-radius: 11px;
    background: rgba(250,250,254,.96);
    box-shadow: 0 7px 18px rgba(27,25,78,.08);
    scrollbar-width: none;
  }
  .app-shell[data-route="ai"] .ai-result-mobile-nav button {
    min-height: 29px;
    padding: 5px 9px;
    flex: 1 0 auto;
    border: 0;
    border-radius: 8px;
    color: #687083;
    background: transparent;
    font: inherit;
    font-size: .48rem;
    font-weight: 700;
  }
  .app-shell[data-route="ai"] .ai-result-mobile-nav button[aria-current="true"] { color: #fff; background: linear-gradient(135deg,#665de4,#9854d9); }
  .app-shell[data-route="ai"] .ai-result-shell > [id] { scroll-margin-top: 44px; }
  .app-shell[data-route="ai"] .ai-result-title { grid-template-columns: 34px minmax(0,1fr); gap: 8px; }
  .app-shell[data-route="ai"] .ai-result-title > span:first-child { width: 34px; height: 34px; border-radius: 10px; }
  .app-shell[data-route="ai"] .ai-result-title h3 { font-size: .82rem; }
  .app-shell[data-route="ai"] .ai-result-verified { grid-column: 1 / -1; min-height: 24px; padding: 4px 7px; font-size: .44rem; }
  .app-shell[data-route="ai"] .ai-result-lead,
  .app-shell[data-route="ai"] .ai-document-synthesis,
  .app-shell[data-route="ai"] .ai-result-section { padding: 11px; border-radius: 13px; }
  .app-shell[data-route="ai"] .ai-result-lead > p,
  .app-shell[data-route="ai"] .ai-document-synthesis__overview p,
  .app-shell[data-route="ai"] .ai-document-theme__evidence p,
  .app-shell[data-route="ai"] .ai-study-guide__overview p,
  .app-shell[data-route="ai"] .ai-study-guide__group p,
  .app-shell[data-route="ai"] .ai-result-points p,
  .app-shell[data-route="ai"] .ai-explain-steps p,
  .app-shell[data-route="ai"] .ai-quiz-options p,
  .app-shell[data-route="ai"] .ai-quiz-question details p { font-size: .64rem; line-height: 1.58; }
  .app-shell[data-route="ai"] .ai-document-synthesis__overview li { padding: 9px; }
  .app-shell[data-route="ai"] .ai-result-chapter > summary { min-height: 52px; padding: 8px; }
  .app-shell[data-route="ai"] .ai-result-chapter > summary strong { font-size: .61rem; }
  .app-shell[data-route="ai"] .ai-result-chapter > summary small { font-size: .45rem; }
  .app-shell[data-route="ai"] .ai-study-guide { padding: 8px; }
  .app-shell[data-route="ai"] .ai-result-save-note { padding: 10px; gap: 9px; }
  .app-shell[data-route="ai"] .ai-result-save-note h4 { font-size: .65rem; }
  .app-shell[data-route="ai"] .ai-result-save-note p { font-size: .48rem; }
}

/* Nova Notes: tag, collegamenti e modelli restano leggeri e locali. */
.note-tags{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.note-tags--compact{position:absolute;left:14px;right:42px;bottom:12px;overflow:hidden;flex-wrap:nowrap}.note-tag{--note-tag-color:#9d75ff;display:inline-flex;align-items:center;gap:5px;max-width:180px;padding:5px 9px;border:1px solid color-mix(in srgb,var(--note-tag-color) 55%,transparent);border-radius:999px;background:color-mix(in srgb,var(--note-tag-color) 15%,transparent);color:color-mix(in srgb,var(--note-tag-color) 78%,white);font-size:11px;font-weight:750;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.note-tag--violet{--note-tag-color:#9d75ff}.note-tag--cyan{--note-tag-color:#53d5df}.note-tag--emerald{--note-tag-color:#55d7a0}.note-tag--gold{--note-tag-color:#efc96c}.note-tag--coral{--note-tag-color:#ff806f}.note-tag--blue{--note-tag-color:#5d8cff}.note-tag--rose{--note-tag-color:#ee7fc7}.note-tag--indigo{--note-tag-color:#6f79e8}.note-preview-card{position:relative}.note-preview-card:has(.note-tags--compact) .note-preview-card__meta{padding-bottom:38px}.note-editor-metadata{display:flex;align-items:flex-start;gap:18px;flex-wrap:wrap;padding:10px 18px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--panel) 94%,#7762ff 6%)}.note-editor-metadata__group{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-height:28px}.note-editor-metadata__group>span:first-child{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.note-editor-metadata__group>button{border:1px solid var(--border);border-radius:999px;background:var(--panel-2);color:var(--text);padding:5px 9px;font:inherit;font-size:11px;cursor:pointer}.note-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.note-template-grid>button{display:grid;grid-template-columns:42px 1fr;grid-template-areas:"icon title" "icon copy";gap:4px 12px;text-align:left;padding:15px;border:1px solid var(--border);border-radius:18px;background:var(--panel-2);color:var(--text);cursor:pointer}.note-template-grid>button:hover,.note-template-grid>button:focus-visible{border-color:#9d75ff;background:color-mix(in srgb,var(--panel-2) 84%,#7657ff 16%)}.note-template-grid>button>span{grid-area:icon;display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:rgba(118,87,255,.16);color:#ae92ff;font-size:20px}.note-template-grid strong{grid-area:title}.note-template-grid small{grid-area:copy;color:var(--muted);line-height:1.4}.note-tag-editor{display:flex;gap:7px;flex-wrap:wrap;min-height:36px;align-items:center}.note-tag-editor>p{margin:0;color:var(--muted)}.note-tag-editor .note-tag{cursor:pointer}.note-tag-form fieldset{border:0;padding:0;margin:0}.note-tag-form legend{margin-bottom:8px}.note-tag-color-grid{display:flex;gap:8px;flex-wrap:wrap}.note-tag-color{cursor:pointer}.note-tag-color input{position:absolute;opacity:0;pointer-events:none}.note-tag-color .note-tag{width:30px;height:30px;padding:0}.note-tag-color input:checked+.note-tag{outline:2px solid var(--text);outline-offset:2px}.note-relations-list{display:grid;gap:8px;max-height:min(46vh,420px);overflow:auto}.note-relations-list>label{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--panel-2);cursor:pointer}.note-relations-list input{width:18px;height:18px;accent-color:#8a68ff}.note-relations-list label>span{display:grid;gap:3px}.note-relations-list small{color:var(--muted)}

@media(max-width:799px){.note-editor-metadata{padding:8px 12px;gap:9px}.note-editor-metadata__group{width:100%;overflow-x:auto;flex-wrap:nowrap}.note-template-grid{grid-template-columns:1fr}.notes-library-header__actions .button--ghost[data-action="new-note-template"]{min-width:44px;font-size:0}.notes-library-header__actions .button--ghost[data-action="new-note-template"]::before{content:"▤";font-size:18px}}

.note-history-list{max-height:min(54vh,520px);display:grid;gap:8px;overflow:auto;scrollbar-width:thin}.note-history-list>p{margin:0;padding:22px;border:1px dashed rgba(145,132,255,.28);border-radius:16px;color:var(--muted);text-align:center}.note-history-list>button{width:100%;min-height:66px;padding:11px 13px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid rgba(145,132,255,.22);border-radius:14px;color:var(--text);background:linear-gradient(135deg,rgba(130,113,255,.09),rgba(72,216,205,.035));font:inherit;text-align:left;cursor:pointer;transition:border-color .18s ease,transform .18s ease}.note-history-list>button:hover{border-color:rgba(145,132,255,.52);transform:translateY(-1px)}.note-history-list>button>span:first-child{min-width:0;display:grid;gap:4px}.note-history-list>button strong,.note-history-list>button small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-history-list>button strong{font-size:.72rem}.note-history-list>button small{color:var(--muted);font-size:.55rem}.note-history-list>button>span:last-child{flex:0 0 auto;color:#aaa0ff;font-size:.58rem;font-weight:750}
.route-loading-view {
  min-height: min(62dvh, 620px);
  display: grid;
  place-items: center;
  padding: clamp(24px, 6vw, 72px);
}

.route-loading-card {
  width: min(100%, 440px);
  display: grid;
  justify-items: center;
  gap: 10px;
  padding: 32px;
  text-align: center;
}

.route-loading-card p {
  max-width: 34ch;
  margin: 0;
  color: var(--ink-muted);
}

.route-loading-card__pulse,
.route-loading-card__error {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--violet) 58%, transparent);
  border-radius: 14px;
  color: var(--violet-soft);
  background: color-mix(in srgb, var(--violet) 18%, transparent);
}

.route-loading-card__pulse::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 22px currentColor;
  animation: route-loading-pulse 1.1s ease-in-out infinite alternate;
}

@keyframes route-loading-pulse {
  to { opacity: .35; transform: scale(.72); }
}

@media (prefers-reduced-motion: reduce) {
  .route-loading-card__pulse::before { animation: none; }
}

/* These overrides intentionally come last: desktop shell and feature palettes
   must not undo the accessibility profile chosen by the user. */
html[data-ui-palette="contrast"] .app-shell {
  --surface: rgba(14,14,14,.98);
  --surface-strong: #050505;
  --surface-soft: rgba(255,255,255,.09);
  --line: rgba(255,255,255,.32);
  --line-strong: rgba(255,255,255,.6);
  --paper: #fff;
  --paper-soft: #f4f4f4;
  --text: #fff;
  --text-soft: #f1f1f1;
  --text-muted: #c7c7c7;
}

html[data-ui-palette="contrast"] .today-dashboard-v2 {
  --today-night: #000;
  --today-panel: #090909;
  --today-panel-raised: #111;
  --today-line: rgba(255,255,255,.34);
  --today-line-strong: rgba(255,255,255,.58);
  --today-indigo: #fff;
  --today-indigo-bright: #fff;
  --today-cyan: #7ff6ff;
}

html[data-ui-palette="contrast"] :where(.glass-card,.setting-row,.today-dashboard-grid > section) {
  box-shadow: none;
}

html[data-ui-palette="color-safe"] .today-dashboard-v2 {
  --today-indigo: #8293ff;
  --today-indigo-bright: #b2baff;
  --today-cyan: #50d6cc;
  --today-gold: #f2b84b;
}

/* Account: centro informazioni pubblico e cancellazione locale controllata. */
.public-information-card {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 22px;
  border-color: color-mix(in srgb, var(--cyan) 28%, var(--border));
  background:
    radial-gradient(circle at 4% 20%, color-mix(in srgb, var(--cyan) 13%, transparent), transparent 32%),
    linear-gradient(135deg, color-mix(in srgb, var(--panel) 94%, var(--violet) 6%), var(--panel));
}

.public-information-card__icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--cyan) 45%, transparent);
  border-radius: 17px;
  color: var(--cyan);
  background: color-mix(in srgb, var(--cyan) 12%, transparent);
}

.public-information-card h2 { margin: 8px 0 4px; font-size: 1rem; }
.public-information-card p { max-width: 72ch; margin: 0; color: var(--muted); font-size: .68rem; line-height: 1.55; }
.trial-access-card__actions { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.setting-row--destructive:hover,
.setting-row--destructive:focus-visible { background: color-mix(in srgb, #ff6f7d 10%, var(--panel-2)); }

.app-dialog--public-information { width: min(1060px, calc(100vw - 28px)); }
.public-information-shell { display: grid; gap: 18px; }
.public-trial-summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  padding: 17px;
  border: 1px solid color-mix(in srgb, var(--violet) 34%, var(--border));
  border-radius: 18px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--violet) 16%, transparent), color-mix(in srgb, var(--cyan) 7%, transparent));
}
.public-trial-summary > span { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 14px; color: var(--violet-soft); background: color-mix(in srgb, var(--violet) 18%, transparent); }
.public-trial-summary small { display: block; color: var(--violet-soft); font-size: .58rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.public-trial-summary strong { display: block; margin-top: 3px; font-size: .88rem; }
.public-trial-summary p { margin: 4px 0 0; color: var(--muted); font-size: .62rem; line-height: 1.5; }

.public-information-section { display: grid; gap: 11px; }
.public-information-section > header { display: flex; align-items: flex-start; gap: 11px; }
.public-information-section > header > span { width: 29px; height: 29px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 9px; color: var(--cyan); background: color-mix(in srgb, var(--cyan) 11%, transparent); font-size: .52rem; font-weight: 850; }
.public-information-section h3 { margin: 1px 0 2px; font-size: .76rem; }
.public-information-section header p { margin: 0; color: var(--muted); font-size: .56rem; }
.public-data-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.public-data-row { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "icon copy" "icon location"; gap: 4px 10px; padding: 12px; border: 1px solid var(--border); border-radius: 14px; background: var(--panel-2); }
.public-data-row > span { grid-area: icon; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 11px; color: var(--cyan); background: color-mix(in srgb, var(--cyan) 10%, transparent); }
.public-data-row > div { grid-area: copy; min-width: 0; display: grid; gap: 3px; }
.public-data-row strong { font-size: .66rem; }
.public-data-row small { color: var(--muted); font-size: .54rem; line-height: 1.45; }
.public-data-row em { grid-area: location; color: var(--cyan); font-size: .51rem; font-style: normal; font-weight: 750; }
.public-faq-list { display: grid; gap: 7px; }
.public-faq-item { border: 1px solid var(--border); border-radius: 13px; background: var(--panel-2); overflow: clip; }
.public-faq-item summary { min-height: 43px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 13px; cursor: pointer; font-size: .62rem; font-weight: 750; list-style: none; }
.public-faq-item summary::-webkit-details-marker { display: none; }
.public-faq-item summary span { color: var(--violet-soft); font-size: 1rem; transition: transform .18s ease; }
.public-faq-item[open] summary span { transform: rotate(45deg); }
.public-faq-item p { margin: 0; padding: 0 13px 13px; color: var(--muted); font-size: .58rem; line-height: 1.55; }
.public-support-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.public-legal-links { display: flex; gap: 15px; flex-wrap: wrap; padding-top: 12px; border-top: 1px solid var(--border); }
.public-legal-links a { color: var(--cyan); font-size: .58rem; font-weight: 750; }
.local-delete-warning { display: grid; gap: 4px; padding: 13px; border: 1px solid color-mix(in srgb, #ff6f7d 36%, var(--border)); border-radius: 14px; background: color-mix(in srgb, #ff6f7d 9%, transparent); }
.local-delete-warning strong { font-size: .68rem; }
.local-delete-warning span { color: var(--muted); font-size: .56rem; }

@media (max-width: 699px) {
  .public-information-card { grid-template-columns: auto minmax(0, 1fr); gap: 11px; padding: 14px; }
  .public-information-card__icon { width: 42px; height: 42px; border-radius: 13px; }
  .public-information-card h2 { font-size: .74rem; }
  .public-information-card p { font-size: .53rem; }
  .public-information-card > .button { grid-column: 1 / -1; width: 100%; }
  .app-dialog--public-information { width: calc(100vw - 12px); max-height: calc(100dvh - 12px); }
  .public-information-shell { gap: 13px; }
  .public-data-list { grid-template-columns: 1fr; }
  .public-trial-summary { padding: 12px; }
  .public-trial-summary strong { font-size: .7rem; }
  .public-support-actions { display: grid; grid-template-columns: 1fr; }
  .public-support-actions .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .public-faq-item summary span { transition: none; }
}

/* Mobile Today command center.
   Desktop keeps the approved dashboard; on phones the same data is reorganised
   into a readable first screen with horizontal detail cards. */
@media (max-width: 699px) {
  .app-shell[data-route="today"] .app-view {
    height: auto;
    min-height: calc(100dvh - var(--header-height));
    padding: 10px 10px calc(var(--nav-height) + 17px);
    overflow: visible;
  }

  .app-shell[data-route="today"] .today-dashboard-v2 {
    height: auto;
    min-height: calc(100dvh - var(--header-height) - var(--nav-height) - 27px);
    display: flex;
    flex-direction: column;
    gap: 10px;
    overflow: visible;
  }

  .app-shell[data-route="today"] .today-dashboard-header {
    min-height: 82px;
    padding: 2px 2px 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 9px;
  }

  .app-shell[data-route="today"] .today-dashboard-header .view-header__eyebrow {
    margin-bottom: 3px;
    font-size: .44rem;
    letter-spacing: .095em;
  }

  .app-shell[data-route="today"] .today-dashboard-header h1 {
    font-size: 1.18rem;
    font-weight: 610;
    letter-spacing: -.025em;
  }

  .app-shell[data-route="today"] .today-quick-actions {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  .app-shell[data-route="today"] .today-header-action--ai,
  .app-shell[data-route="today"] .today-header-action--note { display: none; }

  .app-shell[data-route="today"] .today-header-action {
    width: auto;
    min-width: 0;
    min-height: 42px;
    padding: 6px;
    position: relative;
    border-radius: 12px;
    font-size: 0;
    box-shadow: inset 0 1px rgba(255,255,255,.045), 0 7px 18px rgba(0,3,12,.12);
  }

  .app-shell[data-route="today"] .today-header-action span { font-size: .92rem; }
  .app-shell[data-route="today"] .today-header-action--task {
    border-color: rgba(130,122,255,.54);
    color: #fff;
    background: linear-gradient(145deg,#7972ff,#5b50df);
  }
  .app-shell[data-route="today"] .today-header-action--task span { color: #fff; }
  .app-shell[data-route="today"] .today-header-action--hub {
    border-color: rgba(74,208,220,.24);
    background: linear-gradient(145deg,rgba(21,66,81,.74),rgba(7,24,40,.92));
  }
  .app-shell[data-route="today"] .today-header-action--hub span { color: #61dbe2; }
  .app-shell[data-route="today"] .today-header-action--ai:not(.is-locked) {
    border-color: rgba(186,105,245,.28);
    background: linear-gradient(145deg,rgba(89,43,137,.54),rgba(19,20,54,.94));
  }
  .app-shell[data-route="today"] .today-header-action--ai:not(.is-locked) span { color: #d899ff; }
  .app-shell[data-route="today"] .today-header-action--note {
    border-color: rgba(85,215,160,.23);
    background: linear-gradient(145deg,rgba(18,68,55,.62),rgba(7,26,35,.92));
  }
  .app-shell[data-route="today"] .today-header-action--note span { color: #70e0aa; }
  .app-shell[data-route="today"] .today-header-action--record:not(.is-locked) {
    border-color: rgba(69,218,224,.32);
    background: linear-gradient(145deg,rgba(13,75,87,.78),rgba(6,27,42,.94));
  }

  .app-shell[data-route="today"] .today-pulse {
    min-height: 86px;
    flex: 0 0 auto;
    margin: 0;
    grid-template-columns: repeat(2,minmax(0,1fr));
    grid-template-rows: repeat(2,minmax(42px,auto));
    border-radius: 15px;
  }

  .app-shell[data-route="today"] .today-pulse a {
    min-height: 42px;
    padding: 6px 9px;
    display: grid;
    grid-template-columns: 27px minmax(0,1fr);
    align-items: center;
    gap: 7px;
  }

  .app-shell[data-route="today"] .today-pulse a + a { border-left: 0; }
  .app-shell[data-route="today"] .today-pulse a:nth-child(even) { border-left: 1px solid var(--today-line,var(--line)); }
  .app-shell[data-route="today"] .today-pulse a:nth-child(n+3) { border-top: 1px solid var(--today-line,var(--line)); }
  .app-shell[data-route="today"] .today-pulse a > span:first-child {
    width: 27px;
    height: 27px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(121,113,255,.2);
    border-radius: 9px;
    color: #9b91ff;
    background: rgba(112,106,255,.075);
  }
  .app-shell[data-route="today"] .today-pulse a > span:first-child svg { width: 15px; height: 15px; }
  .app-shell[data-route="today"] .today-pulse a > span:last-child {
    display: grid;
    grid-template-columns: auto minmax(0,1fr);
    place-items: initial;
    align-items: baseline;
    gap: 2px 6px;
    text-align: left;
  }
  .app-shell[data-route="today"] .today-pulse small {
    grid-column: 1 / -1;
    font-size: .37rem;
    letter-spacing: .05em;
  }
  .app-shell[data-route="today"] .today-pulse strong { margin: 0; font-size: .72rem; }
  .app-shell[data-route="today"] .today-pulse em {
    display: block;
    overflow: hidden;
    font-size: .34rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .app-shell[data-route="today"] .today-priority-notice {
    min-height: 34px;
    padding: 4px 7px;
    border-radius: 11px;
  }

  .app-shell[data-route="today"] .today-study-session {
    min-height: 108px;
    flex: 0 0 auto;
    border-radius: 16px;
    background:
      radial-gradient(circle at 2% 10%,rgba(72,214,224,.085),transparent 31%),
      radial-gradient(circle at 96% 110%,rgba(112,106,255,.09),transparent 38%),
      linear-gradient(145deg,#1d222b,#151a23);
  }

  .app-shell[data-route="today"] .today-study-session__main {
    min-height: 69px;
    padding: 8px 9px;
    grid-template-columns: minmax(96px,1.1fr) minmax(59px,.62fr) minmax(76px,.78fr) auto;
    gap: 7px;
  }
  .app-shell[data-route="today"] .today-study-session__icon { width: 34px; height: 34px; border-radius: 11px; }
  .app-shell[data-route="today"] .today-study-session__identity small { font-size: .32rem; }
  .app-shell[data-route="today"] .today-study-session__identity strong { font-size: .52rem; }
  .app-shell[data-route="today"] .today-study-session__time strong { font-size: .78rem; }
  .app-shell[data-route="today"] .today-study-session__schedule { min-height: 34px; padding: 5px 6px; }
  .app-shell[data-route="today"] .today-study-session__schedule small { font-size: .27rem; }
  .app-shell[data-route="today"] .today-study-session__schedule time { font-size: .4rem; }
  .app-shell[data-route="today"] .today-study-session__actions button { width: 34px; min-height: 34px; border-radius: 10px; }
  .app-shell[data-route="today"] .today-study-session__context { min-height: 39px; padding: 5px 9px; }
  .app-shell[data-route="today"] .today-study-session__target { min-height: 29px; }

  .app-shell[data-route="today"] .today-attendance-quick {
    min-height: 61px;
    flex: 0 0 auto;
    padding: 6px 8px;
    grid-template-columns: minmax(104px,.58fr) minmax(0,1.42fr) 34px;
    gap: 7px;
    border-radius: 15px;
    background:
      radial-gradient(circle at 1% 20%,rgba(70,206,217,.085),transparent 34%),
      linear-gradient(145deg,#1d222b,#171c24);
  }
  .app-shell[data-route="today"] .today-attendance-quick__identity > span:first-child { width: 31px; height: 31px; border-radius: 10px; }
  .app-shell[data-route="today"] .today-attendance-quick__identity small { font-size: .3rem; }
  .app-shell[data-route="today"] .today-attendance-quick__identity strong { font-size: .48rem; }
  .app-shell[data-route="today"] .today-attendance-quick__identity em { font-size: .31rem; }
  .app-shell[data-route="today"] .today-attendance-quick.is-empty {
    min-height: 50px;
    grid-template-columns: minmax(132px,1fr) auto;
  }

  .app-shell[data-route="today"] .today-mobile-dashboard-tabs {
    min-height: 30px;
    flex: 0 0 30px;
    padding: 3px;
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 3px;
    border: 1px solid var(--today-line,var(--line));
    border-radius: 10px;
    background: rgba(7,14,24,.9);
  }
  .app-shell[data-route="today"] .today-mobile-dashboard-tabs button {
    min-width: 0;
    padding: 3px 7px;
    border: 0;
    border-radius: 7px;
    color: #929caf;
    background: transparent;
    font: inherit;
    font-size: .43rem;
    font-weight: 650;
    cursor: pointer;
  }
  .app-shell[data-route="today"] .today-mobile-dashboard-tabs button[aria-selected="true"] {
    color: #f3f5fa;
    background: linear-gradient(145deg,rgba(112,106,255,.32),rgba(77,68,188,.24));
    box-shadow: inset 0 1px rgba(255,255,255,.08);
  }

  .app-shell[data-route="today"] .today-dashboard-grid {
    min-height: 136px;
    flex: 0 0 136px;
    padding: 0;
    display: block;
    overflow: hidden;
    scrollbar-width: none;
  }
  .app-shell[data-route="today"] .today-dashboard-grid::-webkit-scrollbar { display: none; }
  .app-shell[data-route="today"] .today-dashboard-grid > section { display: none; grid-area: auto; }
  .app-shell[data-route="today"] .today-dashboard-grid > section.is-mobile-primary.is-mobile-selected {
    width: 100%;
    min-width: 0;
    height: 136px;
    display: block;
    border-radius: 16px;
  }
  .app-shell[data-route="today"] .today-dashboard-grid > .today-activity-panel {
    background: linear-gradient(145deg,#f7f8fb,#e9edf4);
  }
  .app-shell[data-route="today"] .today-panel-heading { min-height: 38px; padding: 8px 11px; }
  .app-shell[data-route="today"] .today-panel-heading h2 { font-size: .64rem; }
  .app-shell[data-route="today"] .today-panel-heading a { font-size: .45rem; }
  .app-shell[data-route="today"] .today-activity-list { height: calc(100% - 38px); padding: 2px 10px 6px; }
  .app-shell[data-route="today"] .today-activity-row { min-height: 44px; }
  .app-shell[data-route="today"] .today-activity-check { width: 22px; height: 22px; border-radius: 7px; }
  .app-shell[data-route="today"] .today-activity-copy strong { font-size: .57rem; }
  .app-shell[data-route="today"] .today-activity-copy small { font-size: .41rem; }
  .app-shell[data-route="today"] .today-focus-main { height: calc(100% - 38px); padding: 9px 13px; }
  .app-shell[data-route="today"] .today-focus-subject { font-size: .8rem; }
  .app-shell[data-route="today"] .today-panel-empty { min-height: 98px; }

  .app-shell[data-route="today"] .today-mobile-sections {
    min-height: 48px;
    flex: 0 0 48px;
    gap: 5px;
  }
  .app-shell[data-route="today"] .today-mobile-sections a,
  .app-shell[data-route="today"] .today-mobile-sections button {
    padding: 5px 2px;
    border-radius: 12px;
    background: linear-gradient(150deg,rgba(12,25,42,.94),rgba(6,14,25,.96));
    box-shadow: inset 0 1px rgba(255,255,255,.025);
  }
  .app-shell[data-route="today"] .today-mobile-sections span { font-size: .73rem; }
  .app-shell[data-route="today"] .today-mobile-sections strong { font-size: .41rem; }

  .app-shell[data-route="today"] .today-novi-assistant {
    right: 8px;
    bottom: calc(var(--nav-height) + 7px);
  }
  .app-shell[data-route="today"] .today-novi-launcher {
    min-width: 42px;
    width: 42px;
    height: 42px;
    padding: 4px;
    border-radius: 13px;
    box-shadow: 0 10px 24px rgba(0,3,12,.42),0 0 20px rgba(112,106,255,.1),inset 0 1px rgba(255,255,255,.05);
  }
  .app-shell[data-route="today"] .today-novi-launcher__mark { width: 32px; height: 32px; border-radius: 9px 9px 11px 11px; }
}

@media (max-width: 380px) {
  .app-shell[data-route="today"] .today-dashboard-header { min-height: 78px; }
  .app-shell[data-route="today"] .today-header-action { min-height: 39px; }
  .app-shell[data-route="today"] .today-study-session__main {
    grid-template-columns: minmax(70px,1fr) minmax(55px,.7fr) minmax(70px,.82fr) auto;
    gap: 5px;
  }
  .app-shell[data-route="today"] .today-study-session__identity > span:last-child { display: grid; }
  .app-shell[data-route="today"] .today-study-session__identity small { display: block; }
  .app-shell[data-route="today"] .today-study-session__identity strong { font-size: .46rem; }
  .app-shell[data-route="today"] .today-attendance-quick { grid-template-columns: minmax(93px,.64fr) minmax(0,1.36fr) 32px; }
}

@media (max-width: 699px) and (max-height: 720px) {
  .app-shell[data-route="today"] .today-dashboard-v2 { gap: 8px; }
  .app-shell[data-route="today"] .today-dashboard-header { min-height: 76px; gap: 7px; }
  .app-shell[data-route="today"] .today-header-action { min-height: 38px; }
  .app-shell[data-route="today"] .today-pulse { min-height: 86px; grid-template-rows: repeat(2,minmax(42px,auto)); }
  .app-shell[data-route="today"] .today-pulse a { min-height: 42px; padding-block: 5px; }
  .app-shell[data-route="today"] .today-study-session { min-height: 101px; }
  .app-shell[data-route="today"] .today-study-session__main { min-height: 64px; }
  .app-shell[data-route="today"] .today-dashboard-grid { min-height: 124px; flex-basis: 124px; }
  .app-shell[data-route="today"] .today-dashboard-grid > section.is-mobile-primary.is-mobile-selected { height: 124px; }
  .app-shell[data-route="today"] .today-mobile-sections { min-height: 44px; flex-basis: 44px; }
}

/* Oggi desktop: command center completo, visibile senza scorrimento. */
.today-operational-row {
  min-width: 0;
  margin: 0 0 16px;
  display: grid;
  gap: 14px;
}

.today-operational-row > .today-study-session,
.today-operational-row > .today-attendance-quick { margin: 0; }

@media (max-width: 699px) {
  .today-operational-row { display: contents; }
}

@media (min-width: 1200px) {
  .app-shell[data-route="today"] {
    height: 100dvh;
    min-height: 0;
    overflow: hidden;
  }

  .app-shell[data-route="today"] .app-view {
    height: calc(100dvh - var(--header-height));
    min-height: 0;
    padding: 12px clamp(22px, 2.6vw, 42px) 14px;
    overflow: hidden;
  }

  .app-shell[data-route="today"] .today-dashboard-v2 {
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    overflow: hidden;
  }

  .app-shell[data-route="today"] .today-dashboard-header {
    min-height: 50px;
    margin: 0;
    flex: 0 0 auto;
    align-items: center;
  }

  .app-shell[data-route="today"] .today-dashboard-header h1 {
    margin: 1px 0 2px;
    font-size: clamp(1.34rem, 1.7vw, 1.72rem);
    font-weight: 590;
  }

  .app-shell[data-route="today"] .today-dashboard-header p {
    font-size: .63rem;
    line-height: 1.35;
  }

  .app-shell[data-route="today"] .today-dashboard-header .view-header__eyebrow {
    margin-bottom: 1px;
    font-size: .46rem;
  }

  .app-shell[data-route="today"] .today-header-action {
    min-height: 34px;
    padding: 6px 9px;
    border-radius: 10px;
    font-size: .54rem;
  }

  .app-shell[data-route="today"] .today-pulse {
    min-height: 54px;
    margin: 0;
    flex: 0 0 54px;
    border-radius: 14px;
  }

  .app-shell[data-route="today"] .today-pulse a {
    min-height: 54px;
    padding: 7px 11px;
    grid-template-columns: 29px minmax(0, 1fr);
    gap: 8px;
  }

  .app-shell[data-route="today"] .today-pulse a > span:first-child {
    width: 29px;
    height: 29px;
    border-radius: 9px;
  }

  .app-shell[data-route="today"] .today-pulse small { font-size: .39rem; }
  .app-shell[data-route="today"] .today-pulse strong { font-size: .76rem; }
  .app-shell[data-route="today"] .today-pulse em { font-size: .39rem; }

  .app-shell[data-route="today"] .today-priority-notice {
    min-height: 34px;
    margin: 0;
    padding: 5px 8px;
    flex: 0 0 auto;
    grid-template-columns: 24px minmax(0, 1fr) auto;
    gap: 8px;
    border-radius: 11px;
  }

  .app-shell[data-route="today"] .today-priority-notice > span {
    width: 24px;
    height: 24px;
    border-radius: 8px;
  }

  .app-shell[data-route="today"] .today-priority-notice p {
    overflow: hidden;
    font-size: .46rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .app-shell[data-route="today"] .today-operational-row {
    min-height: 96px;
    max-height: 108px;
    margin: 0;
    flex: 0 0 clamp(96px, 11.2dvh, 108px);
    grid-template-columns: minmax(0, 1.58fr) minmax(310px, .92fr);
    gap: 10px;
  }

  .app-shell[data-route="today"] .today-operational-row > section {
    min-width: 0;
    height: 100%;
    min-height: 0;
    border-radius: 16px;
  }

  .app-shell[data-route="today"] .today-study-session__main {
    min-height: 59px;
    height: 59%;
    padding: 7px 9px;
    grid-template-columns: minmax(132px, .78fr) minmax(98px, .55fr) minmax(108px, .56fr) auto;
    gap: 7px;
  }

  .app-shell[data-route="today"] .today-study-session__identity { gap: 7px; }
  .app-shell[data-route="today"] .today-study-session__icon { width: 32px; height: 32px; border-radius: 10px; }
  .app-shell[data-route="today"] .today-study-session__identity small { font-size: .34rem; }
  .app-shell[data-route="today"] .today-study-session__identity strong { font-size: .58rem; }
  .app-shell[data-route="today"] .today-study-session__time { grid-template-columns: 1fr; gap: 1px; }
  .app-shell[data-route="today"] .today-study-session__time strong { min-width: 0; font-size: .85rem; }
  .app-shell[data-route="today"] .today-study-session__time small { display: none; }
  .app-shell[data-route="today"] .today-study-session__schedule { min-height: 32px; padding: 4px 6px; }
  .app-shell[data-route="today"] .today-study-session__schedule small { font-size: .28rem; }
  .app-shell[data-route="today"] .today-study-session__schedule time { font-size: .43rem; }
  .app-shell[data-route="today"] .today-study-session__actions { gap: 4px; }
  .app-shell[data-route="today"] .today-study-session__actions > span { display: none; }
  .app-shell[data-route="today"] .today-study-session__actions button { min-height: 31px; padding: 5px 7px; border-radius: 9px; font-size: .42rem; }
  .app-shell[data-route="today"] .today-study-session__settings { width: 31px; padding-inline: 5px !important; }

  .app-shell[data-route="today"] .today-study-session__context {
    min-height: 37px;
    height: 41%;
    padding: 4px 8px;
    grid-template-columns: minmax(190px, 1fr) auto;
    gap: 5px;
  }

  .app-shell[data-route="today"] .today-study-session__context-label,
  .app-shell[data-route="today"] .today-study-session__kinds,
  .app-shell[data-route="today"] .today-study-session__unlink { display: none; }
  .app-shell[data-route="today"] .today-study-session__target { min-height: 29px; padding: 2px 5px; }
  .app-shell[data-route="today"] .today-study-session__target strong { font-size: .45rem; }
  .app-shell[data-route="today"] .today-study-session__target small { font-size: .34rem; }
  .app-shell[data-route="today"] .today-study-session__change { min-height: 27px; padding: 4px 7px; font-size: .38rem; }

  .app-shell[data-route="today"] .today-attendance-quick {
    padding: 8px 9px;
    grid-template-columns: minmax(130px, .62fr) minmax(0, 1.38fr) auto;
    gap: 7px;
  }

  .app-shell[data-route="today"] .today-attendance-quick__identity { gap: 7px; }
  .app-shell[data-route="today"] .today-attendance-quick__identity > span:first-child { width: 32px; height: 32px; border-radius: 10px; }
  .app-shell[data-route="today"] .today-attendance-quick__identity small { font-size: .33rem; }
  .app-shell[data-route="today"] .today-attendance-quick__identity strong { font-size: .5rem; }
  .app-shell[data-route="today"] .today-attendance-quick__identity em { font-size: .34rem; }
  .app-shell[data-route="today"] .today-attendance-quick__subjects { gap: 5px; }
  .app-shell[data-route="today"] .today-attendance-subject { min-width: 168px; min-height: 49px; padding: 4px 5px; grid-template-columns: 4px minmax(55px, 1fr) auto; gap: 5px; border-radius: 9px; }
  .app-shell[data-route="today"] .today-attendance-subject > i { width: 4px; height: 24px; }
  .app-shell[data-route="today"] .today-attendance-subject > span strong { font-size: .42rem; }
  .app-shell[data-route="today"] .today-attendance-subject > span small { font-size: .31rem; }
  .app-shell[data-route="today"] .today-attendance-subject button { width: 27px; min-height: 27px; padding: 3px; font-size: 0; }
  .app-shell[data-route="today"] .today-attendance-subject button span { display: none; }
  .app-shell[data-route="today"] .today-attendance-quick__actions { display: block; }
  .app-shell[data-route="today"] .today-attendance-quick__actions button { width: 31px; min-height: 31px; padding: 4px; font-size: 0; }
  .app-shell[data-route="today"] .today-attendance-quick__actions button span,
  .app-shell[data-route="today"] .today-attendance-quick__actions a { display: none; }
  .app-shell[data-route="today"] .today-attendance-quick.is-empty { grid-template-columns: minmax(150px, .8fr) minmax(0, 1fr) auto; }
  .app-shell[data-route="today"] .today-attendance-quick.is-empty > p { margin: 0; font-size: .4rem; line-height: 1.35; }

  .app-shell[data-route="today"] .today-dashboard-grid {
    min-height: 0;
    margin: 0;
    padding: 0;
    flex: 1 1 auto;
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .98fr) minmax(286px, 1.02fr);
    grid-template-rows: minmax(0, 1fr) minmax(0, .9fr);
    grid-template-areas: "activity focus calendar" "exams progress calendar";
    align-items: stretch;
    gap: 12px;
    overflow: hidden;
  }

  .app-shell[data-route="today"] .today-dashboard-grid > section {
    min-height: 0;
    height: 100%;
    max-height: 100%;
    align-self: stretch;
    border-radius: 16px;
    overflow: hidden;
  }

  .app-shell[data-route="today"] .today-activity-panel,
  .app-shell[data-route="today"] .today-exam-panel {
    display: grid;
    grid-template-rows: 45px minmax(0, 1fr);
  }

  .app-shell[data-route="today"] .today-panel-heading {
    min-height: 45px;
    height: 45px;
    padding: 9px 12px;
  }

  .app-shell[data-route="today"] .today-panel-heading h2 { font-size: .68rem; }
  .app-shell[data-route="today"] .today-panel-heading a { font-size: .47rem; }
  .app-shell[data-route="today"] .today-period-chip { padding: 4px 6px; font-size: .42rem; }
  .app-shell[data-route="today"] .today-activity-list { min-height: 0; height: auto; padding: 2px 11px 6px; overflow: hidden; }
  .app-shell[data-route="today"] .today-activity-row { min-height: 49px; grid-template-columns: 23px minmax(0, 1fr) auto auto; gap: 7px; }
  .app-shell[data-route="today"] .today-activity-row:nth-child(n + 5) { display: none; }
  .app-shell[data-route="today"] .today-activity-copy strong { font-size: .55rem; }
  .app-shell[data-route="today"] .today-activity-copy small,
  .app-shell[data-route="today"] .today-activity-row time,
  .app-shell[data-route="today"] .today-priority { font-size: .4rem; }

  .app-shell[data-route="today"] .today-focus-panel { display: grid; grid-template-rows: 45px minmax(0, 1fr) 43px; }
  .app-shell[data-route="today"] .today-focus-main { min-height: 0; padding: 10px 13px; }
  .app-shell[data-route="today"] .today-focus-subject { font-size: .83rem; }
  .app-shell[data-route="today"] .today-focus-main small { margin-top: 10px; font-size: .42rem; }
  .app-shell[data-route="today"] .today-focus-main strong { font-size: .6rem; }
  .app-shell[data-route="today"] .today-focus-main .today-metric-ring { width: 74px; height: 74px; }
  .app-shell[data-route="today"] .today-focus-panel > footer { min-height: 43px; padding: 7px 12px; grid-template-columns: 22px minmax(0, 1fr) auto; }
  .app-shell[data-route="today"] .today-focus-panel > footer p { font-size: .43rem; }

  .app-shell[data-route="today"] .today-exam-list { min-height: 0; height: auto; padding: 2px 11px 6px; overflow: hidden; }
  .app-shell[data-route="today"] .today-exam-row { min-height: 55px; grid-template-columns: 37px minmax(0, 1fr) auto; gap: 8px; }
  .app-shell[data-route="today"] .today-exam-date { width: 36px; height: 40px; border-radius: 9px; }
  .app-shell[data-route="today"] .today-exam-date strong { font-size: .7rem; }
  .app-shell[data-route="today"] .today-exam-row > span:nth-child(2) strong { font-size: .55rem; }
  .app-shell[data-route="today"] .today-exam-row > span:nth-child(2) small,
  .app-shell[data-route="today"] .today-exam-row em { font-size: .41rem; }

  .app-shell[data-route="today"] .today-activity-list > .today-panel-empty,
  .app-shell[data-route="today"] .today-exam-list > .today-panel-empty {
    min-height: 0;
    height: 100%;
    padding: 10px 14px;
    overflow: hidden;
  }

  .app-shell[data-route="today"] .today-week-panel { padding-bottom: 6px; display: grid; grid-template-rows: 45px auto auto minmax(48px, 1fr); }
  .app-shell[data-route="today"] .today-week-summary { min-height: 72px; padding: 7px 13px 2px; gap: 13px; }
  .app-shell[data-route="today"] .today-week-summary .today-metric-ring { width: 65px; height: 65px; }
  .app-shell[data-route="today"] .today-week-summary dl { gap: 3px; }
  .app-shell[data-route="today"] .today-week-summary dt { font-size: .58rem; }
  .app-shell[data-route="today"] .today-week-summary dd { font-size: .38rem; }
  .app-shell[data-route="today"] .today-chart-heading { margin: 2px 13px 0; }
  .app-shell[data-route="today"] .today-chart-heading strong,
  .app-shell[data-route="today"] .today-chart-heading small { font-size: .39rem; }
  .app-shell[data-route="today"] .today-week-chart { height: auto; min-height: 48px; margin: 1px 13px 0; padding-top: 4px; }
  .app-shell[data-route="today"] .today-week-note { display: none; }

  .app-shell[data-route="today"] .today-calendar-panel { display: grid; grid-template-rows: 45px auto minmax(0, 1fr) auto; }
  .app-shell[data-route="today"] .today-calendar-weekdays { margin: 8px 10px 3px; font-size: .41rem; }
  .app-shell[data-route="today"] .today-calendar-grid { min-height: 0; margin: 0 10px 6px; align-content: stretch; }
  .app-shell[data-route="today"] .today-calendar-grid a { min-height: 21px; aspect-ratio: auto; border-radius: 7px; font-size: .46rem; }
  .app-shell[data-route="today"] .today-calendar-agenda { max-height: 126px; padding: 9px 11px 10px; overflow: hidden; }
  .app-shell[data-route="today"] .today-calendar-agenda > header { margin-bottom: 5px; }
  .app-shell[data-route="today"] .today-calendar-agenda > header strong,
  .app-shell[data-route="today"] .today-calendar-agenda > header a { font-size: .43rem; }
  .app-shell[data-route="today"] .today-calendar-agenda article { min-height: 34px; }
  .app-shell[data-route="today"] .today-calendar-agenda article strong { font-size: .46rem; }
  .app-shell[data-route="today"] .today-calendar-agenda article small,
  .app-shell[data-route="today"] .today-calendar-agenda > p { font-size: .38rem; }
}

@media (min-width: 1200px) and (max-height: 820px) {
  .app-shell[data-route="today"] .today-dashboard-header p { display: none; }
  .app-shell[data-route="today"] .today-dashboard-header { min-height: 42px; }
  .app-shell[data-route="today"] .today-operational-row {
    min-height: 96px;
    max-height: 96px;
    flex-basis: 96px;
  }
  .app-shell[data-route="today"] .today-study-session__main {
    min-height: 57px;
    height: 57px;
  }
  .app-shell[data-route="today"] .today-study-session__context {
    min-height: 37px;
    height: 37px;
  }
  .app-shell[data-route="today"] .today-week-panel {
    padding-bottom: 4px;
    grid-template-rows: 40px 70px 9px minmax(30px, 1fr);
  }
  .app-shell[data-route="today"] .today-week-panel .today-panel-heading {
    min-height: 40px;
    height: 40px;
    padding: 7px 10px;
  }
  .app-shell[data-route="today"] .today-week-summary {
    min-height: 70px;
    padding: 3px 11px 1px;
    gap: 11px;
    overflow: hidden;
  }
  .app-shell[data-route="today"] .today-week-summary .today-metric-ring {
    width: 54px;
    height: 54px;
  }
  .app-shell[data-route="today"] .today-week-summary .today-metric-ring strong {
    font-size: .9rem;
    line-height: 1;
  }
  .app-shell[data-route="today"] .today-week-summary .today-metric-ring small {
    margin-top: 3px;
    font-size: .31rem;
    line-height: 1;
  }
  .app-shell[data-route="today"] .today-week-summary dl {
    min-width: 0;
    align-content: center;
    gap: 2px;
  }
  .app-shell[data-route="today"] .today-week-summary dl > div {
    min-width: 0;
    padding-left: 10px;
  }
  .app-shell[data-route="today"] .today-week-summary dl > div::before {
    top: 1px;
    font-size: .52rem;
    line-height: 1;
  }
  .app-shell[data-route="today"] .today-week-summary dt {
    overflow: hidden;
    font-size: .54rem;
    line-height: 1.05;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .app-shell[data-route="today"] .today-week-summary dd {
    margin-top: 1px;
    overflow: hidden;
    font-size: .35rem;
    line-height: 1.05;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .app-shell[data-route="today"] .today-chart-heading { margin: 0 11px; }
  .app-shell[data-route="today"] .today-week-chart {
    min-height: 32px;
    margin: 0 11px;
    padding-top: 2px;
  }
  .app-shell[data-route="today"] .today-activity-row:nth-child(n + 4),
  .app-shell[data-route="today"] .today-exam-row:nth-child(n + 3) { display: none; }
  .app-shell[data-route="today"] .today-calendar-agenda { max-height: 92px; }
}
