.client-shell{width:min(calc(100% - 40px),1160px);margin:0 auto;padding:54px 0 84px}.client-login-shell{display:grid;place-items:center;min-height:calc(100vh - 80px)}.client-login-card{width:min(100%,540px);padding:34px;background:#fff;border:1px solid var(--rb-border);border-radius:20px;box-shadow:var(--rb-shadow)}.client-login-card h1,.client-heading h1{font-size:clamp(2rem,5vw,3.5rem)}.client-intro{color:var(--rb-blue-soft);font-size:1.06rem}.client-security-note{margin-top:24px;color:var(--rb-muted);font-size:.86rem}.client-heading{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:28px}.client-mode,.client-selection,.status-chip{display:inline-flex;padding:7px 12px;border-radius:999px;color:#075b48;background:#dcf8ed;font-size:.8rem;font-weight:800}.client-panel{margin-top:24px;padding:28px;background:rgba(255,255,255,.96);border:1px solid var(--rb-border);border-radius:18px;box-shadow:0 16px 45px rgba(7,24,45,.07)}.client-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.client-panel-heading h2{margin:0}.client-list{display:grid;gap:10px}.client-list-item{display:flex;width:100%;align-items:center;justify-content:space-between;gap:20px;padding:15px 17px;text-align:left;color:var(--rb-text);background:#fff;border:1px solid var(--rb-border);border-radius:12px}.client-list-item div{display:grid;gap:3px}.client-list-item span{color:var(--rb-muted);font-size:.88rem}.client-list-item .status-chip{color:#075b48}.client-case-button{cursor:pointer}.client-case-button:hover,.client-case-button:focus-visible{border-color:var(--rb-cyan);outline:3px solid rgba(0,159,189,.12)}.client-inline-form{margin-top:22px;padding:22px;background:var(--rb-teal-light);border-radius:14px}.document-layout{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(340px,1.2fr);gap:26px}.document-upload-card{padding:22px;background:#f8fbfc;border:1px solid var(--rb-border);border-radius:14px}.field small{display:block;margin-top:7px;color:var(--rb-muted)}.client-empty{margin:0;padding:16px;color:var(--rb-muted);background:#f7fafb;border-radius:10px}.button:disabled{cursor:not-allowed;opacity:.55}.site-nav{display:flex;align-items:center;gap:20px;font-weight:700}.site-nav a{color:var(--rb-blue);text-decoration:none}.site-nav a:hover{color:var(--rb-cyan-dark)}@media(max-width:820px){.client-heading,.client-panel-heading{align-items:flex-start;flex-direction:column}.document-layout{grid-template-columns:1fr}.site-nav{flex-wrap:wrap;gap:9px 14px}}@media(max-width:620px){.client-shell{width:min(calc(100% - 28px),1160px);padding-top:34px}.client-panel,.client-login-card{padding:20px}.client-list-item{align-items:flex-start;flex-direction:column}}

/* RATINGBANCARIO_GOOGLE_LOGIN_V1 */
.rb-google-login{
  margin-top:22px;
}
.rb-auth-divider{
  display:flex;
  align-items:center;
  gap:14px;
  margin:20px 0;
  color:var(--rb-muted);
  font-size:.82rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.rb-auth-divider::before,
.rb-auth-divider::after{
  content:"";
  flex:1;
  height:1px;
  background:var(--rb-border);
}
.rb-google-button{
  display:flex;
  justify-content:center;
  min-height:44px;
}
.rb-google-login[hidden]{
  display:none;
}

/* RATINGBANCARIO_REGISTRATION_V1 */
.rb-consents{
  display:grid;
  gap:12px;
  margin:20px 0;
}

.rb-consent{
  display:flex;
  align-items:flex-start;
  gap:10px;
  color:var(--rb-muted);
  font-size:.9rem;
  line-height:1.45;
}

.rb-consent input{
  width:auto;
  margin-top:4px;
}

.rb-consent a,
.rb-registration-link a{
  font-weight:700;
}

.rb-google-intro,
.rb-registration-link{
  color:var(--rb-muted);
  font-size:.9rem;
}

.rb-registration-link{
  margin-top:22px;
  text-align:center;
}

/* RATINGBANCARIO_ACCESS_HEADER_BUTTON_FIX_V1 */
.site-nav a.button,
.site-nav a.button:visited {
  color: var(--rb-white);
}

.site-nav a.button:hover,
.site-nav a.button:focus-visible {
  color: var(--rb-white);
}

/* RATINGBANCARIO_LOGIN_CONSENTS_STYLE_V1 */
.rb-login-consents {
  margin: 18px 0;
}

.rb-consents {
  display: grid;
  gap: 10px;
}

.rb-consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: var(--rb-text);
  font-size: .9rem;
  line-height: 1.45;
}

.rb-consent input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
  flex: 0 0 auto;
}

.rb-consent a {
  color: var(--rb-blue);
  font-weight: 700;
  text-decoration: underline;
}

.rb-consent a:hover {
  color: var(--rb-cyan-dark);
}

/* RATINGBANCARIO_LOGIN_CONSENTS_G5H5 */
.login-consents {
  display: grid;
  gap: 8px;
  margin: 14px 0 16px;
}

.login-consents .consent-check {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-size: .88rem;
  line-height: 1.4;
}

.login-consents .consent-check input {
  flex: 0 0 auto;
  margin-top: 3px;
}

.login-consents .consent-check a {
  font-weight: 700;
  text-decoration: underline;
}

/* ============================================================
   RATINGBANCARIO_ANALYSIS_RESULTS_V1
   Presentazione indicatori deterministici
   ============================================================ */

.rb-action-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  margin: 22px 0;
}

.rb-primary-button,
.rb-secondary-button {
  min-height: 44px;
  padding: 11px 18px;
  border-radius: 11px;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  transition:
    transform .15s ease,
    box-shadow .15s ease,
    border-color .15s ease;
}

.rb-primary-button {
  color: #fff;
  border: 1px solid var(--rb-blue);
  background: var(--rb-blue);
  box-shadow: 0 8px 20px rgba(18,59,89,.14);
}

.rb-primary-button:hover,
.rb-primary-button:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 11px 24px rgba(18,59,89,.18);
}

.rb-primary-button:focus-visible,
.rb-secondary-button:focus-visible {
  outline: 3px solid rgba(0,159,189,.18);
  outline-offset: 2px;
}

.rb-primary-button:disabled,
.rb-secondary-button:disabled {
  cursor: wait;
  opacity: .58;
  transform: none;
  box-shadow: none;
}

#rb-run-status {
  color: var(--rb-muted);
  font-size: .9rem;
  font-weight: 700;
}

.rb-results-grid {
  display: grid;
  gap: 22px;
}

.rb-financial-year {
  overflow: hidden;
  border: 1px solid var(--rb-border);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(7,24,45,.05);
}

.rb-analysis-year {
  margin-top: 0;
}

.rb-financial-year-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 21px 22px;
  border-bottom: 1px solid var(--rb-border);
  background:
    linear-gradient(
      135deg,
      rgba(223,247,244,.72),
      rgba(255,250,240,.72)
    );
}

.rb-financial-year-header h3 {
  margin: 3px 0 0;
  color: var(--rb-blue);
  font-size: 1.28rem;
}

.rb-eyebrow {
  margin: 0;
  color: var(--rb-cyan-dark);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.rb-year-counters {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}

.rb-year-counters span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 6px 10px;
  color: var(--rb-blue);
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(24,127,164,.16);
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 800;
  white-space: nowrap;
}

.rb-table-scroll {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.rb-financial-table {
  width: 100%;
  min-width: 640px;
  border-collapse: collapse;
  font-size: .91rem;
}

.rb-financial-table th,
.rb-financial-table td {
  padding: 13px 16px;
  text-align: left;
  vertical-align: middle;
  border-bottom: 1px solid var(--rb-border);
}

.rb-financial-table thead th {
  color: var(--rb-blue);
  background: #f7fafb;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.rb-financial-table tbody th {
  width: 48%;
  color: var(--rb-text);
  font-weight: 700;
}

.rb-financial-table tbody tr:last-child th,
.rb-financial-table tbody tr:last-child td {
  border-bottom: 0;
}

.rb-financial-table tbody tr:hover {
  background: rgba(223,247,244,.24);
}

.rb-value-present,
.rb-value-zero,
.rb-value-missing {
  font-variant-numeric: tabular-nums;
}

.rb-value-present {
  color: var(--rb-text);
  font-weight: 800;
}

.rb-value-zero {
  color: var(--rb-blue);
  font-weight: 800;
}

.rb-value-missing {
  color: var(--rb-muted);
  font-style: italic;
  font-weight: 700;
}

.rb-empty-state {
  padding: 18px;
  color: var(--rb-muted);
  border: 1px dashed var(--rb-border);
  border-radius: 12px;
  background: #f8fbfc;
}

@media (max-width: 760px) {
  .rb-financial-year-header {
    flex-direction: column;
  }

  .rb-year-counters {
    justify-content: flex-start;
  }

  .rb-action-row {
    align-items: stretch;
    flex-direction: column;
  }

  .rb-primary-button,
  .rb-secondary-button {
    width: 100%;
  }

  #rb-run-status {
    min-height: 20px;
  }
}

@media (max-width: 520px) {
  .rb-financial-year-header {
    padding: 18px;
  }

  .rb-year-counters span {
    white-space: normal;
  }
}

/* RATINGBANCARIO_AREA_PERSONALE_FOOTER_LAYOUT_V1 */

/*
 * Footer dell'area riservata.
 * Mantiene il footer canonico ma lo allinea alla larghezza
 * della Scrivania (1160px), senza modificare le pagine pubbliche.
 */
body:has(.rb-workspace) .site-footer > .container {
  width: min(calc(100% - 40px), 1160px);
  margin-left: auto;
  margin-right: auto;
}

body:has(.rb-workspace) .site-footer .footer-grid {
  grid-template-columns: 1.25fr .85fr .85fr;
  column-gap: 72px;
  row-gap: 36px;
}

body:has(.rb-workspace) .site-footer .footer-bottom {
  width: min(calc(100% - 40px), 1160px);
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 880px) {
  body:has(.rb-workspace) .site-footer .footer-grid {
    grid-template-columns: 1fr;
    column-gap: 0;
  }
}

@media (max-width: 620px) {
  body:has(.rb-workspace) .site-footer > .container,
  body:has(.rb-workspace) .site-footer .footer-bottom {
    width: min(calc(100% - 28px), 1160px);
  }
}

/* FINE RATINGBANCARIO_AREA_PERSONALE_FOOTER_LAYOUT_V1 */

/* RATINGBANCARIO_PASSWORD_VISIBILITY_V1 */

.rb-password-control {
  position: relative;
}

.field .rb-password-control .rb-password-input {
  padding-right: 52px;
}

.rb-password-toggle {
  position: absolute;
  top: 50%;
  right: 7px;
  display: inline-flex;
  width: 38px;
  height: 38px;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: var(--rb-blue);
  background: transparent;
  border: 0;
  border-radius: 8px;
  cursor: pointer;
  transform: translateY(-50%);
}

.rb-password-toggle:hover {
  color: var(--rb-cyan-dark);
  background: rgba(0, 159, 189, .08);
}

.rb-password-toggle:focus-visible {
  outline: 3px solid rgba(0, 159, 189, .18);
  outline-offset: 1px;
}

.rb-password-eye {
  display: block;
  pointer-events: none;
}

.rb-password-eye[hidden] {
  display: none;
}

/* FINE RATINGBANCARIO_PASSWORD_VISIBILITY_V1 */

/* RATINGBANCARIO_ENTITY_CREATE_V1 */
.rb-entity-create-actions {
  margin-top: 14px;
}

.rb-entity-create-panel {
  margin-top: 18px;
  padding: 22px;
  border: 1px solid rgba(15, 35, 55, 0.14);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.72);
}

.rb-entity-create-panel[hidden] {
  display: none;
}

.rb-entity-create-panel h3 {
  margin: 0;
}

.rb-entity-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 18px;
  margin-top: 18px;
}

.rb-entity-field-wide {
  grid-column: 1 / -1;
}

.rb-entity-create-buttons {
  margin-top: 20px;
}

.rb-inline-notice {
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 10px;
  background: rgba(15, 35, 55, 0.06);
}

@media (max-width: 720px) {
  .rb-entity-form-grid {
    grid-template-columns: 1fr;
  }

  .rb-entity-field-wide {
    grid-column: auto;
  }
}
