:root{
  --bt-bg:#f4f7fa;--bt-surface:#fff;--bt-elevated:#fff;--bt-border:#dbe3ea;
  --bt-text:#142536;--bt-muted:#61758a;--bt-accent:#1264a3;--bt-accent-strong:#0b4676;
  --bt-success:#16804a;--bt-warning:#a76712;--bt-radius:14px;
  --bt-shadow:0 12px 34px rgba(19,48,75,.07)
}
body{background:var(--bt-bg);color:var(--bt-text)}
.card,.item,.progress-card,.library-card{border-color:var(--bt-border);border-radius:var(--bt-radius);box-shadow:var(--bt-shadow)}
.btn{border-radius:9px;box-shadow:none}.btn.primary{background:var(--bt-accent);border-color:var(--bt-accent);background-image:none}.btn.green{background:var(--bt-success);background-image:none}
.badge.skill{background:#edf4f8;color:#244b66;border:1px solid #d5e3ec;padding:4px 8px;font-size:11px;letter-spacing:.02em;text-transform:none}
.exercise-skill-row{display:flex;gap:5px;flex-wrap:wrap;margin:7px 0}

/* Home pubblica: ritmo editoriale e prodotto reale, senza banner o decorazioni gratuite. */
.beta-banner{display:none!important}.public-view{background:#f5f7f8}.public-nav{border-bottom:1px solid #dce3e7;background:rgba(250,252,253,.95)}
.public-hero{max-width:1240px;padding:88px 24px 70px;gap:64px}.public-hero h1{color:#11293d;font-size:clamp(44px,5.6vw,76px);line-height:.96;max-width:760px}.public-hero p{color:#536b7c;max-width:680px}
.public-kicker{color:var(--bt-accent);letter-spacing:.17em}.hero-demo{padding:16px;border-radius:20px;background:#fff;border:1px solid #d9e2e8;box-shadow:0 24px 64px rgba(20,53,77,.12)}.hero-demo:before{display:none}.demo-rating{background:#123c5c;border-radius:14px}.demo-focus-row{border-radius:10px}
.public-section{max-width:1180px;padding:72px 24px}.public-section h2{font-size:clamp(30px,4vw,46px);letter-spacing:-.035em;color:#142b3d}.public-section-lead{max-width:720px;color:#667b8b}
.feature-grid{gap:0;border-top:1px solid #dbe3e8;border-bottom:1px solid #dbe3e8}.feature-card{border:0;border-right:1px solid #dbe3e8;border-radius:0;box-shadow:none;background:transparent;padding:28px}.feature-card:last-child{border-right:0}.feature-icon{font-size:20px;filter:grayscale(1)}
.public-cta{background:#123c5c;border-radius:0;box-shadow:none}.public-footer{border-top:1px solid #dbe3e8}

/* Builder authoring: il tavolo usa il massimo rettangolo disponibile. */
.modal.builder-modal .modal-card{width:100vw;max-width:100vw;height:100vh;max-height:100vh;border-radius:0;overflow:hidden}
.premium-builder-header{padding:8px 14px}.premium-toolbar{padding:6px 10px;top:51px}.premium-tool{min-height:36px;padding:6px 10px}
.premium-builder-shell{height:calc(100vh - 98px);min-height:0;grid-template-columns:164px minmax(0,1fr) 248px}
.premium-builder-left,.premium-builder-right{padding:10px;overflow:auto}.premium-stage{min-height:0;padding:2px}.premium-table-wrap{height:100%;display:flex;align-items:center;justify-content:center;padding:2px}
.premium-table-wrap svg.beyond-table-svg{width:min(100%,calc((100vh - 112px)*1.8036));height:auto;max-width:100%;max-height:calc(100vh - 112px);object-fit:contain}

/* Una cornice condivisa per tutte le scene canoniche. */
.canonical-diagram-visual,.diagram-view-canvas,.builder-preview{background:transparent!important;border:0!important;box-shadow:none!important}
.canonical-diagram-full svg,.diagram-view-canvas svg{width:100%;height:auto;display:block}.canonical-diagram-thumbnail{aspect-ratio:1616/896;display:flex;align-items:center;overflow:hidden}.canonical-diagram-thumbnail svg{width:100%;height:100%;display:block}
.assignment-thumb.canonical-assignment-thumb{width:104px;min-width:104px}.library-card-image{height:132px;background:#eef2f5}.library-card-image .canonical-diagram-thumbnail{width:100%;height:100%}.demo-exercise-visual .canonical-diagram-thumbnail{width:100%;height:100%}

/* Progressi: griglia leggera, metriche leggibili, stato vuoto esplicativo. */
.progress-grid{gap:18px}.progress-card{padding:18px}.progress-card .metrics{gap:1px;background:#dfe7ed;border-radius:10px;overflow:hidden}.progress-card .metric{border:0;border-radius:0;background:#f8fafb;padding:12px}.progress-card .chart-wrap{height:230px!important;border-color:#e1e8ed;background:#fbfcfd;padding:12px}.progress-card .bar{height:7px;background:#e5ebef}.progress-card .bar>span{background:var(--bt-accent)}.chart-legend{padding-top:4px}.legend-series{background:var(--bt-accent)}
.progress-empty{padding:34px;border:1px dashed #cbd7df;border-radius:14px;background:#fafcfd;text-align:center;color:var(--bt-muted)}

:focus-visible{outline:3px solid rgba(18,100,163,.3);outline-offset:2px}
@media(max-width:1050px){.modal.builder-modal .modal-card{overflow:auto}.premium-builder-shell{grid-template-columns:140px minmax(0,1fr);height:auto;min-height:calc(100vh - 98px)}.premium-builder-right{max-height:220px}.feature-grid{grid-template-columns:1fr}.feature-card{border-right:0;border-bottom:1px solid #dbe3e8}}
@media(max-width:700px){.public-hero{padding:52px 18px 42px;gap:28px}.public-section{padding:48px 18px}.premium-builder-shell{display:block;height:auto;overflow:auto}.premium-stage{height:auto}.premium-table-wrap{height:auto}.premium-table-wrap svg.beyond-table-svg{height:auto}.assignment-thumb.canonical-assignment-thumb{width:82px;min-width:82px}}
