/*
 * Servicos publicos da VISA: licenciamento, acompanhamento, validacao
 * e consulta geral de protocolo.
 *
 * O escopo desta folha e intencionalmente restrito a
 * .visa-public-service-shell para nao alterar o painel interno,
 * formularios administrativos ou a pagina inicial.
 */

.visa-public-service-shell {
    --service-primary: #0872ce;
    --service-primary-strong: #075fae;
    --service-primary-dark: #064f91;
    --service-primary-soft: #eaf3fc;
    --service-canvas: #eef3f8;
    --service-surface: #ffffff;
    --service-surface-soft: #f6f9fc;
    --service-text: #172a3a;
    --service-muted: #5d6d7b;
    --service-border: #d7e0e8;
    --service-border-strong: #b7c6d5;
    --service-success: #287a55;
    --service-success-soft: #eaf6ef;
    --service-warning: #ad6800;
    --service-warning-soft: #fff6df;
    --service-danger: #ba2d39;
    --service-danger-soft: #fff0f1;
    background: var(--service-canvas);
    color: var(--service-text);
    font-family: "Segoe UI", Roboto, Arial, sans-serif;
    min-height: 100vh;
}

.visa-public-service-shell *,
.visa-public-service-shell *::before,
.visa-public-service-shell *::after {
    box-sizing: border-box;
}

.visa-public-service-shell .visa-public-header {
    align-items: center;
    background: rgba(255, 255, 255, .97);
    border-bottom: 1px solid var(--service-border);
    box-shadow: 0 3px 16px rgba(25, 71, 111, .06);
    display: grid;
    gap: 18px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    min-height: 72px;
    padding: 12px max(20px, calc((100vw - 1180px) / 2));
    position: sticky;
    top: 0;
    z-index: 30;
}

.visa-public-service-shell .visa-public-brand {
    align-items: center;
    display: inline-flex;
    gap: 10px;
    min-width: max-content;
    text-decoration: none;
}

.visa-public-service-shell .visa-brand-mark {
    background: transparent;
    border-radius: 0;
    height: 48px;
    object-fit: contain;
    padding: 0;
    width: 48px;
}

.visa-public-service-shell .visa-public-brand span,
.visa-public-service-shell .visa-public-brand strong,
.visa-public-service-shell .visa-public-brand small {
    display: block;
}

.visa-public-service-shell .visa-public-brand strong {
    color: var(--service-primary-dark);
    font-family: "Segoe UI", Roboto, Arial, sans-serif;
    font-size: .96rem;
    line-height: 1.2;
}

.visa-public-service-shell .visa-public-brand small {
    color: var(--service-muted);
    font-family: "Segoe UI", Roboto, Arial, sans-serif;
    font-size: .7rem;
    letter-spacing: 0;
    text-transform: none;
}

.visa-public-service-shell .visa-public-nav {
    align-items: center;
    display: flex;
    gap: 4px;
    justify-content: center;
}

.visa-public-service-shell .visa-public-nav a {
    border-radius: 8px;
    color: var(--service-muted);
    font-size: .8rem;
    font-weight: 600;
    padding: 9px 10px;
    position: relative;
    text-decoration: none;
}

.visa-public-service-shell .visa-public-nav a::after {
    display: none;
}

.visa-public-service-shell .visa-public-nav a:hover,
.visa-public-service-shell .visa-public-nav a:focus-visible,
.visa-public-service-shell .visa-public-nav a.is-active {
    background: var(--service-primary-soft);
    color: var(--service-primary-strong);
    outline: 0;
}

.visa-public-service-shell .visa-public-actions {
    align-items: center;
    display: flex;
}

.visa-public-service-shell .visa-page,
.visa-public-service-shell .visa-result {
    color: var(--service-text);
    font-family: "Segoe UI", Roboto, Arial, sans-serif;
}

.visa-public-service-shell .visa-page h1,
.visa-public-service-shell .visa-page h2,
.visa-public-service-shell .visa-page h3,
.visa-public-service-shell .visa-result h1,
.visa-public-service-shell .visa-result h2,
.visa-public-service-shell .visa-result h3 {
    color: var(--service-text);
    font-family: "Segoe UI", Roboto, Arial, sans-serif;
    letter-spacing: -.02em;
}

.visa-public-service-shell .visa-kicker {
    color: var(--service-primary);
    font-family: "Segoe UI", Roboto, Arial, sans-serif;
    font-size: .7rem;
    font-weight: 750;
    letter-spacing: .075em;
    text-transform: uppercase;
}

.visa-public-service-shell .visa-kicker::before {
    background: var(--service-primary);
}

.visa-public-service-shell .visa-button {
    align-items: center;
    border-radius: 8px;
    display: inline-flex;
    font-family: "Segoe UI", Roboto, Arial, sans-serif;
    font-size: .82rem;
    font-weight: 700;
    gap: 7px;
    justify-content: center;
    min-height: 44px;
    padding: 10px 16px;
    text-decoration: none;
    transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, color .18s ease;
    white-space: nowrap;
}

.visa-public-service-shell .visa-button .ti {
    font-size: 18px;
}

.visa-public-service-shell .visa-button--primary {
    background: var(--service-primary);
    border: 1px solid var(--service-primary);
    color: #fff;
}

.visa-public-service-shell .visa-button--primary:hover,
.visa-public-service-shell .visa-button--primary:focus-visible {
    background: var(--service-primary-strong);
    border-color: var(--service-primary-strong);
    box-shadow: 0 0 0 3px rgba(8, 114, 206, .13);
    color: #fff;
    outline: 0;
}

.visa-public-service-shell .visa-button--secondary {
    background: #fff;
    border: 1px solid var(--service-border-strong);
    color: var(--service-primary-strong);
}

.visa-public-service-shell .visa-button--secondary:hover,
.visa-public-service-shell .visa-button--secondary:focus-visible {
    background: var(--service-primary-soft);
    border-color: var(--service-primary);
    color: var(--service-primary-dark);
    outline: 0;
}

.visa-public-service-shell input,
.visa-public-service-shell select,
.visa-public-service-shell textarea {
    background: #fff;
    border: 1px solid var(--service-border-strong);
    border-radius: 8px;
    color: var(--service-text);
    font-family: inherit;
    font-size: .9rem;
    min-height: 44px;
    padding: 10px 12px;
}

.visa-public-service-shell input::placeholder {
    color: #8795a2;
}

.visa-public-service-shell input:focus,
.visa-public-service-shell select:focus,
.visa-public-service-shell textarea:focus {
    border-color: var(--service-primary);
    box-shadow: 0 0 0 3px rgba(8, 114, 206, .12);
    outline: 0;
}

.visa-public-service-shell .visa-back-link {
    align-items: center;
    color: var(--service-primary-strong);
    display: inline-flex;
    font-family: "Segoe UI", Roboto, Arial, sans-serif;
    font-size: .8rem;
    font-weight: 700;
    gap: 5px;
    letter-spacing: 0;
    text-decoration: none;
    text-transform: none;
}

/* Pagina principal do licenciamento */

.visa-public-service-shell .visa-license-public {
    display: grid;
    gap: 20px;
    margin: 0 auto;
    max-width: 1236px;
    padding: 24px 28px 42px;
}

.visa-public-service-shell .visa-license-hero {
    align-items: stretch;
    background: var(--service-surface);
    border: 1px solid var(--service-border);
    border-radius: 18px;
    box-shadow: 0 12px 32px rgba(25, 71, 111, .08);
    display: grid;
    gap: 30px;
    grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr);
    overflow: hidden;
    padding: 34px;
}

.visa-public-service-shell .visa-license-hero > div:first-child {
    align-content: center;
    display: grid;
    min-width: 0;
}

.visa-public-service-shell .visa-license-hero h1 {
    font-size: clamp(2rem, 4vw, 3.15rem);
    line-height: 1.04;
    margin: 0 0 16px;
    max-width: 17ch;
}

.visa-public-service-shell .visa-license-hero > div > p:not(.visa-kicker) {
    color: var(--service-muted);
    font-size: 1rem;
    line-height: 1.62;
    margin: 0;
    max-width: 64ch;
}

.visa-public-service-shell .visa-row-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}

.visa-public-service-shell .visa-license-check--tracking {
    align-content: center;
    background: linear-gradient(145deg, #f4f9fe, #e6f1fb);
    border: 1px solid #c9dff2;
    border-radius: 14px;
    box-shadow: none;
    color: var(--service-text);
    display: grid;
    gap: 10px;
    padding: 26px;
}

.visa-public-service-shell .visa-license-check--tracking .visa-tag {
    color: var(--service-primary);
    font-size: .68rem;
    font-weight: 750;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.visa-public-service-shell .visa-license-check--tracking > strong {
    color: var(--service-text);
    font-size: 1.18rem;
}

.visa-public-service-shell .visa-license-check--tracking > p {
    color: var(--service-muted);
    line-height: 1.5;
    margin: 0;
}

.visa-public-service-shell .visa-license-check--tracking > div,
.visa-public-service-shell .visa-license-check--compact > div {
    display: grid;
    gap: 9px;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-top: 6px;
}

.visa-public-service-shell .visa-license-issued-check {
    align-items: center;
    background: var(--service-surface);
    border: 1px solid var(--service-border);
    border-radius: 14px;
    display: grid;
    gap: 28px;
    grid-template-columns: minmax(260px, .8fr) minmax(360px, 1.2fr);
    margin: 0;
    max-width: none;
    padding: 24px 26px;
}

.visa-public-service-shell .visa-license-issued-check h2 {
    font-size: clamp(1.35rem, 2.4vw, 1.75rem);
    margin: 0 0 7px;
}

.visa-public-service-shell .visa-license-issued-check p {
    color: var(--service-muted);
    line-height: 1.5;
    margin: 0;
}

.visa-public-service-shell .visa-license-check--compact {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0;
}

.visa-public-service-shell .visa-license-public > .visa-section {
    background: var(--service-surface);
    border: 1px solid var(--service-border);
    border-radius: 14px;
    box-shadow: none;
    margin: 0;
    padding: 26px;
}

.visa-public-service-shell .visa-section__heading {
    margin-bottom: 18px;
}

.visa-public-service-shell .visa-section__heading h2 {
    font-size: clamp(1.35rem, 2.6vw, 1.9rem);
    margin: 2px 0 0;
}

.visa-public-service-shell .visa-license-grid {
    background: transparent;
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    padding: 0;
}

.visa-public-service-shell .visa-license-grid .visa-service {
    background: var(--service-surface-soft);
    border: 1px solid var(--service-border);
    border-radius: 12px;
    min-height: 0;
    padding: 20px;
}

.visa-public-service-shell .visa-license-grid .visa-service > .ti {
    align-items: center;
    background: var(--service-primary-soft);
    border-radius: 10px;
    color: var(--service-primary);
    display: inline-flex;
    font-size: 22px;
    height: 42px;
    justify-content: center;
    margin-bottom: 14px;
    width: 42px;
}

.visa-public-service-shell .visa-license-grid .visa-tag {
    color: var(--service-primary);
    display: block;
    font-size: .67rem;
    font-weight: 750;
    letter-spacing: .06em;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.visa-public-service-shell .visa-license-grid h3 {
    font-size: 1rem;
    margin: 0 0 7px;
}

.visa-public-service-shell .visa-license-grid p {
    color: var(--service-muted);
    font-size: .86rem;
    line-height: 1.55;
    margin: 0;
}

.visa-public-service-shell .visa-detail-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.visa-public-service-shell .visa-detail-grid > div {
    background: var(--service-surface-soft);
    border: 1px solid var(--service-border);
    border-radius: 10px;
    min-width: 0;
    padding: 13px 14px;
}

.visa-public-service-shell .visa-detail-grid strong,
.visa-public-service-shell .visa-detail-grid span {
    display: block;
}

.visa-public-service-shell .visa-detail-grid strong {
    color: var(--service-muted);
    font-size: .68rem;
    letter-spacing: .04em;
    margin-bottom: 4px;
    text-transform: uppercase;
}

.visa-public-service-shell .visa-detail-grid span {
    color: var(--service-text);
    overflow-wrap: anywhere;
}

.visa-public-service-shell .visa-form-hint {
    background: var(--service-primary-soft);
    border-radius: 9px;
    color: var(--service-muted);
    font-size: .82rem;
    line-height: 1.5;
    margin: 16px 0 0;
    padding: 12px 14px;
}

/* Acompanhamento de licenca */

.visa-public-service-shell .visa-license-tracking {
    display: grid;
    gap: 18px;
    margin: 0 auto;
    max-width: 1236px;
    padding: 24px 28px 42px;
}

.visa-public-service-shell .visa-tracking-back {
    align-items: center;
    display: flex;
    justify-content: flex-start;
}

.visa-public-service-shell .visa-tracking-back .visa-button {
    gap: 8px;
}

.visa-public-service-shell .visa-tracking-hero {
    align-items: stretch;
    background: var(--service-surface);
    border: 1px solid var(--service-border);
    border-radius: 18px;
    box-shadow: 0 12px 32px rgba(25, 71, 111, .08);
    display: grid;
    gap: 30px;
    grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr);
    padding: 30px;
}

.visa-public-service-shell .visa-tracking-hero > div {
    align-content: center;
    display: grid;
}

.visa-public-service-shell .visa-tracking-hero h1 {
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.08;
    margin: 0 0 14px;
}

.visa-public-service-shell .visa-tracking-hero > div > p:last-child {
    color: var(--service-muted);
    font-size: .98rem;
    line-height: 1.6;
    margin: 0;
}

.visa-public-service-shell .visa-tracking-search {
    align-content: center;
    background: linear-gradient(145deg, #f4f9fe, #e6f1fb);
    border: 1px solid #c9dff2;
    border-radius: 14px;
    box-shadow: none;
    color: var(--service-text);
    display: grid;
    gap: 10px;
    padding: 24px;
}

.visa-public-service-shell .visa-tracking-search label,
.visa-public-service-shell .visa-tracking-key-form label {
    color: var(--service-text);
    font-family: "Segoe UI", Roboto, Arial, sans-serif;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
}

.visa-public-service-shell .visa-tracking-search > div {
    display: grid;
    gap: 9px;
    grid-template-columns: minmax(0, 1fr) auto;
}

.visa-public-service-shell .visa-tracking-search input,
.visa-public-service-shell .visa-tracking-key-form input {
    background: #fff;
    border: 1px solid var(--service-border-strong);
    border-radius: 8px;
    color: var(--service-text);
    min-height: 44px;
    padding: 10px 12px;
    width: 100%;
}

.visa-public-service-shell .visa-tracking-search small {
    color: var(--service-muted);
}

.visa-public-service-shell .visa-tracking-message,
.visa-public-service-shell .visa-tracking-overview,
.visa-public-service-shell .visa-tracking-section {
    background: var(--service-surface);
    border: 1px solid var(--service-border);
    border-radius: 14px;
    box-shadow: none;
    padding: 24px;
}

.visa-public-service-shell .visa-tracking-message strong {
    color: var(--service-text);
    font-family: "Segoe UI", Roboto, Arial, sans-serif;
    font-size: 1rem;
}

.visa-public-service-shell .visa-tracking-message p {
    color: var(--service-muted);
}

.visa-public-service-shell .visa-tracking-message.is-warning {
    background: var(--service-warning-soft);
    border-color: #f0d39c;
    border-left: 4px solid var(--service-warning);
}

.visa-public-service-shell .visa-tracking-overview {
    border-top: 4px solid var(--service-primary);
}

.visa-public-service-shell .visa-tracking-overview.is-alert {
    border-top-color: var(--service-danger);
}

.visa-public-service-shell .visa-tracking-overview__status h2,
.visa-public-service-shell .visa-tracking-section h2 {
    color: var(--service-text);
    font-family: "Segoe UI", Roboto, Arial, sans-serif;
}

.visa-public-service-shell .visa-tracking-overview__status h2 {
    font-size: clamp(1.4rem, 3vw, 2rem);
}

.visa-public-service-shell .visa-tracking-overview__status > span {
    background: var(--service-primary-soft);
    border-radius: 999px;
    color: var(--service-primary-dark);
    font-family: "Segoe UI", Roboto, Arial, sans-serif;
    font-size: .7rem;
    font-weight: 750;
    letter-spacing: .03em;
    padding: 8px 11px;
}

.visa-public-service-shell .visa-tracking-overview.is-alert .visa-tracking-overview__status > span {
    background: var(--service-danger-soft);
    color: var(--service-danger);
}

.visa-public-service-shell .visa-tracking-lead {
    color: var(--service-muted);
}

.visa-public-service-shell .visa-license-timeline li::after {
    background: var(--service-border);
}

.visa-public-service-shell .visa-license-timeline li > span {
    background: #fff;
    border-color: var(--service-border-strong);
}

.visa-public-service-shell .visa-license-timeline li.is-complete > span {
    background: var(--service-success);
    border-color: var(--service-success);
}

.visa-public-service-shell .visa-license-timeline li.is-current > span {
    background: var(--service-primary);
    border-color: var(--service-primary);
    box-shadow: 0 0 0 5px rgba(8, 114, 206, .12);
}

.visa-public-service-shell .visa-license-timeline li.is-complete::after {
    background: var(--service-success);
}

.visa-public-service-shell .visa-license-timeline strong {
    color: var(--service-text);
}

.visa-public-service-shell .visa-license-timeline small {
    color: var(--service-muted);
}

.visa-public-service-shell .visa-tracking-grid {
    gap: 18px;
}

.visa-public-service-shell .visa-tracking-progress {
    background: #e5ebf0;
    border-radius: 99px;
    height: 8px;
}

.visa-public-service-shell .visa-tracking-progress span {
    background: var(--service-primary);
    border-radius: inherit;
}

.visa-public-service-shell .visa-tracking-alert {
    background: var(--service-danger-soft);
    border-radius: 8px;
    color: var(--service-danger);
    padding: 10px 12px;
}

.visa-public-service-shell .visa-tracking-document-list li {
    background: var(--service-surface-soft);
    border: 1px solid var(--service-border);
    border-left: 4px solid var(--service-border-strong);
    border-radius: 10px;
}

.visa-public-service-shell .visa-tracking-document-list li.status-aprovado,
.visa-public-service-shell .visa-tracking-document-list li.status-enviado {
    border-left-color: var(--service-success);
}

.visa-public-service-shell .visa-tracking-document-list li.status-recusado,
.visa-public-service-shell .visa-tracking-document-list li.status-necessita-substituicao {
    background: var(--service-danger-soft);
    border-left-color: var(--service-danger);
}

.visa-public-service-shell .visa-tracking-document-list small,
.visa-public-service-shell .visa-tracking-access > p,
.visa-public-service-shell .visa-tracking-access > small,
.visa-public-service-shell .visa-tracking-resend-key > p,
.visa-public-service-shell .visa-tracking-resend-key > small,
.visa-public-service-shell .visa-tracking-data-note p {
    color: var(--service-muted);
}

.visa-public-service-shell .visa-tracking-document-list > li > span {
    color: var(--service-muted);
    font-family: "Segoe UI", Roboto, Arial, sans-serif;
    font-weight: 700;
}

.visa-public-service-shell .visa-tracking-access {
    border-top: 4px solid var(--service-primary);
}

.visa-public-service-shell .visa-tracking-key-form {
    gap: 9px;
}

.visa-public-service-shell .visa-tracking-resend-key,
.visa-public-service-shell .visa-tracking-data-note {
    border-color: var(--service-border);
}

.visa-public-service-shell .visa-tracking-resend-key > strong {
    color: var(--service-text);
}

.visa-public-service-shell .visa-tracking-access-ok {
    background: var(--service-success-soft);
    border-left-color: var(--service-success);
    border-radius: 9px;
}

.visa-public-service-shell .visa-tracking-access-ok > .ti {
    color: var(--service-success);
}

.visa-public-service-shell .visa-tracking-access-ok strong {
    color: var(--service-text);
}

.visa-public-service-shell .visa-tracking-data-note > .ti {
    color: var(--service-primary);
}

.visa-public-service-shell .visa-tracking-issued {
    background: linear-gradient(135deg, #fff, var(--service-primary-soft));
}

/* Validacao e consulta de protocolo */

.visa-public-service-shell .visa-license-validation,
.visa-public-service-shell .visa-general-protocol {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    display: grid;
    gap: 16px;
    margin: 0 auto;
    max-width: 960px;
    padding: 24px 28px 42px;
    width: 100%;
}

.visa-public-service-shell .visa-license-validation > .visa-protocol-page__header,
.visa-public-service-shell .visa-general-protocol > .visa-protocol-page__header {
    align-items: flex-start;
    background: var(--service-surface);
    border: 1px solid var(--service-border);
    border-radius: 14px;
    box-shadow: 0 10px 28px rgba(25, 71, 111, .07);
    display: flex;
    justify-content: space-between;
    padding: 22px 24px;
}

.visa-public-service-shell .visa-protocol-page__header h1 {
    color: var(--service-text);
    font-family: "Segoe UI", Roboto, Arial, sans-serif;
    font-size: clamp(1.55rem, 3vw, 2rem);
    margin: 7px 0 0;
}

.visa-public-service-shell .visa-license-validation > .visa-inline-form,
.visa-public-service-shell .visa-general-protocol > .visa-inline-form {
    background: var(--service-surface);
    border: 1px solid var(--service-border);
    border-radius: 14px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 20px;
}

.visa-public-service-shell .visa-license-validation > .visa-inline-form input,
.visa-public-service-shell .visa-general-protocol > .visa-inline-form input {
    flex: 1 1 320px;
}

.visa-public-service-shell .visa-protocol-card {
    background: var(--service-surface);
    border: 1px solid var(--service-border);
    border-radius: 14px;
    box-shadow: 0 10px 28px rgba(25, 71, 111, .07);
    padding: 24px;
}

.visa-public-service-shell .visa-protocol-card > h2 {
    font-size: clamp(1.4rem, 3vw, 2rem);
    margin: 2px 0 18px;
    overflow-wrap: anywhere;
}

.visa-public-service-shell .visa-readonly-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 16px;
}

.visa-public-service-shell .visa-readonly-grid > div {
    background: var(--service-surface-soft);
    border: 1px solid var(--service-border);
    border-radius: 10px;
    padding: 16px;
}

.visa-public-service-shell .visa-readonly-grid h3 {
    font-size: .92rem;
    margin: 0 0 8px;
}

.visa-public-service-shell .visa-readonly-grid p {
    color: var(--service-muted);
    line-height: 1.5;
    margin: 4px 0;
}

.visa-public-service-shell .visa-service-notice {
    background: var(--service-danger-soft);
    border: 1px solid #efc3c8;
    border-radius: 9px;
    color: var(--service-danger);
    margin-bottom: 16px;
    padding: 12px 14px;
}

.visa-public-service-shell .visa-protocol-menu > summary {
    background: #fff;
    border: 1px solid var(--service-border);
    border-radius: 8px;
    color: var(--service-muted);
    height: 34px;
    width: 34px;
}

.visa-public-service-shell .visa-protocol-menu > summary:hover,
.visa-public-service-shell .visa-protocol-menu > summary:focus-visible {
    border-color: var(--service-primary);
    color: var(--service-primary);
}

.visa-public-service-shell .visa-protocol-menu nav {
    border-color: var(--service-border);
    box-shadow: 0 14px 30px rgba(25, 71, 111, .13);
}

.visa-public-service-shell .visa-protocol-menu nav a {
    color: var(--service-text);
}

.visa-public-service-shell .visa-protocol-menu nav a:hover,
.visa-public-service-shell .visa-protocol-menu nav a:focus-visible {
    background: var(--service-primary-soft);
    color: var(--service-primary-strong);
}

.visa-public-service-shell .visa-protocol-dossier {
    gap: 12px;
}

.visa-public-service-shell .visa-protocol-overview,
.visa-public-service-shell .visa-protocol-summary,
.visa-public-service-shell .visa-protocol-timeline-card {
    background: var(--service-surface);
    border: 1px solid var(--service-border);
    border-radius: 14px;
    box-shadow: 0 10px 28px rgba(25, 71, 111, .06);
}

.visa-public-service-shell .visa-protocol-number {
    color: var(--service-primary-strong);
    font-family: Consolas, "Courier New", monospace;
}

.visa-public-service-shell .visa-protocol-progress li {
    color: var(--service-muted);
}

.visa-public-service-shell .visa-protocol-progress li:not(:last-child)::after {
    background: var(--service-border);
}

.visa-public-service-shell .visa-protocol-progress li.is-complete::after,
.visa-public-service-shell .visa-protocol-progress li.is-complete .visa-protocol-progress__marker {
    background: var(--service-success);
}

.visa-public-service-shell .visa-protocol-progress li.is-complete {
    color: var(--service-success);
}

.visa-public-service-shell .visa-protocol-progress li.is-active {
    color: var(--service-primary-strong);
}

.visa-public-service-shell .visa-protocol-progress li.is-active .visa-protocol-progress__marker {
    background: var(--service-primary);
}

.visa-public-service-shell .visa-protocol-current-status {
    background: var(--service-primary-soft);
    color: var(--service-text);
}

.visa-public-service-shell .visa-protocol-current-status > .ti {
    color: var(--service-primary);
}

.visa-public-service-shell .visa-protocol-dossier .visa-protocol-current-status strong {
    color: var(--service-text);
}

.visa-public-service-shell .visa-protocol-current-status span {
    color: var(--service-muted);
}

.visa-public-service-shell .visa-protocol-summary h2,
.visa-public-service-shell .visa-protocol-timeline-card h2 {
    color: var(--service-text);
}

.visa-public-service-shell .visa-protocol-summary dt > .ti {
    color: var(--service-primary);
}

.visa-public-service-shell .visa-protocol-timeline__marker {
    background: var(--service-primary);
}

.visa-public-service-shell .visa-protocol-license-cta {
    background: var(--service-primary-soft);
    border-left-color: var(--service-primary);
    border-radius: 10px;
}

.visa-public-service-shell .visa-protocol-license-cta strong {
    color: var(--service-text);
}

.visa-public-service-shell .visa-history {
    color: var(--service-muted);
}

.visa-public-service-shell .visa-monitor-card {
    background: var(--service-surface-soft);
    border-color: var(--service-border);
    border-radius: 10px;
}

@media (max-width: 980px) {
    .visa-public-service-shell .visa-public-header {
        grid-template-columns: auto auto;
    }

    .visa-public-service-shell .visa-public-nav {
        grid-column: 1 / -1;
        grid-row: 2;
        justify-content: flex-start;
        overflow-x: auto;
        padding-bottom: 2px;
    }

    .visa-public-service-shell .visa-public-actions {
        justify-self: end;
    }

    .visa-public-service-shell .visa-license-hero,
    .visa-public-service-shell .visa-tracking-hero,
    .visa-public-service-shell .visa-license-issued-check,
    .visa-public-service-shell .visa-tracking-grid {
        grid-template-columns: 1fr;
    }

    .visa-public-service-shell .visa-license-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .visa-public-service-shell .visa-public-header {
        min-height: 64px;
        padding: 10px 14px;
    }

    .visa-public-service-shell .visa-public-brand small {
        display: none;
    }

    .visa-public-service-shell .visa-public-actions .visa-button {
        min-height: 40px;
        padding: 8px 11px;
    }

    .visa-public-service-shell .visa-license-public,
    .visa-public-service-shell .visa-license-tracking,
    .visa-public-service-shell .visa-license-validation,
    .visa-public-service-shell .visa-general-protocol {
        padding: 16px 14px 30px;
    }

    .visa-public-service-shell .visa-license-hero,
    .visa-public-service-shell .visa-tracking-hero {
        gap: 22px;
        padding: 22px;
    }

    .visa-public-service-shell .visa-license-hero h1,
    .visa-public-service-shell .visa-tracking-hero h1 {
        font-size: clamp(1.75rem, 9vw, 2.35rem);
    }

    .visa-public-service-shell .visa-license-check--tracking,
    .visa-public-service-shell .visa-tracking-search,
    .visa-public-service-shell .visa-tracking-message,
    .visa-public-service-shell .visa-tracking-overview,
    .visa-public-service-shell .visa-tracking-section,
    .visa-public-service-shell .visa-license-issued-check,
    .visa-public-service-shell .visa-license-public > .visa-section,
    .visa-public-service-shell .visa-protocol-card,
    .visa-public-service-shell .visa-protocol-overview,
    .visa-public-service-shell .visa-protocol-summary,
    .visa-public-service-shell .visa-protocol-timeline-card {
        padding: 18px;
    }

    .visa-public-service-shell .visa-license-check--tracking > div,
    .visa-public-service-shell .visa-license-check--compact > div,
    .visa-public-service-shell .visa-tracking-search > div {
        grid-template-columns: 1fr;
    }

    .visa-public-service-shell .visa-license-grid,
    .visa-public-service-shell .visa-detail-grid,
    .visa-public-service-shell .visa-readonly-grid {
        grid-template-columns: 1fr;
    }

    .visa-public-service-shell .visa-row-actions,
    .visa-public-service-shell .visa-tracking-issued,
    .visa-public-service-shell .visa-protocol-license-cta {
        align-items: stretch;
        flex-direction: column;
    }

    .visa-public-service-shell .visa-row-actions .visa-button,
    .visa-public-service-shell .visa-tracking-issued .visa-button,
    .visa-public-service-shell .visa-protocol-license-cta .visa-button,
    .visa-public-service-shell .visa-license-check .visa-button,
    .visa-public-service-shell .visa-tracking-search .visa-button,
    .visa-public-service-shell .visa-inline-form .visa-button {
        width: 100%;
    }

    .visa-public-service-shell .visa-tracking-overview__status {
        align-items: flex-start;
        flex-direction: column;
    }

    .visa-public-service-shell .visa-license-timeline {
        grid-template-columns: 1fr;
    }

    .visa-public-service-shell .visa-license-timeline li::after {
        display: none;
    }

    .visa-public-service-shell .visa-protocol-progress li:not(:last-child)::after {
        left: calc(50% + 22px);
        right: calc(-50% + 22px);
    }
}

@media (max-width: 460px) {
    .visa-public-service-shell .visa-public-brand strong {
        font-size: .87rem;
    }

    .visa-public-service-shell .visa-brand-mark {
        height: 38px;
        width: 38px;
    }

    .visa-public-service-shell .visa-public-actions .visa-button {
        font-size: .74rem;
    }

    .visa-public-service-shell .visa-protocol-progress__label {
        font-size: .67rem;
    }
}
