/* ============================================================
   modules.css - viste specifiche: attivita, anagrafiche, documenti,
   configurazione, pagina dipendenti, ricevuta, anteprima Excel
   ============================================================ */

/* timeline e storico */
.gs-timeline { display: grid; gap: 0; }
.gs-tl-item { display: grid; grid-template-columns: 116px minmax(0, 1fr) auto; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--gs-border); align-items: start; }
.gs-tl-item:last-child { border-bottom: 0; }
.gs-tl-date { font-size: 12.5px; font-variant-numeric: tabular-nums; color: var(--gs-muted); }
.gs-tl-body { min-width: 0; }
.gs-tl-body b { font-size: 13px; }
.gs-tl-body p { font-size: 12.5px; color: var(--gs-muted); margin-top: 3px; white-space: pre-wrap; overflow-wrap: anywhere; }
.gs-tl-meta { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }

/* righe scheda / elenco contestuale */
.gs-item { display: flex; gap: 12px; align-items: flex-start; padding: 14px var(--gs-panel-pad); border-bottom: 1px solid var(--gs-border); }
.gs-item:last-child { border-bottom: 0; }
.gs-item .gs-iconbox { width: 34px; height: 34px; border-radius: var(--gs-radius-sm); background: var(--gs-tint); color: var(--gs-accent); display: grid; place-items: center; flex: none; }
.gs-item-main { min-width: 0; flex: 1; }
.gs-item-main b { font-size: 13.2px; }
.gs-item-main p { font-size: 12px; color: var(--gs-muted); margin-top: 3px; line-height: 1.5; }
.gs-item-side { display: grid; gap: 6px; justify-items: end; text-align: right; }
.gs-item-actions { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }

/* definizioni etichetta/valore nelle schede */
.gs-kv { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: 14px 18px; }
.gs-kv div { min-width: 0; }
.gs-kv span { display: block; font-size: 11px; letter-spacing: .5px; text-transform: uppercase; color: var(--gs-muted); margin-bottom: 3px; }
.gs-kv b { font-size: 13.5px; font-weight: 600; overflow-wrap: anywhere; }
.gs-kv b[data-empty="true"] { color: var(--gs-muted); font-weight: 400; font-style: italic; }

/* note libere ubiquitarie (spec 4.1) */
.gs-note { display: grid; gap: 8px; }
.gs-note textarea { min-height: 92px; }
.gs-note-meta { font-size: 11.5px; color: var(--gs-muted); display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.gs-note-hist { border-left: 2px solid var(--gs-border); padding-left: 11px; display: grid; gap: 8px; }
.gs-note-hist p { font-size: 12px; color: var(--gs-muted); white-space: pre-wrap; overflow-wrap: anywhere; }

/* checklist */
.gs-check-list { display: grid; gap: 0; }
.gs-check-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(126px, auto) minmax(150px, 250px); gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--gs-border); align-items: start; }
.gs-check-row:last-child { border-bottom: 0; }
.gs-check-row .gs-check-label b { font-size: 13px; }
.gs-check-row .gs-check-label p { font-size: 11.8px; color: var(--gs-muted); margin-top: 3px; }
.gs-check-row :is(input):not([type="checkbox"]):not([type="radio"]) { min-height: 32px; font: inherit; font-size: 12.2px; padding: 5px 8px; border-radius: var(--gs-radius-sm); border: 1px solid var(--gs-border); background: var(--gs-paper); color: inherit; width: 100%; }
.gs-check-row select { min-height: 32px; font: inherit; font-size: 12.5px; padding: 5px 8px; border-radius: var(--gs-radius-sm); border: 1px solid var(--gs-border); background: var(--gs-paper); color: inherit; }
.gs-matrix { display: grid; grid-template-columns: minmax(0, 1fr) repeat(3, minmax(84px, auto)); gap: 8px; align-items: center; font-size: 12.5px; }
.gs-matrix[data-head="true"] { font-size: 11px; text-transform: uppercase; letter-spacing: .6px; color: var(--gs-muted); font-weight: 600; }
.gs-progress { height: 7px; border-radius: 99px; background: var(--gs-soft); overflow: hidden; min-width: 90px; }
.gs-progress i { display: block; height: 100%; background: var(--gs-accent); }

/* diff (modelli e cambio mansioni, spec 4/5) */
.gs-diff-row { display: grid; grid-template-columns: 74px minmax(0, 1fr) auto; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--gs-border); align-items: start; font-size: 12.8px; }
.gs-diff-row:last-child { border-bottom: 0; }
.gs-diff-op { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; border-radius: 5px; padding: 3px 6px; text-align: center; }
.gs-diff-op[data-op="add"] { background: var(--gs-green-bg); color: var(--gs-green); }
.gs-diff-op[data-op="keep"] { background: var(--gs-soft); color: var(--gs-muted); }
.gs-diff-op[data-op="drop"] { background: var(--gs-red-bg); color: var(--gs-red); }
.gs-diff-op[data-op="change"] { background: var(--gs-amber-bg); color: var(--gs-amber); }

/* anteprima Excel in sola lettura (spec 8.3) */
.gs-sheet-bar { display: flex; gap: 6px; flex-wrap: wrap; padding: 10px var(--gs-panel-pad); border-bottom: 1px solid var(--gs-border); background: var(--gs-soft); align-items: center; }
.gs-sheet { width: 100%; border-collapse: collapse; font-size: 12px; font-family: var(--gs-mono); }
.gs-sheet th, .gs-sheet td { border: 1px solid var(--gs-border); padding: 6px 9px; text-align: left; white-space: nowrap; max-width: 340px; overflow: hidden; text-overflow: ellipsis; background: var(--gs-paper); }
.gs-sheet th { background: var(--gs-soft); position: sticky; top: 0; text-transform: none; letter-spacing: 0; font-size: 11.5px; }
.gs-sheet tr td:first-child, .gs-sheet tr th:first-child { position: sticky; left: 0; z-index: 1; }
.gs-sheet td[data-kind="formula"] { color: var(--gs-purple); }
.gs-sheet td[data-kind="missing"] { color: var(--gs-muted); font-style: italic; }
.gs-sheet td[data-kind="text"] { font-family: var(--gs-font); }
.gs-readonly-pill { display: inline-flex; gap: 6px; align-items: center; font-size: 11.5px; color: var(--gs-amber); background: var(--gs-amber-bg); padding: 4px 9px; border-radius: 999px; }

/* documenti */
.gs-folders { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 11px; padding: var(--gs-panel-pad); }
.gs-folder { display: flex; gap: 10px; align-items: center; border: 1px solid var(--gs-border); border-radius: var(--gs-radius-sm); padding: 12px; background: var(--gs-soft); }
.gs-folder button { flex: 1; text-align: left; border: 0; background: none; cursor: pointer; font: inherit; display: flex; gap: 9px; align-items: center; min-width: 0; }
.gs-crumb-path { display: flex; gap: 5px; align-items: center; flex-wrap: wrap; font-size: 12px; color: var(--gs-muted); padding: 12px var(--gs-panel-pad) 0; }
.gs-crumb-path button { border: 0; background: none; color: inherit; font: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; padding: 0; }
.gs-rev { display: flex; gap: 11px; align-items: flex-start; padding: 12px 0; border-bottom: 1px solid var(--gs-border); }
.gs-rev:last-child { border-bottom: 0; }
.gs-rev-num { min-width: 44px; font-size: 11.5px; font-weight: 700; color: var(--gs-accent); }

/* configurazione */
.gs-cfg-nav { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 16px; }
.gs-cfg-list { display: grid; }
.gs-cfg-row { display: flex; gap: 12px; align-items: center; padding: 13px var(--gs-panel-pad); border-bottom: 1px solid var(--gs-border); flex-wrap: wrap; }
.gs-cfg-row:last-child { border-bottom: 0; }
.gs-cfg-row .gs-cfg-main { flex: 1; min-width: 200px; }
.gs-cfg-row .gs-cfg-main b { font-size: 13px; }
.gs-cfg-row .gs-cfg-main p { font-size: 11.8px; color: var(--gs-muted); margin-top: 3px; }
.gs-swatches { display: flex; gap: 6px; flex-wrap: wrap; }

/* pagina dipendenti */
.gs-worker { max-width: 640px; margin: 0 auto; display: grid; gap: 16px; }
.gs-worker-hero { background: var(--gs-side); color: var(--gs-side-text); border-radius: var(--gs-radius); padding: 22px; display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.gs-worker-hero img { height: 26px; }
.gs-worker-hero p { color: var(--gs-side-muted); font-size: 12.5px; margin-top: 4px; }
.gs-poster { background: #fffcf5; color: #24231e; border: 1px solid #ddd4c3; border-radius: var(--gs-radius); padding: 24px; text-align: center; }
.gs-poster canvas, .gs-poster img { width: 168px; height: 168px; display: block; margin: 16px auto; }
.gs-poster h2 { font-size: 21px; margin-bottom: 4px; }
.gs-poster p { font-size: 12.5px; color: #6c6557; line-height: 1.6; }
.gs-clock { font-variant-numeric: tabular-nums; font-size: 12px; }
.gs-avail { display: flex; gap: 10px; align-items: center; padding: 13px 15px; border-radius: var(--gs-radius-sm); font-size: 12.8px; }
.gs-avail[data-state="ok"] { background: var(--gs-green-bg); color: var(--gs-green); }
.gs-avail[data-state="wait"] { background: var(--gs-amber-bg); color: var(--gs-amber); }
.gs-avail[data-state="off"] { background: var(--gs-red-bg); color: var(--gs-red); }
.gs-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)); gap: 11px; }
.gs-photo-card { border: 1px solid var(--gs-border); border-radius: var(--gs-radius-sm); overflow: hidden; background: var(--gs-soft); }
.gs-photo-card .gs-photo-ph { height: 92px; display: grid; place-items: center; background: linear-gradient(135deg, var(--gs-tint), var(--gs-soft)); color: var(--gs-accent); }
.gs-photo-card figcaption { padding: 9px 11px; font-size: 11.5px; color: var(--gs-muted); }
.gs-success { display: grid; gap: 12px; justify-items: center; text-align: center; padding: 26px 6px; }
.gs-success .gs-mark { width: 58px; height: 58px; border-radius: 50%; background: var(--gs-tint); color: var(--gs-accent); display: grid; place-items: center; }
.gs-success .gs-mark svg { width: 28px; height: 28px; }

/* ricevuta (sempre stampa chiara, spec 12) */
.gs-paper { background: #fff; color: #1c2126; border: 1px solid #d9dee1; border-radius: var(--gs-radius-sm); padding: 26px; font-size: 12.8px; line-height: 1.55; }
.gs-paper-head { display: flex; align-items: center; gap: 12px; border-bottom: 1px solid #e3e7ea; padding-bottom: 14px; margin-bottom: 16px; flex-wrap: wrap; }
.gs-paper-head img { height: 24px; }
.gs-paper-head span { margin-left: auto; font-size: 11.5px; color: #6b7680; text-align: right; }
.gs-paper h2 { font-size: 18px; margin-bottom: 14px; }
.gs-paper table { width: 100%; border-collapse: collapse; margin: 12px 0; font-size: 12.5px; }
.gs-paper th { position: static; background: #f4f6f7; color: #5b6670; padding: 8px 10px; border: 1px solid #e3e7ea; font-size: 11px; text-transform: uppercase; letter-spacing: .5px; }
.gs-paper td { padding: 8px 10px; border: 1px solid #e3e7ea; color: #1c2126; }
.gs-paper td small { color: #6b7680; }
.gs-sign { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 22px; margin-top: 26px; }
.gs-sign div { border-top: 1px solid #9aa4ac; padding-top: 7px; font-size: 11.5px; color: #5b6670; }
.gs-paper .gs-fine { font-size: 11px; color: #6b7680; margin-top: 18px; line-height: 1.55; }
.gs-firm-status { display: flex; gap: 9px; align-items: center; flex-wrap: wrap; }

/* guida rapida / aiuti di sezione */
.gs-help-list { display: grid; gap: 11px; }
.gs-help-list dt { font-weight: 600; font-size: 12.8px; }
.gs-help-list dd { font-size: 12.3px; color: var(--gs-muted); line-height: 1.55; margin: 3px 0 0; }
.gs-legend { display: flex; gap: 8px; flex-wrap: wrap; }
.gs-demo-strip { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; font-size: 11.5px; color: var(--gs-muted); padding: 10px var(--gs-panel-pad); border-bottom: 1px solid var(--gs-border); }
.gs-demo-strip .gs-badge { font-weight: 500; }

/* ---------- responsive ---------- */
@media (max-width: 1080px) {
  #gs-app { --gs-side-w: 190px; }
  #gs-content { padding: 22px 20px 30px; }
  .gs-split { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
  #gs-app { display: block; min-height: 0; }
  .gs-side { position: static; height: auto; padding: 14px 14px 12px; border-right: 0; border-bottom: 1px solid var(--gs-border); }
  .gs-brand { padding: 0 0 12px; }
  .gs-picker, .gs-nav-label, .gs-side-hint { display: none; }
  .gs-nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
  .gs-navgroup + .gs-navgroup { margin-top: 4px; }
  .gs-nav button { flex-direction: column; gap: 4px; text-align: center; font-size: 11px; padding: 9px 4px; min-height: 54px; }
  .gs-nav button[aria-current="page"] { box-shadow: inset 0 -3px var(--gs-accent); }
  .gs-nav .gs-count { position: absolute; margin: 0; transform: translate(16px, -8px); }
  .gs-nav button { position: relative; }
  .gs-top { height: auto; min-height: 58px; padding: 10px 16px; flex-wrap: wrap; }
  .gs-search { min-width: 0; flex: 1 1 160px; }
  #gs-content { padding: 20px 16px 28px; }
  .gs-foot { padding: 14px 16px 22px; }
  #gs-app h1 { font-size: 24px; }
  .gs-tl-item { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .gs-check-row { grid-template-columns: minmax(0, 1fr); }
  .gs-item-side { justify-items: start; text-align: left; }
}
@media (max-width: 620px) {
  .gs-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gs-pagehead .gs-actions { margin-left: 0; width: 100%; }
  .gs-btn { min-height: 42px; }
  .gs-seg button, .gs-chip { min-height: 40px; }
  #gs-app th, #gs-app td { padding-left: 11px; padding-right: 11px; }
  .gs-matrix { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .gs-matrix[data-head="true"] { display: none; }
  .gs-dialog-foot { flex-direction: column-reverse; align-items: stretch; }
  .gs-dialog-foot .gs-left { margin: 0; }
  .gs-dialog-foot .gs-btn { width: 100%; }
  .gs-diff-row { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 380px) {
  #gs-content { padding: 16px 11px 24px; }
  .gs-panel-body, .gs-tool, .gs-paginate, .gs-sheet-bar { padding-left: 12px; padding-right: 12px; }
  #gs-app h1 { font-size: 21px; letter-spacing: -.4px; }
  .gs-stats { gap: 8px; }
  .gs-stat { padding: 12px; }
  .gs-stat strong { font-size: 22px; }
}
