:root{--bg:#f4f5f6;--panel:#fff;--ink:#30353a;--muted:#75808b;--line:#d5dadf;--soft:#eceff1;--soft-2:#f8f9fa;--accent:#687582;--accent-strong:#5c6875;--heading:#566370;--tab-bg:#eceff1;--badge-bg:#edf0f2;--badge-ink:#566370;--red:#9b6967;--shadow:0 8px 22px rgba(70,80,92,.10)}
body.theme-archive{--bg:#f4f5f6;--ink:#30353a;--muted:#75808b;--line:#d5dadf;--soft:#eceff1;--soft-2:#f8f9fa;--accent:#687582;--accent-strong:#5c6875;--heading:#566370;--tab-bg:#eceff1;--badge-bg:#edf0f2;--badge-ink:#566370;--shadow:0 8px 22px rgba(70,80,92,.08)}
body.theme-pubblico{--bg:#f4f5f6;--ink:#30353a;--muted:#75808b;--line:#d5dadf;--soft:#eceff1;--soft-2:#f8f9fa;--accent:#687582;--accent-strong:#5c6875;--heading:#566370;--tab-bg:#eceff1;--badge-bg:#edf0f2;--badge-ink:#566370;--shadow:0 8px 22px rgba(70,80,92,.08)}
body.theme-privato{--bg:#f4f5f6;--ink:#30353a;--muted:#75808b;--line:#d5dadf;--soft:#eceff1;--soft-2:#f8f9fa;--accent:#687582;--accent-strong:#5c6875;--heading:#566370;--tab-bg:#eceff1;--badge-bg:#edf0f2;--badge-ink:#566370;--shadow:0 8px 22px rgba(70,80,92,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.35 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);padding:7px 10px;cursor:pointer}button:hover{border-color:var(--accent);background:var(--soft-2)}button.primary{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}button.danger{background:var(--red);border-color:var(--red);color:#fff}button.small{font-size:12px;padding:5px 8px}.top{background:#fff;border-bottom:1px solid var(--line);padding:14px 18px;display:grid;grid-template-columns:minmax(300px,430px) 1fr;gap:16px;align-items:start}.brand-stack{display:grid;gap:8px}.brand-card{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:14px 16px}.brand-card h1{font:700 24px/1.05 Georgia,"Times New Roman",serif;letter-spacing:.01em;margin:2px 0 0;color:#5c6875}.eyebrow{font-size:10px;letter-spacing:.12em;color:var(--muted);font-weight:700}.subtitle{color:var(--muted);margin-top:4px}.top-side{display:grid;justify-items:stretch;gap:8px}.command-card{background:var(--soft-2);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:10px}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.session-card{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:8px 10px}.session-card span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em}.session-card b{display:block;color:var(--heading);font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dirty-badge.dirty{color:#9a5c00}.tabs{background:var(--tab-bg);border-bottom:1px solid var(--line);display:flex;gap:5px;padding:8px 14px;overflow:auto}.tabs button{border-radius:99px;background:transparent;border-color:transparent;white-space:nowrap;display:inline-flex;align-items:center;gap:7px}.tabs button.active{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.tabs button:disabled{opacity:.35;cursor:not-allowed}main{padding:16px 18px;max-width:1680px;margin:auto}.card{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:14px;margin-bottom:14px}.card>h2{font-size:15px;margin:-14px -14px 14px;padding:10px 14px;color:var(--heading);background:var(--soft);border-bottom:1px solid var(--line);border-radius:8px 8px 0 0}.card h3{font-size:13px;margin:18px 0 10px;padding:7px 9px;color:var(--heading);font-weight:700;background:var(--soft-2);border:1px solid var(--line);border-radius:7px}.card-body{padding:0}.card-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:14px -14px -14px;padding:10px 14px;border-top:1px solid var(--line);background:var(--soft-2);border-radius:0 0 8px 8px}.grid{display:grid;gap:11px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.wide{grid-column:1/-1}label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px;font-weight:500}label input,label select,label textarea{display:block;width:100%;margin-top:4px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);padding:7px}textarea{min-height:92px;resize:vertical}.muted{color:var(--muted)}.notice{padding:11px;border:1px solid var(--line);background:var(--soft-2);border-radius:8px}.warning{border-color:#e5c978;background:#fff9e8}.ok{border:1px solid #b8d5d8;background:#eff8f9;color:#38666b;border-radius:8px;padding:11px}.table-wrap{overflow:auto}.table-wrap>table{border-radius:8px;overflow:hidden}table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--line);background:#fff}th,td{border-bottom:1px solid var(--line);padding:7px;text-align:left;vertical-align:top;font-size:13px}th{background:var(--soft);color:var(--heading);font-size:11px;text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0;z-index:1}tr:last-child td{border-bottom:0}tbody tr:nth-child(even){background:color-mix(in srgb,var(--soft) 56%,white)}tbody tr:hover{background:var(--soft-2)}td input,td select{width:100%;min-width:110px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.kpi{background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:12px}.kpi span{display:block;color:inherit;font-size:12px;opacity:.78}.kpi b{font-size:20px;display:block;margin-top:4px;color:inherit}.split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:14px}.level-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.level-tabs button.active{background:var(--accent-strong);color:#fff;border-color:var(--accent-strong)}.discipline{border:1px solid var(--line);border-radius:8px;margin:10px 0;overflow:hidden;background:#fff}.discipline-head{display:flex;justify-content:space-between;gap:10px;align-items:center;background:var(--soft);padding:10px 12px;color:var(--heading)}.class-block{padding:10px 12px;border-top:1px solid var(--line)}.class-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.cover-preview-wrap{background:color-mix(in srgb,var(--accent) 14%,#e8ecef);padding:22px;overflow:auto;min-height:400px;border-radius:8px}.a4{width:210mm;height:297mm;background:#fff;position:relative;transform-origin:top left;box-shadow:0 4px 20px rgba(0,0,0,.16);margin:auto;overflow:hidden}.cover-element{position:absolute;white-space:pre-wrap;overflow:hidden}.cover-image{object-fit:contain;width:100%;height:100%}.cover-actions{display:flex;gap:7px;flex-wrap:wrap}.asset-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.asset-box{border:1px dashed var(--line);border-radius:8px;padding:10px;min-height:100px;background:var(--soft-2)}.asset-box img{max-width:100%;max-height:90px;display:block;margin:6px auto}.modal{display:none;position:fixed;inset:0;background:rgba(59,69,80,.38);z-index:9999;padding:24px;align-items:flex-start;justify-content:center}.modal.open{display:flex}.dialog{background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 20px 70px rgba(59,69,80,.24);width:min(1400px,96vw);max-height:calc(100vh - 48px);margin:auto;display:flex;flex-direction:column;overflow:hidden}.dialog-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:10px 14px;background:var(--soft)}.dialog-head h2{margin:0;color:var(--heading);font-size:17px}.dialog-head button{font-size:22px;border:0;background:transparent}.dialog-body{overflow:auto;min-height:0;background:#fff;padding:14px}.editor-layout{display:grid;grid-template-columns:260px minmax(0,1fr) 320px;gap:12px;min-height:70vh}.editor-panel{border:1px solid var(--line);border-radius:8px;background:var(--soft-2);padding:10px;overflow:auto}.editor-canvas-wrap{overflow:auto;background:color-mix(in srgb,var(--accent) 16%,#dde2e6);border:1px solid var(--line);border-radius:8px;padding:30px;min-height:700px}.editor-page{width:794px;height:1123px;background:#fff;position:relative;margin:auto;box-shadow:0 8px 24px rgba(0,0,0,.18)}.ed-object{position:absolute;border:1px dashed var(--accent);min-width:18px;min-height:18px;cursor:move;overflow:hidden}.ed-object.selected{border:2px solid var(--accent-strong)}.ed-object .resize{position:absolute;width:10px;height:10px;right:-2px;bottom:-2px;background:var(--accent-strong);cursor:nwse-resize}.ed-object img{width:100%;height:100%;object-fit:contain;pointer-events:none}.guide{position:absolute;background:#e04b4b;pointer-events:none;z-index:999}.guide.v{width:1px;top:0;bottom:0}.guide.h{height:1px;left:0;right:0}.object-list button{display:block;width:100%;text-align:left;margin:4px 0}.object-list button.active{background:var(--soft);border-color:var(--accent)}.property-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.property-row.full{grid-template-columns:1fr}.checkline{display:flex;align-items:center;gap:7px;font-weight:500}.checkline input{width:auto;margin:0}.tree{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.tree-level,.tree-discipline,.tree-class,.tree-doc{padding:7px 10px;border-bottom:1px solid var(--line)}.tree-level{background:var(--soft);font-weight:700;color:var(--heading)}.tree-discipline{padding-left:25px;background:var(--soft-2)}.tree-class{padding-left:45px}.tree-doc{padding-left:65px}.tree input{width:auto;margin-right:7px}.settings-block{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;margin:10px 0}.settings-block-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;background:var(--soft);border-bottom:1px solid var(--line)}.settings-block-title{font-size:13px;font-weight:800;color:var(--heading)}.settings-block-body{padding:10px}.settings-block-actions{display:flex;gap:7px;flex-wrap:wrap}.settings-block table{border:0;border-radius:0}.settings-block th{background:var(--soft-2)}
@media(max-width:1050px){.top{grid-template-columns:1fr}.session-card{grid-template-columns:repeat(2,minmax(0,1fr))}.split,.editor-layout{grid-template-columns:1fr}.grid.four,.grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-canvas-wrap{min-height:500px}}@media(max-width:650px){.grid.two,.grid.three,.grid.four,.kpis,.session-card{grid-template-columns:1fr}.toolbar{flex-wrap:wrap}.asset-row{grid-template-columns:1fr}}
@media print{.top,.tabs{display:none!important}main{padding:0}.card{box-shadow:none;border:0}.no-print{display:none!important}}

/* ELABORATI 0.1.2 — accesso Tabelle generali separato dalle sezioni operative */
.toolbar-divider{width:1px;height:28px;background:var(--line);margin:0 2px}
.settings-access{font-weight:700;background:#fff;border-color:var(--line);color:var(--heading)}
.settings-access:hover,.settings-access.active{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}
body.theme-archive .settings-access.active{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}


/* ELABORATI 0.1.3 — header tipo COMMESSE, palette desaturata, UI senza note */
.notice{display:none!important}
.top{
  background:linear-gradient(135deg,#687481,#7a8692);
  border-bottom:0;
  padding:18px 24px 16px 34px;
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  color:#fff;
}
.brand-card{
  background:transparent;
  border:0;
  box-shadow:none;
  padding:0 0 0 2px;
}
.brand-card h1{
  margin:0;
  color:#fff;
  font:700 26px/1.05 Georgia,"Times New Roman",serif;
  letter-spacing:.02em;
  display:flex;
  align-items:center;
  gap:10px;
}
.brand-card .subtitle{color:rgba(255,255,255,.78);margin-top:5px}
.app-release-badge{
  display:inline-flex;
  align-items:center;
  padding:3px 8px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:#fff;
  font:700 11px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.02em;
}
.top-lower{
  display:grid;
  grid-template-columns:minmax(280px,390px) 1fr;
  gap:12px;
  align-items:stretch;
}
.session-card{
  grid-template-columns:1.4fr .6fr;
  background:rgba(255,255,255,.11);
  border-color:rgba(255,255,255,.22);
  box-shadow:none;
  color:#fff;
  padding:9px 11px;
}
.session-card span{color:rgba(255,255,255,.68)}
.session-card b{color:#fff}
.command-card{
  background:rgba(255,255,255,.11);
  border-color:rgba(255,255,255,.22);
  box-shadow:none;
  display:flex;
  align-items:center;
  padding:9px 10px;
}
.toolbar{justify-content:flex-start}
.toolbar button{
  border-color:rgba(255,255,255,.28);
  background:rgba(255,255,255,.94);
  color:#39434d;
}
.toolbar button:hover{background:#fff;border-color:rgba(255,255,255,.55)}
.toolbar button.primary{
  background:#4c5966;
  border-color:rgba(255,255,255,.28);
  color:#fff;
}
.toolbar-divider{background:rgba(255,255,255,.28)}
.settings-access{background:rgba(255,255,255,.94);color:#39434d}
.settings-access:hover,.settings-access.active{background:#4c5966;border-color:rgba(255,255,255,.28);color:#fff}

.tabs{padding-left:30px}
main{padding-left:30px;padding-right:24px}
.card{box-shadow:0 6px 18px rgba(62,71,82,.07)}
.card>h2{background:var(--soft)}
.kpi{background:color-mix(in srgb,var(--soft) 72%,white)}
.modal{background:rgba(47,55,64,.34)}
.dialog{box-shadow:0 20px 60px rgba(47,55,64,.20)}

@media(max-width:900px){
  .top{padding:14px 16px}
  .top-lower{grid-template-columns:1fr}
  .session-card{grid-template-columns:1fr 1fr}
  .tabs{padding-left:12px}
  main{padding-left:12px;padding-right:12px}
}


/* ELABORATI 0.1.4 — header alto tipo screenshot, petrolio ardesia desaturato */
.top{
  background:linear-gradient(135deg,#5c6875,#6a7683);
  padding:0;
  display:grid;
  grid-template-columns:260px 1fr;
  gap:0;
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.10);
}
.brand-side{
  background:linear-gradient(180deg,#4c5864,#434f5a);
  min-height:88px;
  display:flex;
  align-items:center;
}
.brand-card{
  background:transparent;
  border:0;
  box-shadow:none;
  width:100%;
  padding:14px 18px 14px 24px;
}
.brand-card h1{
  margin:0;
  color:#fff;
  font:700 21px/1.05 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.01em;
  display:flex;
  align-items:center;
  gap:10px;
}
.brand-card .subtitle{
  color:rgba(255,255,255,.76);
  margin-top:4px;
  font-size:12px;
}
.app-release-badge{
  display:inline-flex;
  align-items:center;
  padding:3px 7px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#fff;
  font:700 11px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.top-main{
  min-height:88px;
  display:flex;
  align-items:center;
  padding:14px 18px 14px 18px;
}
.topbar-line{
  display:grid;
  grid-template-columns:minmax(280px,1fr) auto;
  align-items:center;
  gap:16px;
  width:100%;
}
.eyebrow{
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(255,255,255,.58);
  margin-bottom:4px;
  font-weight:700;
}
.title-row{display:flex;flex-direction:column;gap:2px}
.page-title{
  color:#fff;
  font-size:28px;
  font-weight:700;
  line-height:1;
}
.page-subtitle{
  color:rgba(255,255,255,.78);
  font-size:14px;
}
.header-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
}
.header-actions button{
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.88);
  color:#34484a;
  border-radius:8px;
  padding:8px 12px;
  font-weight:600;
}
.header-actions button:hover{
  background:#fff;
}
.header-actions button.primary{
  background:#4c5864;
  color:#fff;
  border-color:rgba(255,255,255,.18);
}
.header-actions .settings-access{
  background:rgba(255,255,255,.18);
  color:#fff;
}
.header-actions .settings-access.active,
.header-actions .settings-access:hover{
  background:rgba(255,255,255,.28);
  color:#fff;
}
.file-chip-wrap{
  display:flex;
  align-items:center;
  gap:6px;
  margin-left:8px;
}
.file-chip{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:0 12px;
  background:#74808b;
  color:#fff;
  border-radius:999px;
  font-weight:600;
  font-size:13px;
  white-space:nowrap;
}
.dirty-chip{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:0 10px;
  border-radius:999px;
  background:rgba(255,255,255,.18);
  color:#fff;
  font-size:12px;
  font-weight:700;
  text-transform:lowercase;
}
.session-card,.command-card,.toolbar,.top-lower,.toolbar-divider{display:unset}
.tabs{padding-left:20px}
main{padding-left:20px;padding-right:20px}
.card>h2{background:var(--soft);color:var(--heading)}
.settings-access{font-weight:700}
@media(max-width:1200px){
  .top{grid-template-columns:1fr}
  .brand-side{min-height:auto}
  .top-main{padding-top:10px}
  .topbar-line{grid-template-columns:1fr}
  .header-actions{justify-content:flex-start}
}
@media(max-width:720px){
  .brand-card{padding-left:18px}
  .top-main{padding:12px}
  .page-title{font-size:22px}
  .page-subtitle{font-size:13px}
  .header-actions button{padding:7px 10px}
  .file-chip-wrap{width:100%;margin-left:0}
}

/* ELABORATI 0.1.5 — home vuota, header unico */
body.no-file .tabs,
body.no-file main > .home-summary,
body.no-file .kpis,
body.no-file .session-card,
body.no-file .command-card-secondary{
  display:none!important;
}
.home-summary,.startup-card,.dashboard-cards{display:none!important}

/* ELABORATI 0.1.6 — codice elaborati, varianti e revisioni */
.code-format-grid{display:grid;grid-template-columns:minmax(0,1fr) 170px minmax(220px,.55fr);gap:12px;align-items:end}
.code-parts{display:grid;grid-template-columns:repeat(3,minmax(155px,1fr));gap:8px}
.code-part{margin:0;padding:8px 9px;border:1px solid var(--line);border-radius:7px;background:var(--soft-2)}
.variant-reference{margin-top:10px;padding:9px 11px;border:1px solid var(--line);border-radius:7px;background:var(--soft-2)}
.revision-project{border:1px solid var(--line);border-radius:9px;overflow:hidden;margin-bottom:12px;background:#fff}
.revision-project-head{display:grid;grid-template-columns:90px 190px minmax(220px,1fr) auto;gap:9px;align-items:end;padding:10px 12px;background:var(--soft)}
.revision-project-head>b{align-self:center;color:var(--heading)}
.change-table td:nth-child(1),.change-table th:nth-child(1){width:70px;text-align:center}
.change-table td:nth-child(2),.change-table th:nth-child(2){width:100px}
.change-table td:nth-child(3),.change-table th:nth-child(3){width:190px}
.card-actions.inline{border-top:0;padding-top:8px}
.project-class-empty{padding:8px 0;color:var(--muted)}
@media(max-width:950px){.code-format-grid{grid-template-columns:1fr}.code-parts{grid-template-columns:repeat(2,minmax(150px,1fr))}.revision-project-head{grid-template-columns:1fr 1fr}}

/* ELABORATI 0.1.7 — porting struttura Elenco elaborati da COMMESSE */
.commessa-title-card{display:flex;align-items:stretch;justify-content:space-between;border:1px solid var(--line);border-radius:10px;background:#fff;margin:0 0 14px;overflow:hidden}
.commessa-title-identity{display:grid;grid-template-columns:135px 260px minmax(360px,1fr);gap:0;align-items:stretch;flex:1}
.commessa-title-identity>div{padding:14px 16px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:4px}
.commessa-title-identity span{font-size:11px;text-transform:lowercase;color:var(--muted);letter-spacing:.02em}
.commessa-title-identity b{font-size:20px;color:var(--heading)}
.commessa-title-identity .title b{font:700 25px/1.15 Georgia,"Times New Roman",serif;color:var(--accent-strong)}
.commessa-last-save{grid-column:1/-1!important;border-top:1px solid var(--line);border-right:0!important;flex-direction:row!important;align-items:center;gap:8px!important;padding:10px 16px!important}
.commessa-last-save b{font:600 13px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;color:var(--muted)!important}
.project-current-level-banner{margin:10px 12px 4px;padding:13px 16px;border:1px solid color-mix(in srgb,var(--accent) 45%,#fff);border-left:5px solid var(--accent-strong);border-radius:10px;background:color-mix(in srgb,var(--soft) 80%,#fff);color:var(--heading);display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.project-current-level-banner span{font-size:12px;font-weight:700;letter-spacing:.045em;text-transform:uppercase;color:var(--muted)}
.project-current-level-banner strong{font-size:21px;line-height:1.2}
.project-elaborati-panel{border-top:1px solid var(--line);margin-top:12px}
.project-elaborati-title{display:flex;justify-content:space-between;align-items:center;padding:11px 12px;background:var(--soft);border-bottom:1px solid var(--line)}
.project-elaborati-title strong{display:block;text-transform:uppercase;color:var(--heading)}
.project-elaborati-title span{display:block;margin-top:3px;font-size:12px;color:var(--muted);font-weight:700}
.project-v38-layout{display:grid;grid-template-columns:255px minmax(0,1fr);align-items:start}
.project-v38-sidebar{border-right:1px solid var(--line);padding:10px;background:var(--soft-2);position:sticky;top:0}
.project-v38-sidebar>h3{margin:0 0 10px;color:var(--heading)}
.project-v38-command{border:1px solid var(--line);border-radius:8px;background:#fff;padding:9px;margin-bottom:9px}
.project-v38-command>label:first-child{font-size:11px;font-weight:700;color:var(--muted);margin-bottom:7px}
.project-v38-command select,.project-v38-command input{margin-bottom:7px}
.project-v38-command button{width:100%}
.project-v38-button-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.project-date-batch-controls{display:none;margin-top:8px}
.project-v38-bulk-command.open .project-date-batch-controls{display:block}
.project-elaborati-main{padding:12px;min-width:0}
.project-discipline-group{border:1px solid var(--line);border-radius:9px;margin-bottom:12px;overflow:hidden;background:#fff}
.project-discipline-head{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--soft);padding:9px 12px;border-bottom:1px solid var(--line)}
.definitive-discipline-title,.project-class-group-title{display:flex;align-items:center;gap:7px;color:var(--heading);font-weight:700}
.project-drag-handle{color:var(--muted);letter-spacing:-2px}
.project-class-group{border-top:1px solid var(--line);background:#fff}
.project-class-group:first-of-type{border-top:0}
.project-class-group-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;background:#fbfbfb;border-bottom:1px solid var(--line)}
.project-doc-table{width:100%;border-collapse:collapse}
.project-doc-table th{background:color-mix(in srgb,var(--soft) 85%,#fff);color:var(--heading);font-size:11px}
.project-doc-table td,.project-doc-table th{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
.project-doc-table tbody tr:nth-child(even){background:color-mix(in srgb,var(--soft-2) 85%,#fff)}
.row-actions{display:flex;gap:5px;justify-content:flex-end;white-space:nowrap}
.row-actions .small{width:auto}
.revision-summary small{color:var(--muted);margin-left:4px}
.project-v75-add-document{padding:8px 10px}
.project-class-empty{padding:14px;color:var(--muted)}
.code-format-options{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:8px}
@media(max-width:980px){.project-v38-layout{grid-template-columns:1fr}.project-v38-sidebar{position:static;border-right:0;border-bottom:1px solid var(--line)}.commessa-title-identity{grid-template-columns:1fr 1fr}.commessa-title-identity .title{grid-column:1/-1}.code-format-options{grid-template-columns:1fr}}

/* ELABORATI 0.1.8 — intestazione unica e modulo Copertine portato da COMMESSE */
.single-app-header{grid-template-columns:260px minmax(0,1fr)!important}
.top-main-actions-only{justify-content:flex-end!important}
.top-main-actions-only .header-actions{width:100%;justify-content:flex-end}
@media(max-width:1000px){.single-app-header{grid-template-columns:1fr!important}.top-main-actions-only .header-actions{justify-content:flex-start}}

.cover-page-grid{display:grid;grid-template-columns:minmax(0,1fr) 365px;gap:14px;align-items:start}
.cover-config-column{min-width:0}
.cover-preview-column{position:sticky;top:8px;min-width:0}
.cover-preview-wrap{display:flex;justify-content:center;overflow:auto;max-height:640px;background:#eceff1;padding:10px;border-radius:8px}
.cover-a4{position:relative;width:210mm;height:297mm;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.14);overflow:hidden;flex:none}
.cover-element{position:absolute;white-space:pre-wrap;overflow:hidden}
.cover-element b{font-weight:700}
.cover-image{width:100%;height:100%;object-fit:contain}
.cover-static-image{position:absolute;object-fit:contain;z-index:2}
.cover-region-logo{left:14mm;top:62mm;max-width:34mm;max-height:16mm}
.cover-municipality-crest{right:16mm;top:46mm;max-width:22mm;max-height:24mm}
.cover-banner{left:20mm;bottom:27mm;width:170mm;max-height:18mm}

.testalino-upload-field{display:grid;grid-template-rows:auto 36px 112px auto;gap:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--soft-2)}
.testalino-image-preview{height:112px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--line);border-radius:6px;background:#fff;color:var(--muted)}
.testalino-image-preview img{max-width:100%;max-height:96px;object-fit:contain}
.testalino-image-preview.empty{font-size:12px}
.cover-model-manager{display:grid;gap:10px}.cover-model-new{display:grid;grid-template-columns:minmax(230px,1fr) auto auto;gap:8px;align-items:end}.cover-model-manager td.actions{white-space:nowrap}.cover-model-manager td.actions button{margin-right:4px}
.cover-editor-launch{display:flex;align-items:center}.cover-editor-launch button{width:auto}

.cover-final-workspace{display:grid;grid-template-columns:290px minmax(0,1fr);gap:14px;align-items:stretch;height:clamp(460px,68vh,760px);min-height:0}
.cover-final-sidebar{position:sticky;top:0;align-self:start;height:max-content;max-height:100%;overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--soft-2);padding:11px;display:grid;gap:9px}
.cover-final-sidebar h3{margin:0;color:var(--heading);font-size:13px}.cover-final-sidebar p{margin:0;color:var(--muted);font-size:11px;line-height:1.35}
.cover-final-actions,.cover-final-primary{display:grid;gap:7px;padding-top:8px;border-top:1px solid var(--line)}.cover-final-sidebar button{width:100%}
.cover-final-status{padding:7px 8px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--heading);font-size:12px;font-weight:700}
.cover-final-list{min-width:0;min-height:0;height:100%;overflow-y:auto;overflow-x:hidden;padding-right:6px;scrollbar-gutter:stable}
.cover-tree-level{padding:9px 10px;background:var(--soft);border:1px solid var(--line);border-radius:7px;margin:0 0 5px}
.cover-tree-discipline{padding:7px 9px 4px 26px;background:#fff;border-left:3px solid color-mix(in srgb,var(--accent) 45%,#fff)}
.cover-tree-class{padding:5px 8px 4px 23px;border-left:1px solid var(--line)}
.cover-check{display:flex;align-items:flex-start;gap:7px;padding:5px 4px;font-size:12px}.cover-check input{width:auto;margin-top:2px}.cover-doc{padding-left:26px;color:var(--ink)}
@media(max-width:1050px){.cover-page-grid{grid-template-columns:1fr}.cover-preview-column{position:static}.cover-final-workspace{grid-template-columns:1fr;height:auto}.cover-final-sidebar{position:static;max-height:none}.cover-final-list{height:auto;max-height:620px}}

.cover-editor-dialog{width:min(98vw,1760px)!important;height:min(96vh,980px)!important;max-width:none!important;display:flex!important;flex-direction:column!important;background:#fff!important;opacity:1!important}
.cover-editor-dialog .dialog-body{overflow:hidden!important;flex:1;min-height:0}
.cover-editor-shell{height:100%;display:grid;grid-template-columns:250px minmax(780px,1fr) 300px;gap:10px;min-height:0;background:#eceff1;padding:10px}
.ce-sidebar{background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px;overflow:auto;min-height:0}
.ce-sidebar h3{margin:10px 0 7px;color:var(--heading)}
.ce-actions{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px}.ce-actions button{font-size:11px}
.ce-db-add{display:grid;grid-template-columns:1fr auto;gap:6px;margin-bottom:8px}.ce-db-add .checkline{grid-column:1/-1}
.ce-magnet-note{padding:7px 9px;border:1px solid #a6b9bd;border-radius:6px;background:#edf4f5;color:#52606e;font-size:11px;margin-bottom:8px}.ce-magnet-note span{color:#7a8590}
.object-list{display:grid;gap:4px}.object-list button{text-align:left;justify-content:flex-start}
.editor-canvas-wrap{overflow:auto;background:#e1e5e8;border:1px solid #cbd1d6;border-radius:8px;padding:20px;min-height:0}
.editor-page{position:relative;width:793.8px;height:1122.66px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.16);margin:0 auto;overflow:visible}
.ed-object{position:absolute;box-sizing:border-box;border:1px dashed #788591;cursor:move;white-space:pre-wrap;overflow:hidden;z-index:5}
.ed-object.selected{outline:2px solid rgba(88,109,124,.35);border-color:#586d7c}
.ed-object img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.ce-object-label{position:absolute;left:0;top:-17px;max-width:100%;padding:1px 4px;background:#667583;color:#fff;font-size:9px;line-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.78;pointer-events:none}
.resize{position:absolute;right:-5px;bottom:-5px;width:9px;height:9px;background:#fff;border:2px solid #586d7c;border-radius:50%;cursor:nwse-resize}
.ce-margin-box{position:absolute;border:1px dashed #c88652;pointer-events:none;z-index:3}
.ce-guide-v,.ce-guide-h{position:absolute;background:#e44f83;z-index:20;pointer-events:none}.ce-guide-v{top:0;bottom:0;width:1px}.ce-guide-h{left:0;right:0;height:1px}
.ce-margin-handle{position:absolute;z-index:21;background:#c88652;opacity:.55}.ce-margin-handle.top,.ce-margin-handle.bottom{height:4px;left:0;right:0;cursor:ns-resize}.ce-margin-handle.left,.ce-margin-handle.right{width:4px;top:0;bottom:0;cursor:ew-resize}
.property-row{display:grid;grid-template-columns:1fr 1fr;gap:7px}.ce-right label{font-size:11px}
@media(max-width:1250px){.cover-editor-shell{grid-template-columns:220px minmax(700px,1fr) 270px}}

/* ELABORATI 0.1.9 — anteprima ampia e layout legacy completo */
.cover-page-grid{grid-template-columns:minmax(0,1fr) 540px!important}
.cover-preview-column{min-width:540px}
.cover-preview-wrap{min-height:650px;padding:16px!important;align-items:flex-start}
.cover-preview-wrap .cover-a4{margin-left:auto;margin-right:auto}
.ed-object{background-clip:padding-box}
.ed-object.cover-type-rect{border-style:solid}
@media(max-width:1250px){.cover-page-grid{grid-template-columns:minmax(0,1fr) 460px!important}.cover-preview-column{min-width:460px}}
@media(max-width:1050px){.cover-page-grid{grid-template-columns:1fr!important}.cover-preview-column{min-width:0}.cover-preview-wrap{min-height:580px}}

/* ELABORATI 0.1.10 — anteprima completa, font locali, editor senza elenco oggetti */
.cover-preview-wrap{overflow:auto!important;min-height:720px!important;display:flex!important;align-items:flex-start!important;justify-content:center!important}
.cover-scale-frame{position:relative;flex:0 0 auto;overflow:visible}
.cover-scale-frame>.cover-a4{position:absolute;left:0;top:0;margin:0!important}
.cover-font-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cover-font-tools button{width:auto}
.cover-editor-shell{grid-template-columns:220px minmax(780px,1fr) 320px!important}
.ce-left{align-content:start}
.ce-left .object-list{display:none!important}
@media(max-width:1250px){.cover-editor-shell{grid-template-columns:200px minmax(700px,1fr) 290px!important}}

/* ELABORATI 0.1.11 — intestazioni, selezione editor, footer corretto */
.cover-profile-tools{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:10px 0}
.cover-profile-table td.actions{white-space:nowrap}
.cover-profile-editor .profile-logo-preview{height:120px;border:1px dashed var(--line);border-radius:7px;background:var(--soft-2);display:flex;align-items:center;justify-content:center;margin-top:5px}
.cover-profile-editor .profile-logo-preview img{max-width:100%;max-height:105px;object-fit:contain}
.cover-profile-editor .profile-logo-preview.empty{color:var(--muted);font-size:12px}
.ce-selection-info{border:1px solid var(--line);border-radius:7px;background:#fff;padding:8px;margin-bottom:9px;display:grid;gap:5px}
.ce-selection-info>div{display:grid;grid-template-columns:58px 1fr;gap:7px;align-items:baseline}
.ce-selection-info span{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.ce-selection-info b{font-size:11px;color:var(--heading);overflow-wrap:anywhere}

/* 0.1.14 — editor copertine */
.ce-toolbar{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin:0 0 9px}.ce-tool{width:32px;height:32px;padding:6px!important;display:inline-flex;align-items:center;justify-content:center;border-radius:6px}.ce-tool svg,.ce-insert-button svg,.ce-save-main svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.ce-tool.active{background:var(--accent-strong);color:#fff;border-color:var(--accent-strong)}.ce-tool-sep{width:1px;height:24px;background:var(--line);margin:0 2px}.ce-insert-box{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:6px;align-items:end;margin:5px 0 10px}.ce-insert-box label{margin:0}.ce-insert-button{height:34px;padding:7px;display:flex;align-items:center;justify-content:center}.ce-align-tools{padding:8px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.ce-magnet-status{font-size:10px;color:var(--muted);line-height:1.2;max-width:110px}.ce-editor-note{font-size:11px;line-height:1.4;color:var(--muted);padding:9px;border-radius:7px;background:var(--soft-2);border:1px solid var(--line)}.ce-save-tools{display:flex;gap:7px;align-items:center;margin-top:12px}.ce-save-main{display:flex;align-items:center;justify-content:center;gap:6px;flex:1}.ce-check-row{display:flex;gap:12px;flex-wrap:wrap;margin:8px 0}.ce-check{align-self:end;padding-bottom:6px}.cover-editor-launch{gap:10px;flex-wrap:wrap}.cover-model-help{margin-top:0}.cover-profile-builder{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:16px;align-items:start}.cover-profile-live{position:sticky;top:0;border:1px solid var(--line);border-radius:8px;background:var(--soft-2);padding:12px}.cover-profile-live h3{margin-top:0}.professional-header-preview{min-height:150px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:18px;display:flex;gap:16px;align-items:center}.professional-header-preview .php-logo{width:95px;min-width:95px;display:flex;align-items:center;justify-content:center}.professional-header-preview .php-logo img{max-width:100%;max-height:80px;object-fit:contain}.professional-header-preview .php-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.professional-header-preview .php-copy>b{font-size:18px;color:#30353a}.professional-header-preview .php-copy>strong{font-size:13px}.professional-header-preview .php-copy>span{font-size:12px}.professional-header-preview .php-copy>small{font-size:10px;line-height:1.45;color:#6d747b}.professional-header-preview.logo-top{flex-direction:column;align-items:flex-start}.professional-header-preview.logo-top .php-logo{width:120px;justify-content:flex-start}.professional-header-preview.text-only .php-logo{display:none}.professional-header-preview.compact{min-height:90px;padding:10px;gap:10px}.professional-header-preview.compact .php-logo{width:62px;min-width:62px}.professional-header-preview.compact .php-logo img{max-height:52px}.professional-header-preview.compact .php-copy>b{font-size:14px}@media(max-width:1050px){.cover-profile-builder{grid-template-columns:1fr}.cover-profile-live{position:static}}
/* 0.1.15 — editor oggetti, team e generatore intestazioni COMMESSE */
.ce-object-danger{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.ce-object-danger .danger{display:inline-flex;align-items:center;gap:6px}.ce-object-danger svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7}
.cover-team-person{display:flex;flex-direction:column;align-items:inherit;margin:0 0 .8em 0;line-height:1.18}.cover-team-person:last-child{margin-bottom:0}.cover-team-person b{display:block;font-weight:700}.cover-team-person span{display:block;font-weight:400}
.cover-professional{display:flex;flex-direction:column;gap:.35em;width:100%}.cover-professional-data{display:flex;flex-direction:column;gap:.08em}.cover-professional-data>div{white-space:normal}.cover-professional-data>div>span:first-child{font-weight:400}
.profile-format-buttons{display:flex;gap:6px}.profile-format-btn{position:relative;min-width:58px;height:34px;border:1px solid var(--line);border-radius:6px;background:#fff;display:flex;align-items:center;justify-content:center;gap:4px;cursor:pointer}.profile-format-btn input{position:absolute;opacity:0;pointer-events:none}.profile-format-btn.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--soft-2)}.profile-format-btn span{font-size:9px;color:var(--muted)}.profile-format-btn.italic i{font-family:Georgia,serif;font-weight:700}
.header-preview{min-height:155px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:16px}.header-preview-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start}.header-preview-logo{display:block;object-fit:contain;margin-bottom:8px}.header-preview-name,.header-preview-sub,.header-preview-contact,.header-preview-fiscal{margin:2px 0}.header-preview-title{font-weight:700;font-size:12px;text-align:right;color:var(--heading)}.header-preview-meta{font-size:10px;text-align:right;color:var(--muted);margin-top:4px}.header-preview-link-sample{font-size:9px;margin-top:4px}.commesse-profile-builder textarea{min-height:58px}

/* 0.1.16 — campi etichettati, team verticali e generatore intestazioni */
.cover-team-list{display:flex;flex-direction:column;width:100%;min-width:0;align-items:stretch}
.cover-team-person{display:flex!important;flex-direction:column!important;align-items:flex-start!important;width:100%;margin:0 0 .9em 0;line-height:1.18}
.cover-team-person b,.cover-team-person span{display:block;width:100%}
.cover-field{display:flex;width:100%;min-width:0}
.cover-field-above{flex-direction:column;gap:.18em}
.cover-field-inline{flex-direction:row;align-items:baseline;gap:.42em;flex-wrap:wrap}
.cover-field-label{display:block;line-height:1.1}
.cover-field-value{display:block;min-width:0;white-space:pre-wrap}
.ce-label-settings{margin:10px 0;padding:9px;border:1px solid var(--line);border-radius:7px;background:#fff}
.ce-label-settings h3{margin:0 0 8px!important}
.cover-profile-generator-intro{margin-bottom:10px}
.cover-profile-tools-primary{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 12px}
/* 0.1.18 - controlli colore RGB e padding editor */
.ce-color-control{border:1px solid var(--line);border-radius:7px;background:#fff;padding:8px;margin:8px 0}.ce-color-main{display:grid;grid-template-columns:42px 1fr;gap:8px;align-items:center;margin-top:5px}.ce-color-swatch{width:42px!important;height:32px;padding:2px;border:1px solid var(--line);border-radius:6px;background:#fff}.ce-color-main code{font-size:11px;color:var(--muted);background:var(--soft-2);padding:6px 8px;border-radius:5px}.ce-rgb-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:7px}.ce-rgb-grid label{margin:0;font-size:10px;text-align:center}.ce-rgb-grid input{margin-top:3px;text-align:center;padding:5px}.ce-padding-settings{border-top:1px solid var(--line);margin-top:9px;padding-top:3px}.profile-rgb-control{grid-column:1/-1}

.profile-visibility-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;margin:8px 0 12px}.ce-team-subjects,.ce-professional-instance{border-top:1px solid var(--line);margin-top:10px;padding-top:8px}.ce-team-subjects .checkline,.profile-visibility-grid .checkline{margin:0}

/* 0.1.24 - Elenco elaborati modificabile e metadati */
.project-elaborati-title>div{display:flex;flex-direction:column;gap:2px}.project-elaborati-title small{font-size:11px;font-weight:600;opacity:.72}.project-list-meta-controls{display:flex;gap:12px;align-items:end;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid var(--border,#d5dadf);background:rgba(255,255,255,.45)}.project-list-meta-controls label{min-width:210px}.project-list-meta-controls select,.project-list-meta-controls input{width:100%}

/* Soggetti locali della commessa */
.subject-actions{width:44px;text-align:center;vertical-align:middle}.subject-actions button{min-width:30px;padding:5px 7px}.settings-block-head>.muted{max-width:70ch}

/* 0.1.27 - Dati commessa / soggetti */
.commessa-subject-primary-action{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0 18px}.commessa-subject-primary-action .muted{font-size:.9rem}
