/* ============================================================
   IPC-Docs – Login page (web client)
   Applicato SOLO su body.app-blank (pagina di login)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

/* box-sizing universale – non interferisce con font delle icone */
* { box-sizing: border-box !important; }

/* Inter sulla pagina di login (body.app-blank).
   Usa :not() per escludere icone Keen alla radice — così non servono
   regole di ripristino e non ci sono conflitti di specificità.
   Gli elementi Keen hanno sempre classi "ki-*" o "pathN" come figli. */
body.app-blank *:not([class*="ki-"]):not(.path1):not(.path2):not(.path3) {
  font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
}

/* Inter sul portale autenticato: solo per ereditarietà, senza !important
   così le icone Keen (.ki-solid ecc.) con font-family !important la vincono */
body.app-default,
body.app-default input,
body.app-default button,
body.app-default select,
body.app-default textarea,
body.app-default label {
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
}

/* ── Forza light mode ───────────────────────────────────────── */
:root,
[data-bs-theme="dark"],
[data-bs-theme="light"] {
  --bs-body-bg: #f0ede8 !important;
  --bs-body-color: #1e2326 !important;
  color-scheme: light !important;
}

/* ── Background (solo login) ────────────────────────────────── */
body.app-blank {
  background: #f0ede8 !important;
  background-image:
    radial-gradient(ellipse 80% 60% at 50% -10%, rgba(242,112,32,0.07) 0%, transparent 70%),
    radial-gradient(ellipse 60% 40% at 100% 110%, rgba(83,93,98,0.05) 0%, transparent 60%) !important;
  min-height: 100vh !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* ── Wrapper centramento ────────────────────────────────────── */
body.app-blank .d-flex.flex-column.flex-root {
  min-height: 100vh !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

body.app-blank .d-flex.flex-column.flex-column-fluid,
body.app-blank .d-flex.flex-center.flex-column.flex-column-fluid {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 24px 16px !important;
  min-height: 100vh !important;
}

/* ── Card ───────────────────────────────────────────────────── */
body.app-blank .w-lg-500px,
body.app-blank .w-md-450px,
body.app-blank .w-sm-400px,
body.app-blank .bg-body.rounded {
  width: 100% !important;
  max-width: 460px !important;
  background: #ffffff !important;
  border-radius: 20px !important;
  padding: 44px 40px 36px !important;
  margin: 0 auto !important;
  position: relative !important;
  overflow: visible !important;
  box-shadow:
    0 0 0 1px rgba(0,0,0,0.04),
    0 8px 24px rgba(83,93,98,0.12),
    0 32px 64px rgba(83,93,98,0.08) !important;
}

body.app-blank .bg-body.rounded::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  top: 0; left: 0; right: 0 !important;
  height: 4px !important;
  background: linear-gradient(90deg, #f27020, #f5973a) !important;
  border-radius: 20px 20px 0 0 !important;
}

/* ── Nasconde pseudo-elementi del form ──────────────────────── */
body.app-blank form.w-100::before,
body.app-blank form.w-100::after { display: none !important; }

/* ── Area logo ──────────────────────────────────────────────── */
body.app-blank .container.mb-10 {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

body.app-blank .container.mb-10 .row {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  width: 100% !important;
}

body.app-blank .container.mb-10 .col-5,
body.app-blank .container.mb-10 .col-7 {
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
  padding: 0 !important;
  text-align: center !important;
}

/* ── Logo ───────────────────────────────────────────────────── */
body.app-blank img[alt="Logo"] {
  width: 88px !important;
  height: 88px !important;
  object-fit: contain !important;
  display: block !important;
  margin: 0 auto 16px !important;
  border-radius: 16px !important;
  box-shadow: 0 4px 16px rgba(242,112,32,0.20), 0 1px 4px rgba(0,0,0,0.08) !important;
}

/* ── Titolo ─────────────────────────────────────────────────── */
body.app-blank h1.text-gray-900 {
  font-size: 1.45rem !important;
  font-weight: 700 !important;
  color: #1e2326 !important;
  text-align: center !important;
  letter-spacing: -0.02em !important;
  margin: 0 0 4px !important;
}

/* ── Sottotitolo e descrizione ──────────────────────────────── */
body.app-blank .container.mb-10 .col-7::after {
  content: "IPC-Docs · Scambio File Sicuro";
  display: block;
  font-size: 0.7rem;
  font-weight: 600;
  color: #f27020;
  text-align: center;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  margin-bottom: 20px;
}

body.app-blank .container.mb-10::after {
  content: "Condividi documenti in modo sicuro con Iperceramica. Accedi con le credenziali fornite dal tuo referente.";
  display: block;
  text-align: center;
  font-size: 0.875rem;
  line-height: 1.65;
  color: #7a8288;
  padding: 0 2px;
  margin-bottom: 24px;
}

/* ── Separatore ─────────────────────────────────────────────── */
body.app-blank #sign_in_form .fv-row:first-of-type {
  border-top: 1px solid #ebe7e1 !important;
  padding-top: 20px !important;
}

/* ── Input fields ───────────────────────────────────────────── */
body.app-blank #sign_in_form { display: block !important; width: 100% !important; }

body.app-blank #sign_in_form .fv-row {
  display: block !important;
  width: 100% !important;
  margin-bottom: 14px !important;
}

body.app-blank #sign_in_form .fv-row > *,
body.app-blank #sign_in_form .fv-row [data-password-control="container"] {
  display: block !important;
  width: 100% !important;
}

body.app-blank #sign_in_form input[type="text"],
body.app-blank #sign_in_form input[type="password"],
body.app-blank #sign_in_form .form-control {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  background-color: #f5f2ee !important;
  border: 1.5px solid #e8e4de !important;
  color: #1e2326 !important;
  border-radius: 10px !important;
  font-size: 0.95rem !important;
  padding: 13px 16px !important;
  height: auto !important;
}

body.app-blank #sign_in_form input:focus,
body.app-blank #sign_in_form .form-control:focus {
  background-color: #ffffff !important;
  border-color: #f27020 !important;
  box-shadow: 0 0 0 3px rgba(242,112,32,0.12) !important;
  outline: none !important;
}

body.app-blank #sign_in_form input::placeholder { color: #b0b8be !important; }

/* ── Password toggle ────────────────────────────────────────── */
body.app-blank [data-password-control="visibility"] {
  color: #b0b8be !important;
  background: transparent !important;
  border: none !important;
}
body.app-blank [data-password-control="visibility"]:hover { color: #f27020 !important; }

/* ── Pulsante Sign In ───────────────────────────────────────── */
body.app-blank #sign_in_form .text-center { display: block !important; width: 100% !important; }

body.app-blank #sign_in_submit {
  display: block !important;
  width: 100% !important;
  background: linear-gradient(135deg, #f27020, #f5903a) !important;
  border: none !important;
  border-radius: 10px !important;
  color: #ffffff !important;
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  padding: 15px 24px !important;
  margin-top: 8px !important;
  box-shadow: 0 4px 16px rgba(242,112,32,0.30) !important;
  cursor: pointer !important;
}

body.app-blank #sign_in_submit:hover {
  background: linear-gradient(135deg, #d4601a, #e07828) !important;
  transform: translateY(-1px) !important;
}

/* ── Indicatore loading ─────────────────────────────────────── */
body.app-blank #sign_in_submit .indicator-progress { display: none !important; }
body.app-blank #sign_in_submit[data-kt-indicator="on"] .indicator-label { display: none !important; }
body.app-blank #sign_in_submit[data-kt-indicator="on"] .indicator-progress { display: inline-flex !important; }

/* ── Notifica errore login ──────────────────────────────────── */
body.app-blank #errorMsg.d-none { display: none !important; }
body.app-blank #errorMsg:not(.d-none) {
  display: flex !important;
  background: #fff7ed !important;
  border: 1.5px solid #f27020 !important;
  border-style: solid !important;
  border-radius: 12px !important;
  padding: 14px 16px !important;
  margin-bottom: 18px !important;
}
body.app-blank #errorMsg .text-gray-800 { color: #7c3a00 !important; }
body.app-blank #errorMsg .ki-information-5 { display: none !important; }
/* Bottone chiudi: nascondi icona Keen (non caricata) e mostra × testuale */
body.app-blank #id_dismiss_error_msg { font-size: 1.1rem !important; color: #f27020 !important; }
body.app-blank #id_dismiss_error_msg i { display: none !important; }
body.app-blank #id_dismiss_error_msg::after { content: "×"; font-size: 1.3rem; line-height: 1; }

/* ── Language switcher – fisso in alto a destra ─────────────── */
body.app-blank .d-flex.flex-stack {
  position: fixed !important;
  top: 14px !important;
  right: 20px !important;
  display: flex !important;
  align-items: center !important;
  padding: 0 !important;
  margin: 0 !important;
  z-index: 9999 !important;
}
/* Nascondi il lato destro (AltLoginURL / disclaimer – non usati) */
body.app-blank .d-flex.flex-stack > .d-flex.fw-semibold.text-primary { display: none !important; }
/* Nascondi la riga <hr> dentro la card */
body.app-blank .bg-body.rounded hr { display: none !important; }
/* Stile Select2 */
body.app-blank .select2-container { min-width: 62px !important; }
body.app-blank .select2-selection--single {
  background: rgba(255,255,255,0.9) !important;
  border: 1.5px solid #ddd !important;
  border-radius: 6px !important;
  height: auto !important;
  min-height: unset !important;
  padding: 4px 26px 4px 10px !important;
}
body.app-blank .select2-selection__rendered {
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  color: #aaa !important;
  line-height: 1.4 !important;
  padding: 0 !important;
  letter-spacing: 0.06em !important;
}
body.app-blank .select2-selection__arrow { height: 100% !important; }
body.app-blank .select2-selection--single:hover { border-color: #f27020 !important; }
body.app-blank .select2-selection--single:hover .select2-selection__rendered { color: #f27020 !important; }
/* Fallback <select> plain (senza Select2 inizializzato) */
body.app-blank select#languageSwitcher {
  appearance: auto !important;
  background: transparent !important;
  border: 1.5px solid #ddd !important;
  border-radius: 6px !important;
  padding: 4px 10px !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  color: #888 !important;
  cursor: pointer !important;
  letter-spacing: 0.06em !important;
}

/* ── Errori ─────────────────────────────────────────────────── */
body.app-blank .text-warning { color: #d4601a !important; }

/* ── Sulla login page mostra solo #errorMsg, non il toast ───── */
body.app-blank .toast-container { display: none !important; }

/* ── Toast notification ─────────────────────────────────────── */
html body div#toast_container,
html body div#toast_container.toast,
html body div#toast_container.toast.show {
  background: #fff7ed !important;
  background-color: #fff7ed !important;
  border: 1.5px dashed #f27020 !important;
  border-radius: 12px !important;
  box-shadow: 0 4px 16px rgba(242,112,32,0.15) !important;
  color: #7c3a00 !important;
  --bs-toast-bg: #fff7ed !important;
}
html body div#toast_container .toast-body,
html body div#toast_container.show .toast-body {
  background: transparent !important;
  background-color: transparent !important;
}
html body div#toast_container #toast_msg  { color: #7c3a00 !important; }
html body div#toast_container .ki-cross    { color: #f27020 !important; }
html body div#toast_container .ki-check-square { color: #2e7d44 !important; }
html body div#toast_container .ki-information-5 { color: #f27020 !important; }

/* ── Portale autenticato (body.app-default) ─────────────────── */

body.app-default .btn-primary,
body.app-default .btn-primary:not(:disabled) {
  background: linear-gradient(135deg, #f27020, #f5903a) !important;
  border-color: #f27020 !important;
  color: #fff !important;
}
body.app-default .btn-primary:hover {
  background: linear-gradient(135deg, #d4601a, #e07828) !important;
}

body.app-default .progress-bar {
  background: linear-gradient(90deg, #f27020, #f5903a) !important;
}

body.app-default .table thead th {
  background: #535d62 !important;
  color: #ffffff !important;
  font-size: 0.78rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  font-weight: 600 !important;
}

body.app-default .badge.bg-success { background: #2e7d44 !important; }
body.app-default .badge.bg-warning { background: #f27020 !important; color: #fff !important; }
body.app-default .badge.bg-danger  { background: #c0392b !important; }

body.app-default #kt_app_footer { display: none !important; }

/* Nascondi "Condivisioni" dalla sidebar del portale fornitori */
body.app-default .menu-item:has(a[href*="/web/client/shares"]) {
  display: none !important;
}

/* Link attivi / hover con arancione */
body.app-default .menu-item.here > .menu-link,
body.app-default .menu-item .menu-link:hover,
body.app-default .menu-item.show > .menu-link {
  color: #f27020 !important;
}
body.app-default .menu-item.here > .menu-link .menu-icon,
body.app-default .menu-item .menu-link:hover .menu-icon {
  color: #f27020 !important;
}

/* ── Scrollbar ──────────────────────────────────────────────── */
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: #f0ede8; }
::-webkit-scrollbar-thumb { background: #d4c9bc; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #f27020; }

/* ── Condivisioni – form semplificato ───────────────────────────
   Nasconde i campi tecnici non necessari per l'uso quotidiano.
   Flusso utente: Nome → Percorso/i → (opt.) Password → (opt.)
   Scadenza → Salva → Copia link.
   Scope fisso a "Sola lettura" (valore di default nel form HTML).
   ─────────────────────────────────────────────────────────────── */

/* Nascondi Scope, Max utilizzi, IP consentiti, Descrizione */
#share_form .form-group.row:has([name="scope"]),
#share_form .form-group.row:has([name="max_tokens"]),
#share_form .form-group.row:has([name="allowed_ip"]),
#share_form .form-group.row:has([name="description"]) {
  display: none !important;
}

/* Pulsante "Copia link" nella modale condivisione – più prominente */
body.app-default #link_modal .btn-light-primary {
  background: #fff7ed !important;
  border: 1.5px solid #f27020 !important;
  color: #f27020 !important;
  font-weight: 600 !important;
}
body.app-default #link_modal .btn-light-primary:hover {
  background: #f27020 !important;
  color: #fff !important;
}
