/* EDILAW · spazio di lavoro. Caricato dopo i componenti funzionali.
   Un'unica gerarchia visiva per account, archivio e sei fasi del fascicolo. */
:root {
  --navy: #152f40;
  --ink: #243b49;
  --ivory: #f5f3ed;
  --paper: #fffefa;
  --brass: #9b7635;
  --brass-ink: #755824;
  --muted: #5c6972;
  --line: #deded6;
  --field-line: #89959a;
  --radius: 9px;
}

body { font-size: 16px; line-height: 1.6; }
button, .button { min-height: 44px; font-size: .9375rem; border-radius: 7px; }
input, select, textarea { font-size: 1rem; line-height: 1.5; }
label { font-size: .9375rem; }
button:hover, .button:hover { background: #f0eee6; border-color: #8b784f; }
button.primary:hover, .button.primary:hover { background: #24495e; border-color: #24495e; }
button:disabled:hover { background: var(--paper); border-color: var(--line); }
button.primary:disabled:hover { background: var(--navy); border-color: var(--navy); }
button, input, textarea, select, summary, a { scroll-margin-block: 1.5rem; }
h1 { font-size: clamp(1.65rem, 2.5vw, 2.125rem); letter-spacing: -.035em; font-weight: 650; }
h2 { font-size: 1.25rem; }
.eyebrow { font-size: .875rem; letter-spacing: .065em; font-weight: 600; color: var(--brass-ink); }
.chip, .badge, small { font-size: .875rem; }
.chip { padding: .35rem .75rem; background: #eeeee6; color: #42564c; }
.status { font-size: .9375rem; padding: .8rem 1rem; }
.status:not(.error) { background: #eaf0eb; color: #294b3a; }
.panel, .login-card, .feature-card { box-shadow: none; }

/* Le funzioni restano riconoscibili senza occupare il centro del lavoro. */
.topbar { min-height: 86px; padding: .75rem 1.75rem; background: var(--paper); color: var(--navy); border-bottom: 1px solid var(--line); }
.brand { gap: 1.25rem; letter-spacing: 0; min-width: 0; }
.brand-logo { display: block; width: 156px; height: auto; flex-shrink: 0; }
.brand-context { border-left: 1px solid var(--line); padding-left: 1.25rem; max-width: 230px; font-size: .875rem; line-height: 1.45; font-weight: 400; color: var(--muted); }
.topbar #account-bar { gap: .8rem; font-size: .875rem; }
.topbar button { color: var(--navy); border-color: var(--line); background: transparent; }
.topbar button:hover { background: #efeee7; border-color: #a2aaa7; }
.topbar :focus-visible, .rail :focus-visible { outline-color: var(--focus); }
.layout { grid-template-columns: 236px minmax(0, 1fr); min-height: calc(100vh - 86px); }
.rail { background: #eeeee7; color: var(--navy); padding: 1.3rem .85rem; border-right: 1px solid var(--line); }
.rail nav { gap: .5rem; }
.rail .nav-section { border: 0; padding: 0 0 .65rem; }
.rail .nav-group, .rail .nav-section[data-current="true"] > .nav-group { color: var(--navy); font-size: .9375rem; padding: .75rem .65rem; min-height: 44px; }
.rail .nav-group:hover, .rail button:hover { background: #e3e5de; color: var(--navy); }
.rail .nav-items { border: 0; padding: 0; margin: .15rem 0 0; gap: .2rem; }
.rail .nav-items button { font-size: .875rem; color: #4a5c64; min-height: 44px; padding: .65rem .8rem; border-radius: 6px; }
.rail button[aria-current="page"] { background: var(--navy); color: #fffefa; box-shadow: inset 3px 0 var(--brass); }
.rail button[aria-current="page"]:hover { background: #24495e; color: white; }
.workspace { padding: 2rem 2.5rem; max-width: 1440px; }
.page-head { margin-bottom: 1.4rem; gap: 1rem; }
.page-head p { max-width: 70ch; }
.page-head .eyebrow { margin-bottom: .7rem; }
.section-label { font-size: .9375rem; }

/* Accoglienza: orientamento a sinistra, accesso personale a destra. */
.login-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(320px, .85fr); align-items: center; gap: clamp(2rem, 7vw, 7rem); max-width: 1120px; margin: 7vh auto; padding: 2rem; }
.login-intro h2 { font-size: clamp(2.1rem, 4vw, 3.5rem); line-height: 1.13; font-weight: 600; letter-spacing: -.045em; margin: 1rem 0 1.5rem; }
.login-intro > p:not(.eyebrow) { max-width: 46ch; color: var(--muted); }
.login-path { list-style: none; margin: 2rem 0 0; padding: 0; }
.login-path li { display: flex; gap: 1rem; align-items: flex-start; padding: .85rem 0; border-top: 1px solid var(--line); }
.login-path li > span { color: var(--brass-ink); font-size: .875rem; font-weight: 600; padding-top: .15rem; }
.login-path strong { font-weight: 600; }
.login-path p { margin: .2rem 0 0; font-size: .9375rem; color: var(--muted); }
.login-card { padding: 2rem; border-top: 3px solid var(--brass); }
.login-card h1 { margin: .7rem 0 .65rem; font-size: 1.75rem; }
.login-card > .muted { font-size: .9375rem; margin-bottom: 1.6rem; }
.login-card form { gap: 1.25rem; }
.login-card form > button { margin-top: .25rem; }
.login-card .help { font-size: .875rem; }
.login-card .help summary { padding: .5rem 0; min-height: 44px; }

/* Tre ingressi distinti, con un invito concreto a iniziare. */
.home-heading { margin: .25rem 0 2rem; align-items: flex-start; }
.home-heading .chip { margin-top: .25rem; }
.start-grid { gap: 1rem; margin-bottom: 2rem; }
.start-card { position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: .55rem; padding: 1.5rem; min-height: 268px; border-color: var(--line); box-shadow: none; }
.start-card:hover { background: #fff; border-color: var(--brass); box-shadow: 0 4px 18px #152f4009; }
.start-icon { width: 28px; height: 28px; color: var(--navy); margin-bottom: .85rem; }
.start-card strong { font-size: 1.25rem; line-height: 1.35; letter-spacing: -.015em; }
.start-card > span:not(.eyebrow):not(.start-link) { font-size: .9375rem; line-height: 1.6; color: var(--muted); font-weight: 400; }
.start-card > span.start-link { display: flex; width: 100%; justify-content: space-between; align-items: center; padding-top: 1.25rem; margin-top: auto; font-size: .875rem; font-weight: 600; color: var(--navy); }
.start-card-primary { background: var(--navy); border-color: var(--navy); color: #fffefa; }
.start-card-primary:hover { background: #24495e; border-color: #24495e; }
.start-card-primary .start-icon, .start-card-primary strong, .start-card.start-card-primary > .start-link { color: #fffefa; }
.start-card-primary > .eyebrow { color: #e8ca8e; }
.start-card-primary > span:not(.eyebrow):not(.start-link) { color: #e0e7e9; }
.resume-work { background: var(--paper); border-color: var(--line); border-left: 3px solid var(--brass); padding: 1.1rem 1.4rem; margin-bottom: 1.5rem; }
.resume-work h2 { font-size: 1.2rem; margin: .4rem 0; }
.resume-work p { font-size: .9375rem; }
.activity-catalogue { margin-top: 0; padding-top: .5rem; }
.activity-catalogue > summary { padding: .65rem 0; min-height: 44px; }
.activity-catalogue > summary span { font-size: .875rem; }
.function-card { min-height: 150px; gap: .5rem; padding: 1.25rem; }
.function-card > span:not(.function-icon):not(.function-arrow):not(.capability), .function-card .capability { font-size: .875rem; }
.archive-link { font-size: .9375rem; }

/* Le fasi sono posizioni nel lavoro, senza completamenti presunti. */
.case-bar { background: transparent; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 0 0 1rem; margin-bottom: 1.25rem; }
.case-bar strong { font-size: 1.0625rem; font-weight: 650; }
.case-bar p { font-size: .875rem; margin-top: .35rem; }
.case-bar button { font-size: .875rem; }
.case-route { padding: 1.15rem 1.35rem; background: var(--paper); border-color: var(--line); border-radius: var(--radius); margin-bottom: 1.25rem; }
.case-route .case-workflow { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .3rem; padding-bottom: .9rem; margin: 0 0 1rem; border-bottom: 1px solid var(--line); }
.case-route .case-workflow button { justify-content: flex-start; padding: .6rem .5rem; min-height: 44px; font-size: .875rem; border-color: transparent; background: transparent; color: var(--muted); }
.case-route .case-workflow button:hover { background: #eeeee7; color: var(--navy); }
.case-route .case-workflow button[aria-current="step"] { background: var(--navy); color: #fffefa; }
.case-phase-body { grid-template-columns: minmax(0, 1fr) auto; }
.case-phase-counter { font-size: .875rem; color: var(--brass-ink); margin-bottom: .35rem; letter-spacing: 0; }
.case-route h2 { font-size: 1.25rem; margin-bottom: .3rem; }
#case-phase-description { font-size: .9375rem; }
.case-phase-actions { max-width: 355px; }
.case-phase-actions button { font-size: .9375rem; }
.case-phase-tools { padding-top: .5rem; margin-top: .8rem; }
.case-phase-tools button { min-height: 44px; font-size: .875rem; color: var(--navy); text-decoration: underline; text-underline-offset: 3px; border-color: transparent; }
.case-phase-hint { font-size: .875rem; margin-top: .7rem; }
.work-actions { margin: 1.3rem 0 0; padding: .6rem 0; border-top: 1px solid var(--line); border-bottom: 0; }
.work-actions > summary { min-height: 44px; padding: .5rem 0; font-size: .9375rem; }
.work-actions > summary span, .work-toolbar button, .toolbar-more summary, .toolbar-more p, .export-summary p, .export-formats strong { font-size: .875rem; }
.frame { background: var(--paper); }
.editor-frame { border: 1px solid var(--line); border-radius: var(--radius); }
.export-summary { padding: 1.25rem; }
.case-search { max-width: 820px; gap: 1rem; margin-bottom: 1.25rem; }
.case-filters { margin-bottom: 1.25rem; }
.case-table th { font-size: .875rem; letter-spacing: 0; }
.case-table td { font-size: .9375rem; padding: 1rem .8rem; }
.case-table tbody tr:hover { background: #f5f4ee; }

/* I moduli conservano controlli e ordine di lettura. */
.task-flow { background: #f4f4ef; border-color: var(--line); border-radius: var(--radius); }
.task-flow .task-flow-counter, .task-flow .task-flow-note, .task-flow-picker > summary { font-size: .875rem; }
.task-flow .task-flow-description { font-size: .9375rem; }
.task-flow button { min-height: 44px; font-size: .9375rem; }
.task-flow .task-flow-steps button { font-size: .875rem; }
.task-flow button[aria-current="step"], .task-flow button.primary { background: var(--navy); border-color: var(--navy); }
.documents-drop { background: #f8f7f1; border-width: 1px; border-color: #8f9a94; padding: 1.75rem; }
.documents-drop span, .documents-drop .documents-upload-limits, .documents-output-note, .documents-context { font-size: .9375rem; }
.documents-drafts p, .documents-notice, .documents-page-image-column p, .documents-entity-location { font-size: .875rem; }
.documents-review textarea, .documents-confirmation textarea { font-size: 1rem; line-height: 1.7; }
.documents-card { padding: 1.2rem; }
.linked-composer .availability, .linked-composer .linked-options p, .linked-options > summary { font-size: .9375rem; }
.linked-composer > .help, .context-selection p, .context-selection > summary { font-size: .875rem; }
.help, .availability, .module-purpose { font-size: .9375rem; }
.help > summary { padding: .5rem 0; min-height: 44px; }
.function-help dl, .function-help .muted, .onboarding-dialog .eyebrow { font-size: .875rem; }
.guide-actions button { font-size: .9375rem; }
.fact-card { border: 1px solid var(--line); border-left: 3px solid var(--brass); background: var(--paper); padding: 1.25rem; }
.fact-card h3 { font-size: 1.0625rem; }
.access-request .access-field { border-color: var(--line); border-radius: var(--radius); }
.coverage-badge, .coverage-identities, .journal-intro, .journal-hint,
.journal-metadata, .journal-availability, .journal-status, .journal-extra p,
.journal-check, .journal-error, .journal-conflict, .journal-reopen { font-size: .875rem; }
.journal-source-actions button { font-size: .9375rem; }
.source-coverage > summary, .coverage-card > summary { min-height: 44px; }

@media (max-width: 1200px) {
  .workspace { padding: 1.75rem; }
  .case-route .case-workflow { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .case-phase-body { grid-template-columns: minmax(0, 1fr); gap: .8rem; }
  .case-phase-actions { justify-content: flex-start; max-width: none; }
  .case-phase-actions button:only-child { margin-left: 0; }
  .start-card { padding: 1.25rem; }
}
@media (max-width: 1000px) {
  .brand-context { display: none; }
  .layout { grid-template-columns: 210px minmax(0, 1fr); }
  .workspace { padding: 1.5rem; }
  .start-grid { grid-template-columns: minmax(0, 1fr); gap: .75rem; }
  .start-card { min-height: 0; display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: .25rem 1rem; }
  .start-icon { grid-column: 1; grid-row: 1 / 4; margin: .2rem 0 0; }
  .start-card > *:not(svg) { grid-column: 2; }
  .start-card > .start-link { padding-top: .75rem; }
  .login-layout { gap: 2.5rem; }
}
@media (max-width: 850px) {
  .layout { grid-template-columns: minmax(0, 1fr); min-height: calc(100vh - 86px); }
  .rail { border-right: 0; border-bottom: 1px solid var(--line); padding: .5rem 1.25rem; }
  .rail .nav-toggle { min-height: 44px; color: var(--navy); font-size: .9375rem; padding: .55rem .2rem; }
  .rail.nav-open nav { padding-bottom: .5rem; }
  .workspace { padding: 1.5rem; }
  .topbar { padding: .65rem 1.25rem; }
  .home-heading { margin-bottom: 1.5rem; }
  .login-layout { grid-template-columns: minmax(0, 1fr); max-width: 520px; margin: 2rem auto; padding: 0 1.25rem; }
  .login-intro { display: none; }
  .case-phase-actions { justify-content: space-between; }
}
@media (max-width: 500px) {
  .topbar { display: grid; grid-template-columns: auto minmax(0, 1fr); min-height: 76px; gap: .5rem; padding: .65rem 1rem; align-items: center; }
  .brand-logo { width: 132px; }
  .topbar #account-bar { gap: .35rem; justify-content: flex-end; min-width: 0; width: 100%; margin-left: auto; }
  .topbar #account-name { order: 3; flex-basis: 100%; max-width: 100%; min-width: 0; font-size: .875rem; text-align: right; }
  .topbar #account-bar button { font-size: .875rem; padding: .5rem .7rem; }
  .rail { padding: .4rem 1rem; }
  .workspace { padding: 1.1rem 1rem; }
  .page-head { margin-bottom: 1.1rem; }
  .home-heading { gap: .85rem; }
  .home-heading .eyebrow { font-size: .875rem; margin-bottom: .55rem; }
  .start-card { padding: 1.1rem; }
  .start-card strong { font-size: 1.125rem; }
  .start-card .eyebrow { font-size: .875rem; }
  .resume-work { padding: 1rem; }
  .case-route { padding: .9rem; }
  .case-route .case-workflow { gap: .25rem; }
  .case-route .case-workflow button { font-size: .875rem; padding: .5rem .35rem; }
  .case-phase-actions button { flex: 1 1 110px; }
  .case-route h2 { font-size: 1.2rem; }
  .case-phase-tools button { width: 100%; text-align: left; }
  .case-bar { align-items: flex-start; gap: .7rem; }
  .case-bar button { min-height: 44px; }
  #view-work > .page-head > #save-case { width: 100%; }
  .panel { padding: 1rem; }
  .function-card { min-height: 125px; padding: 1rem 1rem 1rem 3.2rem; }
  .login-card { padding: 1.5rem; }
  .login-card h1 { font-size: 1.6rem; }
  .work-toolbar > button { width: 100%; }
  .activity-catalogue > summary span { font-size: .875rem; }
}
@media print {
  .login-intro, .brand-context { display: none; }
  .topbar { background: white; color: black; }
}
.pilot-intro{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin:1.5rem 0;padding:1.5rem 0;border-top:1px solid var(--line,#ded8ca);border-bottom:1px solid var(--line,#ded8ca)}
.pilot-intro>div{max-width:690px}.pilot-intro h2{margin:.3rem 0;font-size:1.45rem}.pilot-intro p{margin:.5rem 0}.pilot-intro>button{flex-shrink:0;white-space:normal;max-width:240px}
.pilot-review{margin:1rem 0 1.5rem}.pilot-review h2{font-family:Georgia,serif;font-size:1.8rem;margin:.4rem 0 1rem}.pilot-example,.pilot-storage{padding-left:.8rem;border-left:3px solid #9b7635}
.pilot-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding:1rem;background:#f5f1e8;margin:1.5rem 0}.pilot-metrics dt{font-size:.875rem;color:#52636b}.pilot-metrics dd{font:2rem/1.4 Georgia,serif;margin:0;color:#203342}
.pilot-checks{list-style:none;margin:0;padding:0}.pilot-checks li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid #ded8ca}.pilot-checks p{margin:.3rem 0 0}.pilot-checks li>div{min-width:0;overflow-wrap:anywhere}.pilot-checks button{flex-shrink:0}.pilot-actions{margin-top:1.5rem}
.pilot-next{margin:1rem 0}.pilot-next p{margin:.4rem 0 .8rem}.pilot-details{padding:.8rem 0;border-top:1px solid #ded8ca}.pilot-details summary{cursor:pointer;font-weight:600;min-height:32px}
@media(max-width:700px){.pilot-intro,.pilot-checks li{display:block}.pilot-intro>button{margin-top:.75rem;max-width:none;width:100%}.pilot-checks button{margin-top:.75rem}.pilot-metrics{grid-template-columns:1fr;gap:.8rem}.pilot-metrics>div{display:flex;align-items:center;justify-content:space-between;gap:1rem}.pilot-metrics dd{font-size:1.7rem}.pilot-actions>button{width:100%}.pilot-review h2{font-size:1.45rem}}
@media (max-width: 360px) {
  .case-route .case-workflow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .brand-logo { width: 112px; }
}

/* Ripresa del lavoro: destinazioni stabili e informazioni operative vicine. */
.rail .nav-primary { margin: 0 0 .8rem; padding-bottom: .8rem; border-bottom: 1px solid var(--line); }
.rail .nav-primary button { font-size: .9375rem; color: var(--navy); }
.rail .nav-primary button[aria-current="page"] { color: var(--paper); }
.nav-current-work { margin: 0 0 1rem; padding: .75rem; background: var(--paper); border-left: 3px solid var(--brass); border-radius: 5px; overflow-wrap: anywhere; }
.nav-current-work .eyebrow { font-size: .75rem; }
.nav-current-work strong { display: block; margin-top: .35rem; font-size: .875rem; }
.nav-current-work p { margin: .35rem 0; font-size: .8125rem; color: var(--muted); }
.rail .nav-current-work button { width: 100%; padding: .5rem; color: var(--navy); border: 1px solid var(--line); font-size: .8125rem; }
.home-recent { margin: 0 0 1.5rem; }
.home-recent .row.end { justify-content: space-between; align-items: center; }
.home-recent h2 { margin: 0; }
.home-recent p { margin: .3rem 0; font-size: .875rem; }
.recent-list { list-style: none; padding: 0; margin: .8rem 0 0; border-top: 1px solid var(--line); }
.recent-list:empty { display: none; }
.recent-list li { border-bottom: 1px solid var(--line); }
.recent-case { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; text-align: left; padding: .8rem .6rem; border: 0; border-radius: 0; background: transparent; }
.recent-case strong { min-width: 0; flex: 1; overflow-wrap: anywhere; font-size: .9375rem; }
.recent-case span { min-width: 0; max-width: 55%; overflow-wrap: anywhere; color: var(--muted); font-size: .8125rem; }
.start-card { min-height: 190px; padding: 1.15rem; gap: .35rem; }
.start-icon { margin-bottom: .3rem; }
.start-card > span.start-link { padding-top: .6rem; }
.has-current-work .start-card-primary { background: var(--paper); color: var(--navy); border-color: var(--line); }
.has-current-work .start-card-primary .start-icon, .has-current-work .start-card-primary strong, .has-current-work .start-card-primary > .start-link { color: var(--navy); }
.has-current-work .start-card-primary > .eyebrow { color: var(--brass-ink); }
.has-current-work .start-card-primary > span:not(.eyebrow):not(.start-link) { color: var(--muted); }
.resume-work > div { min-width: 0; }
.resume-work .text-action { margin-top: .3rem; padding: .35rem 0; background: transparent; border: 0; text-align: left; white-space: normal; text-decoration: underline; text-underline-offset: 3px; color: var(--navy); }
.pilot-intro { display: block; margin: 1rem 0; padding: .75rem 0; }
.pilot-intro > summary { min-height: 44px; padding: .5rem 0; font-weight: 600; cursor: pointer; }
.pilot-intro > div { padding: .25rem 0 .75rem; }
.case-route { padding: .85rem 1.15rem; }
.case-route .case-workflow { padding-bottom: .6rem; margin-bottom: .65rem; }
.case-phase-tools:has(button[hidden]) { display: none; }
.case-phase-tools { padding-top: 0; margin-top: .25rem; }
@media (max-width: 1000px) {
  .start-card { min-height: 0; }
  .start-card > .eyebrow, .start-card > .start-link { display: none; }
  .start-icon { grid-row: 1 / 3; }
  .recent-case { align-items: flex-start; flex-direction: column; gap: .15rem; }
  .recent-case span { max-width: 100%; }
}
@media (max-width: 500px) {
  .home-recent .row.end { align-items: flex-start; gap: .4rem; }
  .home-recent .row.end > button { padding: .4rem 0; border-color: transparent; text-decoration: underline; text-underline-offset: 3px; }
  .case-route { padding: .85rem; }
  .start-card { padding: .9rem; }
}
