
.ifl-langbar{margin:0 auto 18px;max-width:1180px;padding:14px 16px;border:1px solid var(--ifl-border,rgba(255,255,255,.09));border-radius:14px;background:rgba(17,21,32,.92);font-family:var(--font-body,Inter,sans-serif);display:flex;gap:14px;align-items:center;flex-wrap:wrap}.ifl-lang-title{font-weight:800}.ifl-flags{display:flex;gap:6px;flex-wrap:wrap}.ifl-flags button{border:1px solid rgba(255,255,255,.1);background:#161b27;color:#fff;border-radius:10px;padding:7px 9px;cursor:pointer;display:flex;align-items:center;gap:5px}.ifl-flags button:hover{border-color:#3b82f6;transform:translateY(-1px)}.ifl-flags small{font-size:10px;opacity:.72}.ifl-translation-note{font-size:11px;color:#8892a4;flex:1 1 100%}.ifl-translating:after{content:'Traduzione…';position:fixed;right:22px;bottom:22px;z-index:99999;background:#111520;border:1px solid #3b82f6;color:#fff;padding:10px 14px;border-radius:12px;box-shadow:0 10px 30px #0008}.ifl-rule-sections{max-width:1180px;margin:0 auto 18px;display:flex;gap:8px;overflow:auto;padding:3px}.ifl-rule-sections a{white-space:nowrap;color:#cbd5e1;text-decoration:none;background:#111520;border:1px solid rgba(255,255,255,.08);padding:8px 11px;border-radius:999px;font-size:12px}.ifl-rule-sections a:hover{border-color:#3b82f6;color:#fff}.ifl-legal-history{max-width:1180px;margin:0 auto 18px;border:1px solid rgba(59,130,246,.25);border-radius:14px;background:#111520;overflow:hidden}.ifl-legal-history summary{cursor:pointer;padding:14px 16px;font-weight:800}.ifl-history-body{padding:0 16px 16px}.ifl-history-body section{padding:12px 0;border-top:1px solid rgba(255,255,255,.07)}.ifl-history-body section>span{font-size:12px;color:#8892a4;margin-left:8px}.ifl-history-body ul{padding-left:22px}.ifl-rule-before{color:#fca5a5;margin-top:5px}.ifl-rule-after{color:#86efac;margin-top:3px}.ifl-nda-shell{min-height:100vh;background:#0a0d14;color:#f0f4ff;display:grid;place-items:center;padding:30px;font-family:Inter,system-ui,sans-serif}.ifl-nda-card{width:min(760px,100%);background:#111520;border:1px solid rgba(255,255,255,.08);border-radius:22px;padding:34px;box-shadow:0 25px 70px #0009}.ifl-nda-card h1{font-family:'Space Grotesk',Inter,sans-serif;font-size:34px}.ifl-nda-card h1 small{font-size:18px;color:#8892a4}.ifl-nda-lock{display:inline-block;background:#7c3aed22;color:#c4b5fd;border:1px solid #8b5cf655;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800}.ifl-nda-warning{background:#f59e0b16;border:1px solid #f59e0b55;color:#fcd34d;border-radius:12px;padding:12px 14px;margin:20px 0}.ifl-nda-primary,.ifl-nda-secondary{display:inline-block;text-decoration:none;border-radius:12px;padding:12px 16px;margin:5px 8px 0 0;font-weight:800}.ifl-nda-primary{background:#3b82f6;color:white}.ifl-nda-secondary{background:#161b27;color:#cbd5e1;border:1px solid rgba(255,255,255,.1)}.ifl-nda-nav-link{display:flex!important;gap:8px;align-items:center;padding:10px 12px;text-decoration:none;color:inherit;border-radius:10px}.ifl-nda-nav-link:hover{background:rgba(59,130,246,.12)}

.ifl-nda-wide{width:min(980px,96vw)}.ifl-nda-meta{margin:10px 0 16px;font-weight:800;color:#facc15}.ifl-nda-text{max-height:55vh;overflow:auto;white-space:normal;line-height:1.55;padding:18px;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:#0b0f18;margin:14px 0}.ifl-nda-check{display:flex;gap:10px;align-items:flex-start;margin:16px 0;font-weight:700}.ifl-nda-check input{margin-top:4px}.ifl-nda-primary:disabled{opacity:.45;cursor:not-allowed}

/* IFL reader layout. Leave the other routes rendered by this Angular component alone. */
.rp-page:has(> .rp-content.ifl-rules-layout) {
  max-width: 1180px;
}

.rp-page .rp-content.ifl-rules-layout {
  display: grid;
  grid-template-columns: minmax(170px, 220px) minmax(0, 1fr);
  align-items: start;
  gap: clamp(16px, 3vw, 32px);
  background: transparent;
  border: 0;
  padding: 0;
  box-shadow: none;
}

.ifl-rules-layout > .ifl-rule-sections {
  position: sticky;
  top: 88px;
  display: block;
  width: 100%;
  max-height: calc(100dvh - 108px);
  overflow: auto;
  margin: 0;
  padding: 15px;
  border: 1px solid var(--ifl-border);
  border-radius: 17px;
  background: var(--ifl-bg-card);
  color: var(--ifl-text-primary);
}

.ifl-rules-layout .ifl-rule-index-title {
  margin: 0 0 11px;
  color: var(--ifl-text-primary);
  font-weight: 750;
}

.rp-content.ifl-rules-layout .ifl-rule-sections ol {
  display: grid;
  gap: 5px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.rp-content.ifl-rules-layout .ifl-rule-sections li {
  margin: 0;
}

.rp-content.ifl-rules-layout .ifl-rule-sections a {
  display: block;
  min-height: 42px;
  padding: 9px 10px;
  white-space: normal;
  overflow-wrap: anywhere;
  color: var(--ifl-text-primary);
  text-decoration: none;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 9px;
}

.rp-content.ifl-rules-layout .ifl-rule-sections a:hover,
.rp-content.ifl-rules-layout .ifl-rule-sections a[aria-current] {
  background: var(--ifl-accent-glow, #7faed222);
  border-color: var(--ifl-border-hover, var(--ifl-border));
}

.ifl-rules-layout :is(a, [tabindex]):focus-visible {
  outline: 2px solid var(--ifl-accent);
  outline-offset: 3px;
}

.ifl-rules-content {
  display: grid;
  min-width: 0;
  gap: 16px;
}

.ifl-rule-card {
  min-width: 0;
  padding: clamp(16px, 3vw, 30px);
  background: var(--ifl-bg-card);
  border: 1px solid var(--ifl-border);
  border-radius: 18px;
  overflow-wrap: anywhere;
  box-shadow: 0 13px 30px #050b1a25;
}

.rp-content .ifl-rule-card > :first-child {
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--ifl-border);
  scroll-margin-top: 94px;
  font-size: clamp(18px, 2.7vw, 25px);
  line-height: 1.3;
}

.rp-content .ifl-rule-card > :last-child {
  margin-bottom: 0;
}

.ifl-rule-card-plain > p {
  white-space: pre-line;
}

@media (max-width: 760px) {
  .rp-page .rp-content.ifl-rules-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .ifl-rules-layout > .ifl-rule-sections {
    position: static;
    max-height: none;
  }
  .ifl-rules-layout .ifl-rule-sections ol {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
