: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;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}.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:flex;justify-content:space-between;align-items:center;gap:12px;min-height:60px}.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) 76px 76px 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}@media(max-width:900px){.shell{grid-template-columns:minmax(0,1fr)}.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{grid-template-columns:minmax(0,1fr)}.page-title{align-items:flex-start}h1{font-size:22px}}@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}}
