/* Civitas Nexus AI CRM V1.6 · Ufficio dal vivo + gestione attività stile The Sims */
.office-view{margin:0 0 18px;border:1px solid var(--stroke-2);border-radius:20px;overflow:hidden;background:#04101f;box-shadow:0 28px 80px rgba(0,0,0,.28)}
.ov-stage{position:relative;height:0;overflow:hidden;isolation:isolate}
.ov-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;display:block;user-select:none}
.ov-stage .scene-life{z-index:1}
.ov-vignette{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse at 50% 55%,transparent 55%,rgba(2,10,24,.55) 100%),linear-gradient(180deg,rgba(3,12,28,.45),transparent 22%,transparent 80%,rgba(3,12,28,.5))}
.scene-life-zoom .sl-star{display:none}
.ov-top{position:absolute;z-index:6;top:14px;left:16px;right:16px;display:flex;justify-content:space-between;align-items:center;gap:10px;pointer-events:none}
.ov-top>*{pointer-events:auto}
.ov-top .float-pill{letter-spacing:.06em;font-weight:750}
/* Segnalini sulle persone reali */
.ov-person{position:absolute;z-index:5;width:56px;height:70px;margin:0;padding:0;border:0;background:none;cursor:pointer;transform:translate(-50%,-58%);color:inherit;font:inherit;-webkit-tap-highlight-color:transparent}
.ov-person:focus{outline:none}
.ov-ring{position:absolute;left:50%;top:50%;width:44px;height:52px;margin:-26px 0 0 -22px;border-radius:50%;border:2px solid transparent;transition:border-color .2s,box-shadow .2s}
.ov-person:hover .ov-ring,.ov-person:focus-visible .ov-ring{border-color:rgba(160,235,255,.6);box-shadow:0 0 16px rgba(80,210,255,.35)}
.ov-person.is-selected .ov-ring{border-color:var(--accent);box-shadow:0 0 22px var(--accent);animation:select-pulse 1.6s ease-in-out infinite}
.ov-tag{position:absolute;left:50%;top:100%;transform:translate(-50%,2px);white-space:nowrap;padding:3px 9px;border-radius:9px;font-size:11px;font-weight:800;color:#eafaff;background:rgba(4,20,40,.86);border:1px solid rgba(90,200,240,.35);box-shadow:0 6px 14px rgba(0,0,0,.35);opacity:.92}
.ov-tag em{font-style:normal;font-weight:500;color:#9dc1d8;margin-left:5px}
.ov-person.is-selected .ov-tag{border-color:var(--accent);opacity:1}
/* Rombo "plumbob": carico di lavoro */
.ov-plumbob,.actor-plumbob{position:absolute;left:50%;width:13px;height:13px;margin-left:-6.5px;transform:rotate(45deg) skew(8deg,8deg);border-radius:2px;background:linear-gradient(135deg,#9dffcb,#1fd17f);box-shadow:0 0 10px rgba(54,240,150,.85),inset 0 0 3px rgba(255,255,255,.7);animation:plumbob 2.4s ease-in-out infinite;pointer-events:none}
.ov-plumbob{top:-14px}
.lv-busy .ov-plumbob,.lv-busy .actor-plumbob{background:linear-gradient(135deg,#ffe59a,#f2a72a);box-shadow:0 0 10px rgba(255,190,70,.85),inset 0 0 3px rgba(255,255,255,.7)}
.lv-over .ov-plumbob,.lv-over .actor-plumbob{background:linear-gradient(135deg,#ffb3a6,#ef4b3c);box-shadow:0 0 12px rgba(255,90,70,.9),inset 0 0 3px rgba(255,255,255,.7)}
@keyframes plumbob{0%,100%{margin-top:0}50%{margin-top:-4px}}
/* Nuvoletta pensiero (attività in corso) e fumetto parlato */
.ov-thought,.ov-bubble,.actor-thought{position:absolute;left:50%;max-width:180px;width:max-content;padding:6px 10px;border-radius:14px;font-size:11px;font-weight:700;line-height:1.3;text-align:center;pointer-events:none;opacity:0;transform:translate(-50%,6px) scale(.9);transition:opacity .25s,transform .25s}
.ov-thought,.ov-bubble{bottom:calc(100% + 18px)}
.ov-bubble{color:#0a2440;background:#f2fbff;box-shadow:0 8px 20px rgba(0,0,0,.4)}
.ov-bubble:after{content:"";position:absolute;left:50%;bottom:-6px;margin-left:-6px;border:6px solid transparent;border-bottom:0;border-top-color:#f2fbff}
.ov-thought,.actor-thought{color:#073047;background:linear-gradient(180deg,#e9fbff,#c9f1ff);border:1px solid rgba(255,255,255,.8);box-shadow:0 8px 20px rgba(0,0,0,.35)}
.ov-thought:before,.actor-thought:before{content:"💭 ";}
.ov-thought:after,.actor-thought:after{content:"";position:absolute;left:44%;bottom:-9px;width:8px;height:8px;border-radius:50%;background:#c9f1ff;box-shadow:-5px 7px 0 -1px #c9f1ff}
.has-bubble .ov-bubble,.has-thought .ov-thought,.actor.has-thought .actor-thought{opacity:1;transform:translate(-50%,0) scale(1)}
/* Nella sala virtuale */
.actor-thought{bottom:180px}
.actor-plumbob{bottom:170px}
/* Cenno con la testa nella foto */
.sl-slice.is-nod{animation:sl-nod .55s ease-in-out 4!important}
@keyframes sl-nod{0%,100%{transform:rotate(0)}50%{transform:rotate(-5deg) translateY(1.5px)}}
/* Piede della vista */
.ov-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 18px;background:#081e37;color:#8fb0cc;font-size:11px}
.ov-footer strong{color:#ddf9f8}
.ov-away{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ov-chip{border:1px solid var(--stroke-2);background:rgba(16,46,76,.6);color:#dff6ff;border-radius:999px;padding:3px 10px;font-size:11px;cursor:pointer}
.ov-chip:hover{border-color:var(--cyan)}
/* Scheda: lavoro della persona */
.actor-inspector{flex-direction:column;align-items:stretch}
.actor-inspector.is-empty{align-items:center}
.inspector-main{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.load-pill{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:750;padding:3px 8px;border-radius:999px;background:rgba(48,230,161,.12);color:#9ff5cf;border:1px solid rgba(48,230,161,.3);vertical-align:2px}
.load-pill i{width:7px;height:7px;transform:rotate(45deg);background:#36f096}
.load-pill.lv-busy{background:rgba(255,190,70,.12);color:#ffd88a;border-color:rgba(255,190,70,.35)}.load-pill.lv-busy i{background:#f2a72a}
.load-pill.lv-over{background:rgba(255,90,70,.12);color:#ffb0a5;border-color:rgba(255,90,70,.35)}.load-pill.lv-over i{background:#ef4b3c}
.inspector-tasks{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.inspector-tasks li{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid rgba(120,200,240,.16);border-radius:10px;background:rgba(3,16,32,.45);font-size:12px}
.inspector-tasks li.is-doing{border-color:rgba(48,230,161,.45);background:rgba(20,80,70,.3)}
.inspector-tasks .it-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inspector-tasks .btn{min-height:28px;padding:5px 9px}
.inspector-tasks .it-empty{color:#9cc4de;justify-content:center}
.office-view .actor-inspector{border-top:1px solid rgba(75,176,227,.26)}
/* Lista attività: assegnatario e stato */
.assignee-chip{display:inline-flex;align-items:center;padding:1px 7px;border-radius:999px;background:rgba(57,168,255,.12);border:1px solid rgba(57,168,255,.3);color:var(--ink);font-weight:650}
.assignee-chip:before{content:"◆";color:var(--green);margin-right:4px;font-size:8px}
.doing-chip{color:var(--green);font-weight:750}
.task-start{margin-left:0!important;color:var(--green)!important}
.task-start+.task-menu{margin-left:0}
@media(max-width:620px){.ov-person{transform:translate(-50%,-58%) scale(.8)}.ov-tag em{display:none}.ov-top .float-pill{font-size:9px}.inspector-tasks li{flex-wrap:wrap}}
:root[data-staff-motion="off"] .ov-plumbob,:root[data-staff-motion="off"] .actor-plumbob{animation-play-state:paused}
:root[data-theme="light"] .ov-footer{background:#e9f3fa;color:#47647c}:root[data-theme="light"] .ov-footer strong{color:#09213b}
/* Nella vista ravvicinata gli effetti schermo sono più discreti (l'immagine è ingrandita) */
.scene-life-zoom .sl-wall{background:linear-gradient(180deg,transparent 0,rgba(140,235,255,.22) 48%,transparent 54%) no-repeat;background-size:100% 30%;opacity:.5}
.scene-life-zoom .sl-desk{opacity:.55}
.scene-life-zoom .sl-glow{animation-name:sl-neon-soft}
@keyframes sl-neon-soft{0%,100%{opacity:.03}50%{opacity:.2}}
