:root{--ff-color-success:#15803d;--ff-color-success-soft:#dcfce7;--ff-border-emphasis:var(--portal-text-muted)}.ff-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ff-action-button:focus-visible,.ff-confirm-dialog :focus-visible,.ff-confirm-dialog:focus-visible,.ff-cursor-pagination :focus-visible,.ff-data-table :focus-visible,.ff-filters-and-search :focus-visible,.ff-form-field :focus-visible,.ff-page-header :focus-visible,.ff-page-layout :focus-visible,.ff-skip-link:focus-visible,.ff-status-badge:focus-visible,.ff-transient-notification :focus-visible{outline:none;box-shadow:var(--portal-focus-ring)}.ff-skip-link{position:absolute;top:-100%;left:var(--portal-space-4);z-index:1000;padding:var(--portal-space-2) var(--portal-space-4);background:var(--portal-surface-raised);color:var(--portal-text-primary);border-radius:var(--portal-radius-sm);transition:top .15s ease-out}.ff-skip-link:focus{top:var(--portal-space-2)}.ff-page-layout{display:flex;flex-direction:column;min-height:100%}.ff-page-layout__header{flex:0 0 auto}.ff-page-layout__body{display:flex;flex:1 1 auto;gap:var(--portal-space-5)}.ff-page-layout__sidebar{flex:0 0 auto;width:var(--portal-sidebar-width)}.ff-page-layout__main{flex:1 1 auto;min-width:0}@media (max-width:900px){.ff-page-layout__body{flex-direction:column}.ff-page-layout__sidebar{width:100%}}.ff-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--portal-space-4);padding-bottom:var(--portal-space-4)}.ff-page-header__title{margin:0;font-size:var(--portal-text-xl);font-family:var(--portal-font-sans);color:var(--portal-text-primary)}.ff-page-header__description{margin:var(--portal-space-1) 0 0;color:var(--portal-text-secondary);font-size:var(--portal-text-base)}.ff-page-header__actions{display:flex;gap:var(--portal-space-2);flex:0 0 auto}@media (max-width:900px){.ff-page-header{flex-direction:column}}.ff-data-table__wrapper{width:100%;overflow-x:auto}.ff-data-table{width:100%;border-collapse:collapse;font-size:var(--portal-text-base)}.ff-data-table__caption{text-align:left;padding:var(--portal-space-2) 0;color:var(--portal-text-secondary)}.ff-data-table__header-cell{text-align:left;white-space:nowrap}.ff-data-table__cell,.ff-data-table__header-cell{padding:var(--portal-space-2) var(--portal-space-4);border-bottom:1px solid var(--ff-border-emphasis);color:var(--portal-text-primary)}.ff-data-table__row:hover .ff-data-table__cell{background:var(--portal-surface-canvas)}.ff-cursor-pagination{display:flex;gap:var(--portal-space-2);justify-content:flex-end}.ff-cursor-pagination__button{padding:var(--portal-space-1) var(--portal-space-4);border:1px solid var(--ff-border-emphasis);border-radius:var(--portal-radius-sm);background:var(--portal-surface-raised);color:var(--portal-text-primary);cursor:pointer;transition:background-color .15s ease-out}.ff-cursor-pagination__button:disabled{cursor:not-allowed;opacity:.5}.ff-cursor-pagination__button:not(:disabled):hover{background:var(--portal-surface-canvas)}.ff-filters-and-search{display:flex;flex-wrap:wrap;align-items:center;gap:var(--portal-space-4)}.ff-filters-and-search__input{width:100%;max-width:320px;padding:var(--portal-space-1) var(--portal-space-2);border:1px solid var(--ff-border-emphasis);border-radius:var(--portal-radius-sm);font-size:var(--portal-text-base);color:var(--portal-text-primary);background:var(--portal-surface-raised)}.ff-filters-and-search__filters{display:flex;flex-wrap:wrap;gap:var(--portal-space-2)}.ff-form-field{display:flex;flex-direction:column;gap:var(--portal-space-1)}.ff-form-field__label{font-size:var(--portal-text-sm);font-weight:600;color:var(--portal-text-primary)}.ff-form-field__required-marker{color:var(--portal-danger)}.ff-form-field__control input,.ff-form-field__control select,.ff-form-field__control textarea{box-sizing:border-box;width:100%;padding:var(--portal-space-1) var(--portal-space-2);border:1px solid var(--ff-border-emphasis);border-radius:var(--portal-radius-sm);font-size:var(--portal-text-base)}.ff-field-error{margin:0;color:var(--portal-danger);font-size:var(--portal-text-sm)}.ff-action-button{display:inline-flex;align-items:center;gap:var(--portal-space-1);padding:var(--portal-space-1) var(--portal-space-4);border:1px solid transparent;border-radius:var(--portal-radius-sm);font-size:var(--portal-text-base);cursor:pointer;background:var(--portal-accent);color:var(--portal-surface-raised);transition:background-color .15s ease-out,opacity .15s ease-out}.ff-action-button--disabled,.ff-action-button--loading{cursor:not-allowed;opacity:.6}.ff-action-button--success{background:var(--ff-color-success)}.ff-action-button--error{background:var(--portal-danger)}.ff-confirm-dialog__overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(16,24,40,.5);z-index:1000}.ff-confirm-dialog{width:100%;max-width:420px;padding:var(--portal-space-5);border-radius:var(--portal-radius-md);background:var(--portal-surface-raised);box-shadow:var(--portal-shadow-mid)}.ff-confirm-dialog--dangerous{border-top:4px solid var(--portal-danger)}.ff-confirm-dialog__title{margin:0 0 var(--portal-space-2);font-size:var(--portal-text-lg);color:var(--portal-text-primary)}.ff-confirm-dialog__description{margin:0 0 var(--portal-space-5);color:var(--portal-text-secondary)}.ff-confirm-dialog__actions{display:flex;justify-content:flex-end;gap:var(--portal-space-2)}.ff-confirm-dialog__button{padding:var(--portal-space-1) var(--portal-space-4);border:1px solid var(--ff-border-emphasis);border-radius:var(--portal-radius-sm);cursor:pointer;background:var(--portal-surface-raised)}.ff-confirm-dialog__button--confirm{border-color:transparent;background:var(--portal-accent);color:var(--portal-surface-raised)}.ff-confirm-dialog--dangerous .ff-confirm-dialog__button--confirm{background:var(--portal-danger)}.ff-transient-notification{display:flex;align-items:center;justify-content:space-between;gap:var(--portal-space-4);padding:var(--portal-space-2) var(--portal-space-4);border-radius:var(--portal-radius-sm);border-left:4px solid var(--portal-accent);background:var(--portal-surface-raised);color:var(--portal-text-primary);transition:opacity .15s ease-out,transform .15s ease-out}.ff-transient-notification--success{border-left-color:var(--ff-color-success)}.ff-transient-notification--warning{border-left-color:var(--portal-warning)}.ff-transient-notification--danger{border-left-color:var(--portal-danger)}.ff-transient-notification__dismiss{border:none;background:transparent;font-size:var(--portal-text-lg);line-height:1;cursor:pointer;color:inherit}.ff-state-view{display:flex;flex-direction:column;align-items:center;gap:var(--portal-space-2);padding:var(--portal-space-5);text-align:center;color:var(--portal-text-secondary)}.ff-state-view__title{margin:0;font-weight:600;color:var(--portal-text-primary)}.ff-state-view__description{margin:0}.ff-state-view__correlation-id{margin:0;font-size:var(--portal-text-sm);font-family:var(--portal-font-mono)}.ff-state-view--error .ff-state-view__title{color:var(--portal-danger)}.ff-state-view__spinner{width:20px;height:20px;border-radius:50%;border:2px solid var(--portal-border-subtle);border-top-color:var(--portal-accent);animation:ff-spin .8s linear infinite}@keyframes ff-spin{to{transform:rotate(1turn)}}.ff-status-badge{display:inline-flex;align-items:center;padding:.125rem var(--portal-space-2);border-radius:999px;font-size:var(--portal-text-sm);font-weight:600;background:var(--portal-neutral-soft);color:var(--portal-text-primary)}.ff-status-badge--accent{background:var(--portal-accent-soft);color:var(--portal-accent)}.ff-status-badge--warning{background:var(--portal-warning-soft);color:var(--portal-warning)}.ff-status-badge--danger{background:var(--portal-danger-soft);color:var(--portal-danger)}.ff-status-badge--success{background:var(--ff-color-success-soft);color:var(--ff-color-success)}@media (prefers-reduced-motion:reduce){.ff-action-button,.ff-cursor-pagination__button,.ff-skip-link,.ff-transient-notification{transition-duration:.01ms!important}.ff-state-view__spinner{animation-duration:1.01ms!important}}:root{--portal-font-sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--portal-font-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;--portal-text-xs:0.75rem;--portal-text-sm:0.8125rem;--portal-text-base:0.9375rem;--portal-text-lg:1.125rem;--portal-text-xl:1.5rem;--portal-text-2xl:2rem;--portal-leading-tight:1.25;--portal-leading-normal:1.55;--portal-tracking-wide:0.06em;--portal-space-1:0.25rem;--portal-space-2:0.5rem;--portal-space-3:0.75rem;--portal-space-4:1rem;--portal-space-5:1.5rem;--portal-space-6:2rem;--portal-space-7:3rem;--portal-radius-sm:4px;--portal-radius-md:8px;--portal-radius-lg:14px;--portal-shadow-low:0 1px 2px rgba(16,24,40,0.06);--portal-shadow-mid:0 6px 18px rgba(16,24,40,0.1);--portal-surface-canvas:#f6f7f9;--portal-surface-raised:#ffffff;--portal-surface-sunken:#eceff3;--portal-surface-inverted:#101828;--portal-border-subtle:#dfe3e9;--portal-border-strong:#c3cad4;--portal-text-primary:#101828;--portal-text-secondary:#4a5567;--portal-text-muted:#6b7688;--portal-text-on-inverted:#f2f4f7;--portal-accent:#1f4fd8;--portal-accent-soft:#e6ecfd;--portal-warning:#8a5a00;--portal-warning-soft:#fdf1d6;--portal-danger:#9b1c1c;--portal-danger-soft:#fbe6e6;--portal-neutral:#4a5567;--portal-neutral-soft:#eceff3;--portal-dev:#6d28d9;--portal-dev-soft:#f0e9fe;--portal-header-height:56px;--portal-banner-height:44px;--portal-sidebar-width:268px;--portal-content-max-width:1180px;--portal-focus-ring:0 0 0 2px #ffffff,0 0 0 4px var(--portal-accent)}@media (max-width:900px){:root{--portal-sidebar-width:100%;--portal-header-height:52px}}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--portal-font-sans);font-size:var(--portal-text-base);line-height:var(--portal-leading-normal);color:var(--portal-text-primary);background:var(--portal-surface-canvas);-webkit-font-smoothing:antialiased}h1,h2,h3,ol,p,ul{margin:0}ul{padding:0;list-style:none}a{color:var(--portal-accent)}:focus-visible{outline:none;box-shadow:var(--portal-focus-ring);border-radius:var(--portal-radius-sm)}.portal-dev-banner{letter-spacing:var(--portal-tracking-wide)}.portal-shell{min-height:100vh;display:flex;flex-direction:column}.portal-header{height:var(--portal-header-height);display:flex;align-items:center;gap:var(--portal-space-4);padding:0 var(--portal-space-5);background:var(--portal-surface-inverted);color:var(--portal-text-on-inverted);border-bottom:1px solid var(--portal-border-strong);flex-wrap:wrap}.portal-brand{display:flex;align-items:baseline;gap:var(--portal-space-2);font-weight:600;letter-spacing:.01em}.portal-brand__mark{font-size:var(--portal-text-lg)}.portal-brand__wave{font-size:var(--portal-text-xs);color:#9aa4b6;font-weight:400}.portal-header__spacer{flex:1 1 auto}.portal-header__identity{display:flex;align-items:center;gap:var(--portal-space-3);font-size:var(--portal-text-sm);color:var(--portal-text-on-inverted)}.portal-env-badge{display:inline-flex;align-items:center;gap:var(--portal-space-2);padding:2px var(--portal-space-3);border-radius:999px;font-size:var(--portal-text-xs);font-weight:700;letter-spacing:var(--portal-tracking-wide);text-transform:uppercase;border:1px solid}.portal-env-badge--development{color:#c4b5fd}.portal-env-badge--test{color:#93c5fd}.portal-env-badge--homologation{color:#fcd34d}.portal-env-badge--production{color:#86efac}.portal-env-badge--unknown{color:#fca5a5}.portal-shell .ff-page-layout__body{gap:0}.portal-sidebar{width:var(--portal-sidebar-width);flex:0 0 auto;padding:var(--portal-space-5) var(--portal-space-4);background:var(--portal-surface-raised);border-right:1px solid var(--portal-border-subtle)}@media (max-width:900px){.portal-sidebar{border-right:none;border-bottom:1px solid var(--portal-border-subtle)}}.portal-sidebar__title{font-size:var(--portal-text-xs);text-transform:uppercase;letter-spacing:var(--portal-tracking-wide);color:var(--portal-text-muted);margin-bottom:var(--portal-space-3)}.portal-selector{margin-bottom:var(--portal-space-4)}.portal-selector__label{display:block;font-size:var(--portal-text-xs);text-transform:uppercase;letter-spacing:var(--portal-tracking-wide);color:var(--portal-text-muted);margin-bottom:var(--portal-space-1)}.portal-selector__value{display:block;padding:var(--portal-space-2) var(--portal-space-3);border:1px solid var(--portal-border-subtle);border-radius:var(--portal-radius-md);background:var(--portal-surface-sunken);color:var(--portal-text-secondary);font-size:var(--portal-text-sm)}.portal-selector__hint{display:block;margin-top:var(--portal-space-1);font-size:var(--portal-text-xs);color:var(--portal-text-muted)}.portal-nav__group{margin-bottom:var(--portal-space-4)}.portal-nav__item{padding:var(--portal-space-3);border:1px solid var(--portal-border-subtle);border-radius:var(--portal-radius-md);margin-bottom:var(--portal-space-2);background:var(--portal-surface-raised)}.portal-nav__item--inert{background:var(--portal-surface-sunken);color:var(--portal-text-secondary)}.portal-nav__label{display:block;font-weight:600;font-size:var(--portal-text-sm)}.portal-nav__description{display:block;margin-top:var(--portal-space-1);font-size:var(--portal-text-xs);color:var(--portal-text-muted)}.portal-tag{display:inline-block;margin-top:var(--portal-space-2);padding:1px var(--portal-space-2);border-radius:var(--portal-radius-sm);font-size:var(--portal-text-xs);font-weight:600;letter-spacing:.02em}.portal-tag--available_in_development{background:var(--portal-dev-soft);color:var(--portal-dev)}.portal-tag--unavailable{background:var(--portal-neutral-soft);color:var(--portal-neutral)}.portal-tag--not_configured{background:var(--portal-danger-soft);color:var(--portal-danger)}.portal-tag--blocked_by_integration{background:var(--portal-warning-soft);color:var(--portal-warning)}.portal-tag--under_construction{background:var(--portal-accent-soft);color:var(--portal-accent)}.portal-main{flex:1 1 auto;padding:var(--portal-space-6) var(--portal-space-5);max-width:var(--portal-content-max-width)}.portal-card{background:var(--portal-surface-raised);border:1px solid var(--portal-border-subtle);border-radius:var(--portal-radius-lg);box-shadow:var(--portal-shadow-low);padding:var(--portal-space-5);margin-bottom:var(--portal-space-5)}.portal-card__title{font-size:var(--portal-text-xl);line-height:var(--portal-leading-tight);margin-bottom:var(--portal-space-2)}.portal-card__body{color:var(--portal-text-secondary);font-size:var(--portal-text-sm)}.portal-definition{display:grid;grid-template-columns:minmax(180px,260px) 1fr;gap:var(--portal-space-2) var(--portal-space-4);font-size:var(--portal-text-sm);margin-top:var(--portal-space-4)}@media (max-width:640px){.portal-definition{grid-template-columns:1fr}}.portal-definition__term{color:var(--portal-text-muted)}.portal-definition__value{color:var(--portal-text-primary);font-family:var(--portal-font-mono);font-size:var(--portal-text-xs);word-break:break-word}.portal-state{border-left:3px solid var(--portal-neutral);padding:var(--portal-space-4);border-radius:var(--portal-radius-md);background:var(--portal-surface-sunken)}.portal-state--integration_not_configured{border-left-color:var(--portal-warning)}.portal-state--context_unavailable{border-left-color:var(--portal-neutral)}.portal-state--unexpected_error{border-left-color:var(--portal-danger)}.portal-state--route_not_found{border-left-color:var(--portal-accent)}.portal-state--environment_unknown{border-left-color:var(--portal-danger)}.portal-state__title{font-size:var(--portal-text-lg);margin-bottom:var(--portal-space-2)}.portal-state__message{color:var(--portal-text-secondary);font-size:var(--portal-text-sm)}.portal-state__correlation{display:block;margin-top:var(--portal-space-3);font-family:var(--portal-font-mono);font-size:var(--portal-text-xs);color:var(--portal-text-muted)}.portal-loading{padding:var(--portal-space-6);color:var(--portal-text-muted);font-size:var(--portal-text-sm)}.portal-footer{padding:var(--portal-space-4) var(--portal-space-5);border-top:1px solid var(--portal-border-subtle);background:var(--portal-surface-raised);color:var(--portal-text-muted);font-size:var(--portal-text-xs);display:flex;flex-wrap:wrap;gap:var(--portal-space-2) var(--portal-space-5)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}