:root{--font: "Geist", Inter, system-ui, -apple-system, "Segoe UI", sans-serif;--ground: #f2f4f7;--surface: #ffffff;--raised: #eceef1;--active: #e4e7eb;--border: #e3e6ea;--rule: #eef0f2;--control: #c9ced6;--ink: #0a0a0a;--text: #0a0a0a;--muted: #5f6670;--faint: #6b6b6b;--primary: #141414;--primary-ink: #ffffff;--secondary: #e5e7ea;--data: #1d5fbf;--data-soft: #bcd0ee;--data-tint: #e8eefb;--positive: #247b50;--negative: #c4242a;--warning: #b45309;--pill-positive-bg: #dcfae5;--pill-positive-ink: #04250e;--pill-negative-bg: #ffedea;--pill-negative-ink: #831c1e;--pill-warning-bg: #fffbeb;--pill-warning-ink: #92400e;--pill-neutral-bg: #eceef1;--pill-neutral-ink: #3d434b;--exam-1: #e8eefb;--exam-2: #eceef1;--exam-3: #f4efe9;--exam-4: #e9f3ef;--exam-5: #f3ecf2;--radius-card: 8px;--radius-control: 6px;--radius-chip: 4px;--gap: 12px;--pad: 28px;--card-pad: 20px;--control-height: 36px;--sidebar-width: 248px;--fs-title: 24px;--fs-section: 15px;--fs-kpi: 28px;--fs-body: 14px;--fs-small: 12px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--ground);color:var(--text);font:400 var(--fs-body)/1.45 var(--font)}.num,.time,input[type=time],input[type=number]{font-variant-numeric:tabular-nums}h1,h2,h3,p{margin:0}h1{font-size:var(--fs-title);font-weight:600;letter-spacing:-.01em;line-height:1.2}h2{font-size:var(--fs-section);font-weight:600}h3{font-size:14px;font-weight:600}a{color:var(--text)}code{font-size:.9em}.meta,.hint,.muted{color:var(--muted);font-size:var(--fs-small)}.hint{font-size:13px}.faint{color:var(--faint)}.error{color:var(--negative)}.small{font-size:var(--fs-small)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;opacity:0}button,.button{font:inherit;font-weight:500;height:var(--control-height);padding:0 14px;border-radius:var(--radius-control);border:1px solid transparent;background:var(--primary);color:var(--primary-ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;text-decoration:none}button:hover:not(:disabled),.button:hover{filter:brightness(1.25)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--data);outline-offset:2px}button:disabled{opacity:.55;cursor:default}.primary{background:var(--primary);color:var(--primary-ink)}.secondary,.button.secondary-look,button.secondary{background:var(--secondary);color:var(--text)}.secondary:hover:not(:disabled),.button.secondary-look:hover{filter:none;background:var(--active)}.ghost,button.quiet{background:transparent;color:var(--text);border-color:transparent}.ghost:hover:not(:disabled),button.quiet:hover:not(:disabled){filter:none;background:var(--raised)}.danger,button.danger{background:transparent;color:var(--negative);border-color:#e7b3b5}.danger:hover:not(:disabled){filter:none;background:var(--pill-negative-bg)}button.link{background:none;border:none;height:auto;padding:0;color:var(--text);font-weight:500;text-decoration:underline;text-underline-offset:3px;white-space:normal;text-align:left;justify-content:flex-start}button.link:hover{filter:none;color:var(--data)}.block{width:100%}label.button{position:relative}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--control);border-radius:var(--radius-control);height:var(--control-height);padding:0 10px;width:100%;min-width:0}input[type=checkbox]{width:16px;height:16px;padding:0;accent-color:var(--primary);flex:none}.form,form{display:grid;gap:12px}label{display:grid;gap:6px;font-weight:500;font-size:13px;color:var(--text)}label.check{display:flex;gap:8px;align-items:center;font-weight:400;font-size:14px}fieldset{border:1px solid var(--border);border-radius:var(--radius-card);margin:0;padding:12px 14px;display:grid;gap:8px;min-width:0}legend{font-weight:600;padding:0 4px;font-size:13px}.actions,.row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fields-2,.fields-3,.grid2{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end}.shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:20px 12px;display:flex;flex-direction:column;gap:24px}.brand{display:flex;gap:10px;align-items:center;padding:0 8px;min-width:0}.brand-text strong{display:block;font-size:16px;font-weight:700;letter-spacing:.04em}.brand-text small{display:block;color:var(--muted);font-size:11px;line-height:1.3}.mark{flex:none;display:block}nav[aria-label=Sezioni],.sheet nav{display:grid;gap:2px}nav a{display:flex;align-items:center;gap:10px;height:34px;padding:0 10px;border-radius:var(--radius-control);color:var(--muted);text-decoration:none}nav a:hover{background:var(--raised);color:var(--text)}nav a.on{background:var(--active);color:var(--text);font-weight:500}nav a .icon{flex:none}.count{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:grid;place-items:center;font-size:12px;font-weight:600;background:var(--pill-warning-bg);color:var(--pill-warning-ink)}.sidebar-foot{margin-top:auto;padding:0 10px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.topbar,.bottombar,.sheet{display:none}.canvas{padding:32px var(--pad) 48px;min-width:0;max-width:1240px;width:100%}.page-title{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-sub{margin-top:6px;color:var(--muted)}.page-actions{display:flex;align-items:center;gap:8px}.panel,.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--card-pad);min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-content:start}.card{margin-bottom:var(--gap)}.subpanel{display:grid;gap:12px;padding-top:8px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.stack{display:grid;gap:var(--gap);align-content:start;min-width:0}.split{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--gap);align-items:start}.bars>li{display:grid;gap:6px;padding:10px 0}.bars>li:first-child{padding-top:0}.bars .kv{min-height:0}.bar{display:flex;height:8px;border-radius:4px;background:var(--raised);overflow:hidden}.bar>span{background:var(--tint-ink, var(--data))}.bar.stacked .met{background:var(--positive)}.bar.stacked .unmet{background:var(--negative)}@media(min-width:901px){.split>.side{position:sticky;top:24px}}.stack>.card{margin-bottom:0}.skeleton{display:inline-block;height:12px;border-radius:4px;background:var(--raised);vertical-align:middle}.skeleton-head{width:140px;height:14px;margin-bottom:8px}.skeleton-row{display:grid;grid-template-columns:104px 1fr;gap:12px;align-items:center;min-height:44px;border-top:1px solid var(--rule)}.skeleton-row:first-of-type{border-top:none}.auth-loading{display:grid;justify-items:center;gap:12px}.empty{color:var(--muted);padding:12px 14px;border:1px dashed var(--border);border-radius:var(--radius-card)}.notice{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:8px 8px 8px 14px;margin-bottom:var(--gap)}.notice-error{border-color:#f0c4c6;background:var(--pill-negative-bg);color:var(--pill-negative-ink)}.notice .ghost{height:28px}.list,.plain{list-style:none;margin:0;padding:0}.list>li,.plain>li{border-top:1px solid var(--rule)}.list>li:first-child,.plain>li:first-child{border-top:none}.session-item{display:grid;gap:10px;padding:12px 0}.session-item.recorded .session-title{color:var(--muted)}.session-line{display:grid;grid-template-columns:104px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:40px}.list.compact .session-line,.list.compact .kv{min-height:44px}.time{color:var(--muted)}.session-date{display:block;color:var(--text);font-size:12px;text-transform:capitalize}.session-what{display:grid;min-width:0}.session-title{font-weight:500;overflow-wrap:anywhere}.session-meta{color:var(--muted);font-size:var(--fs-small)}.session-meta.inline{display:inline;margin-left:4px}.row-actions button{height:34px}.kv{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:36px}.kv>span:last-child{text-align:right}.day-group{display:grid;gap:4px}.day-group+.day-group{margin-top:10px}.day-group h3{color:var(--muted);font-weight:500;font-size:13px}.exam-row{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(0,3fr) auto;gap:16px;align-items:center;min-height:72px;padding:10px 0}.exam-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0}.exam-facts div{display:grid;gap:2px;align-content:start;min-width:0}.exam-facts dt{color:var(--muted);font-size:var(--fs-small)}.exam-facts dd{margin:0}.exam-warning{grid-column:1 / -1;margin-top:-4px;padding:8px 12px;border-radius:var(--radius-control);background:var(--pill-warning-bg);color:var(--pill-warning-ink);font-size:13px}.advanced{display:grid;gap:10px}.advanced summary{cursor:pointer;color:var(--muted);font-size:13px}.advanced[open]{padding-top:4px}.field-warning{color:var(--warning);font-weight:400;font-size:12px}.pill{flex:none;display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap}.pill-positive{background:var(--pill-positive-bg);color:var(--pill-positive-ink)}.pill-negative{background:var(--pill-negative-bg);color:var(--pill-negative-ink)}.pill-warning{background:var(--pill-warning-bg);color:var(--pill-warning-ink)}.pill-neutral{background:var(--pill-neutral-bg);color:var(--pill-neutral-ink)}.badge{display:inline-flex;margin-left:6px;height:20px;align-items:center;padding:0 8px;border-radius:999px;font-size:12px;background:var(--pill-neutral-bg);color:var(--pill-neutral-ink)}.badge.completed{background:var(--pill-positive-bg);color:var(--pill-positive-ink)}.readiness{display:grid;gap:6px;padding:10px 0;border-top:1px solid var(--rule)}.readiness:first-of-type{border-top:none;padding-top:0}.readiness-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.missing{margin:0;padding-left:18px;color:var(--muted);font-size:13px}.status{font-size:13px;color:var(--muted)}.status-met{color:var(--positive);font-weight:500}.status-unmet{color:var(--negative)}.errors{margin:0;padding-left:18px;font-size:13px}.warning{display:grid;gap:8px;padding:12px 14px;border-radius:var(--radius-card);background:var(--pill-warning-bg);color:var(--pill-warning-ink)}.settings{display:grid;gap:28px}.setting{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:24px;align-items:start}.setting-label{display:grid;gap:6px;padding-top:4px}.setting-label p{color:var(--muted)}.auth{min-height:100vh;display:grid;place-items:center;padding:24px 16px}.auth-card{width:min(420px,100%);background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:32px 28px;display:grid;gap:24px}.auth-brand{display:grid;gap:8px;justify-items:start}.auth-brand h1{font-size:34px;font-weight:700;letter-spacing:.06em;margin-top:8px}.auth-expansion{font-size:15px;font-weight:500}.auth-line{color:var(--muted)}.editor{display:grid;gap:16px}.editor.card{padding:24px}.with-suffix{display:flex;align-items:center;gap:8px}.topic-row,.activity{display:grid;gap:10px;padding:12px 0;border-top:1px solid var(--rule)}.topic-row:first-of-type,.activity:first-of-type{border-top:none}.checks,.covers{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center}.criteria{display:grid;gap:8px}.criterion{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center}.window{display:grid;gap:10px;padding:10px 0;border-top:1px solid var(--rule)}@media(min-width:560px){.window{grid-template-columns:auto 1fr 1fr auto;align-items:end}}.days{display:flex;gap:4px}.day-toggle{width:34px;padding:0;background:var(--surface);color:var(--text);border-color:var(--control)}.day-toggle.on{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}.counts{display:grid;grid-template-columns:minmax(0,1fr) 72px 72px;gap:8px;align-items:center}.count-row{display:contents}.count-row input{text-align:right}.results{display:grid;gap:14px}.drop.dragging{border-color:var(--data);border-style:dashed}.jobs{font-size:13px}.job{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:center;padding:6px 0}.job-name{overflow-wrap:anywhere}.job.error .muted,.job.duplicate .muted{color:var(--negative)}.job.done .muted{color:var(--positive)}.job>.muted{grid-column:1}.material{display:grid;gap:8px;padding:12px 0}.material-head{display:flex;gap:12px;align-items:flex-start}.file-icon{flex:none;width:48px;height:48px;padding:0;border-radius:6px;border:1px solid var(--border);background:var(--raised);color:var(--muted);display:grid;place-items:center;overflow:hidden;font-size:11px;font-weight:600}.file-icon:hover:not(:disabled){filter:none;border-color:var(--control)}.file-icon img{width:100%;height:100%;object-fit:cover;display:block}.material-text{display:grid;gap:2px;min-width:0}.material-name{font-weight:500;text-decoration:none;color:var(--text)}.material-actions summary{cursor:pointer;color:var(--muted);font-size:13px}.material-actions[open]{display:grid;gap:10px;padding-top:4px}.rename{display:flex;gap:8px;flex-wrap:wrap}.rename input{flex:1;min-width:160px}.bundle{display:grid;gap:10px}.bundle-pages{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px}.bundle-pages li{display:grid;gap:4px;justify-items:center}.bundle-pages img{width:100%;aspect-ratio:3 / 4;object-fit:cover;border-radius:6px;border:1px solid var(--border)}.bundle-tools{display:flex;gap:2px}.bundle-tools button{height:28px;padding:0 8px}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:var(--ground);display:grid;grid-template-rows:auto 1fr}.viewer-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border)}.viewer-title{flex:1 1 160px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-tools{display:flex;align-items:center;gap:6px}.zoom-level{min-width:48px;text-align:center;font-variant-numeric:tabular-nums}.quiet-link{color:var(--text);padding:0 6px}.viewer-body{overflow:auto;padding:12px;display:grid;justify-items:center;align-content:start;gap:12px;-webkit-overflow-scrolling:touch}.viewer-body img,.pdf-page canvas{display:block;max-width:none;background:#fff;border:1px solid var(--border)}.switch{font-size:13px}.tabs{display:none}.dash{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--gap);align-items:stretch}.dash>.panel{align-content:start}.dash>.calendar{grid-column:1 / -1}.c-blu{--tint: #e3ecfa;--tint-ink: #2f62b8}.c-acqua{--tint: #dcf0f1;--tint-ink: #1f7a80}.c-verde{--tint: #e1f2e5;--tint-ink: #2f7d48}.c-oliva{--tint: #edefd9;--tint-ink: #6b7120}.c-sabbia{--tint: #f2ebdf;--tint-ink: #8a6a3c}.c-ambra{--tint: #faefd6;--tint-ink: #9a6208}.c-corallo{--tint: #fbe5df;--tint-ink: #b2462f}.c-rosa{--tint: #f8e4ed;--tint-ink: #a63a6c}.c-grigio{--tint: #eceef1;--tint-ink: #5f6670}.tint-0{--tint: var(--raised);--tint-ink: var(--muted)}.tint-1{--tint: var(--exam-1)}.tint-2{--tint: var(--exam-2)}.tint-3{--tint: var(--exam-3)}.tint-4{--tint: var(--exam-4)}.tint-5{--tint: var(--exam-5)}.now-card{gap:14px}.now-session{display:grid;gap:6px}.now-time{font-size:var(--fs-kpi);font-weight:600;letter-spacing:-.01em;line-height:1.1}.now-time.live{color:var(--data)}.now-title{font-size:18px;font-weight:500;line-height:1.35;overflow-wrap:anywhere}.now-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.now-lead{color:var(--muted)}.now-lead .num{color:var(--text);font-weight:600}.now-big{font-size:20px;font-weight:600}.now-figures{display:flex;flex-wrap:wrap;gap:8px 24px;color:var(--muted)}.now-figures strong{color:var(--text);font-size:var(--fs-kpi);font-weight:600;margin-right:4px}.now-line{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}.now-card .row-actions{margin-top:auto}.warn,.warn strong{color:var(--warning)}.exam-chip{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:var(--radius-chip);background:var(--tint);font-size:13px;font-weight:500}.progress{height:6px;border-radius:3px;background:var(--raised);overflow:hidden}.progress span{display:block;height:100%;background:var(--data);border-radius:3px}.week-figure strong{font-size:var(--fs-kpi);font-weight:600;margin-right:4px}.meter{position:relative;display:flex;height:10px;border-radius:5px;background:var(--raised);overflow:hidden}.meter-done{background:var(--data)}.meter-planned{background:var(--data-soft)}.meter-cap{position:absolute;top:0;bottom:0;width:2px;background:var(--ink)}.legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--muted);font-size:var(--fs-small)}.legend li{display:inline-flex;align-items:center;gap:6px}.key{width:10px;height:10px;border-radius:2px;flex:none}.key-done{background:var(--data)}.key-planned{background:var(--data-soft)}.key-session{background:var(--exam-1);border:1px solid var(--control)}.key-done-session{background:var(--surface);border:1px solid var(--control)}.key-commitment{background:repeating-linear-gradient(135deg,var(--raised) 0 3px,var(--surface) 3px 6px);border:1px solid var(--control)}.key-proposed{background:var(--surface);border:1px dashed var(--muted)}.key-now{height:2px;width:14px;border-radius:1px;background:var(--data)}.todo-row{width:100%;height:auto;min-height:52px;padding:8px 0;background:none;color:var(--text);border:none;border-radius:0;display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:12px;text-align:left;justify-content:stretch;white-space:normal;font-weight:400}.todo-row:hover:not(:disabled){filter:none;background:none}.todo-row:hover .session-title{text-decoration:underline;text-underline-offset:3px}.todo-mark{width:8px;height:8px;border-radius:50%;background:var(--control)}.todo-mark.urgent{background:var(--warning)}.chevron{color:var(--muted);font-size:18px}.exam-line{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:56px}.exam-dot{width:10px;height:10px;border-radius:3px;background:var(--tint);box-shadow:inset 0 0 0 1.5px var(--tint-ink, rgba(10, 10, 10, .12))}.exam-state{display:grid;justify-items:end;gap:2px}.exam-next{grid-column:2 / -1;margin-top:-6px;padding-bottom:10px;color:var(--muted);font-size:13px}.panel.pinned-foot{display:flex;flex-direction:column}.panel-foot{margin-top:auto;display:flex;gap:8px}.colors{display:flex;flex-wrap:wrap;align-items:center;gap:6px;border:none;padding:0}.colors legend{padding:0;margin-bottom:6px;font-weight:500;font-size:13px}.swatch{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 4px;border-radius:50%;border:1px solid transparent;cursor:pointer;font-weight:400}.swatch.none{border-radius:var(--radius-control);padding:0 10px;font-size:13px;color:var(--muted);border-color:var(--control)}.swatch-dot{width:22px;height:22px;border-radius:50%;background:var(--tint);box-shadow:inset 0 0 0 1.5px var(--tint-ink)}.swatch.on{border-color:var(--ink)}.swatch.none.on{color:var(--text);background:var(--raised)}.swatch:has(input:focus-visible){outline:2px solid var(--data);outline-offset:2px}.span-all{grid-column:1 / -1}.commitment-name{display:inline-flex;align-items:center;gap:8px;min-width:0}.session-title .exam-dot{display:inline-block;width:8px;height:8px;margin-right:4px;vertical-align:1px}.actual-line{color:var(--muted);font-size:var(--fs-small)}.timer{display:grid;gap:12px;padding:12px 14px;border-radius:var(--radius-card);background:var(--data-tint)}.timer-figures{display:grid;gap:2px}.timer-clock{font-size:36px;font-weight:600;letter-spacing:-.02em;line-height:1.1;color:var(--data)}.timer-clock.paused{color:var(--muted)}.activity{border:1px solid var(--border);border-radius:var(--radius-card);padding:14px 16px;margin-top:8px;gap:14px}.activity:first-of-type{border-top:1px solid var(--border)}.activity-head{display:flex;justify-content:space-between;align-items:center}.activity fieldset{border:none;padding:0}.activity legend,.field-title{font-weight:500;font-size:13px;padding:0;margin-bottom:6px}.purpose-options{display:flex;flex-wrap:wrap;gap:6px}.purpose-option,.chip{display:inline-flex;align-items:center;height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--control);background:var(--surface);font-weight:400;font-size:13px;cursor:pointer}.purpose-option.on,.chip.on{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}.purpose-option:has(input:focus-visible),.chip:has(input:focus-visible){outline:2px solid var(--data);outline-offset:2px}.covers{display:flex;flex-wrap:wrap;gap:6px}.covers legend{width:100%}.chip-dim{opacity:.75}.duration-range{display:inline-flex;align-items:center;gap:6px}.duration-range input{width:72px;text-align:right}.add-activity{justify-self:start;margin-top:8px}@media(max-width:560px){.criterion{grid-template-columns:minmax(0,1fr)}.figure{padding:14px 16px}.figure.lead strong{font-size:22px}.figures .figure{border-left:none;border-top:1px solid var(--rule)}.figures .figure.lead{grid-column:1 / -1;border-top:none}.figures .figure:nth-child(3){border-left:1px solid var(--rule)}.figures .figure:last-child{grid-column:1 / -1}.outlook-activity{grid-template-columns:minmax(0,1fr);gap:4px}.outlook-hours{justify-items:start;text-align:left}}.deduce-open{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.deduce,.ai-summary{display:grid;gap:12px;padding:14px 16px;border-radius:var(--radius-card);border:1px solid var(--border);background:var(--ground)}.ai-summary{background:var(--data-tint);border-color:var(--data-soft)}.deduce-list{border:none;padding:0;display:grid;gap:6px;max-height:260px;overflow:auto}.deduce-list legend,.deduce .purpose legend{font-weight:500;font-size:13px;padding:0;margin-bottom:6px}.deduce .purpose{border:none;padding:0}.deduce-running{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--data-soft);border-top-color:var(--data);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}.ai-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;background:var(--data-tint);color:var(--data);font-size:12px;font-weight:500;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-suggestion{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}textarea{height:auto;min-height:96px;padding:8px 10px;line-height:1.45;resize:vertical}.wizard{display:grid;gap:16px}.wizard-head{display:grid;gap:12px}.wizard-steps{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--muted);font-size:13px}.wizard-steps li{display:inline-flex;align-items:center;gap:6px}.wizard-steps .num{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:600;background:var(--raised);color:var(--muted)}.wizard-steps li.on{color:var(--text);font-weight:500}.wizard-steps li.on .num{background:var(--primary);color:var(--primary-ink)}.wizard-steps li.done .num{background:var(--data-tint);color:var(--data)}.wizard-body{display:grid;gap:14px}.wizard-body .purpose{border:none;padding:0}.wizard-body .purpose legend{font-weight:500;font-size:13px;padding:0;margin-bottom:6px}.wizard-topics{display:grid;gap:10px}.wizard-topic{display:grid;gap:6px;padding:10px 0;border-top:1px solid var(--rule)}.wizard-topic:first-of-type{border-top:none}.wizard-topic.removed input{text-decoration:line-through;color:var(--muted)}.strategies{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.strategy{display:grid;gap:6px;align-content:start;padding:14px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);cursor:pointer;font-weight:400}.strategy.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.strategy:has(input:focus-visible){outline:2px solid var(--data);outline-offset:2px}.strategy-name{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-weight:600;font-size:15px}.strategy-facts,.strategy-reason{font-size:13px}.wizard-foot{padding-top:8px;border-top:1px solid var(--rule)}.figures{grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:0;padding:0}.figure{display:grid;gap:4px;align-content:start;padding:18px 20px;border-left:1px solid var(--rule)}.figure:first-child{border-left:none}.figure strong{font-size:22px;font-weight:600;letter-spacing:-.01em;white-space:nowrap}.figure.lead strong{font-size:var(--fs-kpi)}.figure .pill{justify-self:start}.weeks{display:grid;margin:0 -2px;grid-auto-flow:column;grid-auto-columns:minmax(44px,1fr);gap:6px;align-items:end;overflow-x:auto;padding:4px 2px 2px}.outlook-week{display:grid;grid-template-rows:16px 140px auto auto;gap:4px;justify-items:center;min-width:0;position:relative}.outlook-week.after-horizon:before{content:"";position:absolute;left:-4px;top:0;bottom:18px;border-left:1px dashed var(--control)}.week-total{font-size:11px;color:var(--muted);white-space:nowrap}.week-bar{width:100%;max-width:40px;height:140px;display:flex;flex-direction:column;justify-content:flex-end;border-radius:4px;background:var(--ground);overflow:hidden}.week-bar .planned{background:var(--tint-ink, var(--data))}.week-bar .projected{background:repeating-linear-gradient(135deg,var(--tint) 0 4px,var(--surface) 4px 8px);box-shadow:inset 0 0 0 1px var(--tint-ink, var(--control))}.week-label{font-size:11px;color:var(--muted);white-space:nowrap}.week-flag{font-size:11px;font-weight:600;padding:1px 6px;border-radius:var(--radius-chip);background:var(--ink);color:var(--surface)}.key-exam-planned{background:var(--tint-ink, var(--data))}.key-exam-projected{background:repeating-linear-gradient(135deg,var(--tint) 0 3px,var(--surface) 3px 6px);box-shadow:inset 0 0 0 1px var(--tint-ink, var(--control))}.week-details{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px 24px;padding-top:8px;border-top:1px solid var(--rule)}.week-detail{display:grid;gap:6px;align-content:start}.week-detail h3{font-size:13px}.week-line{display:grid;grid-template-columns:136px minmax(0,1fr);gap:8px;font-size:13px;padding:3px 0}.week-line>.num:first-child{white-space:nowrap}.week-line .num{color:var(--muted)}.week-line.projected span:last-child{color:var(--muted);font-style:italic}.outlook-activity{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:10px 0;align-items:start}.outlook-hours{display:grid;justify-items:end;gap:2px;text-align:right}.exam-open{font-weight:500;text-decoration:none}.calendar-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px}.calendar-range{color:var(--muted);font-weight:400;margin-left:8px}.calendar-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.segmented{display:inline-flex;padding:2px;gap:2px;border-radius:var(--radius-control);background:var(--raised)}.segmented button{height:30px;padding:0 12px;background:transparent;color:var(--muted);border:1px solid transparent;border-radius:5px}.segmented button:hover:not(:disabled){filter:none;color:var(--text)}.segmented button.on{background:var(--surface);color:var(--text);border-color:var(--border)}.stepper{display:inline-flex;align-items:center;gap:2px}.stepper button{height:32px}.icon-button{width:32px;padding:0;font-size:18px}.timegrid{display:grid;grid-template-columns:44px repeat(var(--days),minmax(0,1fr));column-gap:4px}.tg-day{height:auto;min-height:44px;padding:4px 6px;display:grid;justify-items:start;align-content:start;gap:2px;background:none;color:var(--muted);border:none;border-radius:var(--radius-control);font-weight:400;white-space:normal;text-align:left}.tg-day:hover:not(:disabled){filter:none;background:var(--raised)}.tg-day:disabled{opacity:1;cursor:default}.tg-wd{font-size:var(--fs-small);text-transform:capitalize}.tg-num{font-size:16px;font-weight:600;color:var(--text)}.tg-day.today .tg-num{color:var(--data)}.tg-deadline{font-size:11px;font-weight:600;color:var(--text);background:var(--tint);border-radius:var(--radius-chip);padding:1px 6px;overflow-wrap:anywhere;box-shadow:inset 0 0 0 1px var(--control)}.tg-hours{position:relative}.tg-hours span{position:absolute;right:6px;transform:translateY(-50%);font-size:11px;color:var(--muted)}.tg-hours span:first-child{transform:none}.tg-col{position:relative;border-left:1px solid var(--rule)}.tg-col.past{background:#fafbfc}.tg-rule{position:absolute;left:0;right:0;height:1px;background:var(--rule)}.tg-window{position:absolute;left:0;right:0;background:#f6f8fb}.tg-block{position:absolute;left:2px;right:2px;padding:3px 6px;border-radius:var(--radius-chip);background:var(--tint);border:1px solid rgba(10,10,10,.08);border-left:3px solid var(--tint-ink, transparent);overflow:hidden;display:grid;align-content:start;gap:1px;font-size:12px;line-height:1.3}.tg-block.short{padding-top:1px;padding-bottom:1px}.tg-block-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tg-block-meta{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tg-block.done{background:var(--surface);border-color:var(--control)}.tg-block.done .tg-block-title{color:var(--muted)}.tg-block.skipped{background:var(--surface);border:1px dashed var(--control)}.tg-block.skipped .tg-block-title{color:var(--muted);text-decoration:line-through}.tg-block.proposed{background:var(--surface);border:1px dashed var(--muted)}.tg-block.commitment{background:repeating-linear-gradient(135deg,var(--raised) 0 4px,var(--surface) 4px 8px);border-color:var(--control)}.tg-block.commitment.named{background:repeating-linear-gradient(135deg,var(--tint) 0 4px,var(--surface) 4px 8px);border-color:var(--tint-ink)}.tg-block.commitment.named .tg-block-title{color:var(--tint-ink)}.tg-block.live{background:var(--data-tint);border-color:var(--data);box-shadow:inset 3px 0 0 var(--data)}.tg-block.live .tg-block-title{color:var(--data)}.tg-now{position:absolute;left:-1px;right:0;height:2px;background:var(--data);z-index:2;pointer-events:none}.tg-now:before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--data)}.tg-now span{position:absolute;right:2px;top:-18px;font-size:11px;font-weight:600;color:var(--data);background:var(--surface);padding:0 4px;border-radius:3px}.timegrid.single .tg-block{left:6px;right:6px;padding:4px 10px;font-size:13px}.month{display:grid;gap:4px}.month-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.month-head span{font-size:var(--fs-small);color:var(--muted);padding:0 6px;text-transform:capitalize}.month-cell{height:auto;min-height:96px;padding:6px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:2px;background:var(--surface);color:var(--text);border:1px solid var(--rule);border-radius:var(--radius-control);font-weight:400;white-space:normal;text-align:left;overflow:hidden}.month-cell:hover:not(:disabled){filter:none;border-color:var(--control)}.month-cell.other{background:var(--ground);color:var(--muted)}.month-cell.past .month-item{opacity:.7}.month-num{font-weight:600;font-size:13px;width:24px;height:24px;display:grid;place-items:center;border-radius:50%}.month-cell.today .month-num{background:var(--data);color:#fff}.month-item,.month-exam{font-size:11px;line-height:1.35;padding:1px 4px;border-radius:3px;background:var(--tint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-item.done{background:var(--surface);color:var(--muted);box-shadow:inset 0 0 0 1px var(--rule)}.month-item.skipped{background:var(--surface);color:var(--muted);text-decoration:line-through}.month-exam{font-weight:600;box-shadow:inset 0 0 0 1px var(--control)}.month-more,.month-total{font-size:11px;color:var(--muted)}.month-total{margin-top:auto}.month-dots{display:none}.cal-legend{padding-top:4px}@media(max-width:900px){.shell{grid-template-columns:minmax(0,1fr);align-content:start}.sidebar{display:none}.topbar{display:flex;position:sticky;top:0;z-index:10;height:52px;align-items:center;gap:12px;padding:0 16px;background:var(--ground);border-bottom:1px solid var(--border)}.topbar-title{font-weight:600;flex:1}.sheet{display:grid;align-content:start;gap:16px;position:fixed;top:52px;right:0;bottom:0;left:0;z-index:9;background:var(--ground);padding:16px}.sheet nav a{height:48px}.canvas{padding:20px 16px 96px}.bottombar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;z-index:10;background:var(--surface);border-top:1px solid var(--border);padding:4px 4px calc(4px + env(safe-area-inset-bottom))}.bottombar a{flex-direction:column;height:52px;gap:2px;justify-content:center;padding:0;font-size:11px}.bottombar a .count{position:absolute;margin:-28px 0 0 22px}.bottombar a{position:relative}.split,.setting,.dash{grid-template-columns:minmax(0,1fr)}.exam-row{grid-template-columns:minmax(0,1fr) auto}.figures{grid-template-columns:repeat(2,minmax(0,1fr))}.figure:nth-child(3){border-left:none}.figure:nth-child(n+3){border-top:1px solid var(--rule)}.exam-facts{grid-column:1 / -1;grid-row:2;grid-template-columns:repeat(2,minmax(0,1fr))}.page-title{align-items:flex-start}h1{font-size:22px}}@media(max-width:640px){.month-cell{min-height:56px;padding:4px;align-items:center}.month-item,.month-more,.month-total,.month-exam{display:none}.month-dots{display:flex;gap:3px;flex-wrap:wrap;justify-content:center}.month-dots i{width:6px;height:6px;border-radius:50%;background:var(--tint);box-shadow:inset 0 0 0 1px #0a0a0a40}.month-dots i.done{background:var(--surface)}.month-cell.has-exam .month-num{box-shadow:inset 0 0 0 1.5px var(--ink)}.timegrid{grid-template-columns:32px repeat(var(--days),minmax(0,1fr));column-gap:2px}.timegrid.week .tg-block{padding:0}.timegrid.week .tg-block-title,.timegrid.week .tg-block-meta{display:none}.timegrid.week .tg-deadline{font-size:0;padding:0;width:8px;height:8px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--ink)}.tg-day{padding:4px 2px}.tg-now span{display:none}.calendar-tools{width:100%;justify-content:space-between}}@media(max-width:480px){.session-line{grid-template-columns:84px minmax(0,1fr)}.session-line .pill{grid-column:2;justify-self:start}.criterion{grid-template-columns:minmax(0,1fr) 64px 64px}.criterion button{grid-column:3}.row-actions button{flex:1}}
