@font-face { font-family: 'Outfit'; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/wp-content/plugins/anonyma-mvp/app/vendor-v1.6.5-beta.1/fonts/outfit-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Outfit'; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/wp-content/plugins/anonyma-mvp/app/vendor-v1.6.5-beta.1/fonts/outfit-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Space Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url(/wp-content/plugins/anonyma-mvp/app/vendor-v1.6.5-beta.1/fonts/spacemono-400-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Space Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url(/wp-content/plugins/anonyma-mvp/app/vendor-v1.6.5-beta.1/fonts/spacemono-400-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Space Mono'; font-style: normal; font-weight: 700; font-display: swap; src: url(/wp-content/plugins/anonyma-mvp/app/vendor-v1.6.5-beta.1/fonts/spacemono-700-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Space Mono'; font-style: normal; font-weight: 700; font-display: swap; src: url(/wp-content/plugins/anonyma-mvp/app/vendor-v1.6.5-beta.1/fonts/spacemono-700-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
:root {
  color-scheme: light;
  --bg: #f4f5f6; --panel: #fff; --panel-2: #fafbfb; --card: #fff; --hover: #f5f7f9; --sel: #e9eff6; --sel-warm: #fdf6e3;
  --line: #d8dce0; --line-strong: #aab3bc; --line-soft: #eceff1; --track: #e3e7ea;
  --text: #1b2127; --muted: #5d6873;
  --accent: #1f3a5f; --accent-2: #2c5282; --on-accent: #fff; --focus: #8fb0d8;
  --ok: #2f6b3f; --warn: #8a5a00; --err: #9b2c2c;
  --page-shadow: 0 1px 4px rgba(0,0,0,.18); --radius: 4px;
  --font: "Outfit", -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono: "Space Mono", ui-monospace, "SF Mono", Menlo, monospace;
  font-family: var(--font); font-size: 14px; color: var(--text);
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #050507; --panel: #0d0d12; --panel-2: #0a0a0d; --card: #161616; --hover: #14141a; --sel: rgba(0,255,157,.10); --sel-warm: rgba(240,184,64,.12);
  --line: #23232b; --line-strong: #3a3a45; --line-soft: #1a1a20; --track: #23232b;
  --text: #e6e6e6; --muted: #9ca3af;
  --accent: #00ff9d; --accent-2: #30ff9f; --on-accent: #000; --focus: rgba(0,255,157,.55);
  --ok: #00ff9d; --warn: #f0b840; --err: #ff7b7b;
  --page-shadow: 0 0 0 1px #23232b, 0 6px 24px rgba(0,0,0,.6); --radius: 8px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
  color-scheme: dark;
  --bg: #050507; --panel: #0d0d12; --panel-2: #0a0a0d; --card: #161616; --hover: #14141a; --sel: rgba(0,255,157,.10); --sel-warm: rgba(240,184,64,.12);
  --line: #23232b; --line-strong: #3a3a45; --line-soft: #1a1a20; --track: #23232b;
  --text: #e6e6e6; --muted: #9ca3af;
  --accent: #00ff9d; --accent-2: #30ff9f; --on-accent: #000; --focus: rgba(0,255,157,.55);
  --ok: #00ff9d; --warn: #f0b840; --err: #ff7b7b;
  --page-shadow: 0 0 0 1px #23232b, 0 6px 24px rgba(0,0,0,.6); --radius: 8px;
  }
}
* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; background: var(--bg); }
body { display: flex; flex-direction: column; }
[hidden] { display: none !important; }
button, input, select, textarea { font: inherit; color: inherit; }
button { border: 1px solid var(--line); background: var(--card); border-radius: var(--radius); padding: 5px 10px; cursor: pointer; }
button:hover:not(:disabled) { border-color: var(--line-strong); background: var(--hover); }
button:disabled { opacity: .5; cursor: default; }
button.primary { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
button.primary:hover:not(:disabled) { background: var(--accent-2); border-color: var(--accent-2); }
button.link { border: 0; background: none; color: var(--accent-2); padding: 2px 4px; }
button.link:hover { text-decoration: underline; background: none; }
button.danger { color: var(--err); }
input[type=text], input[type=number], input:not([type]), select, textarea { border: 1px solid var(--line); border-radius: var(--radius); padding: 5px 8px; background: var(--card); width: 100%; }
input:focus, select:focus, textarea:focus, button:focus-visible { outline: 2px solid var(--focus); outline-offset: 0; }
input[type=color] { width: 34px; height: 28px; padding: 0; border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); }

.top { display: flex; align-items: center; gap: 24px; padding: 0 16px; height: 46px; background: var(--panel); border-bottom: 1px solid var(--line); }
.brand { font-weight: 600; letter-spacing: .2px; }
.tabs { display: flex; gap: 2px; height: 100%; }
.tabs button { border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: none; padding: 0 12px; height: 100%; color: var(--muted); }
.tabs button.active { color: var(--text); border-bottom-color: var(--accent); }
#light-link { color: var(--accent); font-size: 12px; text-decoration: none; white-space: nowrap; }
#light-link:hover { text-decoration: underline; }
.chips { margin-left: auto; display: flex; gap: 8px; }
.chip { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); border: 1px solid var(--line); border-radius: 12px; padding: 2px 10px; }
.chip i { width: 8px; height: 8px; border-radius: 50%; background: #b8bfc6; }
.chip.ok i { background: #3b8a52; } .chip.err i { background: #c05050; } .chip.busy i { background: #d1a12b; }
.chip .model-check { width: 18px; height: 18px; flex: none; color: var(--ok); }

.work { flex: 1; min-height: 0; display: grid; grid-template-columns: 250px 1fr 380px; }
.col { min-height: 0; display: flex; flex-direction: column; }
.docs, .side { background: var(--panel); }
.docs { border-right: 1px solid var(--line); }
.side { border-left: 1px solid var(--line); overflow-y: auto; }
.col-head { padding: 10px 14px; font-size: 12px; text-transform: uppercase; letter-spacing: .6px; color: var(--muted); border-bottom: 1px solid var(--line); background: var(--panel-2); display: flex; justify-content: space-between; }
.panel { padding: 12px 14px; border-bottom: 1px solid var(--line); }

.drop { display: flex; flex-direction: column; gap: 2px; margin: 12px; padding: 14px; border: 1px dashed var(--line-strong); border-radius: var(--radius); text-align: center; cursor: pointer; color: var(--muted); font-size: 12px; }
.drop strong { color: var(--text); font-size: 13px; }
.drop input { display: none; }
.drop.over { border-color: var(--accent); background: var(--sel); }
.doclist { list-style: none; margin: 0; padding: 0; overflow-y: auto; flex: 1; }
.doclist li { padding: 9px 14px; border-top: 1px solid var(--line); cursor: pointer; display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; }
.doclist li:hover { background: var(--hover); }
.doclist li.active { background: var(--sel); box-shadow: inset 3px 0 0 var(--accent); }
.doclist .n { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.doclist .s { grid-column: 1; font-size: 12px; color: var(--muted); }
.doclist .x { grid-row: 1 / span 2; grid-column: 2; align-self: center; border: 0; background: none; color: var(--muted); padding: 2px 6px; }

.center { background: var(--bg); min-width: 0; }
.toolbar { display: flex; align-items: center; gap: 14px; padding: 8px 14px; background: var(--panel); border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.toolbar .group { display: flex; align-items: center; gap: 6px; }
.toolbar .group span { min-width: 40px; text-align: center; color: var(--muted); font-variant-numeric: tabular-nums; }
.seg { gap: 0 !important; }
.seg button { border-radius: 0; margin-left: -1px; }
.seg button:first-child { border-radius: var(--radius) 0 0 var(--radius); margin: 0; }
.seg button:last-child { border-radius: 0 var(--radius) var(--radius) 0; }
.seg button.active, button.toggle.active { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.stage { flex: 1; overflow: auto; padding: 20px; position: relative; }
.empty { margin: 10vh auto 0; text-align: center; color: var(--muted); max-width: 360px; }
.empty h2 { color: var(--text); font-size: 16px; font-weight: 600; margin: 0 0 6px; }
.pages { display: flex; flex-direction: column; align-items: center; gap: 16px; padding-bottom: 40px; }
.pagewrap { position: relative; flex: none; box-shadow: var(--page-shadow); background: #fff; }
.pnum { position: absolute; right: 8px; bottom: 6px; font-size: 11px; color: #8a949e; pointer-events: none; }
#pageinput { width: 56px; text-align: center; padding: 3px 4px; }
.pagewrap canvas { display: block; }
.overlay { position: absolute; inset: 0; }
.overlay.manual { cursor: crosshair; }
.rect { position: absolute; }
.hl .rect.ent { background: rgba(214,150,20,.30); outline: 1px solid #b8790a; cursor: pointer; }
.red .rect.ent { background: var(--blob); cursor: pointer; }
.rect.man { background: rgba(214,150,20,.30); outline: 1px dashed #b8790a; cursor: pointer; }
.red .rect.man { background: var(--blob); outline: 0; }
.rect.sel { outline: 2px solid #d18a00 !important; }
.rect.draft { background: color-mix(in srgb, var(--accent) 22%, transparent); outline: 1px solid var(--accent); }
.textview { margin: 0 auto; max-width: 860px; background: var(--card); padding: 28px 32px; border: 1px solid var(--line); border-radius: var(--radius); white-space: pre-wrap; word-wrap: break-word; font: 13px/1.6 var(--mono); min-height: 200px; }
.textview mark { border-radius: 2px; padding: 0; cursor: pointer; }
.textview.hl mark { background: rgba(214,150,20,.30); color: inherit; outline: 1px solid #b8790a; }
.textview.red mark { background: var(--blob); color: var(--ink, var(--blob)); font-weight: 600; }
.rect.lbl { display: flex; align-items: center; justify-content: center; color: var(--ink); font: bold 12px Helvetica, Arial, sans-serif; white-space: nowrap; overflow: hidden; pointer-events: none; }

.row { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.row label { color: var(--muted); }
.row #radius { width: 64px; }
.swatches { display: flex; gap: 6px; }
.sw { width: 22px; height: 22px; border-radius: 50%; border: 1px solid var(--line-strong); padding: 0; }
.actions { display: flex; gap: 8px; } .actions button { flex: 1; padding: 8px; }
.status { margin-top: 10px; color: var(--muted); font-size: 12px; min-height: 16px; }
.status.ok { color: var(--ok); } .status.err { color: var(--err); }
.bar { height: 4px; background: var(--track); margin-top: 8px; border-radius: 2px; overflow: hidden; }
.bar div { height: 100%; width: 0; background: var(--accent); transition: width .2s; }
.notes { margin: 8px 0 0; padding: 0; list-style: none; font-size: 12px; color: var(--warn); }
.notes li { margin-top: 4px; }
.count { color: var(--muted); text-transform: none; letter-spacing: 0; }
.filters { display: flex; gap: 6px; align-items: center; } .filters select { flex: 1; }
.entities { list-style: none; margin: 0; padding: 0; flex: 1; overflow-y: auto; min-height: 120px; }
.ent { display: grid; grid-template-columns: 20px 1fr auto 22px 24px; gap: 4px 8px; align-items: center; padding: 8px 14px; border-bottom: 1px solid var(--line-soft); }
.ent.sel { background: var(--sel-warm); }
.ent.off { opacity: .55; }
.ent .meta { grid-column: 2 / span 4; display: flex; gap: 8px; font-size: 11px; color: var(--muted); align-items: center; }
.ent .meta select { width: auto; font-size: 11px; padding: 1px 4px; }
.ent input.v { border-color: transparent; background: transparent; padding: 3px 5px; }
.ent input.v:hover { border-color: var(--line); background: var(--card); }
.ent .n { font-variant-numeric: tabular-nums; color: var(--muted); font-size: 12px; }
.ent .del { border: 0; background: none; color: var(--muted); padding: 0 4px; }
.ent .save { border: 0; background: none; color: var(--muted); padding: 2px 4px; display: inline-flex; cursor: pointer; border-radius: 4px; }
.ent .save .i { width: 15px; height: 15px; }
.ent .save:hover, .ent .save:focus-visible { color: var(--accent); }
.ent .save.on { color: var(--accent); }
.ent .save.on .i { fill: currentColor; fill-opacity: .22; }
.tip { position: fixed; z-index: 1000; max-width: 240px; padding: 7px 10px; border-radius: 6px; background: var(--text); color: var(--bg); font-size: 12px; line-height: 1.35; pointer-events: none; box-shadow: 0 4px 14px rgba(0,0,0,.25); }
.libadd { display: grid; grid-template-columns: 9rem 1fr 11rem auto; gap: 6px; align-items: center; }
.libadd input, .libadd select { min-width: 0; }
.models.lib td { padding: 6px 8px 6px 0; vertical-align: middle; }
.models.lib td:nth-child(3) { font-family: ui-monospace, "Space Mono", monospace; font-size: 12px; }
.models.lib td:last-child { text-align: right; }
@media (max-width: 720px) { .libadd { grid-template-columns: 1fr 1fr; } }
.addform { display: flex; gap: 6px; border-top: 1px solid var(--line); border-bottom: 0; }
.tag { border: 1px solid var(--line); border-radius: 3px; padding: 0 5px; }

.settings { flex: 1; min-height: 0; display: grid; grid-template-columns: 210px 1fr; }
.iconbtn { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; padding: 0; border: 1px solid transparent; background: none; color: var(--muted); border-radius: var(--radius); }
.iconbtn:hover { color: var(--text); background: var(--hover); border-color: var(--line); }
.chips { align-items: center; }
.modal { position: fixed; inset: 0; z-index: 50; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(10, 14, 20, .55); }
.modal[hidden] { display: none; }
.modal-card { display: flex; flex-direction: column; width: min(1040px, 100%); height: min(760px, 100%); background: var(--panel); border: 1px solid var(--line-strong); border-radius: var(--radius); box-shadow: 0 12px 40px rgba(0,0,0,.35); overflow: hidden; }
.modal-head { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px 10px 20px; border-bottom: 1px solid var(--line); }
.modal-head h2 { margin: 0; font-size: 15px; font-weight: 600; }
.snav { background: var(--panel); border-right: 1px solid var(--line); padding: 12px 0; }
.snav button { display: block; width: 100%; text-align: left; border: 0; border-radius: 0; padding: 9px 18px; background: none; }
.snav button.active { background: var(--sel); box-shadow: inset 3px 0 0 var(--accent); }
.sbody { overflow-y: auto; padding: 24px 32px 48px; }
@media (max-width: 720px) {
  #modal-settings .modal-card { height: calc(100dvh - 24px); max-height: calc(100dvh - 24px); overflow: hidden; }
  #modal-settings .modal-head { flex: 0 0 auto; }
  #modal-settings .settings { min-width: 0; min-height: 0; overflow: hidden; grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); }
  #modal-settings .settings > .snav { display: flex; flex-wrap: nowrap; gap: 0; min-width: 0; max-width: 100%; overflow-x: auto; overflow-y: hidden; align-items: center; }
  #modal-settings .snav button { flex: 0 0 auto; width: auto; white-space: nowrap; }
  #modal-settings .settings > .sbody { min-width: 0; min-height: 0; overflow-y: auto; padding: 12px; }
}
.sec { max-width: 720px; }
.sec h2 { font-size: 16px; margin: 0 0 4px; }
.sec > p { color: var(--muted); margin: 0 0 18px; }
.field { display: grid; grid-template-columns: 220px 1fr; gap: 6px 16px; padding: 10px 0; border-top: 1px solid var(--line-soft); align-items: start; }
.field > label:first-child { padding-top: 6px; }
.field small { display: block; color: var(--muted); font-size: 12px; margin-top: 4px; }
.field .ctl { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.field input[type=number] { width: 110px; }
.field input[type=checkbox] { width: 16px; height: 16px; margin: 7px 0; }
.field textarea { min-height: 110px; font: 12px/1.5 var(--mono); }
.checks { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px 16px; }
.checks label { display: flex; gap: 8px; align-items: center; }
.models { width: 100%; border-collapse: collapse; margin-top: 4px; }
.models td { padding: 5px 0; border-bottom: 1px solid var(--line-soft); }
.models td:last-child { text-align: right; }
.box { border: 1px solid var(--line); background: var(--card); border-radius: var(--radius); padding: 10px 12px; width: 100%; }
.ok { color: var(--ok); } .err { color: var(--err); }
@media (max-width: 1100px) { .work { grid-template-columns: 200px 1fr 340px; } }

.restore { flex: 1; min-height: 0; display: grid; grid-template-columns: 340px 1fr; }
.rmap { background: var(--panel); border-right: 1px solid var(--line); overflow-y: auto; }
.hint { margin: 0 0 12px; color: var(--muted); font-size: 12px; }
.lbl { display: block; font-size: 12px; color: var(--muted); margin-bottom: 4px; }
.row2 { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; }
.chk { display: flex; gap: 6px; align-items: center; }
.maplist { list-style: none; margin: 0; padding: 0; }
.maplist li { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 7px 14px; border-top: 1px solid var(--line-soft); font: 12px var(--mono); }
.maplist .v { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); }
.rwork { min-width: 0; }
.rpanes { flex: 1; min-height: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 14px; }
.rpanes > div { display: flex; flex-direction: column; min-height: 0; }
.rpanes textarea { flex: 1; resize: none; font: 13px/1.55 var(--mono); min-height: 200px; }
.filebtn { border: 1px solid var(--line); border-radius: var(--radius); padding: 5px 10px; cursor: pointer; background: var(--card); }
.filebtn:hover { border-color: var(--line-strong); background: var(--hover); }
.toolbar .status { margin: 0 0 0 auto; }
.tag.code { font: 11px var(--mono); border-color: var(--line-strong); background: var(--sel); }
/* la pillola del codice non è un blocco di codice: niente larghezza piena né spaziatura del blocco, e mostra tutti i codici di un nome */
.tag.code { width: auto; margin: 0; padding: 1px 6px; overflow: visible; white-space: nowrap; }
.ent .meta { flex-wrap: wrap; }

/* Tema scuro, ispirato a anonyma.chat: nero, verde neon, Outfit e Space Mono */
:root[data-theme="dark"] .brand, :root[data-theme="dark"] .col-head, :root[data-theme="dark"] .sec h2, :root[data-theme="dark"] .empty h2 { color: var(--accent); text-transform: lowercase; }
:root[data-theme="dark"] .col-head { text-transform: lowercase; letter-spacing: .4px; font-size: 13px; }
:root[data-theme="dark"] button.primary { font-weight: 600; }
:root[data-theme="dark"] button.primary:hover:not(:disabled) { box-shadow: 0 0 0 1px var(--accent-2), 0 0 14px rgba(0,255,157,.25); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .brand, :root:not([data-theme]) .col-head, :root:not([data-theme]) .sec h2, :root:not([data-theme]) .empty h2 { color: var(--accent); text-transform: lowercase; }
  :root:not([data-theme]) .col-head { text-transform: lowercase; letter-spacing: .4px; font-size: 13px; }
  :root:not([data-theme]) button.primary { font-weight: 600; }
  :root:not([data-theme]) button.primary:hover:not(:disabled) { box-shadow: 0 0 0 1px var(--accent-2), 0 0 14px rgba(0,255,157,.25); }
}
.count { font-family: var(--mono); font-size: 11px; }

/* Header, schermata iniziale e componenti nello stile di anonyma.chat */
.brand { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 16px; color: var(--accent); text-transform: lowercase; letter-spacing: .1px; }
.brand img { border-radius: 7px; display: block; }
.hero { max-width: 860px; margin: 6vh auto 0; text-align: center; padding: 0 12px 40px; }
.hero-title { font-size: clamp(26px, 3.4vw, 44px); line-height: 1.18; font-weight: 700; color: var(--accent); margin: 0 0 18px; text-transform: lowercase; }
.hero-title .mono, .mono { font-family: var(--mono); color: var(--text); font-weight: 700; display: inline-block; min-width: 1ch; }
.hero-sub { max-width: 620px; margin: 0 auto 26px; color: var(--text); opacity: .86; font-size: 15px; line-height: 1.6; }
.hero-cta { display: flex; justify-content: center; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 44px; }
.btn { font-size: 15px; font-weight: 600; padding: 12px 28px; border-radius: var(--radius); border: 2px solid var(--accent); background: var(--accent); color: var(--on-accent); text-transform: lowercase; transition: transform .2s, box-shadow .2s; }
.btn:hover:not(:disabled) { background: var(--accent-2); border-color: var(--accent-2); transform: translateY(-1px); box-shadow: 0 6px 18px rgba(0,0,0,.18); }
.btn.outline { background: transparent; color: var(--accent); }
.btn.outline:hover:not(:disabled) { background: var(--sel); color: var(--accent); }
.or { color: var(--muted); font-size: 13px; }
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; text-align: left; margin-bottom: 36px; }
.step { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 18px 18px 16px; }
.step b { display: inline-flex; width: 26px; height: 26px; border-radius: 50%; align-items: center; justify-content: center; background: var(--accent); color: var(--on-accent); font-size: 13px; }
.step h3 { margin: 10px 0 6px; font-size: 16px; color: var(--accent); text-transform: lowercase; }
.step p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.pairs { font-family: var(--mono); font-size: 15px; color: var(--text); min-height: 28px; display: flex; justify-content: center; gap: 14px; align-items: center; transition: opacity .35s; }
.pairs .c { color: var(--accent); }
.pairs i { color: var(--muted); font-style: normal; }
.pairs.fade { opacity: 0; }
@media (max-width: 900px) { .steps { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .pairs, .btn { transition: none; } }

/* Tema scuro: struttura come il sito */
:root[data-theme="dark"] .tabs button { color: var(--text); font-weight: 600; text-transform: lowercase; font-size: 15px; }
:root[data-theme="dark"] .tabs button.active { color: var(--accent); }
:root[data-theme="dark"] .top { background: var(--panel-2); border-bottom-color: var(--line-soft); }
:root[data-theme="dark"] .actions button, :root[data-theme="dark"] .filebtn, :root[data-theme="dark"] .seg button, :root[data-theme="dark"] button.toggle { text-transform: lowercase; }
:root[data-theme="dark"] .actions button.primary { font-weight: 600; }
:root[data-theme="dark"] .side { background: var(--bg); }
:root[data-theme="dark"] .side .panel { margin: 12px 12px 0; background: var(--card); border: 1px solid var(--line); border-radius: 12px; }
:root[data-theme="dark"] .side .col-head { background: transparent; border-bottom: 0; padding-bottom: 0; margin-top: 8px; }
:root[data-theme="dark"] .side .entities { margin: 12px; background: var(--card); border: 1px solid var(--line); border-radius: 12px; }
:root[data-theme="dark"] .side .addform { border-top: 1px solid var(--line); margin-top: 0; }
:root[data-theme="dark"] .ent { border-bottom-color: var(--line-soft); }
:root[data-theme="dark"] .docs { background: var(--panel); }
:root[data-theme="dark"] .drop { border-radius: 12px; }
:root[data-theme="dark"] .doclist li.active { box-shadow: inset 3px 0 0 var(--accent); }
:root[data-theme="dark"] .pnum { color: #6b7280; }
:root[data-theme="dark"] .rmap .panel { background: transparent; }

@media (prefers-color-scheme: dark) {
:root:not([data-theme]) .tabs button { color: var(--text); font-weight: 600; text-transform: lowercase; font-size: 15px; }
:root:not([data-theme]) .tabs button.active { color: var(--accent); }
:root:not([data-theme]) .top { background: var(--panel-2); border-bottom-color: var(--line-soft); }
:root:not([data-theme]) .actions button, :root:not([data-theme]) .filebtn, :root:not([data-theme]) .seg button, :root:not([data-theme]) button.toggle { text-transform: lowercase; }
:root:not([data-theme]) .actions button.primary { font-weight: 600; }
:root:not([data-theme]) .side { background: var(--bg); }
:root:not([data-theme]) .side .panel { margin: 12px 12px 0; background: var(--card); border: 1px solid var(--line); border-radius: 12px; }
:root:not([data-theme]) .side .col-head { background: transparent; border-bottom: 0; padding-bottom: 0; margin-top: 8px; }
:root:not([data-theme]) .side .entities { margin: 12px; background: var(--card); border: 1px solid var(--line); border-radius: 12px; }
:root:not([data-theme]) .side .addform { border-top: 1px solid var(--line); margin-top: 0; }
:root:not([data-theme]) .ent { border-bottom-color: var(--line-soft); }
:root:not([data-theme]) .docs { background: var(--panel); }
:root:not([data-theme]) .drop { border-radius: 12px; }
:root:not([data-theme]) .doclist li.active { box-shadow: inset 3px 0 0 var(--accent); }
:root:not([data-theme]) .pnum { color: #6b7280; }
:root:not([data-theme]) .rmap .panel { background: transparent; }
}
@media (max-width: 720px) { .modal { padding: 0; } .modal-card { height: 100%; border-radius: 0; } .settings { grid-template-columns: 1fr; grid-template-rows: auto 1fr; } .snav { display: flex; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--line); padding: 0; } .snav button { width: auto; white-space: nowrap; } }
.brandtext { display: flex; flex-direction: column; line-height: 1.15; }
.brandtext b { font-weight: 700; font-size: 16px; }
.brandtext small { font-size: 10.5px; font-weight: 400; letter-spacing: .2px; color: var(--muted); text-transform: none; }

/* Temi aggiuntivi, scelti dalle impostazioni (Aspetto) */
:root[data-theme="studio"] {
  color-scheme: light;
  --bg: #f3f0e9; --panel: #fffdf9; --panel-2: #f8f5ee; --card: #fff; --hover: #f4f0e6; --sel: #ebe6d8; --sel-warm: #f7ecd0;
  --line: #d8d1c1; --line-strong: #a9a08c; --line-soft: #ebe6da; --track: #e2dccd;
  --text: #1c1f26; --muted: #5f5a4e;
  --accent: #14284b; --accent-2: #1f3d70; --on-accent: #fff; --focus: #7f98c2;
  --ok: #2f6b3f; --warn: #7a5200; --err: #7a1f2b;
  --page-shadow: 0 1px 3px rgba(40,30,10,.25); --radius: 2px;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
}
:root[data-theme="ardesia"] {
  color-scheme: dark;
  --bg: #13161b; --panel: #1a1e25; --panel-2: #161a20; --card: #1f242c; --hover: #252b34; --sel: rgba(143,176,216,.14); --sel-warm: rgba(224,180,92,.14);
  --line: #2b323c; --line-strong: #46536a; --line-soft: #222831; --track: #2b323c;
  --text: #e4e7eb; --muted: #9aa4b1;
  --accent: #8fb0d8; --accent-2: #a9c4e4; --on-accent: #0f1720; --focus: rgba(143,176,216,.55);
  --ok: #7fc79a; --warn: #e0b45c; --err: #ef8f8f;
  --page-shadow: 0 0 0 1px #2b323c, 0 6px 22px rgba(0,0,0,.55); --radius: 4px;
}
:root[data-theme="carta"] {
  color-scheme: light;
  --bg: #eeebe5; --panel: #faf8f4; --panel-2: #f5f2ec; --card: #fff; --hover: #f1eee8; --sel: #e2ece7; --sel-warm: #faf0d4;
  --line: #ddd8ce; --line-strong: #b3ac9e; --line-soft: #ece8df; --track: #e4dfd5;
  --text: #24272b; --muted: #636a70;
  --accent: #2d5a4c; --accent-2: #23483d; --on-accent: #fff; --focus: #8fbcad;
  --ok: #2d6a45; --warn: #85570a; --err: #9b2c2c;
  --page-shadow: 0 1px 4px rgba(30,25,15,.2); --radius: 6px;
}

/* Studio: impostazione istituzionale, carta avorio, blu notte, caratteri con grazie nei titoli */
:root[data-theme="studio"] .top { background: var(--panel); border-bottom: 2px solid var(--accent); }
:root[data-theme="studio"] .brand { text-transform: none; color: var(--accent); }
:root[data-theme="studio"] .brand img { border-radius: 2px; }
:root[data-theme="studio"] .brandtext b, :root[data-theme="studio"] .col-head, :root[data-theme="studio"] .sec h2, :root[data-theme="studio"] .empty h2, :root[data-theme="studio"] .modal-head h2, :root[data-theme="studio"] .hero-title { font-family: var(--serif); text-transform: none; font-weight: 600; }
:root[data-theme="studio"] .brandtext b { font-size: 17px; letter-spacing: .1px; }
:root[data-theme="studio"] .col-head { text-transform: uppercase; letter-spacing: .9px; font-size: 11.5px; font-weight: 600; color: var(--accent); background: var(--panel-2); }
:root[data-theme="studio"] .tabs button.active { border-bottom-width: 3px; color: var(--accent); font-weight: 600; }
:root[data-theme="studio"] button { border-color: var(--line-strong); }
:root[data-theme="studio"] button.primary { border-color: var(--accent); letter-spacing: .2px; }
:root[data-theme="studio"] button.danger { color: var(--err); }
:root[data-theme="studio"] .chip { border-radius: 2px; }
:root[data-theme="studio"] .doclist li.active { box-shadow: inset 3px 0 0 var(--err); }
:root[data-theme="studio"] .snav button.active { box-shadow: inset 3px 0 0 var(--err); }
:root[data-theme="studio"] .sec h2 { font-size: 19px; color: var(--accent); }
:root[data-theme="studio"] .textview { font-family: var(--serif); font-size: 14px; line-height: 1.7; }
:root[data-theme="studio"] .modal-card { box-shadow: 0 10px 34px rgba(30,25,10,.32); }

/* Ardesia: variante scura sobria, grigio-blu e azzurro polvere */
:root[data-theme="ardesia"] .top { background: var(--panel-2); }
:root[data-theme="ardesia"] .brand { text-transform: none; }
:root[data-theme="ardesia"] .col-head { font-size: 11.5px; letter-spacing: .8px; }
:root[data-theme="ardesia"] button.primary { font-weight: 600; }
:root[data-theme="ardesia"] .drop { border-radius: 8px; }

/* Carta: variante chiara calda, verde salvia, angoli morbidi */
:root[data-theme="carta"] .top { background: var(--panel); }
:root[data-theme="carta"] .brand { text-transform: none; }
:root[data-theme="carta"] .col-head { letter-spacing: .7px; }
:root[data-theme="carta"] .side .panel, :root[data-theme="carta"] .side .entities { margin: 12px; background: var(--card); border: 1px solid var(--line); border-radius: 10px; }
:root[data-theme="carta"] .side .panel { margin-bottom: 0; }
:root[data-theme="carta"] .side .col-head { background: transparent; border-bottom: 0; padding-bottom: 0; margin-top: 8px; }
:root[data-theme="carta"] .side { background: var(--bg); }
:root[data-theme="carta"] .side .addform { border-top: 1px solid var(--line); margin-top: 0; }
:root[data-theme="carta"] .drop { border-radius: 10px; }
:root[data-theme="studio"] .tabs button { border-color: transparent; }
:root[data-theme="studio"] .tabs button.active { border-bottom-color: var(--accent); }
:root[data-theme="studio"] .iconbtn { border-color: transparent; }

/* Icone SVG (sprite in index.html) */
.i { width: 1.15em; height: 1.15em; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.i.xl { width: 26px; height: 26px; stroke-width: 1.5; color: var(--accent); margin-bottom: 4px; }
button:has(> .i), .btn:has(> .i), .filebtn:has(> .i) { display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.tabs button:has(> .i) { gap: 8px; }
.tabs button .i { opacity: .8; }
.tabs button.active .i { opacity: 1; color: var(--accent); }
.ch { display: inline-flex; align-items: center; gap: 8px; }
.col-head .i { width: 15px; height: 15px; color: var(--accent); }
.drop { align-items: center; }
.step b .i { width: 15px; height: 15px; stroke-width: 2; }
.step b { width: 30px; height: 30px; }
.seg button .i, .toolbar .toggle .i { width: 1.05em; height: 1.05em; }
.snav button { display: flex; align-items: center; gap: 10px; }
.snav button .i { color: var(--muted); }
.snav button.active .i { color: var(--accent); }
.iconbtn .i { width: 18px; height: 18px; }
.tag.warn { border-color: var(--warn); color: var(--warn); }

/* Scheda Cartella e uso avanzato */
.folder { flex: 1; min-height: 0; overflow-y: auto; padding: 28px 16px 48px; }
.fbox { max-width: 760px; margin: 0 auto; }
.fbox h2 { margin: 0 0 8px; font-size: 18px; }
.fbox input[type=text], .fbox input:not([type]) { margin-bottom: 12px; font-family: var(--mono); font-size: 12.5px; }
.fpaths { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 8px; }
.fpaths li { display: grid; gap: 2px; }
code { font: 12px var(--mono); background: var(--sel); padding: 1px 5px; border-radius: 3px; }
.fpaths code { display: block; padding: 6px 8px; overflow-wrap: anywhere; }
.code { margin: 0; padding: 10px 12px; background: var(--panel-2); border: 1px solid var(--line); border-radius: var(--radius); font: 12px/1.55 var(--mono); overflow-x: auto; white-space: pre; width: 100%; }
.fbox .tbl { margin-top: 12px; width: 100%; border-collapse: collapse; }
.fbox .tbl td { padding: 6px 8px; border-bottom: 1px solid var(--line-soft); vertical-align: top; }
.field > div { min-width: 0; }
.snav button { justify-content: flex-start; text-align: left; }
.dlg-back { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(10, 14, 20, .55); }
.dlg-back[hidden] { display: none; }
.dlg { width: min(420px, 100%); padding: 20px; background: var(--panel); color: var(--text); border: 1px solid var(--line-strong); border-radius: var(--radius); box-shadow: 0 12px 40px rgba(0,0,0,.35); }
.dlg p { margin: 0 0 18px; line-height: 1.5; }
.dlg-actions { display: flex; justify-content: flex-end; gap: 8px; }
/* Blob che compaiono durante l'analisi: dissolvenza breve, disattivata se si preferisce meno movimento */
@keyframes blobin { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: none; } }
.rect.ent.new { animation: blobin .4s ease-out; }
@media (prefers-reduced-motion: reduce) { .rect.ent.new { animation: none; } }
.wiz { width: min(600px, 100%); max-height: 100%; overflow-y: auto; }
.wiz h2 { margin: 0 0 6px; font-size: 17px; }
.wiz p { margin: 0 0 12px; color: var(--muted); line-height: 1.5; }
.wiz-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; color: var(--muted); font-size: 12px; }
.wiz-dots { display: flex; gap: 6px; } .wiz-dots i { width: 8px; height: 8px; border-radius: 50%; background: var(--line-strong); } .wiz-dots i.on { background: var(--accent); }
.wiz-row { display: grid; grid-template-columns: 1fr auto auto; gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); }
.wiz-row small { display: block; color: var(--muted); font-size: 12px; margin-top: 2px; }
.wiz-dir { display: flex; gap: 8px; margin-top: 10px; } .wiz-dir input { flex: 1; min-width: 0; }
.wiz-msg { min-height: 18px; margin: 8px 0 0; font-size: 12px; }
.wiz-warn { padding: 8px 10px; border: 1px solid var(--warn, #8a5a00); border-radius: var(--radius); color: var(--warn, #8a5a00); }
.wiz-hint { font-size: 12px; margin-top: 10px; }
.wiz-sw { display: flex; gap: 10px; align-items: center; margin: 14px 0; } .wiz-sw .sw.sel { outline: 2px solid var(--accent); outline-offset: 2px; }
.wiz-row1 { display: flex; gap: 12px; align-items: center; }
.wiz-sample { margin: 0 0 14px; padding: 10px; white-space: pre-wrap; font: 12px/1.5 var(--mono); background: var(--bg); border: 1px solid var(--line); border-radius: var(--radius); }
.fine { margin: 10px 0 0; font-size: 11.5px; line-height: 1.4; color: var(--muted); }
.dlg-check { display: flex; gap: 8px; align-items: center; margin: 0 0 16px; font-weight: 600; } .dlg-check[hidden] { display: none; } .dlg-check input { width: 16px; height: 16px; }
.dlg button:disabled { opacity: .5; cursor: not-allowed; }
#notes li.warn { color: var(--warn); font-weight: 600; }

.privacy-strip { position: sticky; bottom: 0; z-index: 40; display: flex; flex-shrink: 0; align-items: center; gap: 10px 20px; padding: 8px 20px; border-top: 1px solid var(--line); background: var(--bg); color: var(--muted); font: 11.5px/1.5 var(--font); flex-wrap: wrap; }
.privacy-strip span { flex: 1; min-width: 220px; }
.privacy-strip strong { font-weight: 500; color: var(--muted); }
.privacy-strip a { color: var(--accent-2); white-space: nowrap; text-underline-offset: 3px; }
.privacy-strip small { color: var(--muted); white-space: nowrap; }
@media (max-width: 720px) { .privacy-strip { padding: 8px 12px; gap: 6px 14px; } .privacy-strip span { flex-basis: 100%; } }

.center { position: relative; }
.document-loader { position: absolute; inset: 0; z-index: 30; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 32px; background: var(--panel); text-align: center; gap: 14px; }
.document-loader h2 { font-size: 19px; margin: 0; }
.document-loader p { margin: 0; max-width: 480px; }
.loader-patience { color: var(--muted); font-size: 14px; }
.loader-tip { color: var(--muted); font-size: 14px; min-height: 48px; }
.document-spinner { display: block; width: 44px; height: 44px; color: var(--accent); animation: document-spin .9s linear infinite; }
@keyframes document-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .document-spinner { animation: none; } }
.page-wait { position: absolute; inset: 0; display: grid; place-content: center; padding: 24px; text-align: center; color: #53616d; background: #f4f6f8; font-size: 14px; cursor: pointer; }
.log-content { max-height: 50vh; overflow: auto; font: 12px/1.5 var(--mono); white-space: pre-wrap; overflow-wrap: anywhere; padding: 16px; background: var(--panel-2); border: 1px solid var(--line); }

/* Spiegazione del processo: colori del tema, nessuna risorsa esterna. */
.wiz { max-width: 720px; }
.wiz-explanation h2 { margin-bottom: 10px; }
.privacy-process { width: 100%; height: auto; display: block; margin: 16px 0; }
.process-boundary { fill: var(--bg); stroke: var(--line); }
.process-caption { fill: var(--muted); font: 11px var(--font); letter-spacing: 1px; }
.process-track { fill: none; stroke: var(--line-strong); stroke-width: 2; stroke-dasharray: 4 5; }
.process-node { fill: var(--panel); stroke: var(--accent-2); stroke-width: 1.6; }
.process-node path { fill: none; }
.process-node .process-blob { fill: var(--accent-2); stroke: none; }
.process-label { fill: var(--text); text-anchor: middle; font: 12px var(--font); }
.process-dot { fill: var(--accent-2); animation: process-travel 8s ease-in-out infinite; }
@keyframes process-travel { 0%,10% { transform: translateX(0); opacity: 0; } 15% { opacity: 1; } 33% { transform: translateX(138px); } 56% { transform: translateX(277px); } 80% { transform: translateX(415px); opacity: 1; } 90%,100% { transform: translateX(415px); opacity: 0; } }
.process-steps { padding-left: 20px; margin: 12px 0; }
.process-steps li { margin: 9px 0; font-size: 13px; line-height: 1.55; }
.process-storage { border-top: 1px solid var(--line); padding-top: 12px; font-size: 13px; }
.process-storage summary { cursor: pointer; color: var(--accent-2); }
.process-caution { color: var(--muted); font-size: 12px; line-height: 1.5; }
.wiz-cache-note { padding: 10px 12px; background: var(--bg); border-left: 2px solid var(--accent-2); font-size: 13px; }
@media (prefers-reduced-motion: reduce) { .process-dot { animation: none; opacity: 0; } }

.web-nav { display: flex; align-items: center; gap: 4px; }
html:not([data-web]) .web-nav { display: none; }
.privacy-strip button.link { font-size: inherit; white-space: nowrap; }

/* Bordo dei modal leggibile in tutti i temi. */
.modal-card, .dlg.wiz { border: 2px solid #fff; box-shadow: 0 0 0 1px var(--line-strong), 0 20px 60px rgba(0,0,0,.42); }
.theme-toggle { display: flex; align-items: center; gap: 6px; white-space: nowrap; }

/* Documenti e report: stessa tipografia dell'interfaccia, lettura senza download. */
.doc-footer {display:none;border-top:1px solid var(--line);padding:10px 14px;background:var(--panel);flex-shrink:0;}
html[data-web] .doc-footer {display:block;}
.doc-footer .web-nav {justify-content:center;gap:22px;}
.document-modal {width:min(880px,calc(100vw - 32px));max-height:calc(100vh - 40px);padding:0;border:2px solid #fff;border-radius:12px;background:var(--panel);color:var(--text);box-shadow:0 0 0 1px var(--line-strong),0 24px 80px #0006;}
.document-modal::backdrop {background:#0009;}
.document-modal[open] {display:flex;flex-direction:column;}
.document-modal>header,.document-modal>footer {padding:16px 24px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);flex-shrink:0;}
.document-modal>header h1 {font:600 20px/1.3 var(--font);margin:0;flex:1;}
.document-modal>footer {border-bottom:0;border-top:1px solid var(--line);justify-content:flex-end;flex-wrap:wrap;}
.document-modal-body {padding:22px 28px;overflow:auto;font:15px/1.65 var(--font);}
.document-modal-body h1 {font-size:24px;margin:0 0 8px;}
.document-modal-body h2 {font-size:17px;margin:28px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line);}
.document-modal-body p {margin:5px 0;}
.document-modal-body .sheet-detail {padding-left:18px;color:var(--muted);}
.document-modal-body .sheet-private {color:var(--err);font-weight:600;}
.document-modal-body table {width:100%;border-collapse:collapse;}
.document-modal-body td {padding:9px 12px 9px 0;border-bottom:1px solid var(--line);vertical-align:top;}
.document-modal-body td:first-child {width:35%;color:var(--muted);}

/* Codici sui blob: interruttore con stato visibile e controllo nativo da tastiera. */
.code-switch { display: flex; align-items: center; gap: 10px; cursor: pointer; position: relative; width: fit-content; }
.code-switch input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; z-index: 1; cursor: pointer; }
.code-switch-track { width: 36px; height: 22px; border-radius: 12px; background: var(--track); border: 1px solid var(--line-strong); flex: none; position: relative; }
.code-switch-track::after { content: ""; position: absolute; width: 14px; height: 14px; border-radius: 50%; background: var(--muted); top: 3px; left: 3px; }
.code-switch input:checked + .code-switch-track { background: var(--accent); border-color: var(--accent); }
.code-switch input:checked + .code-switch-track::after { left: 17px; background: var(--on-accent); }
.code-switch input:focus-visible + .code-switch-track { outline: 2px solid var(--focus); outline-offset: 3px; }
.code-switch-state { min-width: 24px; font-size: 12px; color: var(--muted); }
.code-switch-state::after { content: "Off"; }
.code-switch input:checked ~ .code-switch-state::after { content: "On"; }

.language-switch { width: auto; min-width: 96px; font-size: 13px; padding: 6px 8px; }
.share-dialog{width:min(540px,calc(100vw - 32px));max-height:85vh;overflow:auto;background:var(--panel,#0d0d12);color:var(--text,#e6e6e6);border:1px solid var(--border,#41414c);border-radius:14px;padding:28px}.share-dialog::backdrop{background:#0009}.share-close{float:right}.share-services{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}.share-services button{flex:1 0 125px;padding:12px}.share-status{min-height:3em;line-height:1.6}.share-dialog .muted{font-size:13px;line-height:1.6}
#original-info{font-size:12px;color:var(--muted);max-width:240px}#export-ocr{font-size:12px}.overlay[hidden]{display:none!important}

/* Comandi del flusso documento, codici, risposta AI. */
#export-mode { flex:1; min-width:0; }
#export-help { margin:8px 0 12px; line-height:1.5; }
.restore-help { border-bottom:1px solid var(--line); }
.restore-help h2 { margin:0 0 8px; font-size:17px; }
.restore-help p { margin:0; max-width:76ch; line-height:1.5; color:var(--muted); }
.wiz-model { padding-bottom:12px; margin-bottom:16px; border-bottom:1px solid var(--line); }
.wiz-model h2 { margin:0 0 8px; }
.wiz-model progress { width:100%; height:12px; accent-color:var(--accent); }
.wiz-model .wiz-row { grid-template-columns:minmax(0,1fr) auto auto; }
@media(max-width:600px) { .wiz-model .wiz-row { grid-template-columns:minmax(0,1fr) auto; } .wiz-model .wiz-row button { grid-column:1 / -1; } }

.side .actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.side .actions button { min-width:0; white-space:normal; }
#export-codes-txt { grid-column:1 / -1; }

/* Decifra: chiave visibile prima del singolo documento, anche sul telefono. */
.restore-file-note { margin: 0; padding: 8px 14px; color: var(--muted); font-size: 13px; line-height: 1.5; }
#map-source { overflow-wrap: anywhere; }
#view-restore .toolbar { flex-wrap: wrap; }
#view-restore .rwork { overflow-y: auto; }
@media (max-width: 800px) {
  .restore { display: flex; flex-direction: column; overflow-y: auto; }
  .restore .rmap { flex: none; overflow: visible; border-right: 0; border-bottom: 1px solid var(--line); }
  .restore .rwork { flex: none; overflow: visible; }
  .restore .rpanes { grid-template-columns: 1fr; }
  .restore .rpanes textarea { min-height: 180px; font-size: 16px; }
  .restore .row2 { flex-wrap: wrap; gap: 8px; }
}

.model-hash { display: block; overflow-wrap: anywhere; white-space: normal; font-size: 11px; }

.beta-label { font-size: 12px; color: var(--muted); white-space: nowrap; }

#map-pass { width: 100%; }
@media (max-width: 820px) { .restore .maplist { max-height: 120px; overflow-y: auto; } }

#mobile-example { flex: none; padding: 8px 14px; border-bottom: 1px solid var(--line); font-size: 13px; }
body:has(#view-restore:not([hidden])) #mobile-example, body:has(#view-restore:not([hidden])) #mobile-intro, body:has(#view-restore:not([hidden])) #mobile-bar { display: none; }
@media (max-width: 820px) { body:has(#view-restore:not([hidden])) { padding-bottom: 0; } }
