.workspace-panel{position:fixed;right:0;top:0;bottom:0;width:min(540px,96vw);z-index:1500;overflow:auto;box-sizing:border-box;padding:20px;background:var(--surface,#f7f7f9);color:var(--text,#222);box-shadow:-8px 0 30px #0003}
.workspace-panel[hidden]{display:none!important}.workspace-panel header,.workspace-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.workspace-panel header{justify-content:space-between}.workspace-panel button{padding:7px 10px;border:1px solid #bbb;border-radius:8px;color:inherit;background:var(--surface,#fff);cursor:pointer}.workspace-panel button:disabled{opacity:.5;cursor:wait}.workspace-panel label{display:block;margin:10px 0}.workspace-panel input:not([type=checkbox]),.workspace-panel textarea{box-sizing:border-box;width:100%;padding:8px;border:1px solid #aaa;border-radius:6px;background:var(--surface,#fff);color:inherit}.workspace-panel details{padding:14px 0;border-top:1px solid #aaa7}.workspace-panel summary{cursor:pointer;margin-bottom:12px}.workspace-panel pre{max-height:230px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;background:#161923;color:#e6edf7;padding:10px;border-radius:6px}.workspace-panel textarea{font:12px/1.5 monospace;tab-size:4}.workspace-file-list{max-height:300px;overflow:auto;margin:10px 0}.workspace-file-row{display:flex;flex-wrap:wrap;gap:5px;padding:6px 0;align-items:center;border-bottom:1px solid #aaa4}.workspace-file-row>button:first-child{flex:1;text-align:left;overflow-wrap:anywhere}.workspace-file-row small{width:100%;font-size:11px;opacity:.75}.workspace-panel [data-work-status]{min-height:25px;white-space:pre-wrap}.workspace-panel form{display:flex;gap:6px}.workspace-panel a{overflow-wrap:anywhere}

.cowork-mode{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid color-mix(in srgb,var(--border) 65%,transparent);border-radius:10px;background:transparent}
.cowork-mode button{border:0;border-radius:7px;padding:5px 8px;background:transparent;color:var(--muted);font-size:12px;line-height:1.3;cursor:pointer}
.cowork-mode button[aria-pressed=true]{background:var(--surface-soft);color:var(--text)}
.cowork-mode button:disabled{opacity:1;cursor:default}
.cowork-mode button:focus-visible,.cowork-files a:focus-visible,.cowork-advanced:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.cowork-advanced,.cowork-cancel{border:0;background:transparent;color:var(--muted);font-size:12px;padding:5px;cursor:pointer}
.cowork-advanced{font-size:18px;letter-spacing:1px}
.cowork-hint{display:block;padding:1px 10px 7px;color:var(--muted);font-size:11px}
.cowork-files{--ico-folder:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M10 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-8z'/%3E%3C/svg%3E");--ico-file:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M6 2h8l4 4v16H6z'/%3E%3C/svg%3E");--ico-dl:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M11 3h2v9h3l-4 4-4-4h3z'/%3E%3Cpath d='M5 18h14v2H5z'/%3E%3C/svg%3E");--ico-chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M6 9l6 6 6-6z'/%3E%3C/svg%3E");position:fixed;right:18px;top:104px;z-index:38;width:266px;max-width:calc(100vw - 36px);border:1px solid color-mix(in srgb,var(--border) 60%,transparent);border-radius:14px;background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 12px 32px rgba(15,23,42,.16);color:var(--text);font-size:12.5px;padding:6px}
.cowork-files>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;padding:8px;border-radius:10px;font-weight:600;color:var(--text)}
.cowork-files>summary::-webkit-details-marker{display:none}
.cowork-files>summary:hover{background:color-mix(in srgb,var(--text) 6%,transparent)}
.cowork-files>summary::before{content:"";width:16px;height:16px;flex:0 0 auto;background:var(--primary);-webkit-mask:var(--ico-folder) center/contain no-repeat;mask:var(--ico-folder) center/contain no-repeat}
.cowork-files>summary::after{content:"";width:13px;height:13px;flex:0 0 auto;background:currentColor;opacity:.5;-webkit-mask:var(--ico-chev) center/contain no-repeat;mask:var(--ico-chev) center/contain no-repeat;transition:transform .18s ease}
.cowork-files[open]>summary::after{transform:rotate(180deg)}
.cowork-files-title{color:color-mix(in srgb,var(--text) 90%,var(--muted))}
.cowork-files-count{margin-left:auto;min-width:20px;height:18px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:color-mix(in srgb,var(--primary) 16%,transparent);color:color-mix(in srgb,var(--primary) 90%,var(--text));font-size:11px;font-weight:600}
.cowork-files [data-cowork-file-list]{max-height:44vh;overflow:auto;margin-top:2px;padding:2px}
.cowork-files section{margin-top:2px}
.cowork-files section+section{margin-top:8px}
.cowork-files-group{display:block;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:5px 8px 3px}
.cowork-file{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:9px;color:color-mix(in srgb,var(--text) 80%,var(--muted));text-decoration:none;transition:background .14s ease,color .14s ease}
.cowork-file:hover{background:color-mix(in srgb,var(--primary) 10%,transparent);color:var(--text)}
.cowork-file::before{content:"";width:15px;height:15px;flex:0 0 auto;background:var(--muted);-webkit-mask:var(--ico-file) center/contain no-repeat;mask:var(--ico-file) center/contain no-repeat}
.cowork-file[data-ext=js]::before,.cowork-file[data-ext=mjs]::before,.cowork-file[data-ext=ts]::before{background:#d6a419}
.cowork-file[data-ext=css]::before{background:#2f74c0}
.cowork-file[data-ext=html]::before,.cowork-file[data-ext=htm]::before{background:#e34c26}
.cowork-file[data-ext=json]::before{background:#8a8f98}
.cowork-file[data-ext=md]::before,.cowork-file[data-ext=txt]::before{background:#5b8def}
.cowork-file[data-ext=zip]::before,.cowork-file[data-ext=gz]::before,.cowork-file[data-ext=tar]::before{background:#a855f7}
.cowork-file[data-ext=png]::before,.cowork-file[data-ext=jpg]::before,.cowork-file[data-ext=jpeg]::before,.cowork-file[data-ext=svg]::before,.cowork-file[data-ext=webp]::before,.cowork-file[data-ext=gif]::before{background:#22a06b}
.cowork-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cowork-file::after{content:"";width:14px;height:14px;flex:0 0 auto;background:currentColor;opacity:0;-webkit-mask:var(--ico-dl) center/contain no-repeat;mask:var(--ico-dl) center/contain no-repeat;transition:opacity .14s ease}
.cowork-file:hover::after,.cowork-file:focus-visible::after{opacity:.75}
/* Il pannello file galleggia a destra senza toccare la larghezza della chat:
   in Cowork la conversazione e' larga quanto in modalita' Chat. Chiuso e'
   una piccola etichetta, cosi' non copre i messaggi. */
.cowork-files:not([open]){width:auto;min-width:104px}
.cowork-file-tag{flex:0 0 auto;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:600;line-height:1.55;white-space:nowrap;background:color-mix(in srgb,var(--primary) 14%,transparent);color:color-mix(in srgb,var(--primary) 90%,var(--text))}
.cowork-file-tag[data-kind=project]{background:color-mix(in srgb,#22a06b 16%,transparent);color:color-mix(in srgb,#22a06b 85%,var(--text))}
/* Nel pannello l'etichetta del tipo di pacchetto sta sotto il nome. */
.cowork-files .cowork-file[data-kind]{display:grid;grid-template-columns:15px minmax(0,1fr) 14px;column-gap:9px;row-gap:3px;align-items:center}
.cowork-files .cowork-file[data-kind]::before{grid-area:1/1}
.cowork-files .cowork-file[data-kind] .cowork-file-name{grid-area:1/2}
.cowork-files .cowork-file[data-kind]::after{grid-area:1/3}
.cowork-files .cowork-file[data-kind] .cowork-file-tag{grid-area:2/2;justify-self:start}
.cowork-inline-artifact[data-kind]{max-width:380px}
.cowork-progress{font-size:12px;color:var(--muted);margin:0 0 8px;max-width:100%}
.cowork-progress summary{cursor:pointer}.cowork-progress ol{margin:7px 0;max-height:180px;overflow:auto}.cowork-progress li{margin:3px 0}
.cowork-hint[hidden],.cowork-files[hidden],.cowork-cancel[hidden],.cowork-advanced[hidden]{display:none!important}
@media(max-width:760px){.cowork-files{top:88px;right:12px;width:min(240px,calc(100vw - 24px))}.cowork-mode button{padding:5px 6px;font-size:11px}.cowork-cancel{max-width:75px;font-size:11px}.cowork-hint{font-size:10px}.composer .attachment-actions{gap:4px}}

/* Keep every composer action reachable when Cowork adds its mode selector. */
.composer-toolbar{flex-wrap:wrap}
.composer .attachment-actions{max-width:100%;flex-wrap:wrap}
.composer-context-actions{margin-left:auto}
[data-chat-file-retention][hidden]{display:none!important}
/* SVG icons need an explicit hidden rule as well as an HTML attribute. */
[data-scope-icon-global][hidden], [data-scope-icon-municipality][hidden] { display: none !important; }

/* Mobile and installed PWA: modes above, attachments left, actions right. */
.compact-composer .composer .composer-toolbar { --composer-action-size: 36px; position: relative; justify-content: flex-start; gap: 4px; }
.compact-composer .composer .attachment-actions, .compact-composer .composer .composer-context-actions { display: contents; }
.compact-composer .composer .cowork-mode { order: -2; flex: 0 0 auto; margin-right: auto; }
.compact-composer .composer .cowork-advanced, .compact-composer .composer .cowork-cancel, .compact-composer .composer .project-composer-tag { order: -2; }
.compact-composer .composer .project-composer-tag { max-width: 100px; }
.compact-composer .composer .composer-toolbar::before { content: ""; order: -1; flex-basis: 100%; height: 0; }
.compact-composer .composer .composer-toolbar :is(.attachment-button, .voice-button, .send-button, .reasoning-toggle, .municipality-selector) { height: var(--composer-action-size); min-height: var(--composer-action-size); flex-shrink: 0; }
.compact-composer .composer .composer-toolbar :is(.attachment-button, .voice-button, .send-button) { width: var(--composer-action-size); }
.compact-composer .composer .composer-toolbar .reasoning-toggle { justify-content: center; padding: 5px 6px; }
.compact-composer .composer .model-context { flex: 0 1 auto; width: clamp(88px, calc(100vw - 350px), 124px); min-width: 88px; max-width: 124px; }
.compact-composer .composer .model-selector { width: 100%; max-width: 100%; gap: 4px; padding-inline: 6px; }
.compact-composer .composer .model-selector [data-model-label] { display: block; min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left; }
.compact-composer .composer [data-municipality-context] { flex: 0 1 auto; min-width: 0; max-width: 100px; }
.compact-composer .composer [data-municipality-context] > .municipality-selector { max-width: 100%; }
.compact-composer .composer .attachment-menu { bottom: calc(var(--composer-action-size) + 8px); }
.compact-composer .composer .attachment-button { margin-right: auto; }
.compact-composer .composer .composer-toolbar.project-tag-inline .attachment-button { margin-right: 0; }
.compact-composer .composer .composer-toolbar.project-tag-inline .project-composer-tag { order: 0; flex: 0 0 auto; margin-right: auto; }
.compact-composer .composer .attachment-paperclip-icon { display: none; }
.compact-composer .composer .attachment-camera-icon { display: block; }
.compact-composer .composer[data-primary-action="voice"] .send-button,
.compact-composer .composer[data-primary-action="send"] .voice-chat-button { display: none !important; }
@media (max-width: 440px) {
  .composer [data-municipality-label] { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .composer [data-municipality-context] > .municipality-selector { width: var(--composer-action-size); justify-content: center; padding: 0; }
  .composer [data-municipality-context] .municipality-chevron { display: none; }
}
@media (max-width: 380px) {
  .compact-composer .composer .composer-toolbar { --composer-action-size: 32px; }
  .compact-composer .composer .composer-toolbar .reasoning-toggle { width: var(--composer-action-size); padding: 0; }
  .composer .reasoning-toggle [data-reasoning-label] { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}

.cowork-inline-artifacts{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:10px;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--border) 45%,transparent)}
.cowork-inline-artifacts-label{font-size:11px;color:var(--muted);margin-right:2px}
.cowork-inline-artifact{display:inline-flex;align-items:center;gap:8px;max-width:260px;padding:6px 9px;border:1px solid color-mix(in srgb,var(--border) 55%,transparent);border-radius:8px;background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--text);font-size:12px;text-decoration:none}
.cowork-inline-artifact:hover{background:var(--surface-soft)}
.cowork-inline-artifact span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cowork-inline-artifact:focus-visible{outline:2px solid var(--primary);outline-offset:2px}

/* Cowork: avanzamento dettagliato (file, comandi, esito test) e ripresa del lavoro sospeso. */
.cowork-progress summary{display:flex;align-items:center;gap:8px;min-width:0;list-style:none}
.cowork-progress summary::-webkit-details-marker{display:none}
.cowork-progress summary::before{content:'›';display:inline-block;flex:0 0 auto;opacity:.7;transition:transform .15s ease}
.cowork-progress[open] summary::before{transform:rotate(90deg)}
.cowork-progress-current{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cowork-progress-count{flex:0 0 auto;font-size:10px;opacity:.75}
.cowork-progress-count:empty{display:none}
.cowork-progress.is-running summary .cowork-progress-current{background:linear-gradient(90deg,var(--muted) 0%,var(--text) 50%,var(--muted) 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:cowork-progress-shimmer 1.6s linear infinite}
.cowork-progress ol{list-style:none;padding-left:4px}
.cowork-progress li{position:relative;padding-left:18px;overflow-wrap:anywhere;line-height:1.45}
.cowork-progress li::before{content:'•';position:absolute;left:3px;top:0;opacity:.7}
.cowork-progress li.is-command,.cowork-progress li.is-test-ok,.cowork-progress li.is-test-fail{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}
.cowork-progress li.is-command::before{content:'$'}
.cowork-progress li.is-edit::before{content:'✎'}
.cowork-progress li.is-read::before{content:'◌'}
.cowork-progress li.is-web::before{content:'⌕'}
.cowork-progress li.is-git::before{content:'⎇'}
.cowork-progress li.is-artifact::before{content:'⇣'}
.cowork-progress li.is-check::before{content:'…'}
.cowork-progress li.is-ok::before,.cowork-progress li.is-test-ok::before,.cowork-progress li.is-done::before{content:'✓';color:var(--success);opacity:1}
.cowork-progress li.is-test-ok{color:var(--success)}
.cowork-progress li.is-fail::before,.cowork-progress li.is-test-fail::before,.cowork-progress li.is-error::before{content:'✕';color:var(--danger);opacity:1}
.cowork-progress li.is-test-fail,.cowork-progress li.is-error{color:var(--danger)}
.cowork-progress li.is-stopped::before{content:'❙❙';font-size:9px;top:2px}
.cowork-progress summary[data-kind=test_fail] .cowork-progress-current,.cowork-progress summary[data-kind=error] .cowork-progress-current{color:var(--danger)}
.cowork-progress summary[data-kind=test_ok] .cowork-progress-current,.cowork-progress summary[data-kind=done] .cowork-progress-current{color:var(--success)}
.cowork-resume{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin-top:10px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--border) 55%,transparent);border-radius:9px;background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--muted);font-size:12px}
.cowork-resume span{flex:1 1 220px;min-width:0}
.cowork-resume button{flex:0 0 auto;padding:6px 11px;border:1px solid color-mix(in srgb,var(--primary) 45%,transparent);border-radius:8px;background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--text);font-size:12px;cursor:pointer}
.cowork-resume button:hover{background:color-mix(in srgb,var(--primary) 20%,transparent)}
.cowork-resume button:disabled{opacity:.6;cursor:default}
.cowork-resume button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.cowork-resume button.is-secondary{border-color:color-mix(in srgb,var(--border) 70%,transparent);background:transparent;color:var(--muted)}
.cowork-resume button.is-secondary:hover{background:color-mix(in srgb,var(--border) 25%,transparent);color:var(--text)}
.cowork-resume.is-auto{border-color:color-mix(in srgb,var(--primary) 35%,transparent)}
@keyframes cowork-progress-shimmer{from{background-position:100% 0}to{background-position:-100% 0}}
@media (prefers-reduced-motion:reduce){.cowork-progress.is-running summary .cowork-progress-current{animation:none;color:var(--muted);background:none}}
/* Saluto iniziale variabile: il testo statico non lampeggia prima di quello scelto dal JS; se lo script non parte compare comunque dopo 1,5 s. */
[data-conversation-title][data-greeting-pending]{opacity:0;animation:dalila-greeting-fallback 0s linear 1.5s forwards}
[data-conversation-title]{transition:opacity .25s ease}
@keyframes dalila-greeting-fallback{to{opacity:1}}
/* Keep the advanced panel above the software keyboard and clear of device cutouts. */
@media (max-width: 760px) {
  .workspace-panel { top: var(--dalila-viewport-offset-top, 0px); bottom: auto; width: 100%; height: var(--dalila-viewport-height, 100dvh); max-height: var(--dalila-viewport-height, 100dvh); padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left)); overscroll-behavior: contain; }
  .workspace-panel input:not([type="checkbox"]), .workspace-panel textarea { min-width: 0; font-size: 16px; }
  .workspace-panel form { min-width: 0; flex-wrap: wrap; }
  .workspace-file-row > button:first-child { min-width: 0; }
  .cowork-files { max-height: calc(var(--dalila-viewport-height, 100dvh) - 120px); overflow: auto; overscroll-behavior: contain; }
}
@media (pointer: coarse) {
  .workspace-panel button, .cowork-files > summary { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  [data-conversation-title] { transition: none; }
  .cowork-files > summary::after, .cowork-progress summary::before { transition: none; }
}
