﻿/* ==========================================================================
   CyberSic: quello che le pagine del registro dei rischi hanno in piu' rispetto
   agli stili comuni della famiglia (stile.css, tpc-dialoghi.css), che restano
   la base. I colori delle fasce di rischio sono quelli del foglio HTML da cui il
   programma e' nato (verde / ambra / rosso), per non cambiare il significato
   dei colori a chi lo usava.
   ========================================================================== */
:root {
  --cs-basso: #2e7d32;  --cs-basso-bg: #e8f5e9;
  --cs-medio: #b26a00;  --cs-medio-bg: #fff4e0;
  --cs-alto:  #c62828;  --cs-alto-bg:  #fdecea;
  --cs-na:    #6c757d;  --cs-na-bg:    #eef0f3;
}

/* pillola della fascia di rischio */
.cs-pill { display: inline-block; padding: 1px 9px; border-radius: 10px; font-size: .72rem; font-weight: 700; white-space: nowrap; }
.cs-pill.basso { color: var(--cs-basso); background: var(--cs-basso-bg); }
.cs-pill.medio { color: var(--cs-medio); background: var(--cs-medio-bg); }
.cs-pill.alto  { color: var(--cs-alto);  background: var(--cs-alto-bg); }
.cs-pill.na    { color: var(--cs-na);    background: var(--cs-na-bg); }
.cs-badge { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: .72rem; background: var(--tpc-bg-soft); border: 1px solid var(--tpc-bd); color: var(--tpc-tx); white-space: nowrap; }
.cs-badge b { font-weight: 700; }

/* cruscotto: riquadri dei numeri */
.cs-kpi-row { display: flex; flex-wrap: wrap; gap: 10px; margin: 4px 0 10px; }
.cs-kpi { flex: 1 1 130px; background: #fff; border: 1px solid var(--tpc-bd); border-radius: 8px; padding: 8px 12px; }
.cs-kpi .n { font-size: 1.45rem; font-weight: 700; line-height: 1.2; color: var(--tpc-tx); }
.cs-kpi .l { font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; color: var(--tpc-txm); }
.cs-kpi.alto .n { color: var(--cs-alto); }
.cs-kpi.medio .n { color: var(--cs-medio); }
.cs-kpi.basso .n { color: var(--cs-basso); }

/* le sezioni del registro nella barra in alto */
.navbar .cs-sezioni .nav-link { padding: .5rem .55rem; font-size: .82rem; }

/* area di lavoro */
.cs-area { margin-top: 48px; }
.cs-intro { font-size: .8rem; color: var(--tpc-txm); margin: 0 0 8px; }
.cs-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 8px; }
.cs-toolbar .spazio { flex: 1; }
.cs-toolbar .form-control-sm { width: auto; display: inline-block !important; }

/* schede apribili (come <details> del foglio HTML) */
.cs-card { border: 1px solid var(--tpc-bd); border-radius: 8px; background: #fff; margin-bottom: 6px; }
.cs-card > .cs-testa { display: flex; align-items: center; gap: 8px; padding: 6px 10px; cursor: pointer; user-select: none; }
.cs-card > .cs-testa:hover { background: var(--tpc-bg-soft); }
.cs-card > .cs-testa .fr { color: var(--tpc-txm); width: 12px; transition: transform .12s; }
.cs-card.aperta > .cs-testa .fr { transform: rotate(90deg); }
.cs-card > .cs-testa .tit { flex: 1; min-width: 0; }
.cs-card > .cs-testa .tit .t1 { font-size: .86rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cs-card > .cs-testa .tit .t2 { font-size: .72rem; color: var(--tpc-txm); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cs-card > .cs-corpo { display: none; padding: 8px 12px 12px; border-top: 1px solid var(--tpc-bd); }
.cs-card.aperta > .cs-corpo { display: block; }
.cs-corpo .form-group label, .cs-org .form-group label { text-transform: uppercase; font-size: .62rem; font-weight: 700; letter-spacing: .04em; color: var(--tpc-txm); }
.cs-corpo fieldset { border: 1px solid var(--tpc-bd); border-radius: 6px; padding: 4px 10px 8px; margin: 8px 0; }
.cs-corpo legend { font-size: .7rem; font-weight: 700; color: var(--tpc-txm); width: auto; padding: 0 4px; margin: 0; }
.cs-gruppo { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--tpc-ac); margin: 14px 0 6px; }
.cs-gruppo .conta { color: var(--tpc-txm); font-weight: 400; }
.cs-vuoto { padding: 18px; text-align: center; color: var(--tpc-txm); font-size: .85rem; border: 1px dashed var(--tpc-bd); border-radius: 8px; background: #fff; }

/* collegamenti (asset e controlli di una minaccia) */
.cs-tag { display: inline-flex; align-items: center; gap: 4px; padding: 1px 4px 1px 8px; margin: 2px 4px 2px 0; border-radius: 10px; background: var(--tpc-ac-soft); color: var(--tpc-ac); font-size: .72rem; }
.cs-tag button { border: 0; background: transparent; color: inherit; cursor: pointer; padding: 0 3px; line-height: 1; }

/* checklist */
.cs-domanda { display: flex; gap: 8px; padding: 5px 0; border-bottom: 1px dotted var(--tpc-bd); font-size: .78rem; }
.cs-domanda .rif { width: 58px; color: var(--tpc-txm); flex: 0 0 auto; }
.cs-domanda .testo { flex: 1; }
.cs-domanda select { width: 92px !important; flex: 0 0 auto; }
.cs-domanda input { width: 200px; flex: 0 0 auto; }

/* stato del salvataggio */
.cs-salva { font-size: .72rem; color: #fff; opacity: .85; }
.cs-salva.errore { color: #ffcdd2; opacity: 1; font-weight: 700; }

/* barre del riepilogo */
.cs-barra { display: flex; align-items: center; gap: 8px; margin: 4px 0; font-size: .8rem; }
.cs-barra .et { width: 60px; }
.cs-barra .traccia { flex: 1; height: 12px; background: var(--tpc-bg-soft); border-radius: 6px; overflow: hidden; }
.cs-barra .pieno { height: 100%; }
.cs-barra .val { width: 30px; text-align: right; font-weight: 700; }

/* matrice verosimiglianza x conseguenze */
table.cs-matrice { border-collapse: separate; border-spacing: 3px; font-size: .78rem; }
table.cs-matrice td, table.cs-matrice th { text-align: center; padding: 6px 10px; border-radius: 4px; }
table.cs-matrice th { color: var(--tpc-txm); font-weight: 600; }

.cs-tabella { font-size: .78rem; }
.cs-tabella td, .cs-tabella th { vertical-align: middle !important; }
.cs-giu { color: var(--cs-basso); font-weight: 700; }
.cs-su { color: var(--cs-alto); font-weight: 700; }
