/* Demo interattiva: centrale + app operatore */
.demo-page{background:#eef3f4}
.demo-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;padding-top:44px;padding-bottom:26px}
.demo-intro h1{font-size:clamp(34px,3.4vw,50px);letter-spacing:-1.6px}
.demo-intro p:not(.eyebrow){max-width:470px;color:var(--muted);font-size:15px}
.demo-wrap{max-width:1560px;width:calc(100% - 48px);margin:0 auto 70px}
#demo-app{background:#f7fafa;border:1px solid #d3dfe1;border-radius:14px;box-shadow:0 30px 70px #09262d1f;overflow:hidden;font-size:14px;color:var(--ink)}
#demo-app button{color:inherit}
/* barra */
.d-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--ink);color:#fff;padding:14px 20px}
.d-bar-brand{display:flex;align-items:center;gap:12px;margin-right:6px}
.d-bar-brand strong{display:block;font:500 17px Outfit}.d-bar-brand small{color:#9fb7ba;font-size:11.5px}
.d-logo{font:600 30px/1 Outfit;letter-spacing:-6px;margin-right:6px}.d-logo i{color:var(--mint);font-style:normal;font-size:20px}
.d-seg{display:flex;background:#ffffff14;border-radius:8px;padding:3px}
.d-seg button{background:transparent;color:#cfe0e1!important;padding:7px 13px;border-radius:6px;font-size:13px}
.d-seg button[aria-pressed=true]{background:#fff;color:var(--ink)!important;font-weight:600}
.d-mode button[aria-pressed=true]{background:var(--mint)}
.d-bar-right{display:flex;align-items:center;gap:12px;margin-left:auto}
.d-btn{border-radius:7px;padding:9px 15px;font-weight:600;font-size:13px;background:#e4eced}
.d-btn-primary{background:var(--mint);color:var(--ink)!important}
.d-btn-primary:hover{background:#b9f3e2}
.d-panel .d-btn-primary,.d-assign .d-btn-primary{background:var(--ink);color:#fff!important}
.d-assign .d-btn-primary:hover{background:var(--teal)}
.d-btn:disabled{opacity:.45;cursor:not-allowed;background:#c9d6d8!important;color:var(--ink)!important}
.d-chip-btn{background:transparent;border:1px solid #ffffff33;color:#cfe0e1!important;border-radius:20px;padding:6px 12px;font-size:12px;display:flex;align-items:center;gap:7px}
.d-dot{width:8px;height:8px;border-radius:50%;background:#7d9396}.d-dot.on{background:#5ee0b0;box-shadow:0 0 0 3px #5ee0b033;animation:d-pulse 1.6s infinite}
.d-clock{font:500 20px Outfit;letter-spacing:.5px;font-variant-numeric:tabular-nums}
.d-link{background:transparent;color:var(--teal)!important;text-decoration:underline;font-size:12.5px;padding:4px}
.d-bar .d-link{color:#9aebd3!important}
/* guida */
.d-guide{list-style:none;margin:0;padding:12px 20px;display:grid;grid-template-columns:repeat(5,1fr);gap:10px;background:#fff;border-bottom:1px solid var(--line)}
.d-guide li{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:8px;opacity:.55}
.d-guide li.now{background:#fff6e3;opacity:1;box-shadow:inset 0 0 0 1px #f0d595}
.d-guide li.done{opacity:1}
.d-guide-n{flex:0 0 24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:#e4eced}
.d-guide li.now .d-guide-n{background:#edb746;color:#fff}.d-guide li.done .d-guide-n{background:var(--teal);color:#fff}
.d-guide strong{display:block;font-size:13px;line-height:1.25}.d-guide small{display:block;font-size:11.5px;color:var(--muted);line-height:1.35;margin-top:2px}
/* indicatori */
.d-kpis{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;padding:14px 20px 0}
.d-kpi{background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px 14px}
.d-kpi span{font-size:11.5px;color:var(--muted);display:block}
.d-kpi strong{font:500 23px/1.3 Outfit;font-variant-numeric:tabular-nums}
.d-kpi.warn strong{color:#b0700c}.d-kpi.teal strong{color:var(--teal)}.d-kpi.risk{background:#fdeee6;border-color:#f3c6ad}.d-kpi.risk strong{color:#b0451a}
/* griglia */
.d-main{display:grid;grid-template-columns:minmax(300px,1fr) minmax(380px,1.35fr) 340px;gap:14px;padding:14px 20px;align-items:start}
.d-bottom{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:14px;padding:0 20px 20px}
.d-panel{background:#fff;border:1px solid var(--line);border-radius:11px;padding:16px;min-width:0}
.d-panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.d-panel-head h3{font-size:17px}
.d-count{font-size:11.5px;color:var(--muted);background:#f0f5f5;padding:3px 9px;border-radius:20px}
/* coda */
.d-list{display:flex;flex-direction:column;gap:8px;max-height:560px;overflow:auto;padding-right:2px}
.d-req{text-align:left;background:#fff;border:1px solid var(--line);border-left:4px solid #9fb7ba;border-radius:8px;padding:11px 12px;display:flex;flex-direction:column;gap:4px;transition:box-shadow .2s,border-color .2s}
.d-req:hover{box-shadow:0 6px 18px #09262d12}
.d-req.p-alta{border-left-color:#d9662e}.d-req.p-media{border-left-color:#e0a82e}.d-req.p-bassa{border-left-color:#4f9e93}
.d-req.sel{border-color:var(--teal);box-shadow:0 0 0 2px #05787033}
.d-req.fresh{animation:d-arrive .7s ease-out}
.d-req>strong{font:500 15.5px Outfit}
.d-req-top{display:flex;align-items:center;gap:6px;font-size:11px}
.d-req-id{font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}
.d-prio{font-size:10.5px;font-weight:600;padding:2px 7px;border-radius:4px}
.d-prio.alta{background:#fce4d8;color:#9c3f12}.d-prio.media{background:#fff0c9;color:#7a5a06}.d-prio.bassa{background:#dbefed;color:#286960}
.d-new{font-size:9.5px;font-weight:700;letter-spacing:.8px;background:#edb746;color:#fff;padding:2px 6px;border-radius:4px;animation:d-pulse 1.4s infinite}
.d-state{margin-left:auto;font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px;background:#eef3f4;color:var(--muted);white-space:nowrap}
.d-state.s-attesa{background:#fff0c9;color:#7a5a06}.d-state.s-assegnata{background:#e3ecfb;color:#28509b}.d-state.s-accettata,.d-state.s-in_corso{background:#dcf5ed;color:#0b6b5f}.d-state.s-completata{background:#e9eef0;color:#40585d}
.d-state.big{font-size:12.5px;padding:5px 12px}
.d-route{font-size:12.5px;color:var(--muted);display:flex;gap:6px;align-items:center;flex-wrap:wrap}.d-route i{font-style:normal;color:#9fb7ba}
.d-req-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:4px;font-size:11.5px}
.d-wait{color:#9a6a0a;font-weight:600}
.d-avatars{display:flex}.d-avatars b{width:24px;height:24px;border-radius:50%;background:var(--ink);color:#fff;font-size:9.5px;display:grid;place-items:center;border:2px solid #fff;margin-right:-6px}
.d-sla{display:flex;align-items:center;gap:7px}.d-sla em,.d-since{font-style:normal;color:var(--muted);font-variant-numeric:tabular-nums;font-size:11.5px}
.d-sla-bar{width:54px;height:5px;background:#e6eded;border-radius:3px;overflow:hidden}.d-sla-bar i{display:block;height:100%;width:0;background:#4f9e93;transition:width .9s linear}
.d-sla.risk .d-sla-bar i{background:#e0a82e}.d-sla.late .d-sla-bar i{background:#d9662e}.d-sla.late em{color:#b0451a;font-weight:600}
.d-done{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}.d-done small{font-size:10.5px;letter-spacing:1.2px;color:var(--muted);font-weight:600}
.d-done-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;width:100%;text-align:left;background:transparent;padding:7px 2px;font-size:12px;border-bottom:1px dashed var(--line)}.d-done-row span:first-child{font-weight:600}.d-done-row span:nth-child(2){color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.d-empty{color:var(--muted);font-size:13px;padding:20px 4px}
/* dettaglio */
.d-detail{padding:20px}
.d-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.d-detail-head small{font-size:12px;color:var(--muted)}.d-detail-head h3{font-size:25px;margin-top:4px}
.d-route-big{display:flex;align-items:center;gap:14px;margin:18px 0;background:#f4f8f8;border-radius:10px;padding:14px 16px}
.d-route-big small{font-size:10px;letter-spacing:1.3px;color:var(--muted);font-weight:600}.d-route-big strong{display:block;font:500 18px Outfit}
.d-route-line{flex:1;height:2px;background:repeating-linear-gradient(90deg,#9fb7ba 0 6px,transparent 6px 11px);position:relative}.d-route-line i{position:absolute;right:-2px;top:-4px;border:5px solid transparent;border-left:7px solid #9fb7ba}
.d-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 14px;margin:0 0 18px}
.d-facts div.wide{grid-column:1/-1}.d-facts dt{font-size:11px;color:var(--muted)}.d-facts dd{margin:2px 0 0;font-weight:500}
.d-assign,.d-auto{border-top:1px solid var(--line);padding-top:16px}
.d-assign-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.d-assign-head strong,.d-auto-head strong{display:block;font:500 17px Outfit}.d-assign-head small,.d-auto-head small{color:var(--muted);font-size:12px}
.d-auto-head{display:flex;gap:12px;align-items:center;margin-bottom:12px;background:#e9f7f2;border:1px solid #bfe5d8;border-radius:9px;padding:12px}
.d-spinner{width:22px;height:22px;border-radius:50%;border:3px solid #bfe5d8;border-top-color:var(--teal);animation:d-spin .8s linear infinite;flex-shrink:0}
.d-cands{display:flex;flex-direction:column;gap:7px}
.d-cand{display:grid;grid-template-columns:36px 1fr 74px;gap:12px;align-items:center;text-align:left;background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px 12px;width:100%}
button.d-cand:hover{border-color:var(--teal)}
.d-cand.best{border-color:#9bd6c5;background:#f6fcfa}
.d-cand.chosen{border-color:var(--teal);background:#e3f6ef;box-shadow:0 0 0 2px #05787040}
.d-cand.off{opacity:.55;background:#fafbfb}
.d-av{width:34px;height:34px;border-radius:50%;background:var(--ink);color:#fff;font-size:12px;display:grid;place-items:center;font-weight:600;flex-shrink:0}
.d-av.free{background:var(--teal)}.d-av.busy{background:#28509b}.d-av.pause{background:#9fb0b3}
.d-cand.chosen .d-av{background:var(--teal)}
.d-cand-main strong{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-weight:600;font-size:14px}
.d-best{font-size:10px;font-weight:700;letter-spacing:.6px;background:var(--teal);color:#fff;padding:2px 6px;border-radius:4px;text-transform:uppercase}
.d-tag{font-size:10px;font-weight:600;background:#fff0c9;color:#7a5a06;padding:2px 6px;border-radius:4px}
.d-reasons{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.d-reasons i{font-style:normal;font-size:11px;padding:1px 7px;border-radius:10px;background:#eef3f4;color:var(--muted)}
.d-reasons i.si{background:#e0f4ee;color:#0b6b5f}.d-reasons i.no{background:#fde9e1;color:#a2441a}
.d-score{text-align:right}.d-score>span:first-child{font:500 20px Outfit;display:block;line-height:1.1}.d-score.off{color:#9fb0b3;font-size:20px}
.d-score-bar{display:block;height:4px;background:#e6eded;border-radius:2px;margin-top:4px;overflow:hidden}.d-score-bar i{display:block;height:100%;background:var(--teal)}
.w0{width:3%}.w1{width:10%}.w2{width:20%}.w3{width:30%}.w4{width:40%}.w5{width:50%}.w6{width:60%}.w7{width:70%}.w8{width:80%}.w9{width:90%}.w10{width:100%}
.d-assign-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap}
.d-sla-big{font-size:12.5px;color:var(--muted)}.d-sla-big b{font-variant-numeric:tabular-nums;color:var(--ink)}.d-sla-big.late b{color:#b0451a}.d-sla-big.risk b{color:#9a6a0a}
.d-assign-foot .d-btn{padding:12px 20px;font-size:14px}
.d-track{border-top:1px solid var(--line);padding-top:16px}
.d-timeline{list-style:none;margin:0 0 16px;padding:0;display:grid;grid-template-columns:repeat(5,1fr)}
.d-timeline li{position:relative;padding-top:20px;font-size:12px}
.d-timeline li span{position:absolute;top:0;left:0;width:14px;height:14px;border-radius:50%;background:#dfe7e8;border:3px solid #fff;box-shadow:0 0 0 1px #c6d4d6;z-index:1}
.d-timeline li:before{content:'';position:absolute;top:6px;left:0;right:0;height:2px;background:#dfe7e8}
.d-timeline li.done span{background:var(--teal);box-shadow:0 0 0 1px var(--teal)}.d-timeline li.done:before{background:var(--teal)}
.d-timeline strong{display:block;font-weight:600}.d-timeline small{color:var(--muted)}
.d-team{display:flex;flex-direction:column;gap:8px}
.d-team-row{display:flex;align-items:center;gap:12px;background:#f4f8f8;border-radius:9px;padding:9px 12px}.d-team-row strong{display:block}.d-team-row small{color:var(--muted);font-size:12px}.d-team-row .d-tag{margin-left:auto}
.d-note-line{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:12px;font-size:12.5px;color:var(--muted);background:#f7f3e6;border-radius:8px;padding:10px 12px}
.d-note-line.ok{background:#e3f6ef;color:#0b6b5f}
.d-empty-big{display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;min-height:300px;color:var(--muted);text-align:center}.d-empty-big strong{color:var(--ink);font:500 19px Outfit}
/* telefono */
.d-phone-col{display:flex;flex-direction:column;align-items:center;gap:10px}
.d-phone-pick{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);width:100%;justify-content:center}
.d-phone-pick select{font:inherit;color:var(--ink);border:1px solid #c6d4d6;border-radius:7px;padding:6px 8px;background:#fff;max-width:220px}
.d-phone{width:320px;height:660px;border-radius:46px;background:#f4f7f8;border:11px solid #0c1517;box-shadow:0 0 0 2px #2a3a3e,0 30px 60px #09262d40;display:flex;flex-direction:column;overflow:hidden;position:relative}
.a-status{display:flex;justify-content:space-between;align-items:center;padding:10px 22px 4px;font-size:12.5px;font-weight:600;background:#fff}
.a-notch{width:88px;height:24px;background:#0c1517;border-radius:14px;margin-top:-4px}
.a-sig{display:flex;gap:2px;align-items:flex-end}.a-sig i{width:3px;background:var(--ink);border-radius:1px}.a-sig i:nth-child(1){height:4px}.a-sig i:nth-child(2){height:6px}.a-sig i:nth-child(3){height:8px}.a-sig i:nth-child(4){height:10px}
.a-top{display:flex;align-items:center;gap:10px;padding:8px 16px 12px;background:#fff;border-bottom:1px solid #e3eaeb}
.a-logo{font:600 24px/1 Outfit;letter-spacing:-5px;margin-right:5px}.a-logo i{font-style:normal;color:var(--teal);font-size:16px}
.a-top strong{display:block;font-size:13.5px}.a-top small{font-size:11px;color:var(--muted)}
.a-state{margin-left:auto;width:10px;height:10px;border-radius:50%;background:#2fc28e;box-shadow:0 0 0 4px #2fc28e2a}.a-state.off{background:#9fb0b3;box-shadow:none}
.a-screen{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.a-center{align-items:center;justify-content:center;text-align:center}
.a-screen h4{font-size:21px}.a-screen p{font-size:13px;color:var(--muted)}
.a-check{width:68px;height:68px;border-radius:50%;background:#2fc28e;color:#fff;font-size:34px;display:grid;place-items:center;animation:d-pop .4s ease-out}
.a-pause{width:60px;height:60px;border-radius:50%;background:#dfe7e8;color:var(--muted);font:700 20px Outfit;display:grid;place-items:center}
.a-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;margin:6px 0}.a-stats div{background:#fff;border-radius:10px;padding:10px}.a-stats small{font-size:11px;color:var(--muted);display:block}.a-stats strong{font:500 17px Outfit}
.a-btn{border-radius:12px;padding:13px 16px;font-weight:600;font-size:14.5px;background:var(--ink);color:#fff!important}
.a-btn.go{background:#12a375}.a-btn.go:hover{background:#0e8c64}.a-btn.ghost{background:#fff;color:var(--ink)!important;border:1px solid #c6d4d6}
.a-btn.wide{width:100%}
.a-link{background:transparent;color:var(--muted)!important;font-size:12px;text-decoration:underline}
.a-incoming{padding:0;gap:0}
.a-incoming.ring{animation:d-ring .5s ease-in-out 3}
.a-in-head{padding:16px;color:#fff;background:linear-gradient(135deg,#09262d,#0e4a50)}
.a-in-head.p-alta{background:linear-gradient(135deg,#8a2f0e,#d9662e)}.a-in-head.p-media{background:linear-gradient(135deg,#09262d,#0b6b5f)}
.a-in-head small{font-size:10px;letter-spacing:1.3px;opacity:.8;display:block;font-weight:600}.a-in-head strong{display:block;font:500 21px/1.15 Outfit;margin:6px 0}
.a-prio{font-size:11px;background:#ffffff26;padding:3px 8px;border-radius:10px}
.a-card{background:#fff;margin:12px;border-radius:14px;padding:14px;box-shadow:0 4px 16px #09262d10;display:flex;flex-direction:column;gap:10px}
.a-card.slim{margin:0}
.a-route{display:flex;flex-direction:column;gap:12px;position:relative}
.a-route>div{display:flex;gap:10px;align-items:center}.a-route small{font-size:10.5px;color:var(--muted);display:block}.a-route strong{font-size:14.5px}
.a-route:before{content:'';position:absolute;left:5px;top:16px;bottom:16px;border-left:2px dotted #9fb7ba}
.a-pin{width:12px;height:12px;border-radius:50%;flex-shrink:0;position:relative;z-index:1}.a-pin.a{background:#e0a82e;box-shadow:0 0 0 3px #e0a82e33}.a-pin.b{background:var(--teal);box-shadow:0 0 0 3px #05787033}
.a-meta{display:flex;gap:6px}.a-meta span{flex:1;background:#f4f8f8;border-radius:8px;padding:7px 8px;font-size:10.5px;color:var(--muted);display:flex;flex-direction:column}.a-meta b{font-size:13px;color:var(--ink);font-variant-numeric:tabular-nums}
.a-note{font-size:12.5px!important;color:var(--ink)!important;background:#fff8e6;border-radius:8px;padding:8px 10px}
.a-mate{font-size:12px!important}
.a-actions{display:grid;grid-template-columns:1fr 1.6fr;gap:8px;padding:0 12px 12px;margin-top:auto}
.a-task-head small{font-size:11px;color:var(--muted)}.a-task-head strong{display:block;font:500 19px/1.2 Outfit;margin-top:3px}
.a-mapmini{position:relative;height:96px;border-radius:12px;background:#e6efef;background-image:linear-gradient(#d6e3e4 1px,transparent 1px),linear-gradient(90deg,#d6e3e4 1px,transparent 1px);background-size:22px 22px;overflow:hidden}
.a-mapmini .a-pin{position:absolute;top:38px}.a-mapmini .a-pin.a{left:30px}.a-mapmini .a-pin.b{right:30px}
.a-path{position:absolute;left:42px;right:42px;top:43px;height:3px;background:#c6d4d6;border-radius:2px}
.a-path:after{content:'';position:absolute;left:0;top:0;bottom:0;width:8%;background:var(--teal);border-radius:2px;animation:d-grow 3s ease-in-out infinite alternate}
.a-path.half:after{left:0;width:55%;animation:d-grow2 3s ease-in-out infinite alternate}
.a-mapmini small{position:absolute;bottom:8px;font-size:10.5px;font-weight:600;max-width:45%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.a-mapmini small.l{left:12px}.a-mapmini small.r{right:12px;text-align:right}
.a-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;font-size:10px;text-align:center;color:var(--muted)}
.a-steps li span{display:block;height:4px;border-radius:2px;background:#dfe7e8;margin-bottom:5px}.a-steps li.done span{background:var(--teal)}.a-steps li.now span{background:#e0a82e}.a-steps li.done,.a-steps li.now{color:var(--ink);font-weight:600}
.a-idle{display:flex;gap:12px;align-items:center;background:#e3f6ef;border-radius:14px;padding:14px}.a-idle strong{display:block;font:500 17px Outfit}.a-idle small{font-size:11.5px;color:#2c6f62}
.a-live{width:14px;height:14px;border-radius:50%;background:#2fc28e;flex-shrink:0;animation:d-pulse 1.6s infinite}
.a-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px}.a-summary div{background:#fff;border-radius:12px;padding:10px 12px}.a-summary small{font-size:10.5px;color:var(--muted);display:block}.a-summary strong{font:500 15px/1.3 Outfit}
.a-label{font-size:10px;letter-spacing:1.2px;color:var(--muted);font-weight:600;margin-top:4px}
.a-tags{display:flex;flex-wrap:wrap;gap:5px}.a-tags span{font-size:11.5px;background:#fff;border:1px solid #d6e1e2;border-radius:12px;padding:3px 9px}
.a-hist{display:flex;gap:10px;align-items:center;background:#fff;border-radius:10px;padding:9px 10px}.a-hist>span{width:22px;height:22px;border-radius:50%;background:#dcf5ed;color:var(--teal);display:grid;place-items:center;font-size:12px;flex-shrink:0}.a-hist strong{display:block;font-size:12.5px}.a-hist small{font-size:11px;color:var(--muted)}
.a-muted{font-size:12px!important}
.a-screen>.a-btn.ghost.wide{margin-top:auto}
.a-tabs{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-top:1px solid #e3eaeb;padding:9px 6px 16px;font-size:10.5px;text-align:center;color:#8aa0a3}
.a-tabs span.on{color:var(--teal);font-weight:700}
.a-tabs span:before{content:'';display:block;width:18px;height:18px;border-radius:5px;margin:0 auto 3px;background:currentColor;opacity:.25}.a-tabs span.on:before{opacity:1}
/* mappa */
.d-legend{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted)}.d-legend i{width:9px;height:9px;border-radius:50%;margin-left:6px}.d-legend .free{background:var(--teal)}.d-legend .busy{background:#28509b}.d-legend .pause{background:#9fb0b3}
.d-map{position:relative;height:330px;border-radius:9px;background:#f1f6f6;background-image:linear-gradient(#e2ebec 1px,transparent 1px),linear-gradient(90deg,#e2ebec 1px,transparent 1px);background-size:26px 26px;overflow:hidden}
.d-zone{position:absolute;transform:translate(-50%,-50%);background:#fff;border:1px solid #c9d8da;border-radius:6px;padding:4px 8px;font-size:10.5px;font-weight:600;white-space:nowrap;display:flex;gap:5px;align-items:center;color:#40585d}
.d-zone.calling{border-color:#e0a82e;box-shadow:0 0 0 3px #e0a82e40;animation:d-pulse 1.4s infinite}
.d-zone b{background:#e0a82e;color:#fff;border-radius:8px;padding:0 5px;font-size:10px}
.d-op{position:absolute;transform:translate(-50%,-150%);width:26px;height:26px;border-radius:50%;color:#fff;font-size:9.5px;font-weight:700;display:grid;place-items:center;border:2px solid #fff;box-shadow:0 3px 8px #09262d40;transition:left 1s linear,top 1s linear;z-index:2}
.d-op.free{background:var(--teal)}.d-op.busy{background:#28509b}.d-op.pause{background:#9fb0b3}.d-op.me{box-shadow:0 0 0 3px #edb746,0 3px 8px #09262d40}
/* presenze e registro */
.d-ops{display:flex;flex-direction:column;gap:6px}
.d-op-row{display:grid;grid-template-columns:34px 1fr auto auto;gap:10px;align-items:center;padding:5px 0;border-bottom:1px solid #eef3f4}
.d-op-row strong{display:flex;gap:6px;align-items:center;font-size:13px}.d-op-row small{font-size:11.5px;color:var(--muted)}
.d-op-n{font-size:11px;color:var(--muted);white-space:nowrap}
.d-mini{font-size:11px;background:#eef3f4;border-radius:6px;padding:4px 9px}.d-mini:disabled{opacity:.4;cursor:not-allowed}
.d-log{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:290px;overflow:auto}
.d-log li{display:grid;grid-template-columns:42px 1fr;gap:8px;font-size:12px;padding:6px 0 6px 8px;border-left:3px solid #dfe7e8;line-height:1.4}
.d-log time{color:var(--muted);font-variant-numeric:tabular-nums}
.d-log .l-new{border-left-color:#e0a82e}.d-log .l-auto{border-left-color:#7a5cc7}.d-log .l-man{border-left-color:#28509b}.d-log .l-ok{border-left-color:var(--teal)}.d-log .l-done{border-left-color:#2fc28e}.d-log .l-warn{border-left-color:#d9662e}
.d-log .l-auto span{color:#4d3596}
/* notifiche */
#demo-toasts{position:fixed;left:50%;transform:translateX(-50%);top:100px;z-index:60;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.d-toast{background:var(--ink);color:#fff;border-radius:10px;padding:12px 16px;min-width:260px;max-width:340px;box-shadow:0 12px 30px #09262d50;border-left:4px solid var(--mint);animation:d-toast .35s ease-out}
.d-toast strong{display:block;font-size:13.5px}.d-toast span{font-size:12px;color:#b5c9cb}
.d-toast.t-new{border-left-color:#edb746}.d-toast.t-warn{border-left-color:#d9662e}
/* modulo */
#demo-new{border:0;border-radius:14px;padding:0;width:min(480px,calc(100% - 32px));box-shadow:0 30px 80px #09262d55;color:var(--ink)}
#demo-new::backdrop{background:#09262d99}
#demo-new form{padding:24px;display:flex;flex-direction:column;gap:14px}
#demo-new h3{font-size:23px}#demo-new p{font-size:13px;color:var(--muted)}
#demo-new label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600}
#demo-new select{font:inherit;font-weight:400;padding:10px;border:1px solid #c6d4d6;border-radius:8px;background:#fff}
.d-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.d-form-err{color:#b0451a;font-size:12.5px;min-height:1px}
.d-form-actions{display:flex;justify-content:flex-end;gap:10px}
#demo-new .d-btn-primary{background:var(--ink);color:#fff!important;padding:11px 18px}
@keyframes d-pulse{50%{opacity:.55}}
@keyframes d-spin{to{transform:rotate(360deg)}}
@keyframes d-arrive{from{transform:translateX(-14px);background:#fff3d6}to{transform:none}}
@keyframes d-ring{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@keyframes d-pop{from{transform:scale(.4)}}
@keyframes d-toast{from{transform:translateY(16px);opacity:0}}
@keyframes d-grow{to{width:22%}}@keyframes d-grow2{to{width:80%}}
@media(max-width:1350px){.d-main{grid-template-columns:minmax(280px,1fr) minmax(340px,1.3fr)}.d-phone-col{grid-column:1/-1;flex-direction:row;justify-content:center;align-items:flex-start;gap:30px}.d-phone-pick{width:auto;flex-direction:column;align-items:flex-start}.d-kpis{grid-template-columns:repeat(4,1fr)}.d-bottom{grid-template-columns:1fr 1fr}.d-bottom>:first-child{grid-column:1/-1}}
@media(max-width:1100px){.d-guide{grid-template-columns:repeat(5,minmax(170px,1fr));overflow-x:auto}.d-bar-right{margin-left:0}}
@media(max-width:860px){.demo-wrap{width:calc(100% - 20px)}.demo-intro{flex-direction:column;align-items:flex-start;gap:14px;padding-top:28px}.d-main{grid-template-columns:1fr;padding:12px}.d-phone-col{flex-direction:column;align-items:center}.d-phone-pick{flex-direction:row}.d-bottom{grid-template-columns:1fr;padding:0 12px 12px}.d-kpis{grid-template-columns:repeat(2,1fr);padding:12px 12px 0}.d-bar{padding:12px}.d-seg{overflow-x:auto;max-width:100%}.d-facts{grid-template-columns:1fr 1fr}.d-list{max-height:none}.d-timeline{grid-template-columns:repeat(5,minmax(0,1fr));font-size:10.5px}.d-timeline small{font-size:10px}.d-guide{padding:10px 12px}.d-cand{grid-template-columns:34px 1fr 50px;padding:9px}.d-detail{padding:14px}.d-route-big strong{font-size:15px}.d-detail-head h3{font-size:21px}#demo-toasts{left:12px;right:12px;bottom:12px}.d-toast{max-width:none}}
@media(max-width:400px){.d-phone{width:296px;height:620px}.d-bar-right{flex-wrap:wrap}.d-form-row{grid-template-columns:1fr}}
@media(max-width:600px){.d-zone{font-size:9.5px;padding:3px 6px}.d-map{height:300px}.d-legend{flex-wrap:wrap;justify-content:flex-end}}
/* piantine */
.d-bottom{grid-template-columns:minmax(0,2fr) minmax(300px,1fr)!important}
.d-bottom>.d-map-panel{grid-column:auto!important}
.d-map-panel{align-self:start}.d-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.d-sub{font-size:11.5px;color:var(--muted)}
.d-map{height:auto!important;background:none!important;border-radius:10px;overflow:hidden;border:1px solid #d6e1e2}
.pl-svg{display:block;width:100%;height:auto}
.pl-label{font:500 17px Outfit,sans-serif;fill:#24434a;pointer-events:none}
.pl-label.soft{fill:#7d9396;font-size:15px}
.pl-porta{fill:#7d9396}
.pl-bg.osp{fill:#e4ebec}.pl-bg.ind{fill:#d9e0e2}.pl-bg.cit{fill:#dfe7e1}.pl-bg.reg{fill:#e3ece2}
.pl-strada{stroke-linecap:round;fill:none}.pl-mezzeria{fill:none;stroke-linecap:round}
.pl-strade.osp .pl-strada{stroke:#f7fafa}.pl-strade.osp .pl-nodo{fill:#f7fafa}.pl-strade.osp .pl-mezzeria{stroke:none}
.pl-strade.ind .pl-strada{stroke:#eef2f3}.pl-strade.ind .pl-nodo{fill:#eef2f3}.pl-strade.ind .pl-mezzeria{stroke:#efc24a;stroke-width:2.5;stroke-dasharray:14 10}
.pl-strade.cit .pl-strada{stroke:#fbfcfc}.pl-strade.cit .pl-nodo{fill:#fbfcfc}.pl-strade.cit .pl-mezzeria{stroke:#c8d3d6;stroke-width:2;stroke-dasharray:12 12}
.pl-strade.reg .pl-strada{stroke:#fff}.pl-strade.reg .pl-strada.auto{stroke:#f0cd70}.pl-strade.reg .pl-nodo{fill:#fff}.pl-strade.reg .pl-mezzeria{stroke:none}.pl-strade.reg .pl-mezzeria.auto{stroke:#fff;stroke-width:2.5;stroke-dasharray:12 10}
.pl-z{stroke-width:2}
.pl-z.osp{fill:#fff;stroke:#b4c6c9}.pl-muro{stroke:#d3dfe1;stroke-width:2}
.pl-z.ind{fill:#f6f8f9;stroke:#a5b6ba}.pl-scaffale{fill:#5c7c84}.pl-nastro{stroke:#8ea4a8;stroke-width:6;stroke-linecap:round}.pl-stazione{fill:#a9bec1}.pl-cassone{fill:#c3d0d3}.pl-cabina{fill:#e3ebf5;stroke:#9eb2c8;stroke-width:2}.pl-baia{fill:#7d9396}.pl-camion{fill:#fff;stroke:#7d9396;stroke-width:2}
.pl-z.cit{fill:#cdd9e2;stroke:#9fb3c2}.pl-z.cit.storico{fill:#eadcc6;stroke:#c2a989}.pl-z.cit.scuola{fill:#dbe8cf;stroke:#a8c290}.pl-z.cit.capannone{fill:#d3d9dc;stroke:#a3afb4}
.pl-casa{fill:#d4dce2;stroke:#bac7cf;stroke-width:1.5}.pl-parco{fill:#cbe3c1}.pl-albero{fill:#98c787;stroke:#86b775;stroke-width:2}.pl-vialetto{fill:none;stroke:#ece5d1;stroke-width:9;stroke-linecap:round}.pl-piazza{fill:#ece6da}.pl-fontana{fill:#acd6e8;stroke:#fff;stroke-width:4}
.pl-fiume{fill:none;stroke:#a8cfe0;stroke-width:20;stroke-linecap:round}.pl-centro{fill:#d6ded6}
.pl-sito{fill:#fff;stroke:#9fb7ba;stroke-width:2}.pl-sito.hub{stroke:#0b6b5f}.pl-sito-ico.hub{fill:#0b6b5f}.pl-sito-ico.pv{fill:#e0a82e}.pl-sito-ico.cli{fill:#28509b}.pl-sito-ico.res{fill:#9a6a0a}
.pl-zona.calling .pl-z,.pl-zona.calling .pl-sito{stroke:#e0a82e;stroke-width:4}
.pl-zona.hl-a .pl-z,.pl-zona.hl-a .pl-sito{stroke:#e0a82e;stroke-width:4}
.pl-zona.hl-b .pl-z,.pl-zona.hl-b .pl-sito{stroke:#057a70;stroke-width:4}
.pl-rotta{fill:none;stroke-linecap:round;stroke-linejoin:round}
.pl-rotta.verso{stroke:#28509b;stroke-width:5;stroke-dasharray:10 9;animation:pl-dash 1s linear infinite}
.pl-rotta.dopo{stroke:#28509b;stroke-opacity:.35;stroke-width:4;stroke-dasharray:3 9}
.pl-rotta.corsa{stroke:#0a8f72;stroke-width:6;stroke-dasharray:14 8;animation:pl-dash .8s linear infinite}
.pl-rotta.sel{stroke:#e0a82e;stroke-width:5;stroke-dasharray:2 11}
.pl-pin{stroke:#fff;stroke-width:3}.pl-pin.a{fill:#e0a82e}.pl-pin.b{fill:#057a70}
.pl-badge circle{fill:#e0a82e}.pl-badge text{fill:#fff;font:700 15px 'Instrument Sans',sans-serif;text-anchor:middle}
.pl-badge-pulse{transform-box:fill-box;transform-origin:center;animation:pl-ping 1.6s ease-out infinite}
.pl-op{transition:transform 1s linear}
.pl-op-dot{stroke:#fff;stroke-width:3}.pl-op.free .pl-op-dot{fill:#057a70}.pl-op.busy .pl-op-dot{fill:#28509b}.pl-op.pause .pl-op-dot{fill:#9fb0b3}
.pl-op text{fill:#fff;font:700 12px 'Instrument Sans',sans-serif;text-anchor:middle;pointer-events:none}
.pl-op-ring{fill:none;stroke:#edb746;stroke-width:4}
.d-legend .call{background:#e0a82e}.d-legend .line{width:16px!important;height:3px!important;border-radius:2px!important;background:#28509b}
.a-map{margin:12px 12px 0;border-radius:12px;overflow:hidden;border:1px solid #d6e1e2;flex-shrink:0}
.a-screen>.a-map{margin:0}
.pl-svg.mini .pl-label{display:none}.pl-svg.mini .hl .pl-label{display:block;font-size:22px;font-weight:600;paint-order:stroke;stroke:#fff;stroke-width:5px}
.pl-svg.mini .pl-op text{font-size:21px}.pl-svg.mini .pl-rotta{stroke-width:8}.pl-svg.mini .hl .pl-label{font-size:26px!important}
@keyframes pl-dash{to{stroke-dashoffset:-38}}
@keyframes pl-ping{from{transform:scale(1);opacity:.6}to{transform:scale(2.3);opacity:0}}
@media(max-width:1100px){.d-bottom{grid-template-columns:1fr!important}}
@media(max-width:600px){.d-legend{font-size:10px}}
.a-screen .a-card.slim{padding:10px 12px;gap:8px}.a-screen .a-card.slim .a-note{padding:6px 9px}.a-task-head strong{font-size:17px}
