.app{display:flex;min-height:100vh}.sidebar{width:230px;flex:0 0 230px;background:#fbfcfd;border-right:1px solid var(--line);padding:18px 13px;transition:.18s}.sidebar-head{display:flex;align-items:center;gap:8px}.brand{padding:6px 3px 15px}.brand strong{font-size:22px}.brand small{display:block;color:var(--muted);margin-top:2px}.icon-btn{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 10px;cursor:pointer}.nav{display:grid;gap:5px;margin-top:12px}.nav button{border:0;background:transparent;text-align:left;padding:11px 10px;border-radius:9px;color:#566169;cursor:pointer}.nav button.active,.nav button:not(:disabled):hover{background:var(--soft);color:#486b6c;font-weight:700}.nav button:disabled{opacity:.42;cursor:not-allowed}.nav button small{float:right}.build{font-size:11px;color:var(--muted);margin-top:22px;line-height:1.35}.db-badge{font-size:12px;padding:8px 9px;border-radius:9px;background:#f1f4f5;color:#68747b}.db-badge.ok{background:#e5f1e9;color:#466a53}.db-badge.err{background:#f7e7e7;color:#884949}.shell{flex:1;min-width:0;padding:24px 28px 40px}.header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.header h1{margin:0;font-size:23px}.actions{display:flex;gap:8px;flex-wrap:wrap}.btn{border:1px solid var(--line);background:#fff;padding:9px 13px;border-radius:10px;cursor:pointer}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.danger{color:var(--danger);border-color:#e5c6c6}.muted{color:var(--muted)}.small{font-size:12px}.mobile-topbar{display:none}.nav-backdrop{display:none}body.sidebar-collapsed .sidebar{width:64px;flex-basis:64px}body.sidebar-collapsed .brand,body.sidebar-collapsed .db-badge,body.sidebar-collapsed .nav button,body.sidebar-collapsed .build{font-size:0}body.sidebar-collapsed .nav button:before{content:'•';font-size:20px}
/* R7 visual parity: reserve scrollbar space and restore R4 sidebar rhythm */
html{scrollbar-gutter:stable}body{overflow-y:scroll}.sidebar{width:196px;flex-basis:196px;padding:16px 11px}.sidebar-tools{display:grid;grid-template-columns:38px 1fr;gap:7px;align-items:center;margin-bottom:8px}.global-search-btn{height:38px;border:1px solid var(--line);background:#fff;border-radius:9px;font-weight:700;cursor:pointer}.brand{padding:2px 5px 12px}.brand strong{font-size:20px}.nav{gap:3px;margin-top:12px}.nav button{padding:10px 8px}.shell{padding:20px 24px 40px}.header{margin-bottom:14px}.build-top{font-size:9px;color:#7a858b;margin-bottom:7px}.header h1{font-size:22px}.sidebar-collapsed .global-search-btn{display:none}
/* R8 — parity pass 2: R4 proportions */
:root{--sidebar-w:190px}
.sidebar{width:var(--sidebar-w);flex-basis:var(--sidebar-w);background:#fbfcfc;border-right-color:#dfe5e7}
.shell{padding:17px 22px 36px}.header{margin-bottom:12px}.header h1{font-size:21px;line-height:1.05}.build-top{font-size:8px;letter-spacing:.02em}
.sidebar-tools{grid-template-columns:35px 1fr}.sidebar-tools .icon-btn,.global-search-btn{height:35px}.global-search-btn{font-size:13px}.brand strong{font-size:19px}.brand small{font-size:11px}.db-badge{padding:7px 8px;font-size:10px;border:1px solid #dfe6e7}.nav button{font-size:13px;padding:9px 8px}.build{font-size:8.5px}

/* R9 — parity consolidation 1 */
body.sidebar-collapsed .sidebar{width:58px;flex-basis:58px;padding-left:10px;padding-right:10px}
body.sidebar-collapsed .sidebar-tools{display:block}
body.sidebar-collapsed .sidebar-tools .icon-btn{display:block;width:38px}
body.sidebar-collapsed .global-search-btn,body.sidebar-collapsed .brand,body.sidebar-collapsed .db-badge,body.sidebar-collapsed .nav,body.sidebar-collapsed .build{display:none!important}
body.sidebar-collapsed .nav button:before{content:none!important}


/* R11 — sidebar parity and readable scale */
.sidebar{width:205px!important;flex-basis:205px!important}.brand strong{font-size:21px!important}.brand small{font-size:12px!important}.nav button{font-size:13.5px!important}.global-search-btn{font-size:13.5px!important}.db-badge{font-size:11px!important}.header h1{font-size:24px!important}
body.sidebar-collapsed .sidebar{width:58px!important;flex-basis:58px!important}body.sidebar-collapsed .sidebar-tools{display:block!important}body.sidebar-collapsed .sidebar-tools .icon-btn{display:grid!important;width:38px!important;height:38px!important;place-items:center!important}body.sidebar-collapsed .global-search-btn,body.sidebar-collapsed .brand,body.sidebar-collapsed .db-badge,body.sidebar-collapsed .nav,body.sidebar-collapsed .build{display:none!important}body.sidebar-collapsed .nav button:before{content:none!important}

/* R12 — MAIN handoff parity: shell + stable geometry */
html{scrollbar-gutter:stable}body{font-size:14.5px;background:var(--st62-page)}
.shell{max-width:none}.header h1{font-size:23px!important}.build-top{font-size:10px!important}.small{font-size:12px}
body.sidebar-collapsed .sidebar{width:62px!important;flex-basis:62px!important}body.sidebar-collapsed .brand,body.sidebar-collapsed .db-badge,body.sidebar-collapsed .nav,body.sidebar-collapsed .build,body.sidebar-collapsed .global-search-btn{display:none!important}
.canonical-actions{display:grid!important;grid-template-columns:auto auto auto minmax(138px,auto);gap:8px;align-items:center}.canonical-actions .action-placeholder{visibility:hidden;min-width:90px}.canonical-actions .btn{height:var(--control-h);white-space:nowrap}.canonical-actions .mode-primary{min-width:138px}.btn.mode-edit{background:var(--act-edit-bg);border-color:#e8c95e;color:var(--act-edit);font-weight:750}.btn.mode-save{background:var(--act-save-bg);border-color:#bfdccc;color:var(--act-save);font-weight:750}.btn.mode-cancel{background:#fff;border-color:var(--line);color:var(--act-cancel)}
.entity-grid input,.entity-grid select,.readonly-value:not(.multiline),.entity-page:not(.anagrafica-page) .entity-grid textarea,.entity-page:not(.anagrafica-page) .readonly-value.multiline{font-size:13px!important;line-height:1.25}.entity-grid input,.entity-grid select,.readonly-value:not(.multiline){min-height:var(--control-h)!important}.entity-page:not(.anagrafica-page) .entity-grid textarea,.entity-page:not(.anagrafica-page) .readonly-value.multiline{min-height:78px!important}.field label{min-height:17px}.entity-head{min-height:86px;align-items:flex-start}.entity-head .actions{min-height:40px}

.tree-children{display:flex;flex-direction:column;padding-left:18px}.tree-children button{font-size:.9em}.tree-parent{font-weight:600}

/* M01 Q4 — Preventivi R15 functional migration */
.st-next-preventivi .section-head{align-items:flex-start}.next-econ-toolbar{display:flex;gap:8px;margin:10px 0;align-items:center}.next-econ-toolbar .search{flex:1}.next-econ-toolbar select{min-width:150px}.next-econ-table{width:100%}.next-econ-table td,.next-econ-table th{vertical-align:middle}.next-econ-backdrop{position:fixed;inset:0;background:rgba(12,18,25,.38);display:none;align-items:center;justify-content:center;padding:20px;z-index:9999}.next-econ-backdrop.open{display:flex}.next-econ-modal{width:min(880px,96vw);max-height:92vh;overflow:auto;background:var(--panel,#fff);border:1px solid var(--line,#d7dce2);border-radius:12px;box-shadow:0 18px 52px rgba(0,0,0,.18)}.next-econ-head{display:flex;justify-content:space-between;gap:16px;padding:13px 16px;border-bottom:1px solid var(--line,#d7dce2)}.next-econ-head h2{margin:2px 0 0;font-size:18px;line-height:1.15;font-weight:650}.next-econ-head #nextEconEyebrow{font-size:9px!important;font-weight:650!important;letter-spacing:.04em;text-transform:none}.next-econ-head #nextEconSubtitle:empty{display:none}.next-econ-close{border:0;background:transparent;font-size:24px;cursor:pointer}.next-econ-section{padding:14px 16px}.next-econ-section>h3{margin:0 0 9px;font-size:13px;font-weight:650}.next-econ-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.next-econ-field{display:flex;flex-direction:column;gap:4px}.next-econ-field.span2{grid-column:span 2}.next-econ-field.span4{grid-column:1/-1}.next-econ-field label{font-size:10px;font-weight:650;color:var(--muted,#68757a)}.next-econ-field input,.next-econ-field select,.next-econ-field textarea{width:100%;box-sizing:border-box;border:1px solid var(--line,#d7dce2);border-radius:7px;padding:8px 9px;background:var(--panel,#fff);color:var(--text,#17202a);font-weight:400}.next-econ-field.required label:after{content:' • obbligatorio';color:#a56b17}.next-econ-money-readonly{min-height:35px;display:flex;align-items:center;padding:8px 9px;box-sizing:border-box;border:1px solid #dce4e4;border-radius:7px;background:#f3f6f6;color:#36464a;font-variant-numeric:tabular-nums;font-weight:650}.next-econ-footer{display:flex;justify-content:space-between;gap:10px;padding:11px 16px;border-top:1px solid var(--line,#d7dce2)}.next-econ-actions{display:flex;gap:7px}.next-econ-table .btn{padding:5px 8px}.next-econ-table tr.click{cursor:pointer}.next-econ-table tr.click:hover{background:var(--soft,#f4f6f8)}
@media(max-width:800px){.next-econ-grid{grid-template-columns:1fr 1fr}.next-econ-field.span2{grid-column:span 2}.next-econ-toolbar{flex-direction:column;align-items:stretch}}

/* Q8 M01 UI cleanup */
.header{display:none!important}
.econ-transform-status,.econ-origin-status{font-size:.86rem}
.econ-transform-status.transformed{font-weight:700}
.econ-transform-status.none,.econ-origin-status.none{opacity:.55}
.econ-transformed td{font-weight:600}
.next-econ-relations{margin:18px 0 0;padding:14px 16px;border:1px solid #dfe4e8;border-radius:12px;background:#f8fafb}
.next-econ-relations-title{font-weight:700;margin-bottom:10px}
.next-econ-relations-groups{display:grid;gap:12px}
.relation-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.relation-btn{font-size:.88rem}

@media(min-width:821px){.app{align-items:stretch!important}.sidebar{position:sticky!important;top:0!important;height:100vh!important;max-height:100vh!important;overflow-y:auto!important;overscroll-behavior:contain!important;align-self:flex-start!important}}

/* Q9.4.8.5 — desktop sidebar is stationary while content scrolls */
@media(min-width:821px){
  .sidebar{position:sticky!important;top:0!important;height:100vh!important;max-height:100vh!important;overflow-y:auto!important;overscroll-behavior:contain!important;align-self:flex-start!important}
}
input::placeholder,textarea::placeholder{color:#9aa7ac!important;opacity:1!important;font-weight:400!important}


/* M16.6 FIX29 — economic editor dynamic viewport / mobile safe bottom */
.next-econ-backdrop{min-height:100dvh!important}
.next-econ-modal{max-height:min(92vh,calc(100dvh - 24px))!important;scroll-padding-bottom:96px!important}
#nextEconBody{padding-bottom:max(10px,env(safe-area-inset-bottom))}
@media(max-width:800px){
 .next-econ-backdrop{padding:8px 8px max(8px,env(safe-area-inset-bottom))!important;align-items:flex-start!important}
 .next-econ-modal{width:100%!important;max-height:calc(100dvh - 16px)!important;margin:0!important;overflow-y:auto!important;overscroll-behavior:contain!important;scroll-padding-bottom:112px!important}
 #nextEconBody{padding-bottom:calc(88px + env(safe-area-inset-bottom))!important}
 .next-econ-footer{margin-bottom:8px!important}
}

/* REV142 FIX23 — persistent auth action in sidebar */
.sidebar-auth{position:sticky;bottom:0;margin-top:32px;padding:20px 14px 10px;border-top:1px solid var(--border,#e4e9e7);display:grid;gap:6px;background:#fbfcfc;z-index:2}
.sidebar-auth-btn{width:100%;min-height:40px;border:1px solid var(--border,#dce4e1);border-radius:10px;background:var(--surface,#fff);color:inherit;font:inherit;font-weight:650;cursor:pointer}
.sidebar-auth-btn[data-connected="1"]{border-color:#d8b9b2}
.sidebar-auth small{min-height:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.62;text-align:center}
@media(max-width:720px){.sidebar-auth{margin-top:28px;padding-top:22px}}

body.sidebar-collapsed .sidebar-auth{display:none}
