/* V331 - Persone/Clienti + Timeline Operativa */
.role-admin .v331-client-head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.role-admin .v331-client-folders{gap:18px}
.role-admin .v331-client-folder{overflow:hidden}
.role-admin .v331-client-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid #e7edf3;background:#f8fafc}
.role-admin .v331-client-actions .button{border:0;border-right:1px solid #e7edf3;border-radius:0;min-height:42px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;text-decoration:none;background:transparent;color:#173d5b;cursor:pointer}
.role-admin .v331-client-actions .button:last-child{border-right:0}
.role-admin .v331-client-actions .button:hover{background:#eef5ff}
.role-admin .v331-client-actions .button.danger{color:#b42318}
.role-admin .v331-client-file-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:14px 0 18px}
.role-admin .v331-client-file-actions a,.role-admin .v331-client-file-actions button{appearance:none;border:1px solid #d9e4ee;background:#fff;color:#173d5b;border-radius:12px;padding:11px 14px;font-weight:800;font-size:12px;text-decoration:none;cursor:pointer}
.role-admin .v331-client-file-actions .v331-action-primary{background:#1768d7;color:#fff;border-color:#1768d7}
.role-admin .v331-client-file-actions .danger{color:#b42318;border-color:#fecaca;background:#fff7f7}
.role-admin .v331-person-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}
.role-admin .v331-person-summary>div{padding:14px 16px;border:1px solid #dfe8f0;border-radius:14px;background:#fff;box-shadow:0 4px 14px rgba(22,50,79,.05)}
.role-admin .v331-person-summary small,.role-admin .v331-person-summary b{display:block}
.role-admin .v331-person-summary small{font-size:9px;letter-spacing:.1em;color:#74879a;font-weight:900;margin-bottom:5px}
.role-admin .v331-person-summary b{font-size:14px;color:#143653}
.role-admin .v331-person-summary a{color:#1768d7;text-decoration:none}

.role-admin .v331-timeline-page{max-width:1500px;margin:0 auto;padding:28px 30px 110px}
.role-admin .v331-timeline-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.role-admin .v331-timeline-head h1{margin:3px 0 5px;font-size:28px;color:#12324f}
.role-admin .v331-timeline-head p{margin:0;color:#667b8e}
.role-admin .v331-timeline-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.role-admin .v331-timeline-kpis>div{background:#fff;border:1px solid #dfe8f0;border-radius:14px;padding:14px 16px;box-shadow:0 4px 14px rgba(22,50,79,.05)}
.role-admin .v331-timeline-kpis b,.role-admin .v331-timeline-kpis span{display:block}
.role-admin .v331-timeline-kpis b{font-size:21px;color:#123653}.role-admin .v331-timeline-kpis span{font-size:11px;color:#73879a;margin-top:3px}
.role-admin .v331-timeline-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(360px,.55fr);gap:16px;align-items:start}
.role-admin .v331-replay-card,.role-admin .v331-events-card{background:#fff;border:1px solid #dfe8f0;border-radius:18px;box-shadow:0 8px 24px rgba(22,50,79,.06);overflow:hidden}
.role-admin .v331-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-bottom:1px solid #e9eff5}
.role-admin .v331-card-head h2{margin:0;font-size:17px;color:#143653}.role-admin .v331-card-head p{margin:4px 0 0;font-size:11px;color:#73879a}
.role-admin #playbackMap{height:min(62vh,650px);min-height:440px;background:#eef3f7}
.role-admin .v331-playbar{display:grid;grid-template-columns:auto auto minmax(150px,1fr) auto auto;gap:10px;align-items:center;padding:12px 14px;border-top:1px solid #e7edf3;background:#f8fafc}
.role-admin .v331-playbar button{min-height:40px;border-radius:10px;border:1px solid #d4e0ea;background:#fff;font-weight:800;cursor:pointer;padding:0 14px}
.role-admin .v331-playbar .primary{background:#1768d7;border-color:#1768d7;color:#fff}
.role-admin .v331-playbar button:disabled{opacity:.45;cursor:not-allowed}
.role-admin .v331-playbar input[type=range]{width:100%}
.role-admin .v331-playbar select{min-height:40px;border:1px solid #d4e0ea;border-radius:10px;background:#fff;padding:0 10px}
.role-admin .v331-play-time{font-size:11px;font-weight:700;color:#4b6074;white-space:nowrap}
.role-admin .v331-replay-status{padding:9px 14px;border-top:1px solid #edf2f6;font-size:11px;color:#61788d;background:#fff}
.role-admin .v331-replay-status.ok{color:#0d7a48;background:#f0fdf6}.role-admin .v331-replay-status.warn{color:#9a6700;background:#fffbeb}.role-admin .v331-replay-status.error{color:#b42318;background:#fff3f2}
.role-admin .v331-events-card{max-height:calc(62vh + 132px);overflow:auto}
.role-admin .v331-events-list{padding:8px 14px 14px}
.role-admin .v331-event{position:relative;padding:12px 12px 12px 18px;border-bottom:1px solid #edf2f6}
.role-admin .v331-event:last-child{border-bottom:0}.role-admin .v331-event:before{content:'';position:absolute;left:2px;top:18px;width:8px;height:8px;border-radius:50%;background:#1768d7;box-shadow:0 0 0 4px #e9f2ff}
.role-admin .v331-event time{display:block;font-size:10px;color:#778a9b;margin-bottom:3px}.role-admin .v331-event strong{display:block;font-size:12px;color:#173954}.role-admin .v331-event p{margin:4px 0;font-size:12px;line-height:1.45;color:#40566b}.role-admin .v331-event small{font-size:10px;color:#8192a2}
@media(max-width:1050px){.role-admin .v331-timeline-grid{grid-template-columns:1fr}.role-admin .v331-events-card{max-height:none}.role-admin .v331-client-actions{grid-template-columns:repeat(2,1fr)}.role-admin .v331-person-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.role-admin .v331-timeline-page{padding:18px 12px 100px}.role-admin .v331-timeline-kpis{grid-template-columns:repeat(2,1fr)}.role-admin #playbackMap{min-height:340px;height:52vh}.role-admin .v331-playbar{grid-template-columns:1fr 1fr}.role-admin .v331-playbar input[type=range]{grid-column:1/-1}.role-admin .v331-client-actions{grid-template-columns:1fr 1fr}.role-admin .v331-person-summary{grid-template-columns:1fr 1fr}}
