:root {
    color-scheme: light;
    font-family: Arial, Helvetica, sans-serif;
    color: #181818;
    background: #f5f5f2;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; }
a { color: #184f74; }
button, input, select, textarea { font: inherit; }
main { min-height: 100vh; }

.page-shell,
.cubo-page {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;
    padding: 24px 0 48px;
}
.page-shell--narrow { max-width: 720px; }
.page-heading,
.face-editor__heading,
.cubo-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.eyebrow { margin: 0 0 4px; color: #555; }
.page-heading h1, .cubo-heading h1 { margin: 0; }
.page-user-name { margin: 6px 0 0; font-size: 20px; line-height: 1.2; }
.page-heading__actions { display: flex; align-items: center; gap: 12px; }
.page-heading__actions form { margin: 0; }
.button,
button {
    display: inline-block;
    border: 2px solid #222;
    border-radius: 0;
    background: #fff;
    color: #111;
    padding: 9px 14px;
    text-decoration: none;
    cursor: pointer;
}
.button:hover, button:hover { background: #ececec; }
.panel { border: 2px solid #222; background: #fff; padding: 20px; }
.compact-form { display: grid; gap: 16px; }
.field-label, label { display: block; font-weight: 700; margin-bottom: 7px; }
.field-block { border-bottom: 1px solid #c9c9c4; padding: 4px 0 6px; }
.field-block:last-child { border-bottom: 0; }
input[type="text"], input[type="email"], input[type="password"],
input[type="number"], select, textarea {
    width: 100%;
    border: 2px solid #555;
    border-radius: 0;
    background: #fff;
    padding: 9px 10px;
}
textarea { resize: vertical; }
.table-wrap { overflow-x: auto; background: #fff; border: 2px solid #222; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th, .data-table td { text-align: left; padding: 10px; border-bottom: 1px solid #aaa; }
.data-table th { background: #e9e9e5; }
.docente-elaborati-table__feedback,
.docente-elaborati-table__actions { width: 1%; white-space: nowrap; }
.docente-elaborati-table th.docente-elaborati-table__feedback,
.docente-elaborati-table td.docente-elaborati-table__feedback { text-align: center; }
.docente-elaborati-table__actions a { color: #8d2424; }

.project-bar {
    display: flex;
    align-items: stretch;
    border: 2px solid #222;
    background: #fff;
    margin-bottom: 22px;
}
.project-bar > * { flex: 0 0 auto; }
.project-bar > span,
.project-bar > details {
    display: flex;
    align-items: center;
    min-height: 42px;
    padding: 7px 10px;
    border-left: 1px solid #222;
}
.project-bar > :first-child { border-left: 0; }
.project-bar > .project-bar__title { flex: 1 1 auto; min-width: 70px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-weight: 700; background: #fff; }
.project-tab { font-weight: 700; }
.project-bar > a {
    display: flex;
    align-items: center;
    min-height: 42px;
    padding: 7px 10px;
    border-left: 1px solid #222;
    color: #111;
    text-decoration: none;
}
.project-tab--preview { background: #f5f5f2; }
.project-tab--active { background: #dbeaf4; }
.cube-view-switcher { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 24px; margin-top: 5px; font-size: 15px; }
.cube-view-switcher__group { display: inline-flex; align-items: center; gap: 7px; }
.cube-view-switcher__active { padding: 2px 7px; background: #dbeaf4; font-weight: 700; }
.project-tab--disabled { color: #777; }
.project-details { position: relative; justify-content: center; }
.project-details summary { cursor: pointer; list-style: none; font-weight: 700; }
.project-details dl {
    position: absolute;
    z-index: 10;
    right: 0;
    top: 36px;
    width: 300px;
    margin: 0;
    padding: 14px;
    border: 2px solid #222;
    background: #fff;
    box-shadow: 0 8px 22px rgba(0,0,0,.12);
}
.project-details dt { font-weight: 700; }
.project-details dd { margin: 0 0 9px; }
.project-menu dl { left: 0; right: auto; }
.project-menu > summary, .project-info > summary { white-space: nowrap; }
.project-menu__wide { grid-column: 1 / -1; }
.project-session-entry > summary { color: #07527d; text-decoration: underline; cursor: pointer; font-weight: 400; }
.project-session-entry form { margin-top: 8px; }
.project-session-entry label { display: block; margin-bottom: 5px; font-weight: 700; }
.project-session-entry label small { display: block; margin-top: 2px; font-weight: 400; }
.project-session-entry input { display: block; margin-bottom: 7px; }
.cube-next { font-size: 40px; color: #555; padding: 0 12px; text-decoration: none; }
.cube-next:hover { color: #184f74; }
.cube-scroll { overflow-x: auto; padding: 8px 0 24px; }
.cube-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(200px, 1fr));
    grid-template-rows: repeat(3, 165px);
    grid-template-areas:
        ". fac04 . ."
        "fac02 fac01 fac03 fac06"
        ". fac05 . .";
    min-width: 800px;
    width: 100%;
}
.cube-face {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-width: 0;
    overflow: hidden;
    border: 2px solid #222;
    margin-right: -2px;
    margin-bottom: -2px;
    background: #fff;
    color: #111;
    padding: 12px;
    text-decoration: none;
}
.cube-face h2 { margin: 0; font-size: 18px; }
.cube-face p { margin: 8px 0 0; line-height: 1.35; }
.cube-face--active { background: #e9f3f8; }
.cube-face--active:hover { background: #dcecf4; }
.cube-face--fac01 { grid-area: fac01; }
.cube-face--fac02 { grid-area: fac02; }
.cube-face--fac03 { grid-area: fac03; }
.cube-face--fac04 { grid-area: fac04; }
.cube-face--fac05 { grid-area: fac05; }
.cube-face--fac06 { grid-area: fac06; }
.cube-face--fac06,
.cube-face--fac12 { margin-right: 0; }
.cube-grid--external {
    grid-template-areas:
        ". fac10 . ."
        "fac08 fac07 fac09 fac12"
        ". fac11 . .";
}
.cube-face--fac07 { grid-area: fac07; }
.cube-face--fac08 { grid-area: fac08; }
.cube-face--fac09 { grid-area: fac09; }
.cube-face--fac10 { grid-area: fac10; }
.cube-face--fac11 { grid-area: fac11; }
.cube-face--fac12 { grid-area: fac12; }
.cube-face--empty { background: #fafafa; }
.external-face-summary { min-height: 0; overflow: hidden; margin-top: 8px; }
.external-face-summary p { margin: 2px 0; }
.external-face-summary__title { font-size: 14px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.external-face-summary__sense { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; font-size: 12px; font-weight: 400; }
.fac08-times { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #aaa; border-bottom: 1px solid #aaa; }
.fac08-times p { display: flex; flex-direction: column; gap: 4px; margin: 0; padding: 9px 12px; border-left: 1px solid #ccc; }
.fac08-times p:first-child { border-left: 0; }
.fac08-resource-checks { margin-top: 16px; }
.fac08-resource-group { padding: 7px 0; border-bottom: 1px solid #ccc; }
.fac08-resource-group h4 { margin: 0 0 5px; }
.fac08-resource-check { display: flex; align-items: center; gap: 8px; margin: 3px 0; font-weight: 400; }
.fac08-resource-check input { width: auto; }
.fac08-empty { margin: 3px 0; color: #666; font-size: 13px; }
.closure-page { max-width: 760px; margin: 28px auto; }
.closure-page form { display: grid; gap: 12px; }
.closure-page input[type="date"] { width: min(260px, 100%); }
.closure-page dialog { max-width: min(650px, calc(100vw - 32px)); border: 1px solid #555; }
.closure-page dialog::backdrop { background: rgba(0, 0, 0, .28); }
.closure-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }
.post-grid { display: grid; grid-template-columns: 16% 28% 32% 24%; border: 1px solid #777; }
.post-grid > div { padding: 8px; border-left: 1px solid #aaa; font-weight: 700; }
.post-grid > div:first-child { border-left: 0; }
.post-toolbar { display:flex; gap:1rem; margin:.75rem 0; }
.post-filter, .post-new-activity, .post-move-controls button { border:0; background:transparent; color:#07527d; cursor:pointer; padding:.2rem; }
.post-filter.is-active { font-weight:700; border-bottom:2px solid currentColor; }
.post-page[data-readonly="true"] .post-filter { pointer-events: auto !important; background: transparent !important; color: #07527d !important; cursor: pointer !important; }
.post-activity[hidden] { display:none; }
.project-action-link { border:0; padding:0; background:transparent; color:#07527d; font:inherit; text-decoration:underline; cursor:pointer; }
.post-phase { border:1px solid #777; border-bottom:0; }
.post-phase:last-child { border-bottom:1px solid #777; }
.post-phase h2 { margin:0; padding:.35rem .6rem; background:#edf4f6; font-size:1rem; text-transform:uppercase; }
.post-row { display:grid; grid-template-columns:20fr 40fr 20fr 40fr; border-top:1px solid #bbb; }
.post-row > div { min-width:0; padding:.55rem; border-left:1px solid #bbb; }
.post-row > div:first-child { border-left:0; }
.post-head { font-weight:700; background:#f7f7f5; }
.post-head-label { display: inline-flex; align-items: flex-start; gap: 5px; position:relative; }
.post-head-label > .inline-help { flex: 0 0 auto; }
.post-head .inline-help > p {
    position:absolute;
    z-index:20;
    top:calc(100% + 5px);
    left:0;
    width:min(480px, calc(100vw - 48px));
    box-sizing:border-box;
    margin:0;
    padding:9px 11px;
    border-left:3px solid #7d9daf;
    background:#eef3f5;
    color:#222;
    line-height:1.35;
    box-shadow:0 2px 7px rgba(0, 0, 0, .18);
}
.post-head > div:last-child .inline-help > p { right:0; left:auto; }
.post-data-cell { display:flex; flex-direction:column; gap:.45rem; }
.post-position { font-size:1.05rem; }
.post-code { color:#666; font-size:.85rem; }
.post-time-field { font-size:.9rem; font-weight:400; }
.post-data-cell select, .post-data-cell input { max-width:100%; }
.post-state { border:0; background:transparent; font:inherit; font-weight:400; padding:.1rem 1.2rem .1rem 0; color:inherit; }
.post-state option { font-weight:400; }
.post-effective-time { width:4.5rem; }
.post-pre-data summary { color:#07527d; cursor:pointer; }
.post-pre-data div { margin-top:.35rem; font-size:.82rem; line-height:1.35; overflow-wrap:anywhere; }
.save-status { min-height:1em; color:#396c50; font-size:.78rem; }
.post-move-controls { display:flex; gap:.5rem; }
.post-move-controls button:disabled { color:#aaa; cursor:default; }
.post-new-activity { margin:.35rem .55rem; }
.post-empty { margin:.5rem; color:#666; }
.post-text-cell textarea { width:100%; min-height:10rem; resize:vertical; border:0; border-bottom:1px solid #999; background:#fff; font:inherit; font-weight:400; box-sizing:border-box; margin-top:.35rem; }
.post-description-cell { display:flex; flex-direction:column; }
.post-description-cell textarea { flex:1; min-height:20rem; }
.post-text-cell textarea:disabled { background:#ededeb; color:#777; cursor:not-allowed; }
.theory-connections { margin-top:.7rem; padding-top:.55rem; border-top:1px solid #ccc; }
.theory-heading { display:flex; align-items:center; gap:.3rem; font-size:.9rem; }
.theory-heading > span { font-size:.8rem; color:#666; }
.inline-help { display:inline; position:relative; }
.inline-help summary { cursor:pointer; list-style:none; color:#777; }
.inline-help p { font-weight:400; margin:.35rem 0; font-size:.84rem; }
.theory-point { display:grid; grid-template-columns:auto 1fr auto; gap:.3rem; align-items:center; margin:.25rem 0; }
.theory-point input { width:100%; border:0; border-bottom:1px solid #aaa; background:transparent; font:inherit; }
.theory-add, .theory-remove { border:0; background:transparent; color:#07527d; cursor:pointer; }
.post-evaluation { border-bottom:1px solid #bbb; padding:.35rem 0 .6rem; margin-bottom:.45rem; }
.post-evaluation textarea, .post-new-evaluation textarea { width:100%; min-height:3.5rem; box-sizing:border-box; border:0; border-bottom:1px solid #aaa; font:inherit; resize:vertical; }
.post-evaluation label, .post-new-evaluation label { display:block; margin:.3rem 0; font-size:.88rem; }
.post-evaluation .post-va-outcome-label, .post-new-evaluation .post-va-outcome-label { font-weight:700; }
.post-evaluation .post-va-outcome-label textarea, .post-new-evaluation .post-va-outcome-label textarea { font-weight:400; }
.post-new-evaluation input,
.post-new-evaluation select,
.post-new-evaluation option,
.post-new-evaluation textarea { font-weight:400; }
.post-evaluation select, .post-new-evaluation select { border:0; border-bottom:1px solid #aaa; background:transparent; font:inherit; font-weight:400; max-width:100%; }
.post-va-history summary, .post-new-evaluation summary { cursor:pointer; color:#07527d; }
.post-va-history p { margin:.3rem 0; font-size:.86rem; font-weight:400; }
.post-va-code { display:flex; justify-content:space-between; align-items:center; }
.post-va-delete, .post-va-create { border:0; background:transparent; color:#07527d; cursor:pointer; padding:.2rem 0; }
.post-new-evaluation { margin-top:.45rem; }
[data-readonly="true"] .element-add,
[data-readonly="true"] .element-delete,
[data-readonly="true"] .pre-delete-activity,
[data-readonly="true"] .pre-add-activity,
[data-readonly="true"] .pre-move-actions,
[data-readonly="true"] .pre-remove-link,
[data-readonly="true"] .pre-new-resource,
[data-readonly="true"] .pre-resource-actions { display: none !important; }
[data-readonly="true"] input:not(.feedback-control):not(.appunti-control),
[data-readonly="true"] textarea:not(.feedback-control):not(.appunti-control),
[data-readonly="true"] select:not(.feedback-control):not(.appunti-control),
[data-readonly="true"] button:not(.info-toggle):not(.feedback-control):not(.appunti-control):not(.post-filter) {
    pointer-events: none !important;
    background-color: #f2f2f2 !important;
    color: #555 !important;
}
.readonly-notice { margin: 8px 0; padding: 7px 10px; border-left: 4px solid #555; background: #f0f1f1; font-weight: 700; }
.fac09-summary-label { margin: 4px 0 1px !important; font-size: 11px; font-weight: 700; }
.fac09-distributions { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.fac09-distributions section { border-top: 1px solid #aaa; padding-top: 7px; }
.fac09-distributions h3 { margin: 0 0 6px; }
.fac09-distributions ul { list-style: none; margin: 0; padding: 0; }
.fac09-distributions li { display: flex; justify-content: space-between; gap: 15px; padding: 4px 0; border-bottom: 1px solid #ddd; }
.fac10-table-scroll { overflow-x: auto; margin: 0 0 18px; }
.fac10-table { width: 100%; min-width: 620px; border-collapse: collapse; background: #fff; }
.fac10-table caption { padding: 6px 0; text-align: left; font-size: 16px; font-weight: 700; }
.fac10-table th, .fac10-table td { padding: 7px 9px; border: 1px solid #bbb; text-align: left; vertical-align: top; }
.fac10-table thead th { background: #f0f2f3; }
.fac10-table tbody th { width: 90px; white-space: nowrap; }
.fac10-element { display: inline-block; position: relative; margin: 0 8px 3px 0; }
.fac10-element summary { cursor: pointer; color: #14567d; font-weight: 700; }
.fac10-element__content { position: relative; z-index: 2; min-width: 230px; max-width: 430px; margin-top: 4px; padding: 8px; border: 1px solid #aaa; background: #fff; box-shadow: 0 3px 10px rgba(0,0,0,.12); }
.fac10-element__content p { margin: 0 0 7px; font-size: 12px; }
.fac10-element__content p:last-child { margin-bottom: 0; }
.fac10-element__content strong, .fac10-element__content span { display: block; }
.fac10-empty { color: #666; font-style: italic; }
.reference-choices { display: grid; gap: 7px; }
.reference-choice { padding: 6px 0; border-bottom: 1px solid #ddd; }
.reference-choice > label:first-child { font-weight: 400; }
.reference-precision { display: grid; grid-template-columns: 145px minmax(0, 1fr); align-items: center; gap: 8px; margin: 6px 0 0 24px; color: #555; font-size: 12px; }
.reference-precision input { width: 100%; border: 0; border-bottom: 1px solid #aaa; background: transparent; font-weight: 400; }
.reference-precision input:disabled { border-bottom-color: #ddd; color: #999; }
.is-hidden { display: none !important; }
.cubo-page { display: flex; flex-direction: column; }
.cubo-page > #fac05-editor { order: 1; }
.cubo-page > #fac06-editor { order: 2; }
.fac11-table { max-width: 900px; }
.fac11-references { margin: 0 0 18px; }
.fac11-references h3 { margin: 0 0 7px; }
.fac11-references article { padding: 6px 0; border-bottom: 1px solid #ddd; }
.fac11-references h4, .fac11-references p { margin: 0; }
.fac11-references p { margin-top: 3px; color: #444; }
.cube-face-summary--lines { white-space: pre-line; font-size: 12px; font-weight: 400; }
.cube-face .prototype-row,
.external-face-summary > p,
.operational-hybrid-summary > p:not(.prototype-row) {
    padding-left: 12px;
    text-indent: -12px;
}
.cube-face .prototype-row::before,
.external-face-summary > p::before,
.operational-hybrid-summary > p:not(.prototype-row)::before {
    content: "– ";
}
.cube-face .prototype-row:has(strong) {
    padding-left: 0;
    text-indent: 0;
}
.cube-face .prototype-row:has(strong)::before {
    content: none;
}
.external-face-summary > .fac09-summary-label {
    padding-left: 0;
    text-indent: 0;
}
.external-face-summary > .fac09-summary-label::before {
    content: none;
}
.summary-prototypes { max-width: 1280px; margin: 0 auto; }
.prototype-variant { margin: 26px 0 42px; border-top: 3px solid #222; padding-top: 10px; }
.prototype-cube-scroll { overflow-x: auto; padding: 8px 0 12px; }
.prototype-cube { grid-template-rows: repeat(3, 165px); }
.prototype-cube .cube-face { height: 165px; overflow: hidden; justify-content: flex-start; }
.prototype-focus-face { background: #fff9df; }
.prototype-face-body { min-height: 0; overflow: hidden; margin-top: 7px; }
.prototype-row { overflow: hidden; margin: 2px 0 !important; white-space: nowrap; text-overflow: ellipsis; font-size: 12px; line-height: 1.25 !important; }
.cube-face .prototype-row strong { font-weight: 700; }
.prototype-row--two-lines, .prototype-row--three-lines { display: -webkit-box; white-space: normal; -webkit-box-orient: vertical; }
.prototype-row--two-lines { -webkit-line-clamp: 2; }
.prototype-row--three-lines { -webkit-line-clamp: 3; }
.conflict-summary-row { display: grid; grid-template-columns: max-content 8px minmax(0, 1fr); min-width: 0; margin: 2px 0 5px; font-size: 12px; line-height: 1.25; }
.conflict-summary-row__code { font-weight: 700; }
.conflict-summary-row__dash { text-align: center; }
.conflict-summary-row__text { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.prototype-codes { font-size: 13px; font-weight: 700; line-height: 1.35; }
.prototype-more { color: #555; font-size: 11px; font-weight: 700; margin: 2px 0 !important; }
.prototype-group { display: grid; grid-template-columns: 54px minmax(0, 1fr); column-gap: 5px; align-items: baseline; }
.prototype-group-title { grid-row: 1 / span 3; font-size: 11px; color: #555; }
.prototype-group .prototype-row, .prototype-group .prototype-more, .prototype-group .prototype-empty { grid-column: 2; }
.prototype-empty { color: #777; font-size: 11px; }
.prototype-hybrid, .operational-hybrid-summary { min-width: 0; overflow: hidden; margin-top: 7px; }
.operational-hybrid-summary .prototype-row { font-size: 12px; }
.prototype-secondary-summary { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 4; font-size: 12px; }
.prototype-notes { display: grid; grid-template-columns: minmax(125px, 165px) 1fr; gap: 5px 12px; margin: 10px 0 0; }
.prototype-notes dt { font-weight: 700; }
.prototype-notes dd { margin: 0; }

.pre-prototype-note { max-width: 850px; margin: 4px 0 8px; color: #555; font-size: 13px; }
.pre-grid-scroll { overflow-x: auto; margin-top: 8px; padding-bottom: 12px; }
.pre-grid { min-width: 980px; border: 1px solid #777; background: #fff; }
.pre-phase-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 28px;
    padding: 2px 9px;
    border-top: 1px solid #777;
    background: #e6edf0;
}
.pre-phase-row:first-child { border-top: 0; }
.pre-phase-row h2 { margin: 0; font-size: 14px; text-transform: uppercase; }
.pre-phase-activities { display: contents; }
.pre-grid__row--blank { min-height: 190px; padding-bottom: 0; }
.pre-grid__row--blank .pre-cell--meta { display: flex; flex-direction: column; }
.pre-activity-position { font-size: 18px; }
.pre-meta-control { display: flex; align-items: center; gap: 3px; margin: 7px 0 0; font-weight: 400; }
.pre-time-input { width: 38px !important; border: 0 !important; border-bottom: 1px solid #999 !important; padding: 1px 2px !important; background: transparent !important; text-align: right; }
.pre-time-input::-webkit-inner-spin-button { opacity: .45; }
.pre-type-control { flex-wrap: wrap; }
.pre-type-select { width: 100%; border: 0; padding: 2px 0; background: transparent; font-size: 12px; white-space: nowrap; }
.pre-type-control .inline-info { flex-basis: 100%; margin-top: 3px; }
.pre-meta-control .inline-info summary { width: 17px; height: 17px; font-size: 11px; }
.pre-activity-code { margin-top: 2.4em; color: #777; font-size: 11px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.pre-add-activity {
    align-self: flex-start;
    margin-top: auto;
    margin-bottom: 0;
    border: 0;
    padding: 3px 0;
    background: transparent;
    color: #184f74;
    font-size: 12px;
    font-weight: 700;
}
.pre-delete-activity {
    align-self: flex-start;
    margin-top: auto;
    border: 0;
    padding: 3px 0;
    background: transparent;
    color: #8d2424;
    font-size: 11px;
    cursor: pointer;
}
.pre-move-actions { display: flex; gap: 5px; margin-top: 7px; }
.pre-move-activity { border: 0; padding: 1px 4px; background: transparent; color: #184f74; font-size: 15px; cursor: pointer; }
.pre-move-activity:hover:not(:disabled) { background: #e9f1f5; }
.pre-move-activity:disabled { color: #bbb; cursor: default; }
.pre-delete-activity + .pre-add-activity { margin-top: 2px; }
.pre-delete-activity:hover { text-decoration: underline; }
.pre-cell--meta { padding-bottom: 0; }
.pre-add-activity { margin-bottom: 0; }
.pre-text-cell { padding: 5px 8px; }
.pre-text-cell textarea,
.pre-description-cell > textarea {
    height: 180px;
    min-height: 180px;
    border: 0;
    padding: 4px;
    background: transparent;
    line-height: 1.35;
    resize: vertical;
}
.pre-description-cell { padding: 5px 8px; }
.pre-description-options { display: grid; max-width: 100%; box-sizing: border-box; gap: 7px; padding: 3px 6px 7px; border-top: 1px solid #d4d4cf; background: #f4f4f2; font-size: 12px; overflow: hidden; }
.pre-description-options label { font-weight: 700; }
.pre-option-row,
.pre-short-reason { display: grid; grid-template-columns: minmax(155px, auto) 1fr; align-items: center; gap: 8px; }
.pre-option-row small { color: #666; font-size: inherit; font-weight: 400; }
.pre-description-options select,
.pre-description-options input { width: 100%; border: 0; border-bottom: 1px solid #aaa; padding: 2px 0; background: transparent; font: inherit; }
.pre-short-reason { color: #555; font-weight: 400 !important; }
.pre-option-row--highlight,
.pre-materials-row { min-height: 31px; }
.pre-simulation-cell { display: block; overflow: hidden; }
.pre-materials-area { display: block; width: 100%; max-width: 100%; box-sizing: border-box; padding: 3px 6px 7px; border-top: 1px solid #d4d4cf; background: #f4f4f2; overflow: hidden; }
.pre-materials-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #555; font-size: 12px; }
.pre-materials-row span { color: #777; font-weight: 400; }
.pre-materials-row button,
.pre-resource-actions button { border: 0; padding: 1px 3px; background: transparent; color: #184f74; font: inherit; font-weight: 700; cursor: pointer; }
.pre-resource-list { display: grid; gap: 4px; margin-top: 5px; }
.pre-resource-item { display: grid; min-width: 0; grid-template-columns: auto minmax(0, 1fr) auto; gap: 3px 7px; align-items: baseline; padding-top: 4px; border-top: 1px solid #ddd; font-size: 12px; overflow-wrap: anywhere; }
.pre-resource-attachments { grid-column: 2 / -1; display: grid; color: #666; }
.pre-external-link a { color: #184f74; text-decoration: underline; }
.pre-resource-actions { grid-column: 2 / -1; display: flex; gap: 9px; color: #184f74; font-weight: 700; }
.pre-resource-actions label { cursor: pointer; }
.pre-existing-row { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 7px; margin-top: 6px; color: #666; font-size: 11px; }
.pre-existing-resource { width: 100%; min-width: 0; max-width: 100%; border: 0; border-bottom: 1px solid #aaa; background: transparent; font: inherit; }
.pre-connections-cell { padding: 5px 6px; font-size: 11px; overflow: hidden; }
.pre-connections details { border-bottom: 1px solid #ddd; padding: 3px 0; }
.pre-connections summary { cursor: pointer; font-weight: 700; }
.pre-connection-options span,
.pre-selected-link span,
.pre-va-item { font-weight: 400; }
.pre-connection-options { display: grid; gap: 3px; margin-top: 4px; }
.pre-connection-options label { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 3px; }
.pre-selected-link { position: relative; padding: 4px 15px 4px 0; border-bottom: 1px solid #ddd; overflow-wrap: anywhere; }
.pre-remove-link { position: absolute; top: 1px; right: 0; border: 0; background: transparent; cursor: pointer; }
.pre-conflict-phase { width: 100%; margin-top: 3px; border: 0; border-bottom: 1px solid #aaa; background: transparent; font-size: 11px; }
.pre-evaluation label { display: grid; gap: 2px; margin-top: 4px; }
.pre-evaluation .pre-va-method-row { margin-top: 6px; padding-top: 5px; border-top: 1px solid #d2d2d2; }
.pre-evaluation select, .pre-evaluation input { width: 100%; min-width: 0; border: 0; border-bottom: 1px solid #aaa; background: transparent; font-size: 11px; }
.pre-va-save-status { display: block; min-height: 1.2em; margin-top: 4px; color: #39734f; }
.pre-va-item { margin-top: 5px; padding-top: 4px; border-top: 1px solid #ccc; }
.pre-va-item small { display: block; color: #666; }
.pre-add-activity:hover { background: transparent; text-decoration: underline; }
.pre-grid__header,
.pre-grid__row {
    display: grid;
    grid-template-columns: 10% 40% 40% 10%;
    position: relative;
}
.pre-grid__row { padding-bottom: 30px; }
.pre-grid__row.pre-grid__row--blank { padding-bottom: 0; }
.pre-phase-activities .pre-grid__row + .pre-grid__row { border-top: 1px solid #d4d4cf; }
.pre-grid__header { background: #f1f1ee; font-weight: 700; }
.pre-grid__header > div { min-width: 0; padding: 2px 9px; border-left: 1px solid #bbb; font-size: 12px; line-height: 1.2; }
.pre-cell { min-width: 0; padding: 10px 12px; border-left: 1px solid #999; }
.pre-grid__header > :first-child,
.pre-grid__row > :first-child { border-left: 0; }
.pre-grid__header > div { border-bottom: 1px solid #777; }
.pre-cell h2 { margin: 0 0 8px; font-size: 15px; }
.pre-cell p { margin: 0 0 8px; line-height: 1.35; }
.pre-sample-text { white-space: pre-line; }
.pre-grid__row--collapsed .pre-clamped-text {
    display: block;
    max-height: 13.5em;
    overflow: hidden;
    white-space: normal;
}
.pre-grid__row--expanded .pre-clamped-text { max-height: none; overflow: visible; }
.pre-row-toggle {
    position: absolute;
    right: 10%;
    bottom: 0;
    transform: translateX(-10px);
    border: 0;
    padding: 5px 8px;
    color: #184f74;
    background: transparent;
    font-weight: 700;
}
.pre-row-toggle:hover { background: #f1f1ed; }
.pre-cell dl { margin: 8px 0 14px; }
.pre-cell dt { margin-top: 8px; font-size: 12px; font-weight: 700; color: #555; }
.pre-cell dd { margin: 2px 0 0; }
.pre-position { font-size: 24px; font-weight: 700; line-height: 1; }
.pre-link-detail { border-top: 1px solid #bbb; padding: 5px 0; }
.pre-link-detail summary { width: max-content; cursor: pointer; color: #184f74; font-weight: 700; }
.pre-link-content { margin-top: 6px; padding: 8px; background: #f3f3ef; }
.pre-link-content > strong { font-size: 12px; }
.pre-link-content p { margin: 5px 0 0; font-size: 13px; }
.pre-link-content p span { font-weight: 700; }
.pre-empty { color: #666; font-size: 13px; }
@media (max-width: 980px) {
    .prototype-cube { min-width: 780px; }
    .prototype-notes { grid-template-columns: 1fr; }
}
.face-editor { margin-top: 22px; border-top: 3px solid #222; padding-top: 9px; }
.back-to-cube { display: inline-block; margin-top: 10px; }
.face-editor__heading h2 { margin: 0; }
.label-with-info { display: flex; align-items: center; gap: 7px; }
.label-with-info label { margin: 0; }
.field-optional { color: #666; font-size: 0.82rem; font-style: italic; font-weight: 400; }
.info-toggle {
    display: inline-grid;
    place-items: center;
    width: 22px;
    height: 22px;
    padding: 0;
    border: 2px solid #222;
    border-radius: 50%;
    background: #fff;
    color: #222;
    font: 700 14px/1 Georgia, serif;
}
.info-toggle--missing { opacity: .42; cursor: not-allowed; }
.inline-info { position: relative; }
.inline-info > summary {
    display: inline-grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border: 2px solid #777;
    border-radius: 50%;
    background: #fff;
    color: #555;
    font: 700 14px/1 Georgia, serif;
    cursor: pointer;
    list-style: none;
}
.inline-info > summary::-webkit-details-marker { display: none; }
.inline-info__content {
    width: min(760px, calc(100vw - 80px));
    margin-top: 5px;
    border-left: 3px solid #7d9daf;
    background: #eef3f5;
    padding: 7px 10px;
    font-weight: 400;
}
.inline-info__content p { margin: 0; line-height: 1.35; }
.inline-info__content p + p { margin-top: 7px; }
.inline-info__note { color: #444; }
.autosave-form { margin-top: 5px; border: 0; background: transparent; padding: 0; }
.autosave-form input[type="text"],
.autosave-form input[type="number"],
.autosave-form textarea {
    border: 0;
    background: rgba(255,255,255,.72);
    padding: 4px 3px;
}
.autosave-form textarea { height: 54px; min-height: 42px; line-height: 1.3; }
.save-status { font-size: 14px; color: #345f45; }
.save-status--error { color: #9d2020; }
.choice-table { width: 100%; margin-top: 8px; border-collapse: collapse; border: 1px solid #aaa; }
.choice-table td { padding: 7px 9px; border-bottom: 1px solid #ccc; }
.choice-table tr:last-child td { border-bottom: 0; }
.choice-table tr:has(input:checked) { background: #edf3ec; }
.choice-table__check { width: 38px; text-align: center; }
.choice-table input { width: 18px; height: 18px; margin: 0; vertical-align: middle; }
.choice-table label { display: block; cursor: pointer; }
.choice-dropdown { position: relative; margin-top: 8px; }
.choice-dropdown > summary { width: fit-content; min-width: 150px; border: 2px solid #555; background: #fff; padding: 7px 10px; cursor: pointer; }
.choice-dropdown[open] > summary { border-bottom-color: #aaa; }
.choice-dropdown .choice-table { margin-top: 0; }
.selection-summary { margin: 8px 0 0; font-weight: 400; }
.face-editor__heading, .element-card__header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.heading-title-with-add { display: flex; align-items: center; gap: 7px; }
.heading-title-with-add form { margin: 0; }
.element-add { display: inline-grid; place-items: center; width: 22px; height: 28px; border: 0; padding: 0; background: transparent; color: #111; font-size: 24px; line-height: 1; text-decoration: none; }
.element-delete { display: inline-grid; place-items: center; width: 34px; height: 34px; border: 2px solid #222; background: #fff; color: #111; font-size: 25px; line-height: 1; text-decoration: none; }
.element-card { margin-top: 11px; border: 1px solid #bbb; border-top: 0; background: rgba(255,255,255,.55); padding: 9px 11px 5px; }
.face-editor__heading h3 { margin: 0; font-size: 18px; }
.element-card__header h3 { margin: 0; font-size: 14px; }
.element-type-label { font-weight: 400; }
.field-block > .label-with-info > label,
.field-block > .label-with-info > span { font-size: 15px; font-weight: 700; }
.element-delete { border-color: #8d2424; color: #8d2424; }
.selected-values { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.selected-value { display: inline-flex; align-items: center; gap: 5px; border: 0; padding: 0; background: transparent; font-weight: 400; }
.selected-value .remove-selected { border: 0; padding: 0 2px; background: transparent; font-weight: 400; }
.remove-selected { border: 0; padding: 0 3px; background: transparent; font-size: 20px; line-height: 1; }
.danger-button { background: #8d2424; color: #fff; border: 2px solid #681919; padding: 8px 14px; margin-right: 14px; }

.supervisor-home .page-heading { margin-bottom: 8px; }
.status-legend { display: flex; align-items: center; gap: 7px; margin: 0 0 18px; font-size: 13px; }
.status-legend .status-dot:not(:first-child) { margin-left: 12px; }
.status-dot { display: inline-block; width: 13px; height: 13px; border: 1px solid #777; border-radius: 50%; vertical-align: middle; }
.status-dot--working { background: #f3ca45; }
.status-dot--closed { background: #61a86d; }
.status-dot--empty { background: #fff; }
.supervisor-year > h2 { margin: 22px 0 5px; border-bottom: 2px solid #222; }
.supervisor-year > h3 { margin: 12px 0 5px; }
.supervisor-occurrence h4 { margin: 7px 0 4px; font-size: 15px; }
.supervisor-table th:nth-child(4), .supervisor-table th:nth-child(5),
.supervisor-table td:nth-child(4), .supervisor-table td:nth-child(5) { width: 76px; text-align: center; }
.supervisor-table th:nth-child(6), .supervisor-table th:nth-child(7),
.supervisor-table td:nth-child(6), .supervisor-table td:nth-child(7) { text-align: center; }
.supervisor-table__evaluated-separator td { background: #ecece7; font-weight: 700; border-top: 2px solid #555; }
.supervisor-table__evaluated { background: #fafaf7; }
.supervisor-history { margin-top: 28px; }
.feedback-indicator { display: inline-block; width: 18px; height: 18px; border: 1px solid #777; border-radius: 50%; background: #fff; vertical-align: middle; }
.feedback-indicator--pending { background: #c94242; border-color: #8f2020; }
.feedback-indicator--unread { background: #58a86a; border-color: #347542; }
.feedback-menu-dot { display: inline-block; width: 12px; height: 12px; margin-left: 3px; border: 1px solid #777; border-radius: 50%; background: #fff; vertical-align: -1px; }
.feedback-menu-dot.feedback-indicator--pending { background: #c94242; border-color: #8f2020; }
.feedback-menu-dot.feedback-indicator--unread { background: #58a86a; border-color: #347542; }
.feedback-project-data { display: flex; flex-wrap: wrap; gap: 12px 28px; margin: 8px 0 20px; }
.feedback-project-data div { display: flex; gap: 6px; }
.feedback-project-data dt { font-weight: 700; }
.feedback-project-data dd { margin: 0; }
.feedback-conversation { border-top: 2px solid #222; }
.feedback-message { padding: 10px 4px; border-bottom: 1px solid #bbb; }
.feedback-message header { font-size: 13px; color: #555; }
.feedback-message p { margin: 6px 0 0; }
.feedback-message--request { border-left: 4px solid #c94242; padding-left: 10px; }
.feedback-form { margin-top: 20px; }
.feedback-form textarea { display: block; width: 100%; margin: 5px 0 10px; }
.feedback-dialog textarea.feedback-control { position: relative; z-index: 1; pointer-events: auto !important; user-select: text; }
.feedback-form .button { margin-right: 8px; }
.feedback-dialog { width: min(760px, calc(100vw - 32px)); max-height: 86vh; padding: 18px; border: 2px solid #333; }
.feedback-dialog:not([open]) { display: none; }
.feedback-dialog::backdrop { background: rgba(0, 0, 0, .35); }
.feedback-dialog__close { float: right; border: 0; background: transparent; font-size: 26px; line-height: 1; }
.feedback-dialog .feedback-conversation { max-height: 48vh; overflow-y: auto; }
.feedback-back { margin: 0 0 12px; }
.feedback-page > .feedback-back:last-child { margin: 18px 0 0; }
.appunti-indicator { display: inline-block; width: 18px; height: 18px; border: 1px solid #777; border-radius: 50%; background: #fff; vertical-align: middle; }
.appunti-indicator--pending { background: #f3ca45; border-color: #a98512; }
.appunti-indicator--complete { background: #61a86d; border-color: #347542; }
.appunti-timeline { max-height: 48vh; overflow-y: auto; border-top: 2px solid #222; }
.appunto { padding: 10px 4px; border-bottom: 1px solid #bbb; }
.appunto header { font-size: 13px; color: #555; font-weight: 600; }
.appunto p { margin: 6px 0 0; }
.appunti-empty { color: #666; }
.appunti-form { margin-top: 18px; }
.appunti-form textarea { display: block; width: 100%; margin: 5px 0 10px; }
.appunti-complete-form { margin-top: 18px; padding-top: 14px; border-top: 1px solid #bbb; }
.appunti-completion { display: flex; flex-wrap: wrap; gap: 6px 12px; padding: 9px 12px; margin-bottom: 12px; background: #edf6ef; border-left: 4px solid #61a86d; }
.appunti-back { margin: 0 0 12px; }
.appunti-page > .appunti-back:last-child { margin: 18px 0 0; }

.movable-dialog--desktop {
    min-width: min(420px, calc(100vw - 16px));
    min-height: 260px;
    max-width: calc(100vw - 16px);
    max-height: calc(100vh - 16px);
    resize: both;
    overflow: auto;
}
.movable-dialog--desktop h2 { cursor: move; user-select: none; }

.management-users-table-wrap { max-width: 100%; overflow-x: auto; }
.login-page { padding-left: 12px; }
.management-create-user-page {
    min-height: 100vh;
    padding-left: 12px;
    background: #fff;
}
.management-dashboard { padding-left: 12px; }
.management-table { width: max-content; min-width: 100%; border-collapse: collapse; }
.management-table th,
.management-table td { padding: 7px 9px; border: 1px solid #aaa; white-space: nowrap; vertical-align: middle; }
.management-table th { border-color: #888; background: #e9e9e5; text-align: left; }
.management-table tbody tr:nth-child(even) { background: #f7f7f5; }
.management-table tbody tr:hover { background: #f0f4f6; }
.management-users-table td small { display: inline; }
.management-user-status { display: flex; align-items: center; gap: 8px; }
.management-user-status form { margin: 0; }
.management-inline-check input { margin: 0; }
.management-role-scope > div { display: inline-flex; align-items: center; gap: 7px; }
.management-save-cell { text-align: center; }
.management-elaborati-table { width: 100%; }
.management-project-filter-form { align-items: start; }
.management-heading-actions { display: flex; align-items: center; gap: 14px; }
.management-heading-actions form { margin: 0; }
.management-page-heading nav { display: flex; align-items: center; gap: 7px; }
.management-logout-form { display: inline-block; margin: 0; }
.management-project-filter-form small { max-width: 220px; color: #555; }
.management-filter-actions { display: flex !important; align-items: center; gap: 12px; }
.management-project-trial { background: #fff8df !important; }
.management-trial-label { display: block; color: #755700; font-weight: 700; }
.management-delete-link { color: #8d2424; }
.management-role-scope > div { display: inline-flex; align-items: center; gap: 7px; }
.management-role-scope > div > div,
.management-role-scope label { display: inline-flex; align-items: center; gap: 3px; margin: 0; font-weight: 400; }
.management-home__areas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 24px; }
.management-area-card { display: grid; gap: 8px; min-height: 110px; padding: 18px; border: 1px solid #888; background: #f7f7f4; color: #111; text-decoration: none; }
.management-area-card:hover { background: #edf2f4; border-color: #315f79; }
.management-area-card strong { font-size: 20px; }
.management-area-card span { color: #444; line-height: 1.35; }
.management-page-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.management-page-heading h1, .management-page-heading p { margin-top: 0; }
.management-section-nav { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 16px 0 24px; padding: 10px 0; border-block: 1px solid #aaa; }
.management-structure-section { margin-top: 26px; scroll-margin-top: 10px; }
.management-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.management-section-heading h2 { margin-top: 0; }
.management-section-heading details { min-width: min(360px, 100%); }
.management-section-heading summary { color: #174f73; cursor: pointer; font-weight: 700; }
.management-compact-form { margin-top: 8px; padding: 10px 12px; border: 1px solid #aaa; background: #f7f7f4; }
.management-compact-form p { display: grid; grid-template-columns: 145px minmax(0, 1fr); align-items: center; gap: 8px; margin: 7px 0; }
.management-compact-form input:not([type="checkbox"]), .management-compact-form select { width: 100%; min-width: 0; box-sizing: border-box; }
.management-compact-form .errorlist { color: #8d2424; }
.management-structure-table { width: 100%; }
.management-note, .management-status { color: #666; font-size: 13px; }
.occurrence-groups { display: grid; gap: 18px; }
.occurrence-context-group { border: 1px solid #999; }
.occurrence-context-group > h3 { margin: 0; padding: 9px 12px; background: #e8eff2; border-bottom: 1px solid #999; }
.occurrence-context-group > h3 small { color: #666; font-size: 12px; font-weight: 400; }
.occurrence-type-group { padding: 8px 12px 12px; }
.occurrence-type-group + .occurrence-type-group { border-top: 1px solid #bbb; }
.occurrence-type-group h4 { margin: 0 0 5px; }
.occurrence-type-group ul { margin: 0; padding: 0; list-style: none; }
.occurrence-type-group li { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 7px 0; border-top: 1px solid #ddd; }
.occurrence-type-group li:first-child { border-top: 0; }
.occurrence-type-group details { min-width: 180px; }
.occurrence-type-group summary { color: #174f73; cursor: pointer; font-size: 13px; }
.management-inline-form { display: flex; gap: 5px; margin-top: 5px; }
.management-inline-form input { min-width: 0; }
.management-filter-form { display: flex; flex-wrap: wrap; align-items: end; gap: 10px 14px; margin: 18px 0; padding: 12px; border: 1px solid #aaa; background: #f7f7f4; }
.management-primary-link { display: inline-block; padding: 8px 12px; border: 1px solid #555; background: #f7f7f4; color: #111; text-decoration: none; }
.management-primary-link:hover { background: #edf2f4; }
.management-whitelist-page td:last-child { display: flex; align-items: center; gap: 12px; }
.management-whitelist-page td:last-child form { margin: 0; }
.management-filter-form > div { display: grid; gap: 4px; }
.management-filter-form input, .management-filter-form select { min-width: 190px; }
.management-users-list { width: 100%; }
.management-users-list td:nth-child(6) { min-width: 130px; }
.management-form-card { max-width: 760px; padding: 14px; border: 1px solid #aaa; background: #f7f7f4; }
.management-field { display: grid; grid-template-columns: 210px minmax(0, 1fr); align-items: center; gap: 10px; margin: 10px 0; }
.management-checkbox-field { display: flex; }
.management-user-detail section { margin-top: 26px; }
.management-user-data { max-width: 760px; margin: 0 0 14px; border-top: 1px solid #bbb; }
.management-user-data > div { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 12px; padding: 8px 0; border-bottom: 1px solid #ddd; }
.management-user-data dt { font-weight: 700; }
.management-user-data dd { margin: 0; }
.role-assignment { margin: 16px 0; padding: 12px; border: 1px solid #aaa; }
.role-assignment legend { font-weight: 700; }
.role-assignment > div { display: grid; gap: 6px; }
.role-assignment label { font-weight: 400; }
.tutor-exclusion-group { padding: 12px; border: 1px solid #aaa; background: #f7f7f4; }
.tutor-exclusion-group h3 { margin-top: 0; font-size: 16px; }
.tutor-exclusion-group ul { margin: 0; padding: 0; list-style: none; }
.tutor-exclusion-group li { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 7px 0; border-top: 1px solid #ddd; }
.tutor-exclusion-group form { margin: 0; }

@media (max-width: 760px) {
    .page-shell, .cubo-page { width: min(100% - 20px, 1180px); padding-top: 12px; }
    .project-bar { overflow-x: auto; }
    .page-heading { align-items: flex-start; }
    .management-home__areas { grid-template-columns: 1fr; }
    .management-page-heading, .management-section-heading, .occurrence-type-group li { display: grid; }
    .management-section-heading details { min-width: 0; }
    .management-compact-form p { grid-template-columns: 1fr; }
    .management-field, .management-user-data > div { grid-template-columns: 1fr; }
    .tutor-exclusion-group li { display: grid; }
}
.shared-projects { margin-top: 2rem; }
.share-form fieldset { max-width: 48rem; border: 1px solid #b8b8b8; padding: 1rem; }
.share-form__recipient { display: flex; align-items: baseline; gap: .55rem; padding: .35rem 0; }
.share-form .form-actions { display: flex; align-items: center; gap: 1rem; margin-top: 1rem; }
