@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&display=swap');

:root {
  --ws-bg: #f3f5f7;
  --ws-card: #ffffff;
  --ws-ink: #15181c;
  --ws-text: #48515a;
  --ws-muted: #7b848d;
  --ws-line: #dbe0e5;
  --ws-line-soft: #e8ebee;
  --ws-dark: #111418;
  --ws-dark-2: #1d232a;
  --ws-gold: #c49a28;
  --ws-green: #39724f;
  --ws-blue: #496891;
  --ws-red: #994b41;
  --ws-serif: 'Cormorant Garamond', Georgia, serif;
  --ws-shadow: 0 18px 48px rgba(25, 32, 40, .07);
}

.workspace-page {
  min-height: 100vh;
  touch-action: pan-y;
  background:
    radial-gradient(circle at 94% 0, rgba(196, 154, 40, .05), transparent 22%),
    var(--ws-bg);
  color: var(--ws-ink);
}

.workspace-page button:focus-visible,
.workspace-page a:focus-visible,
.workspace-page input:focus-visible,
.workspace-page select:focus-visible,
.workspace-page textarea:focus-visible {
  outline: 2px solid var(--ws-gold);
  outline-offset: 3px;
}

.workspace-topbar {
  position: sticky;
}

.workspace-primary-nav a {
  padding-inline: 11px;
}

.workspace-account {
  display: grid;
  grid-template-columns: 36px auto;
  align-items: center;
  gap: 10px;
}

.workspace-account img,
.workspace-account .session-avatar {
  width: 36px;
  height: 36px;
  border: 1px solid rgba(196, 154, 40, .58);
  border-radius: 50%;
}

.workspace-account img {
  object-fit: cover;
  object-position: center 18%;
}

.workspace-account .session-avatar {
  display: grid;
  place-items: center;
  background: rgba(196, 154, 40, .16);
  color: #e2b83d;
  font: 700 13px/1 var(--mono);
}

.workspace-account strong,
.workspace-account small {
  display: block;
}

.workspace-account strong {
  color: rgba(255, 255, 255, .84);
  font-size: 11px;
}

.workspace-account small {
  margin-top: 3px;
  color: rgba(255, 255, 255, .4);
  font: 500 7px/1 var(--mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.workspace-main {
  width: min(1510px, 100%);
  margin: 0 auto;
  padding: 44px clamp(22px, 3.6vw, 58px) 92px;
}

.workspace-breadcrumb {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 25px;
  color: var(--ws-muted);
  font: 600 8px/1 var(--mono);
  letter-spacing: .09em;
  text-transform: uppercase;
}

.workspace-breadcrumb a:hover {
  color: var(--ws-gold);
}

.workspace-breadcrumb span {
  color: #b2b8bd;
}

.workspace-page-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: 31px;
}

.workspace-kicker {
  margin: 0 0 10px;
  color: #967217;
  font: 600 9px/1.3 var(--mono);
  letter-spacing: .16em;
  text-transform: uppercase;
}

.workspace-page-head h1,
.workspace-card-title {
  margin: 0;
  font: 600 clamp(50px, 5.4vw, 78px)/.88 var(--ws-serif);
  letter-spacing: -.045em;
}

.workspace-page-head > div:first-child > p:last-child {
  max-width: 680px;
  margin: 17px 0 0;
  color: var(--ws-text);
  font-size: 13px;
  line-height: 1.6;
}

.workspace-head-actions {
  display: flex;
  align-items: center;
  gap: 9px;
}

.projects-primary-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

.workspace-button {
  min-height: 45px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 0 18px;
  border: 1px solid #242a30;
  border-radius: 6px;
  background: #242a30;
  color: #fff;
  font: 600 8px/1 var(--mono);
  letter-spacing: .09em;
  text-transform: uppercase;
}

.workspace-button.secondary {
  border-color: #d6dce1;
  background: #fff;
  color: #454d55;
}

.workspace-button.gold {
  border-color: var(--ws-gold);
  background: var(--ws-gold);
  color: #17130e;
}

.workspace-button > b {
  color: var(--ws-gold);
  font-size: 16px;
  font-weight: 400;
}

.workspace-button.gold > b {
  color: #17130e;
}

.workspace-demo-note {
  display: flex;
  align-items: center;
  gap: 11px;
  width: fit-content;
  max-width: 100%;
  margin-bottom: 28px;
  padding: 8px 11px 8px 8px;
  border: 1px solid #dde2e6;
  border-radius: 999px;
  background: #fff;
}

.workspace-demo-note strong {
  padding: 6px 9px;
  border-radius: 999px;
  background: #20252a;
  color: #e4be53;
  font: 600 7px/1 var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.workspace-demo-note span {
  color: #727b84;
  font-size: 9px;
}

.workspace-demo-note[data-operational-mode="live"] {
  border-color: rgba(42, 115, 78, .34);
  background: #edf7f0;
}

.workspace-demo-note[data-operational-mode="live"] strong {
  background: #1f6943;
  color: #fff;
}

.workspace-demo-note[data-operational-mode="login"] a {
  color: inherit;
  font-weight: 800;
  text-underline-offset: 3px;
}

.workspace-card {
  min-width: 0;
  border: 1px solid var(--ws-line);
  border-radius: 17px;
  background: var(--ws-card);
  box-shadow: 0 12px 38px rgba(25, 32, 40, .035);
}

.workspace-card-pad {
  padding: clamp(22px, 2.6vw, 36px);
}

.workspace-card-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 22px;
  margin-bottom: 23px;
}

.workspace-card-head h2 {
  margin: 0;
  font: 600 clamp(34px, 3vw, 47px)/.92 var(--ws-serif);
  letter-spacing: -.035em;
}

.workspace-card-head p:not(.workspace-kicker) {
  max-width: 600px;
  margin: 9px 0 0;
  color: var(--ws-muted);
  font-size: 10px;
  line-height: 1.55;
}

.workspace-text-action {
  flex: 0 0 auto;
  padding: 8px 0;
  border: 0;
  border-bottom: 1px solid #b9c0c6;
  background: transparent;
  color: #59626b;
  font: 600 8px/1 var(--mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.workspace-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px;
  border: 1px solid var(--ws-line);
  border-radius: 14px;
  background: #fff;
}

.workspace-search {
  min-width: 220px;
  flex: 1;
  height: 43px;
  padding: 0 14px;
  border: 1px solid var(--ws-line);
  border-radius: 9px;
  outline: 0;
  background: #f8fafb;
  color: var(--ws-ink);
}

.workspace-select {
  min-width: 150px;
  height: 43px;
  padding: 0 34px 0 13px;
  border: 1px solid var(--ws-line);
  border-radius: 9px;
  outline: 0;
  background: #fff;
  color: #46505a;
  font-size: 11px;
}

.workspace-segmented {
  display: inline-flex;
  gap: 3px;
  padding: 3px;
  border: 1px solid var(--ws-line);
  border-radius: 10px;
  background: #f3f5f7;
}

.workspace-segmented button {
  min-height: 34px;
  padding: 0 11px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #7a838c;
  font: 600 8px/1 var(--mono);
  letter-spacing: .06em;
  text-transform: uppercase;
}

.workspace-segmented button.active {
  background: #fff;
  color: #242a30;
  box-shadow: 0 2px 9px rgba(25, 32, 40, .08);
}

.workspace-status-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 18px;
  overflow: hidden;
  border: 1px solid var(--ws-line);
  border-radius: 14px;
  background: #fff;
}

.workspace-status-grid article {
  padding: 19px 20px;
  border-right: 1px solid var(--ws-line);
}

.workspace-status-grid article:last-child {
  border-right: 0;
}

.workspace-status-grid span,
.workspace-status-grid strong,
.workspace-status-grid small {
  display: block;
}

.workspace-status-grid span {
  color: var(--ws-muted);
  font: 600 8px/1 var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.workspace-status-grid strong {
  margin-top: 7px;
  font-size: 18px;
}

.workspace-status-grid small {
  margin-top: 4px;
  color: #929aa2;
  font-size: 8px;
}

/* Agenda */
.agenda-workspace-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(320px, .75fr);
  gap: 18px;
}

.agenda-calendar {
  overflow: hidden;
}

.agenda-calendar-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 23px 26px;
  border-bottom: 1px solid var(--ws-line);
}

.agenda-calendar-top h2 {
  margin: 0;
  font: 600 34px/.95 var(--ws-serif);
}

.agenda-calendar-top > div {
  display: flex;
  gap: 6px;
}

.agenda-calendar-top button {
  min-width: 36px;
  height: 35px;
  padding: 0 10px;
  border: 1px solid var(--ws-line);
  border-radius: 8px;
  background: #fff;
  color: #59626b;
  font: 600 8px/1 var(--mono);
  text-transform: uppercase;
}

.agenda-calendar-grid {
  display: grid;
  grid-template-columns: 58px repeat(7, minmax(100px, 1fr));
  min-width: 850px;
}

.agenda-calendar-scroll {
  overflow-x: auto;
}

.calendar-corner,
.calendar-day-head {
  min-height: 65px;
  display: grid;
  place-items: center;
  border-right: 1px solid var(--ws-line-soft);
  border-bottom: 1px solid var(--ws-line);
  background: #f8fafb;
}

.calendar-day-head span,
.calendar-day-head strong {
  display: block;
  text-align: center;
}

.calendar-day-head span {
  color: var(--ws-muted);
  font: 600 7px/1 var(--mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.calendar-day-head strong {
  margin-top: 5px;
  font-size: 14px;
}

.calendar-day-head.today {
  background: #fff8df;
}

.calendar-day-head.today strong {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  margin-top: 3px;
  border-radius: 50%;
  background: var(--ws-gold);
}

.calendar-time,
.calendar-cell {
  min-height: 74px;
  border-right: 1px solid var(--ws-line-soft);
  border-bottom: 1px solid var(--ws-line-soft);
}

.calendar-time {
  padding: 8px 7px;
  color: #9098a0;
  font-size: 8px;
  text-align: right;
}

.calendar-cell {
  position: relative;
  padding: 5px;
  background: #fff;
}

.calendar-cell.today {
  background: #fffdf7;
}

.calendar-event {
  width: 100%;
  min-height: 61px;
  display: block;
  padding: 9px;
  border: 1px solid #dfe5ea;
  border-left: 3px solid var(--ws-blue);
  border-radius: 8px;
  background: #f1f5fa;
  color: #29333d;
  text-align: left;
}

.calendar-event.site {
  border-left-color: var(--ws-red);
  background: #fbf2f0;
}

.calendar-event.booking {
  border-left-color: var(--ws-gold);
  background: #fff8e3;
}

.calendar-event.deadline {
  border-left-color: var(--ws-green);
  background: #f0f7f2;
}

.calendar-event strong,
.calendar-event small {
  display: block;
}

.calendar-event strong {
  font-size: 9px;
}

.calendar-event small {
  margin-top: 4px;
  color: #77818a;
  font-size: 7px;
}

.agenda-side-stack {
  display: grid;
  gap: 18px;
  align-content: start;
}

.agenda-request-list,
.availability-list {
  display: grid;
  gap: 9px;
}

.agenda-request-row,
.availability-row {
  width: 100%;
  display: grid;
  grid-template-columns: 36px 1fr auto;
  gap: 11px;
  align-items: center;
  padding: 13px;
  border: 1px solid var(--ws-line);
  border-radius: 11px;
  background: #fff;
  text-align: left;
}

.agenda-request-row > span:first-child,
.availability-row > span:first-child {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #eef1f3;
  color: #56616b;
  font: 600 9px/1 var(--mono);
}

.agenda-request-row strong,
.agenda-request-row small,
.availability-row strong,
.availability-row small {
  display: block;
}

.agenda-request-row strong,
.availability-row strong {
  font-size: 10px;
}

.agenda-request-row small,
.availability-row small {
  margin-top: 4px;
  color: #879099;
  font-size: 8px;
}

.agenda-request-row > span:last-child,
.availability-row > span:last-child {
  color: #808991;
  font-size: 12px;
}

.availability-switch {
  position: relative;
  width: 36px;
  height: 20px;
  border-radius: 999px;
  background: #d4d9dd;
}

.availability-switch::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 2px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .18);
}

.availability-row.enabled .availability-switch {
  background: var(--ws-green);
}

.availability-row.enabled .availability-switch::after {
  transform: translateX(16px);
}

/* Progetti */
.projects-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(310px, .65fr);
  gap: 18px;
  margin-top: 18px;
}

.projects-list {
  overflow: hidden;
}

.project-table-head,
.project-table-row {
  display: grid;
  grid-template-columns: minmax(250px, 1.4fr) .7fr .65fr .55fr 34px;
  gap: 16px;
  align-items: center;
}

.project-table-head {
  padding: 12px 22px;
  border-bottom: 1px solid var(--ws-line);
  background: #f7f9fa;
  color: #818a92;
  font: 600 7px/1 var(--mono);
  letter-spacing: .09em;
  text-transform: uppercase;
}

.project-table-row {
  width: 100%;
  min-height: 102px;
  padding: 18px 22px;
  border: 0;
  border-bottom: 1px solid var(--ws-line-soft);
  background: #fff;
  text-align: left;
}

.project-table-row:last-child {
  border-bottom: 0;
}

.project-table-row:hover {
  background: #fafbfc;
}

.project-table-main {
  min-width: 0;
  display: grid;
  grid-template-columns: 46px 1fr;
  gap: 13px;
  align-items: center;
}

.project-table-code {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: #edf1f4;
  color: #64717d;
  font: 600 9px/1 var(--mono);
}

.project-table-main strong,
.project-table-main small {
  display: block;
}

.project-table-main strong {
  overflow: hidden;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.project-table-main small {
  margin-top: 5px;
  color: #89929a;
  font-size: 8px;
}

.project-status {
  width: fit-content;
  padding: 6px 9px;
  border-radius: 999px;
  background: #e7f0ea;
  color: #376348;
  font: 600 7px/1 var(--mono);
  letter-spacing: .07em;
  text-transform: uppercase;
}

.project-status.provisional {
  background: #f4ecd5;
  color: #795e17;
}

.project-status.draft {
  background: #eceff2;
  color: #68737d;
}

.project-progress strong,
.project-progress small,
.project-destination strong,
.project-destination small {
  display: block;
}

.project-progress strong,
.project-destination strong {
  font-size: 10px;
}

.project-progress small,
.project-destination small {
  margin-top: 5px;
  color: #9098a0;
  font-size: 8px;
}

.project-arrow {
  color: #929ba3;
  font-size: 16px;
}

.project-side-stack {
  display: grid;
  gap: 18px;
  align-content: start;
}

.capacity-gauge {
  position: relative;
  width: 148px;
  height: 148px;
  display: grid;
  place-items: center;
  margin: 15px auto 22px;
  border-radius: 50%;
  background: conic-gradient(var(--ws-gold) 0 68%, #e4e8eb 68% 100%);
}

.capacity-gauge::after {
  content: '';
  position: absolute;
  inset: 13px;
  border-radius: 50%;
  background: #fff;
}

.capacity-gauge strong {
  position: relative;
  z-index: 1;
  font: 600 38px/.9 var(--ws-serif);
}

.capacity-gauge small {
  position: relative;
  z-index: 1;
  font-size: 15px;
}

.capacity-copy {
  margin: 0;
  color: var(--ws-text);
  font-size: 10px;
  line-height: 1.6;
  text-align: center;
}

.capacity-key {
  display: grid;
  gap: 9px;
  margin-top: 20px;
}

.capacity-key div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding-top: 9px;
  border-top: 1px solid var(--ws-line-soft);
  color: #727c84;
  font-size: 9px;
}

.capacity-key strong {
  color: var(--ws-ink);
}

.project-empty-slot {
  width: 100%;
  min-height: 100px;
  display: grid;
  place-items: center;
  padding: 20px;
  border: 1px dashed #cbd2d8;
  border-radius: 12px;
  background: #f8fafb;
  color: #68727b;
  text-align: center;
}

.project-empty-slot strong,
.project-empty-slot small {
  display: block;
}

.project-empty-slot strong {
  font-size: 10px;
}

.project-empty-slot small {
  margin-top: 5px;
  color: #929aa1;
  font-size: 8px;
}

/* Messaggi */
.messages-workspace {
  min-height: 670px;
  display: grid;
  grid-template-columns: 315px minmax(0, 1fr);
  overflow: hidden;
}

.mailbox-pane {
  border-right: 1px solid var(--ws-line);
  background: #f8fafb;
}

.mailbox-head {
  padding: 20px;
  border-bottom: 1px solid var(--ws-line);
}

.mailbox-search {
  width: 100%;
  height: 42px;
  padding: 0 13px;
  border: 1px solid var(--ws-line);
  border-radius: 9px;
  outline: 0;
  background: #fff;
}

.mailbox-filters {
  display: flex;
  gap: 4px;
  margin-top: 10px;
}

.mailbox-filters button {
  min-height: 29px;
  padding: 0 8px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #7c858d;
  font-size: 8px;
}

.mailbox-filters button.active {
  background: #e9edf0;
  color: #303840;
}

.mailbox-list {
  max-height: 594px;
  overflow-y: auto;
}

.mailbox-item {
  width: 100%;
  display: grid;
  grid-template-columns: 37px 1fr;
  gap: 10px;
  padding: 15px 17px;
  border: 0;
  border-bottom: 1px solid var(--ws-line-soft);
  background: transparent;
  text-align: left;
}

.mailbox-item.active {
  background: #fff;
  box-shadow: inset 3px 0 var(--ws-gold);
}

.mailbox-item.unread .mailbox-copy strong,
.mailbox-item.unread .mailbox-copy b {
  font-weight: 700;
}

.mailbox-avatar {
  width: 37px;
  height: 37px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #e3e8ec;
  color: #556471;
  font: 600 8px/1 var(--mono);
}

.mailbox-copy {
  min-width: 0;
}

.mailbox-copy > span {
  display: flex;
  justify-content: space-between;
  gap: 9px;
}

.mailbox-copy strong,
.mailbox-copy time {
  font-size: 8px;
}

.mailbox-copy time {
  color: #9ba2a9;
}

.mailbox-copy b,
.mailbox-copy small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mailbox-copy b {
  margin-top: 5px;
  font-size: 9px;
}

.mailbox-copy small {
  margin-top: 4px;
  color: #89929a;
  font-size: 8px;
}

.thread-pane {
  min-width: 0;
  display: grid;
  grid-template-rows: auto 1fr auto;
  background: #fff;
}

.thread-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 20px;
  padding: 24px 27px;
  border-bottom: 1px solid var(--ws-line);
}

.thread-head h2 {
  margin: 0;
  font: 600 35px/.95 var(--ws-serif);
}

.thread-head p {
  margin: 7px 0 0;
  color: var(--ws-muted);
  font-size: 9px;
}

.thread-head-actions {
  display: flex;
  gap: 6px;
}

.thread-head-actions button {
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid var(--ws-line);
  border-radius: 8px;
  background: #fff;
  color: #69737c;
  font: 600 7px/1 var(--mono);
  text-transform: uppercase;
}

.thread-body {
  display: grid;
  align-content: start;
  gap: 14px;
  padding: 25px 28px;
  overflow-y: auto;
  background: #f8fafb;
}

.thread-message {
  max-width: 720px;
  padding: 17px;
  border: 1px solid var(--ws-line);
  border-radius: 12px;
  background: #fff;
}

.thread-message.mine {
  justify-self: end;
  background: #f2f5f7;
}

.thread-message > span {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  color: #8b949c;
  font-size: 8px;
}

.thread-message strong {
  color: #303840;
}

.thread-message p {
  margin: 11px 0 0;
  color: #4e5861;
  font-size: 11px;
  line-height: 1.65;
}

.thread-attachment {
  display: grid;
  grid-template-columns: 32px 1fr auto;
  gap: 10px;
  align-items: center;
  margin-top: 13px;
  padding: 10px;
  border: 1px solid var(--ws-line);
  border-radius: 9px;
  background: #fafbfc;
}

.thread-attachment > span:first-child {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #e7ebee;
  color: #5d6974;
  font: 600 7px/1 var(--mono);
}

.thread-attachment strong,
.thread-attachment small {
  display: block;
}

.thread-attachment strong {
  font-size: 8px;
}

.thread-attachment small {
  margin-top: 3px;
  color: #929aa2;
  font-size: 7px;
}

.thread-attachment > span:last-child {
  color: #77818a;
  font-size: 11px;
}

.thread-composer {
  padding: 18px 25px;
  border-top: 1px solid var(--ws-line);
  background: #fff;
}

.thread-composer textarea {
  width: 100%;
  min-height: 86px;
  padding: 13px;
  border: 1px solid var(--ws-line);
  border-radius: 10px;
  outline: 0;
  resize: vertical;
}

.thread-composer-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin-top: 10px;
}

.thread-composer-actions > button:first-child {
  padding: 7px 0;
  border: 0;
  border-bottom: 1px solid #b8c0c7;
  background: transparent;
  color: #626d76;
  font-size: 8px;
}

.thread-file-selection {
  color: var(--workspace-muted);
  font-size: .78rem;
  margin-right: auto;
}

/* Finanze */
.finance-overview {
  display: grid;
  grid-template-columns: 1.2fr repeat(3, .7fr);
  margin-bottom: 18px;
  overflow: hidden;
  border: 1px solid var(--ws-line);
  border-radius: 15px;
  background: #fff;
}

.finance-overview article {
  min-height: 130px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 22px;
  border-right: 1px solid var(--ws-line);
}

.finance-overview article:last-child {
  border-right: 0;
}

.finance-overview span,
.finance-overview strong,
.finance-overview small {
  display: block;
}

.finance-overview span {
  color: var(--ws-muted);
  font: 600 8px/1 var(--mono);
  letter-spacing: .09em;
  text-transform: uppercase;
}

.finance-overview strong {
  margin-top: 10px;
  font: 600 33px/.95 var(--ws-serif);
}

.finance-overview article:first-child strong {
  font-size: 46px;
}

.finance-overview small {
  margin-top: 7px;
  color: #929aa1;
  font-size: 8px;
}

.finance-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(310px, .55fr);
  gap: 18px;
}

.finance-table-head,
.finance-row {
  display: grid;
  grid-template-columns: 92px minmax(180px, 1fr) .7fr .55fr 85px;
  gap: 13px;
  align-items: center;
}

.finance-table-head {
  padding: 12px 20px;
  border-bottom: 1px solid var(--ws-line);
  background: #f7f9fa;
  color: #858e96;
  font: 600 7px/1 var(--mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.finance-row {
  min-height: 75px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--ws-line-soft);
}

.finance-row:last-child {
  border-bottom: 0;
}

.finance-row time,
.finance-row span,
.finance-row small {
  color: #7e878f;
  font-size: 8px;
}

.finance-row strong,
.finance-row b {
  font-size: 10px;
}

.finance-row .positive {
  color: var(--ws-green);
}

.finance-row .negative {
  color: var(--ws-red);
}

.finance-row .pending {
  color: #8a6c1c;
}

.finance-side {
  display: grid;
  gap: 18px;
  align-content: start;
}

.deadline-list {
  display: grid;
  gap: 9px;
}

.deadline-row {
  display: grid;
  grid-template-columns: 42px 1fr auto;
  gap: 11px;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid var(--ws-line-soft);
}

.deadline-row:last-child {
  border-bottom: 0;
}

.deadline-date {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: #eef1f3;
  color: #5a6670;
  font: 600 8px/1.15 var(--mono);
  text-align: center;
  text-transform: uppercase;
}

.deadline-row strong,
.deadline-row small {
  display: block;
}

.deadline-row strong {
  font-size: 9px;
}

.deadline-row small {
  margin-top: 4px;
  color: #9098a0;
  font-size: 8px;
}

.deadline-row > span:last-child {
  color: #8c959c;
}

.finance-row {
  width: 100%;
  border-top: 0;
  border-right: 0;
  border-left: 0;
  background: #fff;
  color: inherit;
  text-align: left;
}

.finance-row:hover {
  background: #f8fafb;
}

.finance-empty {
  margin: 0;
  padding: 34px 20px;
  color: var(--ws-muted);
  text-align: center;
}

.finance-support-copy {
  margin: -5px 0 22px;
  color: var(--ws-text);
  font-size: 10px;
  line-height: 1.65;
}

.finance-support-action {
  width: 100%;
}

/* Creazione progetto */
.project-builder-main {
  width: min(1480px, 100%);
  margin: 0 auto;
  padding: 36px clamp(20px, 3.4vw, 54px) 80px;
}

.project-builder-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 35px;
  margin-bottom: 26px;
}

.project-builder-head h1 {
  margin: 0;
  font: 600 clamp(49px, 5vw, 72px)/.9 var(--ws-serif);
  letter-spacing: -.045em;
}

.project-builder-head > div > p:last-child {
  max-width: 700px;
  margin: 14px 0 0;
  color: var(--ws-text);
  font-size: 12px;
  line-height: 1.6;
}

.builder-distinction {
  flex: 0 0 min(390px, 36vw);
  padding: 14px 16px;
  border: 1px solid #dce1e5;
  border-left: 3px solid var(--ws-gold);
  border-radius: 10px;
  background: #fff;
}

.builder-distinction strong,
.builder-distinction span {
  display: block;
}

.builder-distinction strong {
  font-size: 9px;
}

.builder-distinction span {
  margin-top: 5px;
  color: #78818a;
  font-size: 8px;
  line-height: 1.5;
}

.project-builder-layout {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr) 300px;
  gap: 18px;
  align-items: start;
}

.builder-progress,
.builder-summary {
  position: sticky;
  top: 103px;
}

.builder-progress {
  padding: 12px;
}

.builder-step-button {
  width: 100%;
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 11px;
  align-items: center;
  padding: 12px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #7b848d;
  text-align: left;
}

.builder-step-button + .builder-step-button {
  margin-top: 3px;
}

.builder-step-button > span {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid #d8dde2;
  border-radius: 10px;
  background: #fff;
  font: 600 8px/1 var(--mono);
}

.builder-step-button strong,
.builder-step-button small {
  display: block;
}

.builder-step-button strong {
  color: inherit;
  font-size: 9px;
}

.builder-step-button small {
  margin-top: 4px;
  color: #9aa1a8;
  font-size: 7px;
}

.builder-step-button.active {
  background: #f0f3f5;
  color: #22282e;
}

.builder-step-button.active > span {
  border-color: var(--ws-gold);
  background: var(--ws-gold);
  color: #17130e;
}

.builder-step-button.complete > span {
  border-color: #57906b;
  background: #e6f0e9;
  color: #326043;
}

.builder-form-card {
  min-height: 690px;
  padding: clamp(25px, 3vw, 42px);
}

.builder-step[hidden] {
  display: none;
}

.builder-step {
  animation: builder-step-in .22s ease both;
}

@keyframes builder-step-in {
  from { opacity: 0; transform: translateY(7px); }
  to { opacity: 1; transform: translateY(0); }
}

.builder-step-head {
  padding-bottom: 24px;
  border-bottom: 1px solid var(--ws-line);
}

.builder-step-head h2 {
  margin: 0;
  font: 600 clamp(37px, 3.7vw, 52px)/.92 var(--ws-serif);
  letter-spacing: -.035em;
}

.builder-step-head p {
  max-width: 680px;
  margin: 11px 0 0;
  color: var(--ws-text);
  font-size: 11px;
  line-height: 1.6;
}

.builder-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 17px;
  margin-top: 27px;
}

.builder-field {
  display: grid;
  gap: 8px;
}

.builder-field.full {
  grid-column: 1 / -1;
}

.builder-field > span,
.builder-choice-title {
  color: #626c75;
  font: 600 8px/1.2 var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.builder-field input,
.builder-field select,
.builder-field textarea {
  width: 100%;
  min-width: 0;
  padding: 0 13px;
  border: 1px solid #d5dbe0;
  border-radius: 9px;
  outline: 0;
  background: #fff;
  color: #20262c;
  font-size: 12px;
}

.builder-field input,
.builder-field select {
  height: 48px;
}

.builder-field textarea {
  min-height: 105px;
  padding-block: 12px;
  resize: vertical;
}

.builder-field small {
  color: #929aa1;
  font-size: 8px;
  line-height: 1.5;
}

.builder-choice-group {
  grid-column: 1 / -1;
}

.builder-choice-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 9px;
  margin-top: 10px;
}

.builder-choice {
  position: relative;
  min-height: 102px;
  display: grid;
  align-content: center;
  gap: 6px;
  padding: 15px;
  border: 1px solid #dce1e5;
  border-radius: 11px;
  background: #fff;
  cursor: pointer;
}

.builder-choice input {
  position: absolute;
  opacity: 0;
}

.builder-choice strong,
.builder-choice small {
  display: block;
}

.builder-choice strong {
  font-size: 10px;
}

.builder-choice small {
  color: #89929a;
  font-size: 8px;
  line-height: 1.4;
}

.builder-choice:has(input:checked) {
  border-color: var(--ws-gold);
  background: #fffaf0;
  box-shadow: 0 0 0 2px rgba(196, 154, 40, .09);
}

.builder-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 10px;
}

.builder-tag-choice {
  position: relative;
}

.builder-tag-choice input {
  position: absolute;
  opacity: 0;
}

.builder-tag-choice span {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  padding: 0 13px;
  border: 1px solid #d8dde2;
  border-radius: 999px;
  background: #fff;
  color: #616b74;
  font-size: 9px;
  cursor: pointer;
}

.builder-tag-choice input:checked + span {
  border-color: color-mix(in srgb, var(--pill, #c49a28), #fff 28%);
  background: color-mix(in srgb, var(--pill, #c49a28), #fff 88%);
  color: color-mix(in srgb, var(--pill, #8b6914), #111 15%);
}

.builder-upload {
  grid-column: 1 / -1;
  min-height: 130px;
  display: grid;
  place-items: center;
  padding: 20px;
  border: 1px dashed #c7cfd5;
  border-radius: 12px;
  background: #f8fafb;
  text-align: center;
  cursor: pointer;
}

.builder-upload input {
  position: absolute;
  opacity: 0;
}

.builder-upload strong,
.builder-upload small {
  display: block;
}

.builder-upload strong {
  font-size: 10px;
}

.builder-upload small {
  margin-top: 6px;
  color: #8e979f;
  font-size: 8px;
}

.builder-review {
  display: grid;
  gap: 12px;
  margin-top: 26px;
}

.builder-review article {
  display: grid;
  grid-template-columns: 150px 1fr auto;
  gap: 15px;
  align-items: start;
  padding: 16px;
  border: 1px solid var(--ws-line);
  border-radius: 11px;
  background: #fff;
}

.builder-review article > span {
  color: #858e96;
  font: 600 8px/1 var(--mono);
  text-transform: uppercase;
}

.builder-review article strong,
.builder-review article small {
  display: block;
}

.builder-review article strong {
  font-size: 10px;
}

.builder-review article small {
  margin-top: 5px;
  color: #8a939b;
  font-size: 8px;
}

.builder-review article button {
  padding: 6px 0;
  border: 0;
  border-bottom: 1px solid #b8c0c7;
  background: transparent;
  color: #657079;
  font-size: 8px;
}

.builder-success {
  display: grid;
  place-items: center;
  min-height: 520px;
  text-align: center;
}

.builder-success[hidden] {
  display: none;
}

.builder-success-mark {
  width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #e3efe7;
  color: #356348;
  font-size: 24px;
}

.builder-success h2 {
  margin: 24px 0 0;
  font: 600 clamp(42px, 5vw, 65px)/.92 var(--ws-serif);
}

.builder-success p {
  max-width: 560px;
  margin: 15px auto 0;
  color: var(--ws-text);
  font-size: 11px;
  line-height: 1.65;
}

.builder-success-actions {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 25px;
}

.builder-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid var(--ws-line);
}

.builder-actions > div {
  display: flex;
  gap: 8px;
}

.builder-error {
  margin: 0;
  color: var(--ws-red);
  font-size: 9px;
}

.builder-summary {
  padding: 22px;
}

.builder-summary h2 {
  margin: 0;
  font: 600 30px/.95 var(--ws-serif);
}

.builder-summary dl {
  display: grid;
  gap: 0;
  margin: 19px 0 0;
}

.builder-summary dl div {
  padding: 12px 0;
  border-top: 1px solid var(--ws-line-soft);
}

.builder-summary dt {
  color: #8c959d;
  font: 600 7px/1 var(--mono);
  letter-spacing: .07em;
  text-transform: uppercase;
}

.builder-summary dd {
  margin: 6px 0 0;
  color: #384149;
  font-size: 9px;
  line-height: 1.45;
}

.builder-summary-note {
  margin-top: 18px;
  padding: 12px;
  border: 1px solid #dce1e5;
  border-radius: 9px;
  background: #f5f7f8;
  color: #768089;
  font-size: 8px;
  line-height: 1.5;
}

/* Dialog comuni */
.workspace-dialog {
  width: min(690px, calc(100vw - 28px));
  max-height: calc(100vh - 30px);
  padding: 0;
  overflow: auto;
  border: 1px solid #d8dde2;
  border-radius: 17px;
  background: #fff;
  color: var(--ws-ink);
  box-shadow: 0 35px 100px rgba(12, 17, 22, .3);
}

.workspace-dialog::backdrop {
  background: rgba(12, 16, 20, .63);
  backdrop-filter: blur(7px);
}

.workspace-dialog-form {
  padding: clamp(24px, 4vw, 40px);
}

.workspace-dialog-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 22px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--ws-line);
}

.workspace-dialog-head h2 {
  margin: 0;
  font: 600 clamp(38px, 4.5vw, 54px)/.9 var(--ws-serif);
}

.workspace-dialog-close {
  width: 35px;
  height: 35px;
  flex: 0 0 35px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #626c74;
  font-size: 21px;
  line-height: 1;
}

.workspace-dialog-copy {
  margin: 18px 0 0;
  color: var(--ws-text);
  font-size: 11px;
  line-height: 1.6;
}

.workspace-dialog-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-top: 22px;
}

.workspace-dialog-fields .builder-field.full {
  grid-column: 1 / -1;
}

.workspace-dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 24px;
}

.workspace-toast {
  position: fixed;
  z-index: 200;
  right: 24px;
  bottom: 24px;
  max-width: min(400px, calc(100vw - 48px));
  padding: 13px 16px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 10px;
  background: #171c21;
  color: #f3f5f6;
  box-shadow: 0 20px 60px rgba(0, 0, 0, .28);
  font-size: 10px;
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px);
  transition: .2s ease;
}

.workspace-toast.visible {
  opacity: 1;
  transform: translateY(0);
}

.workspace-footer {
  min-height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  padding: 0 clamp(22px, 3.6vw, 58px);
  border-top: 1px solid rgba(255, 255, 255, .08);
  background: #111418;
  color: rgba(255, 255, 255, .42);
}

.workspace-footer p {
  margin: 0;
  font: 500 8px/1 var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.workspace-footer nav {
  display: flex;
  gap: 18px;
}

.workspace-footer a {
  font: 500 8px/1 var(--mono);
  letter-spacing: .07em;
  text-transform: uppercase;
}

@media (max-width: 1220px) {
  .workspace-topbar {
    grid-template-columns: minmax(210px, 1fr) auto minmax(175px, 1fr);
    padding-inline: 24px;
  }

  .workspace-primary-nav a {
    padding-inline: 8px;
    font-size: 8px;
  }

  .workspace-account {
    grid-template-columns: 36px;
  }

  .workspace-account > span {
    display: none;
  }

  .project-builder-layout {
    grid-template-columns: 200px minmax(0, 1fr);
  }

  .builder-summary {
    position: static;
    grid-column: 1 / -1;
  }
}

@media (max-width: 1060px) {
  .workspace-primary-nav {
    display: none;
  }

  .workspace-topbar {
    grid-template-columns: 1fr auto;
  }

  .workspace-topbar .mobile-menu-button {
    display: block;
  }

  .workspace-account {
    display: none;
  }

  .agenda-workspace-grid,
  .projects-layout,
  .finance-layout {
    grid-template-columns: 1fr;
  }

  .workspace-status-grid,
  .finance-overview {
    grid-template-columns: 1fr 1fr;
  }

  .workspace-status-grid article:nth-child(2),
  .finance-overview article:nth-child(2) {
    border-right: 0;
  }

  .workspace-status-grid article:nth-child(-n + 2),
  .finance-overview article:nth-child(-n + 2) {
    border-bottom: 1px solid var(--ws-line);
  }

  .project-builder-layout {
    grid-template-columns: 1fr;
  }

  .builder-progress {
    position: static;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 4px;
  }

  .builder-step-button {
    grid-template-columns: 1fr;
    place-items: center;
    padding: 8px 4px;
    text-align: center;
  }

  .builder-step-button strong,
  .builder-step-button small {
    display: none;
  }
}

@media (max-width: 740px) {
  .workspace-main,
  .project-builder-main {
    padding: 27px 15px 68px;
  }

  .workspace-page-head,
  .project-builder-head {
    display: block;
  }

  .workspace-page-head h1,
  .project-builder-head h1 {
    font-size: 49px;
  }

  .workspace-head-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    margin-top: 24px;
  }

  .builder-distinction {
    width: 100%;
    margin-top: 21px;
  }

  .workspace-demo-note {
    display: grid;
    border-radius: 11px;
  }

  .workspace-toolbar {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .workspace-search {
    grid-column: 1 / -1;
    min-width: 0;
  }

  .workspace-select {
    min-width: 0;
  }

  .workspace-status-grid,
  .finance-overview {
    grid-template-columns: 1fr;
  }

  .workspace-status-grid article,
  .workspace-status-grid article:nth-child(2),
  .finance-overview article,
  .finance-overview article:nth-child(2) {
    border-right: 0;
    border-bottom: 1px solid var(--ws-line);
  }

  .workspace-status-grid article:last-child,
  .finance-overview article:last-child {
    border-bottom: 0;
  }

  .project-table-head,
  .finance-table-head {
    display: none;
  }

  .project-table-row {
    grid-template-columns: 1fr auto;
    gap: 10px;
    padding: 17px;
  }

  .project-table-main {
    grid-column: 1 / -1;
  }

  .project-progress,
  .project-destination {
    display: none;
  }

  .finance-row {
    grid-template-columns: 70px 1fr auto;
    padding: 14px 16px;
  }

  .finance-row > *:nth-child(3) {
    display: none;
  }

  .messages-workspace {
    grid-template-columns: 1fr;
  }

  .mailbox-pane {
    border-right: 0;
    border-bottom: 1px solid var(--ws-line);
  }

  .mailbox-list {
    max-height: 290px;
  }

  .thread-pane {
    min-height: 590px;
  }

  .builder-fields {
    grid-template-columns: 1fr;
  }

  .builder-field.full,
  .builder-choice-group,
  .builder-upload {
    grid-column: 1;
  }

  .builder-choice-grid {
    grid-template-columns: 1fr;
  }

  .builder-review article {
    grid-template-columns: 1fr auto;
  }

  .builder-review article > span {
    grid-column: 1 / -1;
  }

  .builder-actions {
    display: grid;
  }

  .builder-actions > div {
    justify-content: flex-end;
  }

  .workspace-dialog-fields {
    grid-template-columns: 1fr;
  }

  .workspace-dialog-fields .builder-field.full {
    grid-column: 1;
  }

  .workspace-footer {
    display: block;
    padding-block: 21px;
  }

  .workspace-footer nav {
    margin-top: 14px;
    flex-wrap: wrap;
  }
}
