/* Tema condiviso: importare questo foglio in tutte le pagine del gestionale. */
:root{--brand:#2a5264;--brand-soft:#edf4f6;--text:#243640;--muted:#627781;--surface:#fff;--background:#f3f7f8;--border:#dce7eb;--success:#237c68;--warning:#916316;--danger:#b44747;--radius:10px;--shadow:0 4px 18px #233e6a04;--font:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--brand);outline-offset:4px}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.main-shell{margin:0}.topbar{min-height:83px;display:flex;align-items:center;justify-content:space-between;padding:16px 40px;background:white;border-bottom:1px solid var(--border);font-size:14px;color:var(--muted);gap:20px}.topbar strong{color:var(--text);font-weight:550}.breadcrumb{padding:0 16px;color:#bbc3cf}.topbar-right{display:flex;align-items:center;gap:25px}.notification-button{position:relative;display:grid;place-items:center;width:40px;height:40px}.notification-button span{position:absolute;right:0;top:0;background:var(--brand);color:white;border-radius:50%;width:18px;height:18px;font-size:11px;text-align:center}.user{display:flex;align-items:center;gap:10px;border-left:1px solid var(--border);padding-left:24px}.avatar{background:#e8eefb;color:var(--brand);width:39px;height:39px;border-radius:50%;display:grid;place-items:center;font-weight:650;font-size:13px}main{max-width:1600px;margin:auto;padding:37px 40px 20px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:29px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.6px;color:var(--brand);margin:0 0 8px}h1{font-size:clamp(26px,2.3vw,35px);line-height:1.2;letter-spacing:-1px;font-weight:650;margin:0 0 10px}.page-heading p:last-child{color:var(--muted);margin:0;font-size:15px}.demo-label{font-size:12px;white-space:nowrap;color:var(--muted);border:1px solid var(--border);padding:7px 12px;border-radius:20px;background:white}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:34px}.stat{padding:20px 22px;background:white;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.stat>span{font-size:14px;color:var(--muted)}.stat>div{display:flex;align-items:center;justify-content:space-between;margin:7px 0}.stat strong{font-size:36px;font-weight:650;letter-spacing:-1px}.stat svg{color:#9aadd0;width:29px;height:29px}.stat small,.stat a{font-size:12px;color:var(--muted);display:block}.stat.attention{background:#fffaf1;border-color:#efdfbf}.stat.attention svg,.stat.attention a{color:var(--warning)}.stat a:hover{text-decoration:underline}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:16px}h2{font-size:18px;letter-spacing:-.3px;font-weight:650;margin:0}.section-heading>span{font-size:13px;color:var(--muted)}.modules{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:32px}.module{position:relative;text-align:left;background:white;border:1px solid var(--border);border-radius:var(--radius);padding:20px 18px;cursor:pointer;color:var(--text);transition:transform .18s,border-color .18s,box-shadow .18s;min-height:196px}.module:hover{transform:translateY(-4px);border-color:#b5c9ef;box-shadow:0 8px 24px #285cce0c}.module-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:19px}.module-icon{width:49px;height:49px;display:grid;place-items:center;border-radius:14px;background:var(--tint);color:var(--ink)}.module-icon svg{width:27px;height:27px}.step{font-size:12px;color:#9aa5b5}.module strong{font-size:16px;display:block;margin-bottom:5px}.module small{display:block;font-size:12px;color:var(--muted);line-height:1.5;min-height:36px}.module-count{margin-top:14px;font-size:12px;color:var(--ink);font-weight:600}.lower-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,1fr);gap:22px}.panel{background:white;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.panel-heading{padding:23px 24px 20px;display:flex;align-items:center;justify-content:space-between;gap:15px}.panel-heading p{font-size:13px;color:var(--muted);margin:4px 0 0}select{border:1px solid var(--border);background:white;color:var(--text);border-radius:8px;padding:8px 10px;font-size:13px;max-width:100%}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{background:#fafbfd;font-weight:500;color:var(--muted);font-size:12px;padding:11px 20px;border-block:1px solid var(--border)}td{padding:16px 20px;border-bottom:1px solid #eef1f6;font-size:13px}td:first-child{padding-left:24px}.order-link{padding:0;border:0;background:none;cursor:pointer;text-align:left;color:var(--text);font:inherit;font-weight:600}.order-link:hover{color:var(--brand)}.order-link small{display:block;color:var(--muted);font-weight:400;font-size:12px;margin-top:3px}.badge{display:inline-flex;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:550;background:var(--tint);color:var(--ink)}.owner{display:flex;gap:7px;align-items:center}.mini-avatar{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;font-size:10px;background:#eef1f6;color:#61718a}.late{color:var(--danger)}.table-footer{display:flex;justify-content:space-between;gap:15px;padding:14px 24px;color:var(--muted);font-size:12px}.count{display:inline-grid;place-items:center;margin-left:5px;background:#fff0df;color:var(--warning);width:23px;height:23px;border-radius:6px;font-size:12px}.alert{display:flex;gap:12px;padding:17px 24px;border-top:1px solid var(--border)}.alert-icon{display:grid;place-items:center;width:33px;height:33px;background:var(--tint);color:var(--ink);border-radius:9px;flex-shrink:0}.alert-icon svg{width:19px;height:19px}.alert strong{font-size:14px;display:block}.alert p{font-size:12px;color:var(--muted);margin:4px 0 8px;line-height:1.6}.alert button{border:0;background:none;padding:0;color:var(--brand);font-size:12px;font-weight:650;cursor:pointer}.alert button:hover{text-decoration:underline}.alert-footer{background:#fafbfd;border-top:1px solid var(--border);display:flex;align-items:center;gap:8px;padding:14px 24px;color:var(--muted);font-size:12px}.alert-footer svg{width:17px;height:17px}.page-footer{display:flex;justify-content:space-between;gap:15px;margin-top:26px;font-size:12px;color:#8691a2}.page-footer>span:first-child{font-weight:700}.page-footer span span{font-weight:400;margin-left:10px}.button{display:inline-flex;justify-content:center;align-items:center;padding:11px 18px;border:0;border-radius:9px;background:var(--brand);color:white;font-weight:600;cursor:pointer}.button:hover{background:#214eaf}.icon-button{border:0;background:#f0f3f8;border-radius:50%;width:34px;height:34px;font-size:24px;cursor:pointer;color:var(--muted)}dialog{border:1px solid var(--border);border-radius:20px;padding:28px;max-width:530px;width:calc(100% - 32px);color:var(--text);box-shadow:0 24px 90px #15274030}dialog::backdrop{background:#16253b60;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}dialog h2{font-size:24px}#dialog-content{color:var(--muted);font-size:15px;margin:16px 0 24px}#dialog-content dl{display:grid;grid-template-columns:1fr 1fr;gap:10px}#dialog-content dd{margin:0;color:var(--text)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1600px){main{padding-top:45px}.module{min-height:220px}.module-icon{width:57px;height:57px}}
@media(max-width:1250px){main{padding:28px 24px}.topbar{padding-inline:24px}.modules{grid-template-columns:repeat(3,minmax(0,1fr))}.module{min-height:165px}.module small{min-height:0}.lower-grid{grid-template-columns:1fr}.stats{gap:12px}.stat{padding:17px 15px}}
@media(max-width:850px){.main-shell{margin:0}.topbar{min-height:65px}.topbar-right{gap:12px}.user{padding-left:12px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.page-heading{align-items:start}.demo-label{display:none}.page-footer{flex-wrap:wrap}}
@media(max-width:520px){main{padding:25px 16px}.topbar{padding:12px 16px}.topbar>span{font-size:12px}.user>div{display:none}.breadcrumb{padding:0 7px}.modules{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.module{padding:17px 14px}.module-top{margin-bottom:14px}.section-heading{align-items:start}.section-heading>span{display:none}.stat>span{font-size:12px}.stat small,.stat a{font-size:12px}.stat strong{font-size:30px}.stat svg{width:22px}.panel-heading{padding:18px 16px;flex-wrap:wrap}.alert{padding:16px}.table-footer{padding:14px 16px;flex-wrap:wrap}.page-heading p:last-child{font-size:14px}.lower-grid{gap:16px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Identità Torsellini: blu del vetro, linee sottili, spazio e trasparenza. */
.topbar{background:linear-gradient(115deg,#24495b,#3c6478);color:#fff;min-height:106px;padding-inline:clamp(20px,4vw,64px);border-bottom:1px solid #ffffff26}
.torsellini-brand{display:flex;flex-direction:column;align-items:flex-start;gap:9px}
.torsellini-brand img{display:block;width:285px;height:auto;max-width:100%}
.torsellini-brand>span{font-size:10px;letter-spacing:3px;color:#e0ebf0}
.topbar strong,.topbar small{color:#fff}.topbar .notification-button{color:white}.notification-button span{background:#fff;color:#24495b}.user{border-color:#ffffff30}.avatar{background:#ffffff1c;color:white}
main{max-width:1600px;padding:42px clamp(20px,4vw,64px) 24px}
h1{font-size:clamp(30px,3.2vw,45px);font-weight:400;letter-spacing:-1.3px;line-height:1.13}
.page-heading{margin-bottom:32px}.page-heading p:last-child{margin-top:13px}.eyebrow{color:#476d7c;letter-spacing:2px}
h2{font-weight:550}.stat strong{font-weight:400}.stat svg{color:#6b909f}
.module{background:linear-gradient(145deg,#ffffff,#f7fafb);border-color:#d4e2e8;padding:23px 20px;min-height:205px;border-radius:10px}
.module:hover{border-color:#87acbd;box-shadow:0 10px 24px #2a526410}.module strong{font-weight:550}.module-icon{background:#eaf2f5;color:#365f72;border:1px solid #dce8ed;border-radius:50%}.module-count{color:#3b6476}.step{color:#8ba2ae}
.button:hover{background:#1e4052}.order-link:hover,.alert button{color:#2a5264}
@media(max-width:850px){.topbar{padding:18px 20px}.torsellini-brand img{width:240px}main{padding:30px 20px}.module{min-height:180px}}
@media(max-width:520px){.torsellini-brand img{width:195px}.torsellini-brand>span{font-size:9px;letter-spacing:2px}.topbar{gap:12px;padding:18px 16px}.topbar-right{gap:5px}.user{padding-left:8px}.module{padding:18px 14px}main{padding:27px 16px}.page-heading p:last-child{max-width:290px}.notification-button{width:32px}.avatar{width:32px;height:32px}}

.user small{display:block;font-size:12px;line-height:1.5}.user strong{display:block;line-height:1.5}

/* Moduli condivisi: anagrafiche e inserimento contatti. */
.page-path{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--muted);margin-bottom:26px}.page-path a{color:var(--brand)}.page-path a:hover{text-decoration:underline}
.contact-main .page-heading{align-items:center}.contact-main h1{font-size:clamp(29px,2.8vw,39px)}.button-secondary{background:white;color:var(--brand);border:1px solid var(--border)}.button-secondary:hover{background:var(--brand-soft)}
.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:start}.contact-sections{display:grid;gap:22px;min-width:0}.contact-summary{display:grid;gap:20px;position:sticky;top:22px;min-width:0}.form-panel .panel-heading{border-bottom:1px solid var(--border);background:#fcfdfe}.form-section-title{display:flex;align-items:center;gap:14px}.section-number{display:grid;place-items:center;width:40px;height:40px;background:var(--brand-soft);color:var(--brand);border:1px solid var(--border);border-radius:50%;font-size:13px;flex-shrink:0}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;padding:26px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.full-width{grid-column:1/-1}.field label{font-size:14px;font-weight:550}.field input,.field select,.field textarea{width:100%;min-height:46px;border:1px solid #cddce3;border-radius:7px;background:white;color:var(--text);padding:11px 13px;font:inherit;font-size:16px;line-height:1.4}.field input::placeholder,.field textarea::placeholder{color:#768891}.field textarea{resize:vertical;min-height:130px}.field input[readonly]{background:#f4f7f9;color:var(--muted);font-size:14px}.field input:hover,.field select:hover,.field textarea:hover{border-color:#8caab8}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--brand)}.field small,.form-hint{color:var(--muted);font-size:13px;line-height:1.6}.field-note{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.required-mark{color:var(--brand)}
.form-content{padding:24px 26px}.check-line{display:flex;align-items:center;gap:12px;font-size:15px;cursor:pointer}.check-line input{width:19px;height:19px;accent-color:var(--brand);flex-shrink:0}.form-hint{margin:8px 0 0 31px}.conditional-fields{border:0;padding:0;margin:24px 0 0;min-width:0}.conditional-fields[hidden]{display:none}.unpadded{padding:0}.summary-content{padding:0 24px 24px}.contact-symbol{width:52px;height:52px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);border:1px solid var(--border);border-radius:50%;font-size:23px}.summary-content h3{font-size:20px;margin:15px 0 3px;font-weight:550;overflow-wrap:anywhere}.summary-content>p{font-size:14px;color:var(--muted);margin:0 0 22px;overflow-wrap:anywhere}.summary-content dl{margin:0;display:grid;gap:4px}.summary-content dt{font-size:13px;color:var(--muted);margin-top:14px}.summary-content dd{font-size:15px;margin:0;overflow-wrap:anywhere}.record-panel .panel-heading{padding-bottom:0}.record-panel .form-grid{gap:16px;padding:20px 24px 24px}.contact-notice{padding:20px;border:1px solid var(--border);border-radius:var(--radius);background:#eaf2f5;color:var(--brand);font-size:14px}.contact-notice p{margin:7px 0 0;line-height:1.65}.form-actions{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:26px;padding:23px 0;border-top:1px solid var(--border)}.form-actions>span{font-size:13px;color:var(--muted)}.form-actions>div{display:flex;gap:12px;flex-shrink:0}.button:disabled{opacity:.65;cursor:default}.form-status{padding:16px 20px;background:#e9f4ef;border:1px solid #c8dfd2;border-radius:8px;color:#245d48;font-size:15px}.form-status.is-error{background:#fff0ee;color:var(--danger);border-color:#edcccc}.dialog-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
@media(max-width:1050px){.contact-layout{grid-template-columns:minmax(0,1fr) 280px;gap:20px}.form-actions{align-items:flex-start;flex-direction:column}.contact-main .page-heading{align-items:start}.contact-main .page-heading>.button{font-size:14px;white-space:nowrap}}
@media(max-width:800px){.contact-layout{grid-template-columns:1fr}.contact-summary{position:static;grid-template-columns:1fr 1fr;gap:16px}.contact-notice{grid-column:1/-1}.contact-main .page-heading{flex-direction:column;align-items:start}.contact-main .page-heading>.button{padding:9px 14px}.form-actions>div{flex-wrap:wrap}}
@media(max-width:520px){.form-grid{grid-template-columns:1fr;padding:20px;gap:19px}.form-content{padding:20px}.unpadded{padding:0}.contact-summary{grid-template-columns:1fr}.form-actions>div{width:100%;display:grid;grid-template-columns:1fr}.form-section-title{gap:11px}.form-section-title h2{font-size:17px}.form-panel .panel-heading{padding:20px}.contact-main h1{font-size:29px}.page-path{margin-bottom:22px}.form-actions>span{font-size:13px}}

/* Accesso: stesso tema e componenti del gestionale. */
.login-page{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;background:linear-gradient(135deg,#f3f7f8 40%,#e8f0f4)}.login-topbar{flex-shrink:0}.login-area-label{font-size:14px;color:#e0ebf0;letter-spacing:.5px}.login-main{width:100%;max-width:1250px;flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);align-items:center;gap:90px;padding:65px 50px}.login-intro h1{font-size:clamp(34px,4vw,53px);line-height:1.16;font-weight:400;margin:16px 0 22px}.login-intro>p:last-child{font-size:17px;color:var(--muted);line-height:1.8;margin:0}.login-panel{padding:36px;box-shadow:0 15px 50px #254a5c09}.login-lock{display:grid;place-items:center;width:49px;height:49px;background:var(--brand-soft);color:var(--brand);border:1px solid var(--border);border-radius:50%;margin-bottom:22px}.login-panel h2{font-size:25px;font-weight:550;line-height:1.3}.login-description{font-size:15px;color:var(--muted);margin:10px 0 28px}.login-panel form{display:grid;gap:21px}.password-control{position:relative}.password-control input{padding-right:95px}.password-control button{position:absolute;right:7px;top:7px;bottom:7px;border:0;border-radius:5px;background:var(--brand-soft);color:var(--brand);font-size:13px;font-weight:550;padding:0 10px;cursor:pointer}.password-control button:hover{background:#dce9ee}.login-submit{width:100%;min-height:48px;margin-top:5px}.login-help{font-size:13px;line-height:1.7;color:var(--muted);margin:26px 0 0;padding-top:21px;border-top:1px solid var(--border)}.login-panel .form-status{margin:0;font-size:14px}.login-footer{margin:0;width:100%;padding:20px clamp(20px,4vw,64px);border-top:1px solid var(--border)}
@media(max-width:900px){.login-main{gap:35px;padding:45px 28px;grid-template-columns:minmax(0,1fr) minmax(0,390px)}.login-panel{padding:28px}.login-intro h1{font-size:36px}}
@media(max-width:700px){.login-main{grid-template-columns:1fr;max-width:510px;gap:28px;padding:35px 22px}.login-intro h1{font-size:32px;margin:12px 0}.login-intro>p:last-child{font-size:15px}.login-panel h2{font-size:23px}.login-topbar{min-height:100px}.login-area-label{font-size:12px}.login-footer{gap:8px;font-size:12px}}
@media(max-width:400px){.login-topbar .torsellini-brand img{width:180px}.login-area-label{max-width:60px;text-align:right}.login-panel{padding:25px 22px}.login-main{padding-inline:16px}}
