:root{
  --paper:#f3f0ea;--surface:#fffdf9;--surface-2:#f8f5ef;--ink:#1f292c;--muted:#697476;--line:#ddd8cf;
  --deep:#16373a;--deep-2:#214c4e;--rust:#b75b36;--rust-soft:#f2ddd3;--sage:#758d76;--sage-soft:#e5ece2;
  --blue:#5c7992;--blue-soft:#e4ebf0;--gold:#b18b45;--danger:#a64545;
  --shadow:0 22px 60px rgba(40,45,42,.11);--shadow-soft:0 10px 30px rgba(40,45,42,.07);--radius:18px;
  --font:"Aptos","Segoe UI Variable","Segoe UI",Inter,system-ui,-apple-system,sans-serif;
  --display:"Aptos Display","Segoe UI Variable Display","Segoe UI",system-ui,sans-serif;
}
*{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:var(--font);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{color:inherit}[hidden]{display:none!important}body.drawer-open{overflow:hidden}
.brand-symbol{width:48px;height:48px;border-radius:16px;background:var(--rust);color:white;display:grid;place-items:center;font-size:21px;font-weight:900;box-shadow:0 12px 28px rgba(183,91,54,.24);transform:rotate(-2deg)}.brand-symbol.small{width:38px;height:38px;border-radius:12px;font-size:17px}.overline{margin:0 0 7px;color:var(--rust);font-size:10px;font-weight:850;letter-spacing:.16em;text-transform:uppercase}
.button{border:1px solid var(--line);border-radius:12px;padding:11px 15px;background:var(--surface);font-weight:760;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease}.button:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft)}.button.primary{background:var(--deep);border-color:var(--deep);color:white}.button.primary:hover{background:var(--deep-2)}.button.secondary{background:transparent}.button.wide{width:100%}.round-button{width:39px;height:39px;border:1px solid var(--line);border-radius:50%;background:var(--surface);cursor:pointer;font-size:20px;display:grid;place-items:center;transition:.2s ease}.round-button:hover{transform:rotate(4deg);background:var(--surface-2)}

/* Login */
.login-body{background:var(--surface)}.login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(390px,560px) 1fr}.login-side{position:relative;padding:44px clamp(30px,6vw,82px);display:flex;flex-direction:column;justify-content:center;background:var(--surface);z-index:2}.login-brand{position:absolute;top:38px;left:clamp(30px,6vw,82px);display:flex;align-items:center;gap:13px}.login-brand strong,.login-brand small{display:block}.login-brand strong{font-size:17px}.login-brand small{color:var(--muted);font-size:11px;margin-top:3px}.login-content{max-width:410px}.login-content h1{font-family:var(--display);font-size:clamp(40px,5vw,61px);letter-spacing:-.055em;line-height:.98;margin:0 0 14px}.login-intro{margin:0 0 30px;color:var(--muted);font-size:16px;line-height:1.65;max-width:350px}.login-form{display:grid;gap:17px}.field{display:flex;flex-direction:column;gap:7px}.field>span,.dialog-tag-block>span{font-size:11px;font-weight:800;color:#526063;letter-spacing:.02em}.field input,.field select{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:12px 13px;outline:none;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.field input:focus,.field select:focus{border-color:#9db2aa;box-shadow:0 0 0 4px rgba(117,141,118,.13);background:white}.field input[readonly]{background:#f2eee7;color:#65706f}.password-control{display:flex;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface);transition:.2s ease}.password-control:focus-within{border-color:#9db2aa;box-shadow:0 0 0 4px rgba(117,141,118,.13)}.password-control input{border:0!important;box-shadow:none!important;border-radius:0;flex:1}.password-control button{border:0;background:transparent;padding:0 14px;color:var(--deep);font-size:11px;font-weight:800;cursor:pointer}.form-error{margin:0;padding:11px 13px;border-radius:11px;background:#f7e5e5;color:var(--danger);font-size:12px}.login-legal{position:absolute;bottom:32px;left:clamp(30px,6vw,82px);margin:0;color:#8a9392;font-size:10px;letter-spacing:.06em;text-transform:uppercase}
.login-art{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--deep),#244d4e);min-height:100vh}.login-art:after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.09) 1px,transparent 1px);background-size:24px 24px;mask-image:linear-gradient(to bottom,transparent,black 20%,black 80%,transparent)}.art-orbit{position:absolute;border:1px solid rgba(255,255,255,.15);border-radius:50%}.orbit-one{width:560px;height:560px;right:-120px;top:-110px}.orbit-two{width:380px;height:380px;left:8%;bottom:-160px}.art-sheet{position:absolute;border-radius:24px}.sheet-back{width:360px;height:455px;left:22%;top:22%;background:#d4c7a9;transform:rotate(-8deg);opacity:.55}.sheet-front{width:380px;min-height:430px;left:28%;top:20%;background:#f4efe4;padding:42px;box-shadow:0 35px 90px rgba(0,0,0,.24);transform:rotate(2.5deg);z-index:2}.art-kicker{font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--rust);font-weight:850}.sheet-front strong{display:block;font-family:var(--display);font-size:44px;line-height:1.08;letter-spacing:-.045em;margin-top:36px}.art-lines{display:grid;gap:12px;margin-top:70px}.art-lines i{height:6px;border-radius:99px;background:#c7cbc3}.art-lines i:nth-child(1){width:78%}.art-lines i:nth-child(2){width:58%}.art-lines i:nth-child(3){width:88%}.art-stamp{position:absolute;right:12%;bottom:14%;width:104px;height:104px;border-radius:50%;border:2px solid rgba(255,255,255,.45);color:white;display:grid;place-items:center;font-weight:900;letter-spacing:.15em;transform:rotate(-11deg);z-index:3}

/* App chrome */
.app-body{background:var(--paper)}.topbar{height:76px;background:rgba(255,253,249,.92);backdrop-filter:blur(16px);border-bottom:1px solid rgba(221,216,207,.85);padding:0 clamp(20px,4vw,54px);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:40}.identity-area{display:flex;align-items:center;gap:17px}.brand{border:0;background:transparent;display:flex;align-items:center;gap:11px;padding:0;cursor:pointer}.brand strong,.brand small,.signed-user strong,.signed-user small{display:block}.brand strong{font-size:15px}.brand small{font-size:10px;color:var(--muted);margin-top:2px}.identity-divider{width:1px;height:32px;background:var(--line)}.signed-user{display:flex;align-items:center;gap:9px}.signed-user strong{font-size:11px}.signed-user small{font-size:9px;color:var(--muted);margin-top:2px}.user-avatar{width:34px;height:34px;border-radius:11px;background:var(--sage-soft);color:var(--deep);display:grid;place-items:center;font-size:10px;font-weight:900}.menu-trigger{position:relative;border:1px solid var(--line);background:var(--surface);border-radius:13px;padding:9px 13px;display:flex;align-items:center;gap:10px;font-weight:800;cursor:pointer;box-shadow:0 4px 16px rgba(40,45,42,.04);transition:.2s ease}.menu-trigger:hover{transform:translateY(-1px);box-shadow:var(--shadow-soft)}.menu-lines{width:18px;display:grid;gap:5px}.menu-lines i{height:2px;background:var(--deep);border-radius:3px}.menu-lines i:last-child{width:12px}.menu-trigger b{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:99px;background:var(--rust);color:white;border:2px solid var(--surface);display:grid;place-items:center;font-size:9px}
.drawer-backdrop{position:fixed;inset:0;background:rgba(20,33,34,.38);backdrop-filter:blur(2px);z-index:70;opacity:0;transition:opacity .3s ease}.drawer-backdrop.visible{opacity:1}.side-drawer{position:fixed;top:0;right:0;width:min(420px,92vw);height:100vh;background:var(--surface);z-index:80;box-shadow:-30px 0 90px rgba(22,55,58,.22);padding:28px;display:flex;flex-direction:column;transform:translateX(105%);transition:transform .38s cubic-bezier(.22,.8,.25,1);overflow-y:auto}.side-drawer.open{transform:translateX(0)}.drawer-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.drawer-head h2{font-family:var(--display);font-size:34px;letter-spacing:-.04em;margin:0}.view-mode-card{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:20px}.view-mode-copy strong{font-size:12px}.view-mode-copy p{font-size:11px;color:var(--muted);line-height:1.5;margin:5px 0 14px}.segmented{height:42px;background:#e7e2d9;border-radius:12px;padding:4px;display:grid;grid-template-columns:1fr 1fr;position:relative}.segmented button{border:0;background:transparent;z-index:2;font-size:11px;font-weight:850;cursor:pointer}.segmented span{position:absolute;left:4px;top:4px;width:calc(50% - 4px);height:34px;border-radius:9px;background:var(--surface);box-shadow:0 4px 12px rgba(40,45,42,.10);transition:transform .3s cubic-bezier(.22,.8,.25,1)}.segmented.admin span{transform:translateX(100%)}.drawer-nav{display:grid}.drawer-nav button{border:0;border-bottom:1px solid var(--line);background:transparent;padding:15px 2px;display:grid;grid-template-columns:34px 1fr auto;align-items:center;text-align:left;cursor:pointer;transition:padding .2s ease,color .2s ease}.drawer-nav button:hover{padding-left:7px;color:var(--rust)}.drawer-nav span{font-size:9px;color:#9a9f9a;letter-spacing:.12em}.drawer-nav b{font-size:14px}.drawer-nav em{font-style:normal;background:var(--rust-soft);color:var(--rust);font-size:9px;font-weight:900;padding:4px 7px;border-radius:99px}.drawer-foot{margin-top:auto;padding-top:24px}.drawer-user{display:flex;align-items:center;gap:10px;margin-bottom:13px}.drawer-user strong,.drawer-user small{display:block}.drawer-user strong{font-size:11px}.drawer-user small{font-size:9px;color:var(--muted);margin-top:2px}.logout-link{width:100%;border:0;background:var(--deep);color:white;border-radius:12px;padding:12px 14px;display:flex;justify-content:space-between;cursor:pointer;font-weight:800}

/* Pages */
.app-container{max-width:1480px;margin:0 auto;padding:38px clamp(20px,4vw,54px) 70px}.view{display:none}.view.active{display:block}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:22px}.page-header h1{font-family:var(--display);font-size:clamp(34px,4vw,52px);line-height:1;letter-spacing:-.055em;margin:0 0 10px}.page-description{margin:0;color:var(--muted);font-size:14px;line-height:1.55;max-width:650px}.animate-in{animation:rise .45s both}.delay-1{animation-delay:.07s}.delay-2{animation-delay:.14s}@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.mode-banner{background:linear-gradient(90deg,var(--deep),#285255);color:white;border-radius:16px;padding:14px 17px;display:grid;grid-template-columns:38px 1fr auto;gap:13px;align-items:center;margin-bottom:14px;box-shadow:0 13px 35px rgba(22,55,58,.15)}.mode-banner>span{width:34px;height:34px;border-radius:11px;background:rgba(255,255,255,.13);display:grid;place-items:center;font-weight:900}.mode-banner strong,.mode-banner p{display:block}.mode-banner strong{font-size:12px}.mode-banner p{margin:3px 0 0;color:rgba(255,255,255,.7);font-size:10px}.mode-banner button{border:1px solid rgba(255,255,255,.25);background:transparent;color:white;border-radius:10px;padding:8px 11px;font-size:10px;font-weight:800;cursor:pointer}.toolbar{display:flex;gap:10px;align-items:center;background:rgba(255,253,249,.7);border:1px solid var(--line);border-radius:15px;padding:10px;margin-bottom:14px}.search-box{flex:1;display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);border-radius:11px;padding:0 11px}.search-box span{color:#9ba3a1}.search-box input{width:100%;border:0;background:transparent;outline:none;padding:10px 0}.toolbar select{border:1px solid var(--line);border-radius:11px;background:var(--surface);padding:10px 12px;min-width:155px}
.project-list{display:grid;gap:12px}.project-item{background:var(--surface);border:1px solid var(--line);border-radius:17px;overflow:hidden;box-shadow:0 4px 16px rgba(40,45,42,.035);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;animation:rise .4s both}.project-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft);border-color:#cfc7ba}.project-main{padding:18px 19px;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,.9fr) auto;gap:20px;align-items:center}.project-id-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.project-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--rust);font-size:11px;font-weight:900;letter-spacing:.04em}.project-title{font-family:var(--display);font-size:20px;letter-spacing:-.025em;margin:6px 0 4px}.project-client{margin:0;color:var(--muted);font-size:11px}.project-location{display:flex;gap:8px;align-items:flex-start;color:#5e6a6b;font-size:11px;line-height:1.45}.project-location span{color:var(--rust)}.tag-row{display:flex;gap:6px;flex-wrap:wrap}.tag{display:inline-flex;align-items:center;height:23px;padding:0 8px;border-radius:99px;font-size:9px;font-weight:850;letter-spacing:.02em}.tag[data-tag="Disgaggio"]{background:var(--rust-soft);color:#8f4327}.tag[data-tag="Straordinario"]{background:var(--blue-soft);color:#405e76}.tag[data-tag="Pulizia"]{background:var(--sage-soft);color:#4d6951}.tag[data-tag="Posatura Reti"]{background:#eee5d3;color:#7b612f}.project-actions{display:flex;align-items:center;gap:7px;justify-content:flex-end}.icon-action{border:1px solid var(--line);background:var(--surface);border-radius:10px;height:36px;padding:0 10px;cursor:pointer;font-size:10px;font-weight:800;transition:.2s ease}.icon-action:hover{background:var(--surface-2);transform:translateY(-1px)}.icon-action.danger{color:var(--danger)}.icon-action.success{color:#477357}
.economic-strip{border-top:1px solid var(--line);background:#faf8f3;padding:12px 19px;display:grid;grid-template-columns:repeat(3,minmax(130px,1fr)) auto;gap:18px;align-items:center}.economic-strip span,.economic-strip strong,.economic-strip small{display:block}.economic-strip span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#8a918e}.economic-strip strong{font-size:15px;margin-top:3px}.economic-strip small{font-size:9px;color:var(--muted);margin-top:2px}.progress-track{height:5px;background:#e4ded4;border-radius:99px;overflow:hidden;margin-top:7px}.progress-track i{display:block;height:100%;background:var(--rust);border-radius:99px}.economic-hidden{border-top:1px solid var(--line);padding:11px 19px;color:#78817f;font-size:10px;background:#faf8f3;display:flex;align-items:center;gap:8px}.mode-client .economic-strip,.mode-client .economic-hidden,.mode-client .economic-form-field{display:none}.clockify-state{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted)}.mini-toggle{width:38px;height:22px;position:relative;display:inline-block}.mini-toggle input{opacity:0;width:0;height:0}.mini-toggle i{position:absolute;inset:0;background:#cfcfc8;border-radius:99px;cursor:pointer;transition:.2s}.mini-toggle i:before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:white;border-radius:50%;box-shadow:0 2px 5px rgba(0,0,0,.18);transition:.2s}.mini-toggle input:checked+i{background:var(--sage)}.mini-toggle input:checked+i:before{transform:translateX(16px)}.empty-panel{background:var(--surface);border:1px dashed #cfc8bd;border-radius:16px;padding:55px;text-align:center}.empty-panel strong{display:block;font-family:var(--display);font-size:22px}.empty-panel p{margin:6px 0 0;color:var(--muted);font-size:12px}
.editor-layout{display:grid;gap:14px}.editor-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:0 5px 20px rgba(40,45,42,.035)}.editor-heading{display:flex;align-items:flex-start;gap:13px;margin-bottom:19px}.editor-heading>span{width:32px;height:32px;border-radius:10px;background:var(--rust-soft);color:var(--rust);display:grid;place-items:center;font-size:11px;font-weight:900}.editor-heading h2{font-family:var(--display);font-size:20px;letter-spacing:-.025em;margin:0 0 4px}.editor-heading p{margin:0;color:var(--muted);font-size:11px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field-wide{grid-column:span 2}.switch-field{grid-column:span 1;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:13px;padding:12px;background:var(--surface-2)}.switch-field>span strong,.switch-field>span small{display:block}.switch-field>span strong{font-size:11px}.switch-field>span small{font-size:9px;color:var(--muted);line-height:1.4;margin-top:3px}.switch-field input{opacity:0;width:0;height:0}.switch-field i{position:relative;width:40px;height:23px;background:#cbc9c2;border-radius:99px;cursor:pointer;transition:.2s}.switch-field i:before{content:"";position:absolute;width:17px;height:17px;left:3px;top:3px;background:white;border-radius:50%;box-shadow:0 2px 5px rgba(0,0,0,.15);transition:.2s}.switch-field input:checked+i{background:var(--sage)}.switch-field input:checked+i:before{transform:translateX(17px)}.tag-selector{display:flex;gap:9px;flex-wrap:wrap}.tag-choice{position:relative}.tag-choice input{position:absolute;opacity:0}.tag-choice span{display:inline-flex;align-items:center;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-size:10px;font-weight:800;cursor:pointer;transition:.2s ease}.tag-choice input:checked+span{background:var(--deep);border-color:var(--deep);color:white;transform:translateY(-1px);box-shadow:0 7px 17px rgba(22,55,58,.14)}.tag-selector.compact .tag-choice span{padding:7px 10px}.folder-path{margin-top:18px;background:var(--deep);border-radius:13px;padding:14px;color:#dce8e6}.folder-path span{display:block;font-size:8px;color:#93abaa;letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px}.folder-path code{font-size:10px;word-break:break-all}.form-actions{display:flex;justify-content:flex-end;gap:9px}.form-actions.compact{margin-top:16px}
.archive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.archive-card{background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:18px;display:grid;gap:14px;animation:rise .4s both}.archive-head{display:flex;justify-content:space-between;gap:15px}.archive-card h3{font-family:var(--display);font-size:19px;margin:5px 0 3px}.archive-card p{margin:0;color:var(--muted);font-size:10px}.archive-date{font-size:9px;color:#8f9693;text-align:right}.archive-meta{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:10px}.archive-actions{display:flex;justify-content:flex-end;gap:8px}.notification-list{display:grid;gap:10px}.notification-item{background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:16px;display:grid;grid-template-columns:38px 1fr auto;gap:13px;align-items:start}.notification-item.unread{border-left:4px solid var(--rust)}.notification-icon{width:36px;height:36px;border-radius:11px;background:var(--rust-soft);color:var(--rust);display:grid;place-items:center;font-weight:900}.notification-item h3{font-size:12px;margin:0 0 5px}.notification-item p{font-size:10px;color:var(--muted);line-height:1.5;margin:0}.notification-item small{display:block;margin-top:7px;color:#929996;font-size:9px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.settings-grid .full-width{grid-column:span 2}.tag-catalog{display:flex;gap:8px;flex-wrap:wrap}.technical-note{margin:18px 0 0;padding:12px;border-left:3px solid var(--sage);background:var(--sage-soft);color:#526354;font-size:10px;line-height:1.5}.locked-row{display:flex;align-items:flex-start;gap:13px;background:var(--surface-2);border-radius:13px;padding:15px}.locked-row strong{font-size:11px}.locked-row p{margin:4px 0 0;color:var(--muted);font-size:10px;line-height:1.45}
.dialog-card{width:min(720px,calc(100vw - 28px));border:0;border-radius:20px;padding:0;background:var(--surface);box-shadow:var(--shadow)}.dialog-card::backdrop{background:rgba(20,33,34,.48);backdrop-filter:blur(3px)}.small-dialog{width:min(590px,calc(100vw - 28px))}.dialog-header{display:flex;justify-content:space-between;align-items:flex-start;padding:21px;border-bottom:1px solid var(--line)}.dialog-header h2{font-family:var(--display);font-size:26px;letter-spacing:-.035em;margin:0}.dialog-content{padding:21px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding:16px 21px;border-top:1px solid var(--line)}.dialog-tag-block{margin-top:16px}.dialog-tag-block>span{display:block;margin-bottom:8px}.dialog-intro{margin:0 0 17px;color:var(--muted);font-size:11px;line-height:1.5}.toast{position:fixed;right:22px;bottom:22px;background:var(--deep);color:white;padding:12px 15px;border-radius:12px;box-shadow:var(--shadow);font-size:11px;font-weight:750;opacity:0;transform:translateY(12px);pointer-events:none;transition:.25s;z-index:100}.toast.show{opacity:1;transform:none}
@media(max-width:980px){.project-main{grid-template-columns:1fr auto}.project-location{grid-column:1/-1}.economic-strip{grid-template-columns:repeat(2,1fr)}.archive-grid{grid-template-columns:1fr}.login-art{display:none}.login-layout{grid-template-columns:1fr}.login-side{min-height:100vh}.settings-grid{grid-template-columns:1fr}.settings-grid .full-width{grid-column:auto}}
@media(max-width:720px){.topbar{padding:0 15px}.identity-divider,.signed-user span:not(.user-avatar){display:none}.app-container{padding:28px 15px 55px}.page-header{align-items:flex-start;flex-direction:column}.toolbar{align-items:stretch;flex-direction:column}.toolbar select{width:100%}.project-main{grid-template-columns:1fr}.project-actions{justify-content:flex-start}.economic-strip{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.field-wide,.switch-field{grid-column:auto}.archive-grid{grid-template-columns:1fr}.mode-banner{grid-template-columns:36px 1fr}.mode-banner button{grid-column:1/-1}.login-side{padding:34px 24px}.login-brand,.login-legal{left:24px}.project-actions{flex-wrap:wrap}}

/* Refinements v0.5 */
:root{
  --paper:#e9e6df;
  --surface:#f8f5ef;
  --surface-2:#f0ece4;
  --line:#d7d1c7;
}
.login-body,.login-side{background:var(--surface)}
.topbar{background:rgba(248,245,239,.94)}
.button:disabled,.icon-action:disabled{opacity:.58;cursor:wait;transform:none!important;box-shadow:none!important}
.button>span,.icon-action>span{display:inline-flex;align-items:center;justify-content:center}
.icon-action{display:inline-flex;align-items:center;justify-content:center;gap:6px;text-align:center;min-width:38px}
.project-actions,.archive-actions,.dialog-actions,.form-actions{align-items:center}

.drawer-backdrop{transition:opacity .33s ease}
.side-drawer{
  border-radius:20px 0 0 20px;
  transition:transform .42s cubic-bezier(.22,.8,.25,1);
}
.segmented{cursor:pointer;user-select:none;outline:none}
.segmented:focus-visible{box-shadow:0 0 0 4px rgba(117,141,118,.18)}
.segmented button{width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:9px}
.segmented span{transition:transform .33s cubic-bezier(.22,.8,.25,1)}

.economic-strip{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  padding:0;
  background:#f1eee7;
  align-items:stretch;
}
.economic-cell{
  min-height:112px;
  padding:18px 20px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  border-right:1px solid var(--line);
  background:transparent;
  text-align:left;
}
.economic-cell:last-child{border-right:0}
.economic-cell span,.economic-cell strong,.economic-cell small{display:block}
.economic-cell>span{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#7f8784;font-weight:850}
.economic-cell>strong{font-family:var(--display);font-size:25px;letter-spacing:-.035em;margin-top:6px;color:var(--ink)}
.economic-cell>small{font-size:9px;color:var(--muted);margin-top:5px;line-height:1.45}
.economic-cell.negative>strong,.economic-cell.negative>small{color:var(--danger)}
.cost-current-button{width:100%;border:0;cursor:pointer;font:inherit;transition:background .2s ease,transform .2s ease}
.cost-current-button:hover{background:#e9e4da;transform:none}
.cost-current-button:focus-visible{outline:3px solid rgba(117,141,118,.24);outline-offset:-3px}
.extra-hint{color:var(--rust)!important;font-weight:800}
.extra-cost-lines{display:grid;gap:3px;margin-top:7px;width:100%}
.extra-cost-lines small{display:flex;justify-content:space-between;gap:10px!important;font-size:8.5px!important;margin:0!important;color:#6c7472!important}
.extra-cost-lines b{font-weight:850;color:var(--rust);white-space:nowrap}
.clockify-badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:0 10px;border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:9px;font-weight:800;border:1px solid var(--line)}
.clockify-badge.active{background:var(--sage-soft);color:#4b6850;border-color:#cad7c8}
.clockify-badge i{font-style:normal}
.economic-hidden{display:none!important}

.save-explanation{padding:12px 13px;border-radius:12px;background:var(--surface-2);border-left:3px solid var(--sage)}
.save-state{margin:16px 0 0;padding:11px 13px;border-radius:11px;background:var(--sage-soft);color:#4b6850;font-size:10px;font-weight:750}
.extra-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:17px}
.extra-summary>div{padding:14px;border-radius:13px;background:var(--surface-2);border:1px solid var(--line)}
.extra-summary span,.extra-summary strong{display:block}
.extra-summary span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.extra-summary strong{font-family:var(--display);font-size:22px;margin-top:5px}
.extra-editor-list{display:grid;gap:8px;margin-bottom:15px}
.extra-editor-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:10px 11px}
.extra-editor-item strong,.extra-editor-item small{display:block}
.extra-editor-item strong{font-size:10px}.extra-editor-item small{font-size:9px;color:var(--muted);margin-top:3px}
.extra-empty{padding:18px;text-align:center;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:10px}
.extra-add-row{display:grid;grid-template-columns:1.4fr .7fr auto;gap:9px;align-items:end}
.extra-add-row .button{min-height:43px}

@media(max-width:980px){
  .economic-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
  .economic-cell{padding:16px 14px}
  .economic-cell>strong{font-size:21px}
}
@media(max-width:720px){
  .side-drawer{border-radius:15px 0 0 15px}
  .economic-strip{grid-template-columns:1fr}
  .economic-cell{border-right:0;border-bottom:1px solid var(--line)}
  .economic-cell:last-child{border-bottom:0}
  .extra-summary,.extra-add-row{grid-template-columns:1fr}
  .project-actions,.archive-actions{justify-content:center}
}

/* Demo cliente v0.6 — rifiniture finali */
:root{
  --paper:#ece9e2;
  --surface:#faf8f3;
  --surface-2:#f2eee7;
  --line:#d9d3c9;
  --deep:#183b3d;
  --deep-2:#245154;
  --rust:#ad5b3b;
  --font:"Segoe UI Variable","Aptos","Segoe UI",system-ui,-apple-system,sans-serif;
  --display:"Segoe UI Variable Display","Aptos Display","Segoe UI",system-ui,sans-serif;
}

/* Marchio */
.brand-logo{width:48px;height:48px;display:block;flex:0 0 auto;filter:drop-shadow(0 10px 20px rgba(44,53,55,.16));transition:transform .24s ease,filter .24s ease}
.brand-logo.small{width:38px;height:38px}
.brand:hover .brand-logo{transform:translateY(-2px) scale(1.035);filter:drop-shadow(0 13px 22px rgba(44,53,55,.20))}
.brand-symbol{transform:none}

/* Login sobrio, senza pannello laterale */
.login-body{background:
  radial-gradient(circle at 50% 12%,rgba(255,255,255,.75),transparent 34%),
  linear-gradient(180deg,#efede7 0%,#e7e3db 100%)}
.login-layout-simple{min-height:100vh;display:grid;place-items:center;padding:28px}
.login-card{width:min(460px,100%);min-height:620px;background:rgba(250,248,243,.96);border:1px solid rgba(207,200,188,.9);border-radius:26px;box-shadow:0 32px 90px rgba(43,49,47,.13);padding:42px 46px;display:flex;flex-direction:column;position:relative;animation:loginEnter .55s cubic-bezier(.22,.8,.25,1) both}
.login-brand-static{position:static;display:flex;align-items:center;gap:13px}
.login-content-simple{max-width:none;margin:auto 0}
.login-content-simple h1{font-size:clamp(42px,7vw,58px)}
.login-legal{position:static;margin:0;color:#8a9392;font-size:10px;letter-spacing:.06em;text-transform:uppercase}
.login-form .button{margin-top:3px}
.password-control button{transition:background .2s ease,color .2s ease}
.password-control button:hover{background:#ebe7df;color:var(--rust)}
@keyframes loginEnter{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}

/* Hover e focus coerenti */
button:not(:disabled),.tag-choice span,.search-box,.switch-field{transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease,border-color .22s ease,color .22s ease}
button:focus-visible,input:focus-visible,select:focus-visible,.segmented:focus-visible{outline:3px solid rgba(117,141,118,.28);outline-offset:3px}
.button:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(40,45,42,.11)}
.button:not(:disabled):active{transform:translateY(0) scale(.985)}
.button:not(:disabled):hover>span[aria-hidden="true"],.button:not(:disabled):hover>i{transform:translateX(2px)}
.button>span[aria-hidden="true"],.button>i{transition:transform .2s ease}
.round-button:hover{transform:translateY(-1px);background:#ece8e0;box-shadow:0 8px 20px rgba(40,45,42,.09)}
.round-button:active{transform:scale(.95)}
.menu-trigger:hover .menu-lines i:first-child{transform:translateX(2px)}
.menu-trigger:hover .menu-lines i:last-child{transform:translateX(-2px)}
.menu-lines i{transition:transform .22s ease}
.icon-action:hover{background:#ece8e0;transform:translateY(-2px);box-shadow:0 8px 18px rgba(40,45,42,.08);border-color:#c9c1b5}
.icon-action:active{transform:translateY(0) scale(.97)}
.icon-action:hover>span[aria-hidden="true"]{transform:scale(1.12)}
.icon-action>span[aria-hidden="true"]{transition:transform .2s ease}
.logout-link{transition:transform .22s ease,background .22s ease,box-shadow .22s ease}
.logout-link:hover{background:var(--deep-2);transform:translateY(-2px);box-shadow:0 12px 26px rgba(24,59,61,.20)}
.drawer-nav button{border-radius:10px}
.drawer-nav button:hover{padding-left:9px;color:var(--rust);background:#f1ede5}
.drawer-nav button:active{transform:scale(.985)}
.cost-current-button:hover{background:#e8e3da;box-shadow:none;transform:none}

/* Menu laterale e selettore in basso */
.side-drawer{border-radius:22px 0 0 22px;transition:transform .46s cubic-bezier(.22,.8,.25,1)}
.drawer-foot{margin-top:auto;padding-top:22px;border-top:1px solid var(--line)}
.drawer-mode{margin-bottom:18px}
.drawer-mode-title{display:block;margin-bottom:8px;color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
.segmented{height:44px;cursor:pointer;user-select:none}
.segmented button{font-size:10px;letter-spacing:.01em;white-space:nowrap}
.segmented button:hover{color:var(--rust)}
.segmented button:active{transform:none}
.segmented span{height:36px;transition:transform .36s cubic-bezier(.22,.8,.25,1)}
.drawer-user{padding-top:2px}

/* Tag con colore personalizzato */
.tag{background:color-mix(in srgb,var(--tag-color) 14%,var(--surface));color:color-mix(in srgb,var(--tag-color) 86%,#18212b);border:1px solid color-mix(in srgb,var(--tag-color) 28%,transparent)}
.tag-choice span{background:color-mix(in srgb,var(--tag-color) 8%,var(--surface));border-color:color-mix(in srgb,var(--tag-color) 25%,var(--line));color:color-mix(in srgb,var(--tag-color) 80%,#18212b)}
.tag-choice:hover span{transform:translateY(-2px);box-shadow:0 8px 17px rgba(40,45,42,.08);border-color:var(--tag-color)}
.tag-choice input:checked+span{background:var(--tag-color);border-color:var(--tag-color);color:white;box-shadow:0 8px 18px color-mix(in srgb,var(--tag-color) 25%,transparent)}
.empty-inline{font-size:10px;color:var(--muted)}

/* Gestione personalizzata dei tag */
.tag-settings-card{min-width:0}
.tag-manager{display:grid;gap:9px}
.tag-manager-row{display:grid;grid-template-columns:44px minmax(130px,1fr) auto auto;gap:9px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2)}
.tag-color-input{width:40px;height:38px;border:0;padding:3px;background:transparent;cursor:pointer;border-radius:9px}
.tag-name-input{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:10px 11px;outline:none}
.tag-live-preview{justify-self:start;white-space:nowrap}
.tag-manager-actions{display:flex;gap:6px}
.tag-add-panel{display:grid;grid-template-columns:minmax(150px,1fr) 88px auto;gap:10px;align-items:end;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.color-field input{height:43px;padding:4px;cursor:pointer}
.compact-empty{padding:24px}

/* Piccoli affinamenti */
.app-body{background:linear-gradient(180deg,#ece9e2 0%,#e7e3db 100%);background-attachment:fixed}
.topbar{background:rgba(250,248,243,.93)}
.project-item,.archive-card,.editor-card,.notification-item{background:rgba(250,248,243,.96)}
.project-item:hover,.archive-card:hover{border-color:#c9c1b5;box-shadow:0 14px 32px rgba(40,45,42,.08)}
.archive-card{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.archive-card:hover{transform:translateY(-2px)}
.form-actions,.dialog-actions,.archive-actions,.project-actions{justify-content:center}
.project-actions{justify-content:flex-end}
.economic-cell>strong{font-size:27px}
.save-state{margin:14px 0 0;padding:10px 12px;border-radius:10px;background:var(--sage-soft);color:#4f6753;font-size:10px}

@media(max-width:900px){
  .tag-manager-row{grid-template-columns:44px 1fr auto}.tag-live-preview{grid-column:2}.tag-manager-actions{grid-column:3;grid-row:1/3;flex-direction:column}
  .tag-add-panel{grid-template-columns:1fr 90px}.tag-add-panel .button{grid-column:1/-1}
}
@media(max-width:720px){
  .login-layout-simple{padding:14px}.login-card{min-height:calc(100vh - 28px);padding:34px 25px;border-radius:21px}
  .tag-manager-row{grid-template-columns:40px 1fr}.tag-live-preview{grid-column:1/-1}.tag-manager-actions{grid-column:1/-1;grid-row:auto;flex-direction:row;justify-content:flex-end}
  .tag-add-panel{grid-template-columns:1fr}.tag-add-panel .button{grid-column:auto}
  .economic-strip{grid-template-columns:1fr}
}


/* Fase 2.1 - nuove funzioni applicative, senza alterare la Demo Cliente. */
.client-inline{font:inherit;color:inherit;border:0;background:none;text-decoration:underline;text-decoration-color:transparent;cursor:pointer;padding:0}
.client-inline:hover,.client-inline:focus-visible{text-decoration-color:currentColor}
.project-created{display:block;margin-top:5px;opacity:.65;font-size:.72rem}
.prezzario-field{grid-column:1/-1;border:0;margin:4px 0 0;padding:0;display:flex;gap:12px;flex-wrap:wrap}
.prezzario-field legend{font-size:.89rem;font-weight:700;margin-bottom:8px}
.prezzario-field label{cursor:pointer;display:flex;align-items:center;gap:8px;flex:1 1 180px;padding:15px 18px;border:1px solid #bcbab5;border-radius:12px;background:#f8f8f5}
.prezzario-field label:has(input:checked){border-color:#607764;box-shadow:0 0 0 1px #607764;background:#f2f7f1}
#activeClient,#archivedClient{max-width:230px}
.client-project-row{padding:18px 22px}
.client-project-row p{margin:6px 0;font-size:.85rem}
#settingNext{font-size:.83rem}

/* Fase 2.2 – ricerca, filtri e Focus Cliente (Demo Cliente 1.0 invariata). */
.toolbar{flex-wrap:wrap;gap:10px;overflow:visible;position:relative}
.toolbar>.search-box{flex:2 1 245px;min-width:185px;min-height:45px;transition:border-color .2s,box-shadow .2s}
.search-box:focus-within{border-color:#829c8b;box-shadow:0 0 0 3px rgba(117,141,118,.14);background:#fffefa}
.search-box input:focus,.search-box input:focus-visible{outline:0!important;outline-offset:0!important;box-shadow:none!important;border:0!important}
.search-box input::-webkit-search-decoration,.search-box input::-webkit-search-cancel-button{cursor:pointer}
.toolbar select.filter-native{display:none!important}
.filter-select{position:relative;flex:0 1 157px;min-width:137px}
.filter-trigger{width:100%;height:45px;padding:0 12px 0 14px;border:1px solid var(--line);border-radius:11px;background:var(--surface);display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;text-align:left;color:var(--ink);font-size:12px;font-weight:650;transition:box-shadow .2s,border-color .2s,background .2s}
.filter-trigger:hover{border-color:#b4bdb3;background:#fffefa}
.filter-select.open .filter-trigger,.filter-trigger:focus-visible{border-color:#829c8b;outline:none;box-shadow:0 0 0 3px rgba(117,141,118,.14)}
.filter-chevron{color:#677674;font-size:20px;line-height:1;transition:transform .2s ease;pointer-events:none}
.filter-select.open .filter-chevron{transform:rotate(180deg)}
.filter-list{position:absolute;z-index:60;top:calc(100% + 6px);left:0;width:max(100%,190px);max-width:min(290px,90vw);max-height:245px;overflow-y:auto;overflow-x:hidden;padding:5px;background:#fcfaf6;border:1px solid #d8d3ca;border-radius:13px;box-shadow:0 15px 35px rgba(27,44,43,.13);animation:platDropEnter .17s ease both}
.filter-option{width:100%;border:0;background:transparent;padding:11px 12px;border-radius:8px;font-size:12px;line-height:1.3;text-align:left;display:block;cursor:pointer;transition:background .12s,color .12s}
.filter-option:hover,.filter-option.highlight,.filter-option:focus-visible{background:#ecf0ea;color:#24504b;outline:none}
.filter-option[aria-selected="true"]{background:#dfe9df;color:#294c43;font-weight:800}
@keyframes platDropEnter{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
.client-filter{display:flex;gap:8px;align-items:center;flex:1 1 235px;min-width:215px}
.client-combobox{position:relative;display:flex;align-items:center;flex:1;min-width:0;height:45px;border:1px solid var(--line);border-radius:11px;background:var(--surface);padding:0 9px;transition:border-color .2s,box-shadow .2s}
.client-combobox:hover{border-color:#b4bdb3}
.client-combobox:focus-within{border-color:#829c8b;box-shadow:0 0 0 3px rgba(117,141,118,.14);background:#fffefa}
.client-search-symbol{color:#929e99;font-size:18px;margin-right:5px;pointer-events:none}
.client-combobox input{width:100%;min-width:0;min-height:42px;border:0!important;outline:0!important;box-shadow:none!important;background:transparent;font-size:12px;color:var(--ink);padding:0 3px}
.client-combobox input:focus-visible{outline:0!important;box-shadow:none!important}
.client-combobox input::-webkit-search-cancel-button{display:none}
.client-clear{border:0;background:#eeeae2;border-radius:8px;width:25px;height:25px;flex:0 0 25px;cursor:pointer;display:grid;place-items:center;color:#465553}
.client-clear:hover{background:#e1dbd1}
.client-suggestions{position:absolute;z-index:65;top:calc(100% + 6px);left:0;right:0;min-width:230px;max-height:295px;overflow:auto;padding:5px;border:1px solid #d8d3ca;background:#fcfaf6;border-radius:13px;box-shadow:0 16px 35px rgba(27,44,43,.15);animation:platDropEnter .17s ease both}
.client-option{border:0;border-radius:9px;padding:10px 12px;background:transparent;width:100%;text-align:left;display:block;cursor:pointer}
.client-option strong,.client-option small{display:block;line-height:1.35}
.client-option strong{font-size:12px;color:#263f3b}
.client-option small{font-size:10px;color:var(--muted);margin-top:3px}
.client-option:hover,.client-option.highlight,.client-option:focus-visible{background:#edf1e9;outline:none}
.client-option-empty{padding:12px;color:var(--muted);font-size:11px}
.focus-activate{height:45px;border:1px solid #285255;border-radius:11px;padding:0 13px;background:#285255;color:white;font-size:12px;font-weight:750;white-space:nowrap;cursor:pointer;transition:transform .18s,background .18s,box-shadow .18s}
.focus-activate:hover:not(:disabled){background:#214347;box-shadow:0 6px 15px rgba(27,55,52,.18);transform:translateY(-1px)}
.focus-activate:disabled{opacity:.45;cursor:not-allowed}
.focus-banner{display:flex;align-items:center;gap:11px;margin:-4px 0 14px;padding:12px 14px;background:var(--deep);color:#fcfaf6;border-radius:13px;box-shadow:0 7px 18px rgba(22,55,58,.10)}
.focus-banner>span{font-size:25px;opacity:.85}
.focus-banner>div{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.focus-banner strong{font-size:12px;font-weight:800}
.focus-banner small{font-size:11px;color:#d3e1dc;white-space:normal}
.focus-exit{border:1px solid rgba(255,255,255,.28);border-radius:9px;background:rgba(255,255,255,.08);color:white;padding:9px 12px;font-size:11px;font-weight:750;cursor:pointer}
.focus-exit:hover{background:rgba(255,255,255,.18)}
.mode-client .admin-only,.mode-client [data-view="add"],.mode-client [data-view="settings"],.mode-client .project-actions .icon-action,.mode-client .archive-actions,.mode-client #readAllButton,.mode-client .notification-item .icon-action{display:none!important}
.focus-active [data-client-filter="active"],.focus-active .drawer-nav [data-view="archived"]{display:none!important}
.mode-client .project-actions{justify-content:flex-end}
@media(max-width:900px){
 .toolbar>.search-box{flex-basis:100%}
 .filter-select{flex:1 1 145px}
 .client-filter{flex:2 1 235px}
}
@media(max-width:720px){
 .toolbar>.search-box,.filter-select,.client-filter{width:100%;flex:1 1 100%;min-width:0}
 .filter-list{width:100%;max-width:none}
 .focus-banner{flex-wrap:wrap}
 .focus-exit{margin-left:auto}
}
@media(prefers-reduced-motion:reduce){
 .filter-list,.client-suggestions{animation:none}
}

/* v1.3 – menu sopra le schede, che usano proprie animazioni/stacking contexts. */
.toolbar{position:relative;z-index:35;isolation:isolate}
.toolbar .filter-select.open,.toolbar .client-combobox:focus-within{z-index:40}
.toolbar .filter-list,.toolbar .client-suggestions{z-index:50;opacity:1}
.filter-chevron{display:inline-flex;justify-content:center;align-items:center;width:18px;height:18px;flex:0 0 18px;line-height:1}
.filter-chevron svg{width:16px;height:16px;display:block}
.mode-client [data-view="new-client"]{display:none!important}
/* Form anagrafica coerente con il template di creazione cantiere */
#view-new-client .editor-layout{max-width:875px}
.client-form-note{margin:17px 0 0;font-size:11px;line-height:1.6;color:var(--muted)}
.new-client-success{max-width:875px}
.client-success-title{display:flex;align-items:center;gap:13px;margin-bottom:22px}
.client-success-title>span{width:38px;height:38px;border-radius:12px;background:var(--sage-soft);color:var(--deep);font-weight:900;display:grid;place-items:center;font-size:18px}
.client-success-title h2{font-family:var(--display);font-size:23px;margin:0 0 4px;letter-spacing:-.03em}
.client-success-title p{margin:0;color:var(--muted);font-size:12px}
@media(max-width:720px){#view-new-client .form-actions{justify-content:stretch;flex-wrap:wrap}#view-new-client .form-actions button{flex:1 1 180px}}

/* v1.4 – creazione cantiere con scelta esplicita del cliente e layout coerente. */
.add-site-layout{max-width:960px}
.add-site-layout .editor-card{overflow:visible}
.add-site-layout .editor-heading>span{font-variant-numeric:tabular-nums}
.add-client-picker{display:flex;align-items:flex-end;gap:12px}
.add-client-picker>.field{flex:1;min-width:0}
.add-client-combo{display:flex;align-items:center;position:relative;background:var(--surface);border:1px solid var(--line);border-radius:12px;min-height:46px;padding:0 10px;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.add-client-combo:hover{border-color:#bcc9bd}
.add-client-combo:focus-within{border-color:#829c8b;box-shadow:0 0 0 3px rgba(117,141,118,.14);background:#fffefa;z-index:15}
.add-client-combo input{min-width:0;min-height:44px;width:100%;padding:9px 5px;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;font-size:12px}
.add-client-combo input:focus-visible{outline:0!important;box-shadow:none!important}
.add-client-combo input::-webkit-search-cancel-button{display:none}
.add-client-icon{flex:0 0 21px;font-size:19px;color:#84978b;pointer-events:none}
.add-client-suggestions{top:calc(100% + 5px);left:0;right:0;max-height:280px;min-width:min(230px,80vw)}
.add-new-client-button{flex:0 0 auto;white-space:nowrap;min-height:46px;align-self:center;margin-top:12px}
.client-selection-help{display:block;font-size:10px;margin-top:7px;color:var(--muted);line-height:1.5}
.client-data-summary{margin-top:16px;background:#f3f2eb;border:1px solid #dcdcd1;border-radius:13px;padding:15px}
.client-data-head{font-size:11px;font-weight:800;color:#3a6950;margin-bottom:13px;display:flex;gap:7px;align-items:center}
.client-data-head span{display:grid;place-items:center;background:#dceadb;width:20px;height:20px;border-radius:7px}
.client-data-summary input[readonly]{border:1px solid #e0ddd4;background:#faf9f6;color:#526064;cursor:default;font-size:12px}
.field-subhint{font-size:10px;color:var(--muted);line-height:1.45;margin-top:2px}
.prezzario-choices{display:flex;flex-wrap:wrap;gap:11px;margin:6px 0}
.prezzario-choices legend{font-weight:800;font-size:11px;color:#526063;margin-bottom:12px}
.prezzario-choices label{display:flex;align-items:center;gap:12px;flex:1 1 235px;min-height:72px;background:#faf9f5;border:1px solid #d6d3c9;border-radius:14px;padding:14px 17px;cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s,background .2s}
.prezzario-choices label:hover{transform:translateY(-1px);border-color:#afbeac;box-shadow:0 6px 17px rgba(40,45,42,.06)}
.prezzario-choices label:has(input:checked){background:#eef3eb;border-color:#6d9177;box-shadow:0 0 0 1px #6d9177}
.prezzario-choices label input{width:18px;height:18px;accent-color:#597764;flex:0 0 18px}
.prezzario-choices label span{display:flex;flex-direction:column;gap:4px}
.prezzario-choices label strong{font-size:12px;color:#34483f}
.prezzario-choices label small{font-size:10px;color:var(--muted)}
.add-site-layout .folder-path{margin-top:19px}
.add-site-layout .form-actions{justify-content:center}
@media(max-width:720px){
 .add-client-picker{flex-direction:column;align-items:stretch}
 .add-client-picker>.field{width:100%}
 .add-new-client-button{margin-top:0;width:100%;justify-content:center}
 .add-client-suggestions{min-width:0}
}

/* La lista clienti del modulo Aggiungi resta sopra le altre schede durante la scelta. */
.client-selection-card:focus-within{position:relative;z-index:20}

/* v1.5 — modulo cantiere centrato e iconografia SVG nel menu laterale */
#view-add>.page-header{
  width:min(100%,960px);
  margin:0 auto 26px;
  align-items:center;
  justify-content:center;
  text-align:center;
}
#view-add>.page-header>div{width:100%}
#view-add>.page-header .page-description{margin-left:auto;margin-right:auto;max-width:690px}
#view-add>.add-site-layout{
  width:min(100%,960px);
  max-width:960px;
  margin-left:auto;
  margin-right:auto;
}
.drawer-nav .drawer-nav-icon{
  width:28px;
  height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  color:#76877f;
  letter-spacing:normal;
  line-height:1;
  transition:transform .18s ease,color .18s ease;
}
.drawer-nav .drawer-nav-icon svg{
  display:block;
  width:20px;
  height:20px;
  flex:0 0 20px;
}
.drawer-nav button:hover .drawer-nav-icon,
.drawer-nav button:focus-visible .drawer-nav-icon{
  color:var(--rust);
  transform:translateX(2px);
}
.drawer-nav button:focus-visible{outline:2px solid #8fa79b;outline-offset:3px;border-radius:6px}
@media(max-width:720px){
  #view-add>.page-header{margin-bottom:22px}
  #view-add>.add-site-layout{width:100%}
}
@media(prefers-reduced-motion:reduce){
  .drawer-nav .drawer-nav-icon{transition:none}
}

/* v1.6 — Focus come vera vista di presentazione Cliente, senza comandi o importi */
.focus-active .drawer-nav [data-view]:not([data-view="active"]),
.focus-active .drawer-mode,
.focus-active #headerNotificationCount,
.focus-active #drawerNotificationCount,
.focus-active #view-active .page-header [data-view="add"],
.focus-active #view-active .project-actions .icon-action,
.focus-active #view-active .economic-strip,
.focus-active #view-active .economic-hidden,
.focus-active .economic-form-field,
.focus-active [data-client-filter="active"]{
  display:none!important;
}
.focus-active .focus-exit{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.focus-active .drawer-nav [data-view="active"]{border-bottom:0}
.focus-active .focus-banner{background:linear-gradient(110deg,#193e3f,#285255)}
.focus-active .project-main{grid-template-columns:minmax(0,1.6fr) minmax(240px,.9fr) auto}
.budget-percent{
  display:block;
  width:fit-content;
  max-width:100%;
  margin-top:8px!important;
  padding:5px 8px;
  border-radius:8px;
  font-weight:800;
  letter-spacing:0;
  text-transform:none;
  background:#e5eee1;
  color:#436e51!important;
  font-size:10px!important;
  line-height:1.35;
}
.budget-percent.over-budget{background:#f7e6de;color:#a34c36!important}
.budget-percent.not-available{background:#eeeae3;color:#70776f!important}
@media(max-width:720px){
  .focus-active .project-main{grid-template-columns:1fr}
  .focus-active .focus-exit{width:100%}
  .budget-percent{width:100%}
}

/* v1.7 — importi extra senza spinner del browser, con precisione al centesimo */
#extraAmount[type="number"]{
  appearance:textfield;
  -moz-appearance:textfield;
}
#extraAmount[type="number"]::-webkit-inner-spin-button,
#extraAmount[type="number"]::-webkit-outer-spin-button{
  -webkit-appearance:none;
  margin:0;
}
/* Barra del budget residuo nella terza cella economica: rimangono tre celle. */
.budget-progress-row{
  display:flex;
  align-items:center;
  width:100%;
  gap:10px;
  margin-top:12px;
  min-width:0;
}
.budget-progress-track{
  flex:1 1 auto;
  min-width:45px;
  height:9px;
  border-radius:999px;
  background:#dedfd8;
  overflow:hidden;
  border:1px solid rgba(70,100,77,.09);
}
.budget-progress-fill{
  display:block;
  height:100%;
  border-radius:inherit;
  background:#6a9673;
  transition:width .42s cubic-bezier(.2,.75,.25,1);
}
.budget-progress-value{
  flex:0 0 auto;
  font-size:11px;
  font-weight:850;
  color:#426f4b;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
  line-height:1.2;
}
.budget-progress-row.over-budget .budget-progress-fill{background:#b45b4e}
.budget-progress-row.over-budget .budget-progress-value{color:#ac4f3f}
.budget-progress-row.depleted .budget-progress-fill{background:#8a968a}
.budget-progress-row.depleted .budget-progress-value{color:#68716a}
.budget-progress-row.not-available .budget-progress-track{background:#e8e6df}
.budget-progress-row.not-available .budget-progress-fill{background:transparent}
.budget-progress-row.not-available .budget-progress-value{color:#757b75}
@media(max-width:720px){
  .budget-progress-row{gap:12px}
}
@media(prefers-reduced-motion:reduce){
  .budget-progress-fill{transition:none}
}

/* v1.8 — importo preventivato senza controlli di incremento del browser */
#editBudget[type="number"]{
  appearance:textfield;
  -moz-appearance:textfield;
}
#editBudget[type="number"]::-webkit-inner-spin-button,
#editBudget[type="number"]::-webkit-outer-spin-button{
  -webkit-appearance:none;
  margin:0;
}

/* Transizioni sobrie delle finestre operative e della conferma */
.dialog-card[open]:not(.is-closing){
  animation:platModalEnter .22s cubic-bezier(.22,.85,.29,1) both;
}
.dialog-card[open]:not(.is-closing)::backdrop{
  animation:platBackdropEnter .22s ease both;
}
.dialog-card[open].is-closing{
  pointer-events:none;
  animation:platModalExit .18s ease-in both;
}
.dialog-card[open].is-closing::backdrop{
  animation:platBackdropExit .18s ease-in both;
}
@keyframes platModalEnter{
  from{opacity:0;transform:translateY(13px) scale(.986)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes platModalExit{
  from{opacity:1;transform:translateY(0) scale(1)}
  to{opacity:0;transform:translateY(9px) scale(.989)}
}
@keyframes platBackdropEnter{
  from{background:rgba(20,33,34,0);backdrop-filter:blur(0)}
  to{background:rgba(20,33,34,.48);backdrop-filter:blur(3px)}
}
@keyframes platBackdropExit{
  from{background:rgba(20,33,34,.48);backdrop-filter:blur(3px)}
  to{background:rgba(20,33,34,0);backdrop-filter:blur(0)}
}

.discard-dialog{width:min(440px,calc(100vw - 28px))}
.discard-content{
  display:flex;align-items:flex-start;gap:15px;
  padding:25px 24px 21px;
}
.discard-symbol{
  display:inline-flex;align-items:center;justify-content:center;
  flex:0 0 42px;width:42px;height:42px;
  color:#915c40;background:#f4e9db;border-radius:13px;
}
.discard-content .overline{margin:0 0 5px}
.discard-content h2{
  font-family:var(--display);
  font-size:23px;
  line-height:1.2;
  letter-spacing:-.025em;
  margin:0 0 10px;
}
.discard-content p:last-child{
  color:var(--muted);
  line-height:1.6;
  font-size:12px;
  margin:0;
}
.discard-actions{gap:9px;flex-wrap:wrap}
.discard-actions .button{font-size:11px}
.discard-actions .button.primary{background:#8d4b3e;border-color:#8d4b3e}
.discard-actions .button.primary:hover{background:#773e34}
@media(max-width:500px){
  .discard-content{padding:20px 18px 17px}
  .discard-actions .button{flex:1 1 145px}
}
@media(prefers-reduced-motion:reduce){
  .dialog-card[open],.dialog-card[open]::backdrop{
    animation:none!important;
  }
}

/* v1.9 — nessuna freccia di incremento nei campi numerici del pannello.
   Restano validazione numerica e precisione dei decimali. */
input[type="number"]:not([readonly]):not(:disabled){
  appearance:textfield;
  -moz-appearance:textfield;
}
input[type="number"]:not([readonly]):not(:disabled)::-webkit-inner-spin-button,
input[type="number"]:not([readonly]):not(:disabled)::-webkit-outer-spin-button{
  -webkit-appearance:none;
  margin:0;
}



/* v1.15 — fotografia approvata dall'utente come sfondo della sola login.
   La foto ottimizzata non contiene EXIF; form, layout ed autenticazione restano invariati. */
body.login-body{
  position:relative;
  isolation:isolate;
  background:#d9e0df;
}
body.login-body::before{
  content:"";
  position:fixed;
  inset:-18px;
  z-index:0;
  pointer-events:none;
  background-image:url("../img/login-montagna.webp");
  background-position:center 48%;
  background-size:cover;
  background-repeat:no-repeat;
  filter:blur(9px);
  transform:scale(1.045);
}
body.login-body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(125deg,rgba(242,239,232,.16),rgba(26,43,49,.23)),
    rgba(228,233,230,.14);
}
body.login-body > .login-layout-simple{
  position:relative;
  z-index:2;
}
body.login-body .login-card{
  background:rgba(250,248,243,.97);
  box-shadow:0 32px 90px rgba(21,36,40,.22);
}



/* v1.16 — catalogo voci del modulo, estensione sobria delle impostazioni. */
.tag-voice-settings{
  margin-top:14px;
  max-width:none;
}
.tag-voice-toolbar{
  display:flex;
  flex-wrap:wrap;
  align-items:end;
  gap:14px;
  margin-bottom:16px;
}
.tag-voice-toolbar>.field{
  flex:0 1 280px;
  min-width:220px;
}
.tag-voice-toolbar>p{
  flex:1 1 260px;
  color:var(--muted);
  font-size:11px;
  line-height:1.6;
  margin:0 0 2px;
}
.tag-voice-list{
  display:grid;
  gap:9px;
}
.tag-voice-empty{
  background:var(--surface-2);
  color:var(--muted);
  border:1px dashed var(--line);
  border-radius:13px;
  font-size:12px;
  padding:20px;
}
.tag-voice-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  border:1px solid var(--line);
  border-radius:13px;
  background:var(--surface-2);
  padding:12px 14px;
}
.tag-voice-item.inactive{
  opacity:.62;
}
.tag-voice-item-info{
  display:grid;
  gap:5px;
  min-width:0;
}
.tag-voice-item-info strong{
  font-size:13px;
  color:var(--deep);
  overflow-wrap:anywhere;
}
.tag-voice-item-info small{
  font-size:10px;
  color:var(--muted);
  overflow-wrap:anywhere;
}
.tag-voice-item-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:7px;
}
.tag-voice-item-actions .button{
  padding:9px 12px;
  font-size:10px;
}
.tag-voice-form{
  background:var(--surface-2);
  border:1px solid var(--line);
  border-radius:14px;
  margin-top:16px;
  padding:18px;
}
.tag-voice-form[hidden]{display:none}
.tag-voice-form h3{
  font-family:var(--display);
  font-size:19px;
  margin:0 0 16px;
  letter-spacing:-.025em;
}
.tag-voice-form-actions{
  display:flex;
  gap:9px;
  justify-content:flex-end;
  margin-top:18px;
}
@media(max-width:720px){
  .tag-voice-settings{margin-top:12px}
  .tag-voice-item{flex-direction:column;align-items:stretch}
  .tag-voice-item-actions{justify-content:flex-start}
  .tag-voice-form{padding:14px}
  .tag-voice-toolbar>.field{flex:1 1 100%}
  .tag-voice-form-actions .button{flex:1}
}


/* v1.19 — i divisori usano ESATTAMENTE la stessa regola dei riquadri
   economici: 1px solid var(--line), senza ombre/bordi aggiuntivi. */
.economic-strip .cost-current-button{
  border-right:1px solid var(--line);
}
@media(max-width:720px){
  .economic-strip .cost-current-button{
    border-right:0;
    border-bottom:1px solid var(--line);
  }
}


/* v1.20 — stesso dropdown degli altri filtri, anche nelle Impostazioni. */
.tag-voice-toolbar .filter-select{
  position:relative;
  width:100%;
  flex:1 1 auto;
  min-width:0;
}
.tag-voice-toolbar select.filter-native{
  display:none!important;
}
.tag-voice-toolbar .filter-trigger{
  width:100%;
  min-height:43px;
}
.tag-voice-toolbar .filter-select.open{z-index:70}
.tag-voice-toolbar .filter-list{
  width:100%;
  max-width:none;
}

/* Scelta esplicita della durata di accesso, nel form login approvato. */
.remember-check{
  display:flex;
  align-items:center;
  gap:10px;
  cursor:pointer;
  font-size:12px;
  font-weight:700;
  color:var(--ink);
}
.remember-check input{
  appearance:auto;
  accent-color:var(--deep);
  width:17px;
  height:17px;
  margin:0;
  cursor:pointer;
}


/* v1.21 — stato di salvataggio e verifica su Directus. */
#addTagButton.is-saving,
.tag-manager-actions .is-saving{
  cursor:progress;
  opacity:.77;
}
#addTagButton.is-saving>span:first-child,
.tag-manager-actions .is-saving>span:first-child{
  display:inline-block;
  font-size:0;
  width:13px;height:13px;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  animation:tagSaveSpin .7s linear infinite;
}
@keyframes tagSaveSpin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){
  #addTagButton.is-saving>span:first-child,
  .tag-manager-actions .is-saving>span:first-child{animation:none}
}


/* v1.22 — menu della scheda voci coerenti con gli altri selettori. */
.tag-voice-form .filter-select{position:relative;width:100%;min-width:0}
.tag-voice-form .filter-trigger{width:100%;min-height:43px}
.tag-voice-form .filter-select.open{z-index:75}
.tag-voice-form .filter-list{width:100%;max-width:none}
#tagVoiceOptionsField[hidden]{display:none}
#tagVoiceOptionsField textarea{min-height:92px;width:100%;resize:vertical}
#tagVoiceOptionsField small{display:block;color:var(--muted);margin-top:6px}


/* v1.24 — un solo dropdown per ogni campo, senza il select nativo duplicato */
.field select.filter-native{display:none!important}
.field .filter-select{position:relative;display:block;flex:0 0 auto;width:100%;min-width:0}
.field .filter-trigger{width:100%;min-height:45px}
.field .filter-list{left:0;top:calc(100% + 6px);width:100%;max-width:none}
.field .filter-select.open{z-index:85}
.field .filter-select.open-up .filter-list{top:auto;bottom:calc(100% + 6px)}
#editDialog .filter-select{width:100%}
#editDialog .filter-trigger{min-height:45px}
#editDialog .filter-list{max-height:190px}
.file-reference-row{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap}
.file-reference-row small{flex:1 1 220px;color:var(--muted);font-size:10px;line-height:1.5;overflow-wrap:anywhere}
.file-reference-row .button{padding:10px 13px;white-space:nowrap}
.file-register-panel{border:1px solid var(--line);border-radius:13px;padding:14px;background:var(--surface);display:grid;gap:12px}
.file-register-panel[hidden]{display:none!important}
.file-register-panel small{font-size:10px;line-height:1.5;color:var(--muted)}
.file-default-check{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:700;cursor:pointer}
.file-default-check input{width:17px;height:17px;accent-color:var(--deep)}
.file-register-actions{display:flex;gap:8px;justify-content:flex-end}
.file-register-actions .button{padding:10px 13px}

/* PLAT v1.28 — SOLO STILI dashboard: palette Più contrasto + menu Tecnico (anteprima v1.27 approvata).
   Base immutata: Demo Cliente v1.0 e frontend v1.24; nessun controllo di confronto anteprima. */
body.app-body{
  --paper:#d9e2e2;--surface:#ffffff;--surface-2:#edf3f3;--ink:#1b303b;--muted:#526975;
  --line:#b8cacb;--deep:#183e52;--deep-2:#225b6d;--rust:#bc6844;--rust-soft:#fae6d9;
  --sage:#4b806e;--sage-soft:#dcece5;--blue:#466f91;--blue-soft:#d9ebf3;--gold:#ab7c44;
  --shadow-soft:0 10px 32px rgba(18,48,62,.16);
  background:var(--paper);background-image:none;
}
body.app-body .topbar{background:#dce9eb;border-bottom:1px solid var(--line);box-shadow:0 2px 12px rgba(17,43,55,.04)}
body.app-body .project-item,
body.app-body .archive-card,
body.app-body .editor-card,
body.app-body .notification-item{
  background:var(--surface);border-color:var(--line);box-shadow:0 4px 16px rgba(28,58,65,.065)
}
body.app-body .project-item:hover,
body.app-body .archive-card:hover{border-color:#94afb1;box-shadow:var(--shadow-soft)}
body.app-body .toolbar{background:var(--surface);border-color:var(--line);box-shadow:0 3px 12px rgba(30,60,70,.035)}
body.app-body .economic-strip{background:var(--surface-2)}
body.app-body .economic-cell{border-color:var(--line)}
body.app-body .filter-list,
body.app-body .client-suggestions{background:var(--surface);border-color:var(--line)}
body.app-body .field input:not([type="color"]),
body.app-body .field textarea,
body.app-body .tag-manager-row,
body.app-body .tag-name-input{border-color:var(--line)}
body.app-body .overline{color:var(--rust)}
body.app-body .client-inline{color:var(--deep)}

/* Menu a comparsa sulla DESTRA. Colore Tecnico, senza barra fissa. */
body.app-body .side-drawer{
  --drawer-color:#2c5261;--drawer-hover:#3a6777;--drawer-line:rgba(238,250,251,.24);
  --drawer-icon:#bdd5da;--drawer-subtitle:#bfd8dd;--drawer-segment:#1e4251;
  --muted:var(--drawer-subtitle);--line:var(--drawer-line);
  --surface:var(--drawer-hover);--surface-2:var(--drawer-segment);
  background:var(--drawer-color);color:#f4f8f9;
  box-shadow:-24px 0 65px rgba(15,37,46,.28);
}
body.app-body .side-drawer .overline,
body.app-body .side-drawer .drawer-mode-title,
body.app-body .side-drawer .drawer-user small{color:var(--drawer-subtitle)}
body.app-body .drawer-nav button{color:#e4f0f2;border-bottom-color:var(--drawer-line)}
body.app-body .drawer-nav button:hover,
body.app-body .drawer-nav button.is-active{background:var(--drawer-hover);color:#fff;padding-left:9px}
body.app-body .drawer-nav .drawer-nav-icon{color:var(--drawer-icon)}
body.app-body .drawer-nav button:hover .drawer-nav-icon,
body.app-body .drawer-nav button.is-active .drawer-nav-icon{color:#fff}
body.app-body .drawer-head .round-button{color:#f3f8f9;border-color:var(--drawer-line);background:rgba(255,255,255,.10)}
body.app-body .drawer-head .round-button:hover{background:rgba(255,255,255,.19)}
body.app-body .drawer-foot{border-color:var(--drawer-line)}
body.app-body .drawer-user .user-avatar{background:#c7e0e5;color:#1a4451}
body.app-body .segmented{background:#1e4251}
body.app-body .segmented button{color:#d8e8ec}
body.app-body .segmented button.active{color:#173745}
body.app-body .segmented span{background:#dbe9e9}
body.app-body .side-drawer .logout-link{background:rgba(237,248,247,.14);border:1px solid var(--drawer-line)}
body.app-body .side-drawer .logout-link:hover{background:rgba(237,248,247,.23)}
body.app-body .side-drawer .drawer-nav button:focus-visible{outline:2px solid #f5bd8e;outline-offset:2px}

/* Campioni colore tag circolari. Gli input e i comandi di salvataggio restano identici. */
body.app-body .tag-color-input,
body.app-body .color-field input[type="color"]{
  width:38px;height:38px;min-width:38px;border:2px solid var(--surface)!important;
  padding:3px!important;background:transparent!important;border-radius:50%!important;
  cursor:pointer;box-shadow:0 0 0 1px var(--line)
}
body.app-body .tag-color-input::-webkit-color-swatch-wrapper,
body.app-body .color-field input[type="color"]::-webkit-color-swatch-wrapper{padding:0}
body.app-body .tag-color-input::-webkit-color-swatch,
body.app-body .color-field input[type="color"]::-webkit-color-swatch{border:0;border-radius:50%}
body.app-body .tag-color-input::-moz-color-swatch,
body.app-body .color-field input[type="color"]::-moz-color-swatch{border:0;border-radius:50%}
body.app-body .tag-color-input:focus-visible,
body.app-body .color-field input[type="color"]:focus-visible{
  outline:3px solid #729caa;outline-offset:3px;box-shadow:0 0 0 2px var(--line)
}
body.app-body .tag-manager-row{background:var(--surface-2)}
body.app-body .tag-manager-row .tag-live-preview{max-width:140px;overflow:hidden;text-overflow:ellipsis}

/* Centratura incrementale del modulo Nuovo cliente. Nessun campo o schema dati nuovo. */
body.app-body #view-new-client .page-header{max-width:910px;margin-left:auto;margin-right:auto}
body.app-body #view-new-client .editor-layout,
body.app-body #view-new-client .new-client-success{max-width:910px;margin-left:auto;margin-right:auto}
body.app-body #view-new-client .editor-card{padding:clamp(21px,3vw,34px)}
body.app-body #view-new-client .editor-heading{padding-bottom:16px;border-bottom:1px solid var(--line)}
body.app-body #view-new-client .form-grid{gap:17px}
body.app-body #view-new-client .form-actions{justify-content:center;padding-top:8px}
body.app-body #view-new-client .form-actions .button{min-width:168px}
body.app-body #view-new-client .filter-select{width:100%;max-width:none}
body.app-body #view-new-client .filter-list{width:100%;max-width:none}
body.app-body #view-new-client .client-form-note{padding-top:4px}
@media(max-width:720px){
  body.app-body #view-new-client .form-actions .button{min-width:0}
  body.app-body #view-new-client .editor-card{padding:20px}
}

/* v1.29 - modifiche incrementali approvate. */
#activateFocus{display:none!important}
#editDialog{max-height:calc(100dvh - 28px);overflow:hidden}
#editDialog #editForm{display:flex;flex-direction:column;max-height:calc(100dvh - 28px);min-height:0}
#editDialog .dialog-header,#editDialog .dialog-actions{flex-shrink:0}
#editDialog .dialog-content{overflow-y:auto;overscroll-behavior:contain;min-height:0}
#editDialog .filter-select.open-up .filter-list,#editDialog .filter-select.open .filter-list{position:relative;top:auto;bottom:auto;left:auto;width:100%;max-width:100%;margin-top:7px;max-height:142px;overflow-y:auto;overflow-x:hidden;box-shadow:0 7px 18px rgba(27,44,43,.10)}
.project-item-v129 .project-main{grid-template-columns:minmax(250px,1.4fr) minmax(185px,.75fr) auto;grid-template-areas:"info location actions" "meta meta meta";gap:13px 20px}
.project-info-primary{grid-area:info;min-width:0}
.project-item-v129 .project-location{grid-area:location;color:var(--ink);font-size:12px;align-items:center}
.project-item-v129 .project-location>span{font-size:19px;line-height:1}
.project-item-v129 .project-location strong{display:block;font-size:13px;font-weight:820;overflow-wrap:anywhere}
.project-item-v129 .project-location small{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:500;overflow-wrap:anywhere}
.project-item-v129 .project-actions{grid-area:actions;gap:9px}
.project-item-v129 .project-actions .icon-action,.archive-card-v129 .icon-action{min-height:43px;padding:0 16px;font-size:12px;gap:7px;border-radius:11px;white-space:nowrap;font-weight:800}
.project-item-v129 .project-actions .icon-action svg{display:block}
.project-item-v129 .project-code,.archive-card-v129 .project-code{font-size:13px;font-weight:900;letter-spacing:.055em;padding:6px 9px;border:1px solid rgba(184,91,54,.22);background:rgba(184,91,54,.09);border-radius:8px}
.project-operational-meta{grid-area:meta;display:flex;align-items:center;gap:8px 15px;flex-wrap:wrap;padding-top:10px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}
.project-operational-meta b{color:var(--ink);font-weight:780}
.project-operational-meta .altitude-pill{border-radius:99px;background:var(--surface-2);border:1px solid var(--line);padding:5px 9px}
.archive-card-v129 .archive-meta strong{color:var(--ink)}
.archive-card-v129 .archive-date strong{display:block;margin-top:5px}
.settings-grid-v129{grid-template-columns:minmax(0,1fr)}
.settings-grid-v129 .tag-add-panel,.settings-grid-v129 .settings-numbering-card .form-grid{max-width:780px}
.settings-grid-v129 .settings-numbering-card .form-actions{margin-top:16px}
@media(max-width:1120px){.project-item-v129 .project-main{grid-template-columns:1fr auto;grid-template-areas:"info actions" "location location" "meta meta"}.project-item-v129 .project-actions{flex-wrap:wrap}}
@media(max-width:720px){.project-item-v129 .project-main{grid-template-columns:1fr;grid-template-areas:"info" "location" "actions" "meta"}.project-item-v129 .project-actions{justify-content:flex-start}.project-item-v129 .project-actions .icon-action{flex:1 1 115px}}

/* v1.30 — campi modulo operatore su tre righe equilibrate. */
.tag-voice-form .voice-fields-grid{display:grid;gap:14px}
.tag-voice-form .voice-form-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}
.tag-voice-form .voice-form-row>.field{min-width:0;margin:0}
.tag-voice-form .voice-form-row .field input,.tag-voice-form .voice-form-row .field select{width:100%;min-width:0}
.tag-voice-form .voice-form-row .field>span:first-child{min-height:20px}
.tag-voice-form .voice-form-row .filter-select{width:100%}
.tag-voice-form .voice-form-row .filter-list{max-height:210px;overflow-y:auto}
.tag-voice-form .voice-form-row .filter-select.open-up .filter-list{top:calc(100% + 6px);bottom:auto}
.tag-voice-form .voice-form-row .filter-select.open{z-index:90}
.voice-altro-toggle{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:11px;background:var(--surface);padding:0 14px;min-height:45px;cursor:pointer;font-weight:630;color:var(--ink);font-size:12px}
.voice-altro-toggle input{accent-color:var(--deep);width:17px;height:17px;flex-shrink:0;cursor:pointer}
.voice-altro-hint{margin-top:12px;padding:10px 13px;background:var(--surface);border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:11px}
.voice-file-tools{margin-top:12px}
.voice-file-tools .file-reference-row{padding:7px 1px;gap:12px}
.voice-file-tools .file-reference-row>small{min-width:0;flex:1 1 300px;font-size:10px;color:var(--muted);line-height:1.5}
.voice-file-tools .file-register-panel{margin-top:12px}
.tag-voice-form #tagVoiceOptionsField{margin-top:12px}
.tag-voice-form .tag-voice-form-actions{margin-top:16px}
#view-settings>.settings-numbering-card{margin-top:16px}
#view-settings>.settings-numbering-card .form-grid{max-width:780px}
/* The altitude indicator and its choice fields match other dropdown surfaces. */
.project-operational-meta .altitude-pill{border-radius:11px;background:var(--surface);border:1px solid var(--line);color:var(--ink);font-weight:650;padding:8px 12px;box-shadow:none}
@media(max-width:960px){
  .tag-voice-form .voice-form-row{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  .tag-voice-form .voice-form-row{grid-template-columns:minmax(0,1fr);gap:11px}
  .voice-file-tools .file-reference-row{align-items:stretch}
  #view-settings>.settings-numbering-card{margin-top:12px}
}

/* v1.30 — conditional fields remain hidden even with .field grid styling */
#tagVoiceForm .field[hidden],#tagVoiceFileTools[hidden],#tagVoiceAltroHint[hidden],#tagVoiceNewFilePanel[hidden]{display:none!important}

/* v1.31 — checkbox Altro accessibile e allineato nella terza colonna. */
#tagVoiceForm .voice-altro-field{min-width:0;max-width:100%}
#tagVoiceForm .voice-altro-toggle{display:flex;align-items:center;justify-content:flex-start;gap:11px;
  width:100%;min-width:0;max-width:100%;min-height:47px;box-sizing:border-box;overflow:hidden;
  padding:9px 12px;cursor:pointer}
#tagVoiceForm #tagVoiceAltro{appearance:auto;display:block;flex:0 0 18px;width:18px!important;
  min-width:18px;max-width:18px;height:18px!important;margin:0;align-self:center}
#tagVoiceForm .voice-altro-toggle>span{display:block;min-width:0;flex:1;max-width:100%;
  line-height:1.4;text-align:left;overflow-wrap:break-word;font-size:11px;font-weight:650}
#tagVoiceForm .voice-reference-hint{color:var(--muted);font-size:11px;margin:13px 0 0}
#tagVoiceForm .voice-form-row>.field[hidden]{display:none!important}
.price-files-manager{margin-top:16px}
.price-manager-form{display:grid;grid-template-columns:minmax(160px,1fr) minmax(235px,2fr) minmax(185px,1.2fr) auto;
  gap:13px;align-items:end;margin-top:12px}
.price-manager-form>.field{min-width:0}
.price-manager-default{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:650;
  min-height:45px;color:var(--ink);cursor:pointer;padding-bottom:3px}
.price-manager-default input{appearance:auto;accent-color:var(--deep);width:18px;height:18px;flex:0 0 18px}
.price-manager-form>.button{min-height:45px;white-space:nowrap}
.price-manager-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:15px}
.price-manager-group{min-width:0;border:1px solid var(--line);border-radius:13px;
  padding:12px;background:var(--surface-2)}
.price-manager-group h3{font-size:13px;margin:0 0 11px;color:var(--ink)}
.price-manager-group h3 small{color:var(--muted);font-weight:500}
.price-manager-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:space-between;
  padding:9px 0;border-top:1px solid var(--line)}
.price-manager-file{font-size:12px;overflow-wrap:anywhere;min-width:0;flex:1 1 170px}
.price-manager-badge{font-size:10px;padding:6px 9px;border-radius:9px;background:var(--surface);
  border:1px solid var(--line);color:var(--deep);font-weight:750}
.price-manager-empty{font-size:12px;color:var(--muted)}
/* Disabled means unavailable, NOT working/loading. */
#saveNumbering:disabled,#priceManagerSave:disabled{cursor:not-allowed}
#settingPrefix{text-transform:uppercase}
@media(max-width:1100px){
 .price-manager-form{grid-template-columns:repeat(2,minmax(0,1fr))}
 .price-manager-form>.button{justify-self:start}
}
@media(max-width:700px){
 .price-manager-form{grid-template-columns:minmax(0,1fr)}
 .price-manager-list{grid-template-columns:minmax(0,1fr)}
}

/* v1.32 — edit popup overlays its scroll region without resizing rows. */
#editDialog>.filter-list{
  position:absolute!important;display:block;z-index:250!important;
  box-sizing:border-box;min-width:0;padding:5px;overflow-y:auto;
  background:var(--surface);box-shadow:0 16px 35px rgba(20,33,34,.21)
}
#editDialog>.filter-list[hidden]{display:none!important}
#editDialog .dialog-content{position:relative;isolation:auto}
#editDialog #editClient{background:var(--surface-2);color:var(--ink);cursor:default}
#editDialog .switch-field{min-height:96px;align-self:stretch}
#editDialog .switch-field>span{align-self:start}
#editDialog #editForm .form-grid{align-items:stretch}
/* v1.32: remove the fourth column left over from the default checkbox. */
.price-manager-form{
  grid-template-columns:minmax(185px,1fr) minmax(240px,2.5fr) auto;
}
@media(max-width:1100px){
  .price-manager-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .price-manager-form>.button{justify-self:start}
}
@media(max-width:700px){.price-manager-form{grid-template-columns:minmax(0,1fr)}}

/* v1.33 — Altitude beside active project title; no extra metadata row. */
.project-item-v129 .project-main{
  grid-template-areas:"info location actions";
}
.project-item-v129 .project-title-line{
  display:flex;align-items:center;flex-wrap:wrap;gap:7px 12px;
  min-width:0;margin:6px 0 4px;
}
.project-item-v129 .project-title-line .project-title{
  margin:0;min-width:0;overflow-wrap:anywhere;
}
.project-item-v129 .project-title-line .altitude-pill{
  display:inline-flex;align-items:center;white-space:nowrap;
  color:var(--ink);font-size:11px;font-weight:650;
  border:1px solid var(--line);background:var(--surface);
  border-radius:11px;padding:7px 11px;
}
.project-item-v129 .project-info-primary .project-operational-meta{
  border:0;padding:5px 0 0;margin:0;
  font-size:11px;gap:5px 11px;
}
@media(max-width:1120px){
  .project-item-v129 .project-main{
    grid-template-areas:"info actions" "location location";
  }
}
@media(max-width:720px){
  .project-item-v129 .project-main{
    grid-template-areas:"info" "location" "actions";
  }
}

/* v1.41 — Solo Configurazione / Tag approvati. */
#view-settings.tag-visual-alt-a .tag-creation-preview{
 display:flex;align-items:center;gap:12px;flex-wrap:wrap
}
#view-settings.tag-visual-alt-a .tag-preview-caption{
 font-size:10px;letter-spacing:.09em;font-weight:850;color:#637681
}
#view-settings.tag-visual-alt-a .tag-preview-chip{
 --sample-color:#5c7992;display:inline-flex;align-items:center;
 max-width:100%;border-radius:100px;padding:8px 13px;font-size:12px;
 font-weight:850;color:var(--sample-color);
 border:1px solid color-mix(in srgb,var(--sample-color) 43%,white);
 background:color-mix(in srgb,var(--sample-color) 16%,white);
 overflow-wrap:anywhere
}

/* A — Studio compatto: due aree accostate, creazione strutturata e tabella di modifica.
   Nessun selettore tocca Voci modulo operatore, Fogli Prezzari o numerazione. */
#view-settings.tag-visual-alt-a .settings-grid-v129{
 display:grid;grid-template-columns:minmax(275px,.86fr) minmax(510px,1.64fr);
 gap:16px;align-items:start;
}
#view-settings.tag-visual-alt-a .settings-grid-v129>.tag-settings-card{
 min-width:0;border-radius:19px;padding:23px 23px 24px;
 background:#fff;box-shadow:0 5px 17px rgba(30,60,70,.055);
}
#view-settings.tag-visual-alt-a .settings-grid-v129>.tag-settings-card:first-child{
 border-top:4px solid #598a8c;
}
#view-settings.tag-visual-alt-a .settings-grid-v129>.tag-settings-card:last-child{
 border-top:4px solid #b76f4c;
}
#view-settings.tag-visual-alt-a .tag-settings-card .editor-heading{padding-bottom:14px;border-bottom:1px solid #dce6e6}
#view-settings.tag-visual-alt-a .tag-settings-card .editor-heading h2{font-size:18px}
#view-settings.tag-visual-alt-a .tag-add-panel{
 display:grid;grid-template-columns:minmax(0,1fr) 64px;gap:13px 13px;
 align-items:end;padding:0;margin-top:22px;max-width:none;border:0;
}
#view-settings.tag-visual-alt-a .tag-create-name{min-width:0}
#view-settings.tag-visual-alt-a .color-field input[type=color]{
 width:44px;height:44px;min-width:44px;
}
#view-settings.tag-visual-alt-a .tag-add-panel .button{grid-column:1/-1;width:100%;justify-content:center}
#view-settings.tag-visual-alt-a .tag-creation-preview{
 padding:17px;margin-top:18px;border:1px dashed #bacbc9;border-radius:14px;
 background:#f2f7f6;min-height:75px;gap:11px;
}
#view-settings.tag-visual-alt-a .tag-creation-preview .tag-preview-caption{width:100%}
#view-settings.tag-visual-alt-a .tag-manager{margin-top:15px;gap:0;min-width:0}
#view-settings.tag-visual-alt-a .tag-manager-row{
 display:grid;grid-template-columns:44px minmax(110px,1fr) minmax(70px,auto) auto;
 gap:11px;align-items:center;padding:13px 10px;
 background:#fff;border:0;border-bottom:1px solid #dce6e6;border-radius:0;
 transition:background .18s;
}
#view-settings.tag-visual-alt-a .tag-manager-row:hover{background:#f5f9f9}
#view-settings.tag-visual-alt-a .tag-manager-row:last-child{border-bottom:0}
#view-settings.tag-visual-alt-a .tag-manager-row .tag-color-input{width:37px;height:37px}
#view-settings.tag-visual-alt-a .tag-manager-row .tag-live-preview{
 justify-self:start;max-width:130px;min-height:23px;display:inline-flex;align-items:center;
}
#view-settings.tag-visual-alt-a .tag-name-input{
 border:1px solid #b9cbce;background:#fff;min-height:42px;width:100%;
}
#view-settings.tag-visual-alt-a .tag-manager-actions{display:flex;gap:6px;justify-content:flex-end}
#view-settings.tag-visual-alt-a .tag-manager-actions button{
 border-radius:9px;padding:0 11px;background:#fff;font-weight:780;white-space:nowrap;
}
#view-settings.tag-visual-alt-a .tag-manager-actions button:first-child{
 background:#e9f2f1;border-color:#b9d1ce;color:#205365;
}
#view-settings.tag-visual-alt-a .tag-manager-actions button.danger{color:#b14b42}
@media(max-width:1210px){
 #view-settings.tag-visual-alt-a .settings-grid-v129{grid-template-columns:minmax(0,1fr)}
 #view-settings.tag-visual-alt-a .tag-add-panel{
 grid-template-columns:minmax(0,2fr) 88px auto;align-items:end;
 }
 #view-settings.tag-visual-alt-a .tag-add-panel .button{grid-column:auto;min-width:150px}
}
@media(max-width:690px){
 #view-settings.tag-visual-alt-a .settings-grid-v129>.tag-settings-card{padding:19px}
 #view-settings.tag-visual-alt-a .tag-add-panel{grid-template-columns:minmax(0,1fr) 58px}
 #view-settings.tag-visual-alt-a .tag-add-panel .button{grid-column:1/-1;min-width:0}
 #view-settings.tag-visual-alt-a .tag-manager-row{
 grid-template-columns:40px minmax(0,1fr);grid-template-areas:"swatch name" "preview preview" "actions actions";
 gap:8px 10px;padding:14px 4px;
 }
 #view-settings.tag-visual-alt-a .tag-manager-row .tag-color-input{grid-area:swatch}
 #view-settings.tag-visual-alt-a .tag-manager-row .tag-name-input{grid-area:name}
 #view-settings.tag-visual-alt-a .tag-manager-row .tag-live-preview{grid-area:preview}
 #view-settings.tag-visual-alt-a .tag-manager-row .tag-manager-actions{grid-area:actions;flex-direction:row}
}

/* v1.39 — Gestione diretta tag nel pannello scrollabile a pari altezza. */
#view-settings.tag-visual-alt-a .settings-grid-v129 {
  align-items:start;
}
#view-settings.tag-visual-alt-a .settings-grid-v129>.tag-settings-card:last-child {
  display:flex;
  flex-direction:column;
  box-sizing:border-box;
  min-height:0;
  height:var(--tag-studio-height,360px);
  max-height:var(--tag-studio-height,360px);
  overflow:hidden;
}
#view-settings.tag-visual-alt-a .settings-grid-v129>.tag-settings-card:last-child>.editor-heading {
  flex:0 0 auto;
  margin-bottom:0;
}
#view-settings.tag-visual-alt-a #tagManager {
  display:block;
  flex:1 1 auto;
  min-width:0;
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  margin-top:13px;
  padding:0 5px 4px 0;
  scrollbar-width:thin;
  scrollbar-color:#b1c6c8 transparent;
}
#view-settings.tag-visual-alt-a #tagManager::-webkit-scrollbar {width:7px}
#view-settings.tag-visual-alt-a #tagManager::-webkit-scrollbar-thumb {
  background:#b1c6c8;
  border-radius:10px;
}
#view-settings.tag-visual-alt-a #tagManager .tag-manager-row {
  display:grid;
  grid-template-columns:40px minmax(105px,1fr) minmax(65px,auto) auto;
  grid-template-areas:"color name preview actions";
  align-items:center;
  gap:8px 9px;
  margin:0 0 8px;
  padding:9px 10px;
  min-height:56px;
  border:1px solid #ccdbda;
  border-radius:11px;
  background:#fff;
  box-sizing:border-box;
  transition:border-color .15s, background .15s;
}
#view-settings.tag-visual-alt-a #tagManager .tag-manager-row:hover {
  border-color:#a4c1be;
  background:#f6faf9;
}
#view-settings.tag-visual-alt-a #tagManager .tag-color-input {
  grid-area:color;
  width:38px;
  height:38px;
  padding:3px;
  cursor:pointer;
  border:1px solid #c1d2d0;
  border-radius:50%;
  background:#fff;
}
#view-settings.tag-visual-alt-a #tagManager .tag-color-input:focus-visible {
  outline:2px solid #b66b48;
  outline-offset:2px;
}
#view-settings.tag-visual-alt-a #tagManager .tag-name-input {
  grid-area:name;
  width:100%;
  min-width:0;
  min-height:40px;
  padding:8px 10px;
  font-size:12px;
  font-weight:700;
  background:#fff;
}
#view-settings.tag-visual-alt-a #tagManager .tag-live-preview {
  grid-area:preview;
  justify-self:start;
  max-width:130px;
  min-height:26px;
  display:inline-flex;
  align-items:center;
  white-space:normal;
  overflow-wrap:anywhere;
  overflow:hidden;
  font-size:10px;
  font-weight:820;
  border-radius:11px;
}
#view-settings.tag-visual-alt-a #tagManager .tag-manager-actions {
  grid-area:actions;
  display:flex;
  flex-direction:row;
  gap:6px;
  justify-content:flex-end;
  align-items:center;
  min-width:0;
}
#view-settings.tag-visual-alt-a #tagManager .tag-manager-actions button {
  min-height:38px;
  padding:0 9px;
  border-radius:9px;
  font-size:10px;
  font-weight:790;
  white-space:nowrap;
}
#view-settings.tag-visual-alt-a #tagManager .tag-manager-actions button:first-child {
  border-color:#b6d0c9;
  background:#e9f2ef;
  color:#205365;
}
#view-settings.tag-visual-alt-a #tagManager .tag-manager-actions .danger {
  border-color:#e3c9c2;
  background:#fff7f5;
  color:#a84d41;
}
/* On intermediate viewports, keep color and name above preview and actions. */
@media(max-width:1480px) and (min-width:1211px) {
  #view-settings.tag-visual-alt-a #tagManager .tag-manager-row {
    grid-template-columns:40px minmax(0,1fr) auto;
    grid-template-areas:"color name name" "preview preview actions";
  }
}
@media(max-width:690px) {
  #view-settings.tag-visual-alt-a #tagManager .tag-manager-row {
    grid-template-columns:40px minmax(0,1fr);
    grid-template-areas:"color name" "preview actions";
    gap:8px 10px;
    padding:10px;
  }
  #view-settings.tag-visual-alt-a #tagManager .tag-manager-actions {
    justify-content:flex-end;
    flex-wrap:wrap;
  }
}

/* v1.40 — Griglia simmetrica e larghezze fisse per ogni tag in Studio compatto.
   Nome limitato a 25 caratteri nel solo frontend di proposta A. */
#view-settings.tag-visual-alt-a #tagManager .tag-manager-row{
  grid-template-columns:40px minmax(0,1fr) 136px 165px;
  grid-template-areas:"color name preview actions";
  column-gap:10px;
  justify-items:stretch;
  align-items:center;
  width:100%;
  min-width:0;
  box-sizing:border-box;
}
#view-settings.tag-visual-alt-a #tagManager .tag-name-input{
  box-sizing:border-box;
  width:100%;
  max-width:100%;
  min-width:0;
}
#view-settings.tag-visual-alt-a #tagManager .tag-live-preview{
  box-sizing:border-box;
  width:136px;
  min-width:0;
  max-width:136px;
  height:31px;
  justify-self:stretch;
  display:flex;
  justify-content:center;
  align-items:center;
  padding:5px 9px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-align:center;
  font-size:10px;
}
#view-settings.tag-visual-alt-a #tagManager .tag-manager-actions{
  box-sizing:border-box;
  display:grid;
  grid-template-columns:70px 88px;
  gap:7px;
  justify-content:end;
  align-items:center;
  width:165px;
  max-width:165px;
  min-width:0;
}
#view-settings.tag-visual-alt-a #tagManager .tag-manager-actions button{
  width:100%;
  min-width:0;
  max-width:100%;
  padding:0 5px;
  white-space:nowrap;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:3px;
}
/* At intermediate widths, ensure identical two-row geometry for every tag. */
@media(max-width:1480px) and (min-width:1211px){
  #view-settings.tag-visual-alt-a #tagManager .tag-manager-row{
    grid-template-columns:40px minmax(0,1fr) 165px;
    grid-template-areas:"color name name" "preview preview actions";
    row-gap:8px;
  }
}
/* On narrow screens all rows use the same 3-line pattern, with fixed action sizes. */
@media(max-width:690px){
  #view-settings.tag-visual-alt-a #tagManager .tag-manager-row{
    grid-template-columns:40px minmax(0,1fr);
    grid-template-areas:"color name" "preview preview" "actions actions";
    row-gap:9px;
  }
  #view-settings.tag-visual-alt-a #tagManager .tag-live-preview{
    justify-self:start;
  }
  #view-settings.tag-visual-alt-a #tagManager .tag-manager-actions{
    justify-self:end;
  }
}

/* v1.47 — Riquadri Tag sobri, senza bordi verdi/arancioni distintivi. */
#view-settings.tag-visual-alt-a .settings-grid-v129>.tag-settings-card:first-child,
#view-settings.tag-visual-alt-a .settings-grid-v129>.tag-settings-card:last-child{
  border-top:1px solid #d6e2e2;
}

/* v1.49 — archivio compatto e modulare: 3 / 2 / 1 schede, senza alterare la home. */
#view-archived .archive-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:stretch;
  gap:14px;
}
#view-archived .archive-card-v149{
  display:flex;
  flex-direction:column;
  min-width:0;
  gap:12px;
  padding:17px;
  border-radius:18px;
}
.archive-card-v149 .archive-identity{min-width:0}
.archive-card-v149 .archive-identity-top{
  display:flex;align-items:center;justify-content:space-between;
  gap:10px;margin-bottom:10px;
}
.archive-card-v149 .archive-year{
  display:inline-flex;align-items:baseline;gap:5px;flex:0 0 auto;
  font-size:10px;color:var(--muted);
}
.archive-card-v149 .archive-year span{font-weight:550}
.archive-card-v149 .archive-year strong{color:var(--ink);font-weight:850;font-size:11px}
.archive-card-v149 h3{
  margin:0 0 5px;font-size:clamp(16px,1.25vw,19px);
  line-height:1.2;letter-spacing:-.025em;overflow-wrap:anywhere;
}
.archive-card-v149 .archive-client-line{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 6px;
  color:var(--muted);font-size:11px;line-height:1.45;
}
.archive-card-v149 .archive-client-line>span{font-weight:650;flex:0 0 auto}
.archive-card-v149 .archive-client-line .client-inline{
  font-size:11px;font-weight:720;text-align:left;overflow-wrap:anywhere;white-space:normal;
}
.archive-card-v149 .archive-details{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px 14px;margin:0;padding:12px 0 0;border-top:1px solid var(--line);
}
.archive-card-v149 .archive-detail{min-width:0;margin:0}
.archive-card-v149 .archive-detail dt{
  margin:0 0 4px;color:var(--muted);font-size:10px;
  line-height:1.35;font-weight:650;
}
.archive-card-v149 .archive-detail dd{
  margin:0;color:var(--ink);font-size:12px;line-height:1.45;
  font-weight:780;overflow-wrap:anywhere;
}
.archive-card-v149 .archive-actions{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  width:100%;gap:7px;margin-top:auto;padding-top:12px;
  border-top:1px solid var(--line);justify-content:stretch;
}
.archive-card-v149 .archive-actions .icon-action{
  display:inline-flex;justify-content:center;align-items:center;
  min-width:0;min-height:39px;height:auto;padding:7px 5px;
  font-size:11px;font-weight:800;line-height:1.2;
  border-radius:10px;gap:5px;white-space:nowrap;
}
.archive-card-v149 .archive-actions .icon-action>span:first-child{font-size:14px;line-height:1}
@media(max-width:1230px){
  #view-archived .archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  #view-archived .archive-grid{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:360px){
  .archive-card-v149 .archive-actions{gap:4px}
  .archive-card-v149 .archive-actions .icon-action{font-size:10px;gap:3px;padding:7px 2px}
}
