:root{--fx-primary-50: #EBF5FF;--fx-primary-100: #D6EAFF;--fx-primary-200: #A8D4FF;--fx-primary-300: #70BAFF;--fx-primary-400: #319EFF;--fx-primary-500: #0185FC;--fx-primary-600: #0069CC;--fx-primary-700: #00539F;--fx-primary-800: #05407A;--fx-primary-900: #0A3159;--fx-neutral-0: #FFFFFF;--fx-neutral-25: #FBFCFD;--fx-neutral-50: #F7F9FB;--fx-neutral-100: #F1F4F8;--fx-neutral-200: #E3E8EF;--fx-neutral-300: #CDD5E0;--fx-neutral-400: #9AA5B4;--fx-neutral-500: #6B7684;--fx-neutral-600: #515B69;--fx-neutral-700: #3C4551;--fx-neutral-800: #27303C;--fx-neutral-900: #142539;--fx-neutral-950: #0C1725;--fx-success-50: #E7F7F1;--fx-success-500: #0E9F6E;--fx-success-700: #06714C;--fx-warning-50: #FEF4E6;--fx-warning-500: #D97706;--fx-warning-700: #92400E;--fx-danger-50: #FDECEC;--fx-danger-500: #DC2626;--fx-danger-700: #991B1B;--fx-info-50: var(--fx-primary-50);--fx-info-500: var(--fx-primary-500);--fx-info-700: var(--fx-primary-700);--fx-bg-app: var(--fx-neutral-50);--fx-bg-surface: var(--fx-neutral-0);--fx-bg-subtle: var(--fx-neutral-100);--fx-bg-hover: var(--fx-neutral-100);--fx-bg-active: var(--fx-neutral-200);--fx-bg-inverse: var(--fx-neutral-900);--fx-border: var(--fx-neutral-200);--fx-border-strong: #848F9E;--fx-border-focus: var(--fx-primary-500);--fx-text-primary: var(--fx-neutral-900);--fx-text-secondary: var(--fx-neutral-600);--fx-text-tertiary: var(--fx-neutral-500);--fx-text-inverse: var(--fx-neutral-0);--fx-text-link: var(--fx-primary-600);--fx-text-disabled: var(--fx-neutral-400);--fx-action-bg: var(--fx-primary-500);--fx-action-bg-hover: var(--fx-primary-600);--fx-action-bg-active: var(--fx-primary-700);--fx-action-text: var(--fx-neutral-0);--fx-focus-ring: 0 0 0 3px rgba(1, 133, 252, .28);--fx-border-subtle: var(--fx-neutral-100);--fx-border-control: #6B7684;--fx-bg-row-hover: var(--fx-neutral-25);--fx-text-on-accent: var(--fx-neutral-0);--fx-accent-light: var(--fx-primary-50);--fx-accent-text: var(--fx-primary-700);--fx-success: var(--fx-success-500);--fx-success-bg: var(--fx-success-50);--fx-success-text: var(--fx-success-700);--fx-warning: var(--fx-warning-500);--fx-warning-bg: var(--fx-warning-50);--fx-warning-text: var(--fx-warning-700);--fx-danger: var(--fx-danger-500);--fx-danger-bg: var(--fx-danger-50);--fx-danger-text: var(--fx-danger-700);--fx-danger-hover: var(--fx-danger-700);--fx-action-danger-bg: var(--fx-danger-500);--fx-action-danger-bg-hover: var(--fx-danger-700);--fx-info: var(--fx-primary-500);--fx-info-bg: var(--fx-primary-50);--fx-info-text: var(--fx-primary-700);--fx-font-sans: "Inter", "Inter var", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--fx-font-mono: "JetBrains Mono", "SF Mono", ui-monospace, Menlo, monospace;--fx-text-display: 2rem;--fx-text-h1: 1.5rem;--fx-text-h2: 1.25rem;--fx-text-h3: 1rem;--fx-text-body: .875rem;--fx-text-sm: .8125rem;--fx-text-caption: .75rem;--fx-leading-tight: 1.25;--fx-leading-normal: 1.5;--fx-tracking-display: -.022em;--fx-tracking-heading: -.014em;--fx-tracking-body: 0;--fx-tracking-caption: .01em;--fx-weight-regular: 400;--fx-weight-medium: 500;--fx-weight-semibold: 600;--fx-space-1: .25rem;--fx-space-2: .5rem;--fx-space-3: .75rem;--fx-space-4: 1rem;--fx-space-5: 1.25rem;--fx-space-6: 1.5rem;--fx-space-8: 2rem;--fx-space-10: 2.5rem;--fx-space-12: 3rem;--fx-space-16: 4rem;--fx-radius-xs: 4px;--fx-radius-sm: 6px;--fx-radius-md: 8px;--fx-radius-control: 10px;--fx-radius-lg: 12px;--fx-radius-xl: 16px;--fx-radius-full: 9999px;--fx-shadow-xs: 0 1px 2px rgba(16, 26, 40, .05);--fx-shadow-sm: 0 1px 3px rgba(16, 26, 40, .08), 0 1px 2px rgba(16, 26, 40, .04);--fx-shadow-md: 0 4px 8px -2px rgba(16, 26, 40, .08), 0 2px 4px -2px rgba(16, 26, 40, .04);--fx-shadow-lg: 0 12px 16px -4px rgba(16, 26, 40, .08), 0 4px 6px -2px rgba(16, 26, 40, .03);--fx-shadow-xl: 0 20px 24px -4px rgba(16, 26, 40, .1), 0 8px 8px -4px rgba(16, 26, 40, .04);--fx-control-sm: 32px;--fx-control-md: 36px;--fx-control-lg: 40px;--fx-sidebar-w: 248px;--fx-sidebar-w-min: 64px;--fx-topbar-h: 56px;--fx-content-max: 1440px;--fx-duration-fast: .12s;--fx-duration-base: .18s;--fx-ease: cubic-bezier(.2, 0, 0, 1);--fx-z-dropdown: 1000;--fx-z-sticky: 1020;--fx-z-drawer: 1040;--fx-z-modal: 1050;--fx-z-toast: 1070}:root{color-scheme:light}[data-theme=dark]{color-scheme:dark}[data-theme=dark]{--fx-bg-app: var(--fx-neutral-950);--fx-bg-surface: #131E2C;--fx-bg-subtle: #1B2839;--fx-bg-hover: #1F2D40;--fx-bg-active: #26364B;--fx-bg-inverse: var(--fx-neutral-900);--fx-border: #223146;--fx-border-strong: #57718F;--fx-text-primary: #EAEFF6;--fx-text-secondary: #9AA9BC;--fx-text-tertiary: #7C8CA1;--fx-text-inverse: var(--fx-neutral-0);--fx-text-link: var(--fx-primary-400);--fx-action-bg: var(--fx-primary-500);--fx-action-bg-hover: var(--fx-primary-400);--fx-border-subtle: #1A2533;--fx-border-control: #6B87A6;--fx-bg-row-hover: #182534;--fx-text-on-accent: #FFFFFF;--fx-accent-light: #12283F;--fx-accent-text: var(--fx-primary-300);--fx-success: #34D399;--fx-success-bg: #0E2A21;--fx-success-text: #6EE7B7;--fx-warning: #FBBF24;--fx-warning-bg: #2B2009;--fx-warning-text: #FCD34D;--fx-danger: #F87171;--fx-danger-bg: #2C1518;--fx-danger-text: #FCA5A5;--fx-danger-hover: #FCA5A5;--fx-action-danger-bg: var(--fx-danger-500);--fx-action-danger-bg-hover: #C93B36;--fx-info: #60A5FA;--fx-info-bg: #12283F;--fx-info-text: #93C5FD;--fx-shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--fx-shadow-md: 0 4px 12px rgba(0, 0, 0, .45);--fx-shadow-lg: 0 16px 32px rgba(0, 0, 0, .5)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--fx-bg-app);color:var(--fx-text-primary);font-family:var(--fx-font-sans);font-size:var(--fx-text-body);line-height:var(--fx-leading-normal);font-weight:var(--fx-weight-regular);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11" 1,"ss01" 1}h1,h2,h3,h4{margin:0;color:var(--fx-text-primary);font-weight:var(--fx-weight-semibold);line-height:var(--fx-leading-tight);letter-spacing:var(--fx-tracking-heading)}h1{font-size:var(--fx-text-h1)}h2{font-size:var(--fx-text-h2)}h3{font-size:var(--fx-text-h3)}.fx-num,td[data-numeric],[data-tabular]{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:none;box-shadow:var(--fx-focus-ring);border-color:var(--fx-border-focus)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.fx-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--fx-space-2);height:var(--fx-control-md);padding:0 var(--fx-space-4);border:1px solid transparent;border-radius:var(--fx-radius-control);font-family:inherit;font-size:var(--fx-text-body);font-weight:var(--fx-weight-medium);line-height:1;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--fx-duration-fast) var(--fx-ease),border-color var(--fx-duration-fast) var(--fx-ease),color var(--fx-duration-fast) var(--fx-ease)}.fx-btn:focus-visible{outline:none;box-shadow:var(--fx-focus-ring)}.fx-btn:disabled{opacity:.45;cursor:not-allowed}.fx-btn--primary{background:var(--fx-action-bg);color:var(--fx-action-text)}.fx-btn--primary:hover:not(:disabled){background:var(--fx-action-bg-hover)}.fx-btn--primary:active:not(:disabled){background:var(--fx-action-bg-active)}.fx-btn--secondary{background:var(--fx-bg-surface);color:var(--fx-text-primary);border-color:var(--fx-border-strong)}.fx-btn--secondary:hover:not(:disabled){background:var(--fx-bg-hover)}.fx-btn--ghost{background:transparent;color:var(--fx-text-secondary)}.fx-btn--ghost:hover:not(:disabled){background:var(--fx-bg-hover);color:var(--fx-text-primary)}.fx-btn--danger{background:var(--fx-action-danger-bg);color:var(--fx-text-on-accent)}.fx-btn--danger:hover:not(:disabled){background:var(--fx-action-danger-bg-hover)}.fx-btn--danger-ghost{background:transparent;color:var(--fx-danger-text)}.fx-btn--danger-ghost:hover:not(:disabled){background:var(--fx-danger-bg)}.fx-btn--sm{height:var(--fx-control-sm);padding:0 var(--fx-space-3);font-size:var(--fx-text-sm)}.fx-btn--lg{height:var(--fx-control-lg);padding:0 var(--fx-space-5)}.fx-btn--icon{width:var(--fx-control-md);padding:0}.fx-btn--icon.fx-btn--sm{width:var(--fx-control-sm)}.fx-field{display:flex;flex-direction:column;gap:var(--fx-space-2);min-width:0}.fx-label{font-size:var(--fx-text-caption);font-weight:var(--fx-weight-medium);color:var(--fx-text-secondary);letter-spacing:var(--fx-tracking-caption)}.fx-label__required{color:var(--fx-danger);margin-left:2px}.fx-input,.fx-select,.fx-textarea{width:100%;height:var(--fx-control-md);padding:0 var(--fx-space-3);background:var(--fx-bg-surface);color:var(--fx-text-primary);border:1px solid var(--fx-border-strong);border-radius:var(--fx-radius-control);font-family:inherit;font-size:var(--fx-text-body);transition:border-color var(--fx-duration-fast) var(--fx-ease),box-shadow var(--fx-duration-fast) var(--fx-ease)}.fx-textarea{height:auto;min-height:88px;padding:var(--fx-space-3);resize:vertical}.fx-input::placeholder,.fx-textarea::placeholder{color:var(--fx-text-tertiary)}.fx-input:hover:not(:disabled),.fx-select:hover:not(:disabled){border-color:var(--fx-border-control)}.fx-input:focus,.fx-select:focus,.fx-textarea:focus{outline:none;border-color:var(--fx-border-focus);box-shadow:var(--fx-focus-ring)}.fx-input:disabled,.fx-select:disabled,.fx-textarea:disabled{background:var(--fx-bg-subtle);color:var(--fx-text-disabled);cursor:not-allowed}.fx-input[aria-invalid=true],.fx-select[aria-invalid=true]{border-color:var(--fx-danger)}.fx-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:var(--fx-space-8);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B7684' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--fx-space-3) center}.fx-date{position:relative;display:block}.fx-date>.fx-input{padding-right:var(--fx-space-8)}.fx-date>.fx-input::-webkit-calendar-picker-indicator{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.fx-date>.fx-input::-webkit-datetime-edit{color:var(--fx-text-primary)}.fx-date>.fx-input:invalid::-webkit-datetime-edit{color:var(--fx-text-tertiary)}.fx-date__icon{position:absolute;right:var(--fx-space-3);top:50%;transform:translateY(-50%);color:var(--fx-text-tertiary);pointer-events:none}.fx-field__msg{min-height:16px;font-size:var(--fx-text-caption);color:var(--fx-text-tertiary)}.fx-field__msg--error{color:var(--fx-danger-text)}.fx-card{background:var(--fx-bg-surface);border:1px solid var(--fx-border);border-radius:var(--fx-radius-lg);box-shadow:var(--fx-shadow-xs)}.fx-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--fx-space-4);padding:var(--fx-space-5) var(--fx-space-6);border-bottom:1px solid var(--fx-border)}.fx-card__title{font-size:var(--fx-text-h3);font-weight:var(--fx-weight-semibold)}.fx-card__body{padding:var(--fx-space-6)}.fx-card__body--flush{padding:0}.fx-card__footer{display:flex;justify-content:flex-end;gap:var(--fx-space-3);padding:var(--fx-space-4) var(--fx-space-6);border-top:1px solid var(--fx-border)}.fx-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--fx-space-4)}.fx-kpi{background:var(--fx-bg-surface);border:1px solid var(--fx-border);border-radius:var(--fx-radius-lg);padding:var(--fx-space-5) var(--fx-space-6)}.fx-kpi__label{font-size:var(--fx-text-caption);font-weight:var(--fx-weight-medium);color:var(--fx-text-secondary)}.fx-kpi__value{margin-top:var(--fx-space-2);font-size:var(--fx-text-display);font-weight:var(--fx-weight-semibold);line-height:1.1;letter-spacing:var(--fx-tracking-display);color:var(--fx-text-primary);font-variant-numeric:tabular-nums}.fx-kpi__hint{margin-top:var(--fx-space-1);font-size:var(--fx-text-caption);color:var(--fx-text-tertiary)}.fx-page{padding:var(--fx-space-6);max-width:var(--fx-content-max);margin:0 auto}.fx-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--fx-space-4);margin-bottom:var(--fx-space-6)}.fx-page-header__title{font-size:var(--fx-text-h1);letter-spacing:var(--fx-tracking-heading)}.fx-page-header__desc{margin-top:var(--fx-space-1);font-size:var(--fx-text-body);color:var(--fx-text-secondary)}.fx-page-header__actions{display:flex;gap:var(--fx-space-3);flex-shrink:0}.fx-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--fx-space-3);margin-bottom:var(--fx-space-5)}.fx-toolbar__spacer{margin-left:auto}.fx-segmented{display:inline-flex;padding:3px;background:var(--fx-bg-subtle);border-radius:var(--fx-radius-md)}.fx-segmented__item{height:30px;padding:0 var(--fx-space-4);border:none;background:transparent;border-radius:var(--fx-radius-sm);font:inherit;font-size:var(--fx-text-sm);font-weight:var(--fx-weight-medium);color:var(--fx-text-secondary);cursor:pointer}.fx-segmented__item[aria-selected=true]{background:var(--fx-bg-surface);color:var(--fx-text-primary);box-shadow:var(--fx-shadow-xs)}.fx-badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 10px;border-radius:var(--fx-radius-full);font-size:var(--fx-text-caption);font-weight:var(--fx-weight-medium);white-space:nowrap}.fx-badge--neutral{background:var(--fx-bg-subtle);color:var(--fx-text-secondary)}.fx-badge--info{background:var(--fx-info-50);color:var(--fx-info-700)}.fx-badge--success{background:var(--fx-success-bg);color:var(--fx-success-text)}.fx-badge--warning{background:var(--fx-warning-bg);color:var(--fx-warning-text)}.fx-badge--danger{background:var(--fx-danger-bg);color:var(--fx-danger-text)}.fx-table-wrap{overflow-x:auto;border-radius:var(--fx-radius-lg);border:1px solid var(--fx-border);background:var(--fx-bg-surface)}.fx-table{width:100%;border-collapse:collapse;font-size:var(--fx-text-body)}.fx-table thead th{position:sticky;top:0;z-index:1;height:40px;padding:0 var(--fx-space-4);background:var(--fx-bg-subtle);border-bottom:1px solid var(--fx-border);text-align:left;font-size:var(--fx-text-caption);font-weight:var(--fx-weight-medium);color:var(--fx-text-secondary);white-space:nowrap}.fx-table tbody td{height:48px;padding:0 var(--fx-space-4);border-bottom:1px solid var(--fx-border);color:var(--fx-text-primary);vertical-align:middle}.fx-table tbody tr:last-child td{border-bottom:none}.fx-table tbody tr:hover td{background:var(--fx-bg-hover)}.fx-table th.fx-num,.fx-table td.fx-num{text-align:right;font-variant-numeric:tabular-nums}.fx-table td.fx-muted{color:var(--fx-text-tertiary)}.fx-table th.fx-actions,.fx-table td.fx-actions{text-align:right;width:1%;white-space:nowrap}.fx-table--sticky th:nth-child(2),.fx-table--sticky td:nth-child(2){position:sticky;left:0;background:var(--fx-bg-surface);z-index:2}.fx-table--sticky thead th:nth-child(2){background:var(--fx-bg-subtle)}.fx-menu{position:relative;display:inline-block}.fx-menu__list{position:absolute;right:0;top:calc(100% + 4px);z-index:var(--fx-z-dropdown);min-width:180px;padding:var(--fx-space-1);background:var(--fx-bg-surface);border:1px solid var(--fx-border);border-radius:var(--fx-radius-lg);box-shadow:var(--fx-shadow-lg)}.fx-menu__item{display:flex;align-items:center;gap:var(--fx-space-2);width:100%;height:34px;padding:0 var(--fx-space-3);border:none;background:transparent;border-radius:var(--fx-radius-sm);font:inherit;font-size:var(--fx-text-body);color:var(--fx-text-primary);text-align:left;cursor:pointer}.fx-menu__item:hover{background:var(--fx-bg-hover)}.fx-menu__item--danger{color:var(--fx-danger-text)}.fx-menu__item--danger:hover{background:var(--fx-danger-bg)}.fx-menu__sep{height:1px;margin:var(--fx-space-1) 0;background:var(--fx-border)}.fx-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--fx-z-modal);display:flex;align-items:center;justify-content:center;padding:var(--fx-space-4);background:#0c172573;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.fx-modal{width:100%;max-width:560px;max-height:calc(100vh - var(--fx-space-16));display:flex;flex-direction:column;background:var(--fx-bg-surface);border-radius:var(--fx-radius-xl);box-shadow:var(--fx-shadow-xl);overflow:hidden}.fx-modal--lg{max-width:760px}.fx-modal--xl{max-width:980px}.fx-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--fx-space-4);padding:var(--fx-space-5) var(--fx-space-6);border-bottom:1px solid var(--fx-border)}.fx-modal__title{font-size:var(--fx-text-h2);letter-spacing:var(--fx-tracking-heading)}.fx-modal__subtitle{margin-top:var(--fx-space-1);font-size:var(--fx-text-sm);color:var(--fx-text-secondary)}.fx-modal__body{padding:var(--fx-space-6);overflow-y:auto}.fx-modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--fx-space-3);padding:var(--fx-space-4) var(--fx-space-6);border-top:1px solid var(--fx-border);background:var(--fx-bg-app)}.fx-modal__footer--split{justify-content:space-between}.fx-tabs{display:flex;gap:var(--fx-space-1);border-bottom:1px solid var(--fx-border)}.fx-tab{height:38px;padding:0 var(--fx-space-3);border:none;border-bottom:2px solid transparent;background:transparent;font:inherit;font-size:var(--fx-text-body);font-weight:var(--fx-weight-medium);color:var(--fx-text-secondary);cursor:pointer}.fx-tab:hover{color:var(--fx-text-primary)}.fx-tab[aria-selected=true]{color:var(--fx-accent-text);border-bottom-color:var(--fx-action-bg)}.fx-empty{display:flex;flex-direction:column;align-items:center;gap:var(--fx-space-3);padding:var(--fx-space-12) var(--fx-space-6);text-align:center}.fx-empty__icon{color:var(--fx-text-tertiary)}.fx-empty__title{font-size:var(--fx-text-h3);font-weight:var(--fx-weight-semibold)}.fx-empty__desc{font-size:var(--fx-text-body);color:var(--fx-text-secondary);max-width:380px}.fx-sidebar{width:var(--fx-sidebar-w);background:var(--fx-bg-surface);border-right:1px solid var(--fx-border);display:flex;flex-direction:column}.fx-nav-item{display:flex;align-items:center;gap:var(--fx-space-3);height:36px;margin:2px var(--fx-space-3);padding:0 var(--fx-space-3);border-radius:var(--fx-radius-md);font-size:var(--fx-text-body);font-weight:var(--fx-weight-medium);color:var(--fx-text-secondary);text-decoration:none;cursor:pointer}.fx-nav-item:hover{background:var(--fx-bg-hover);color:var(--fx-text-primary)}.fx-nav-item[aria-current=page]{background:var(--fx-accent-light);color:var(--fx-accent-text)}.fx-nav-item[aria-current=page] svg{color:var(--fx-text-link)}.fx-nav-group{padding:var(--fx-space-4) var(--fx-space-6) var(--fx-space-2);font-size:var(--fx-text-caption);font-weight:var(--fx-weight-medium);color:var(--fx-text-tertiary);letter-spacing:var(--fx-tracking-caption)}.fx-spinner{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:fx-spin .6s linear infinite}@keyframes fx-spin{to{transform:rotate(360deg)}}.fx-row{display:flex;align-items:center;gap:var(--fx-space-3)}.fx-stack{display:flex;flex-direction:column;gap:var(--fx-space-4)}.fx-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--fx-space-4);max-width:640px}.fx-form-grid--wide{max-width:none}.fx-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--fx-bg-app);color:var(--fx-text-primary);font-family:var(--fx-font-sans);-webkit-font-smoothing:antialiased}.portal-shell{max-width:960px;margin:0 auto;padding:48px 24px 80px}.portal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-top:24px}.portal-card{display:block;text-decoration:none;color:inherit;cursor:pointer}.portal-card--indisponivel{filter:grayscale(1);opacity:.55}.portal-card--indisponivel:hover{opacity:.75}.portal-card__icone{width:40px;height:40px;border-radius:var(--fx-radius-md, 10px);display:flex;align-items:center;justify-content:center;background:var(--fx-accent-light);color:var(--fx-accent-text);margin-bottom:12px}.portal-login{min-height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;text-align:center;padding:24px}.shell__tema{display:inline-flex;gap:2px;padding:3px;background:var(--fx-bg-hover);border:1px solid var(--fx-border);border-radius:var(--fx-radius-full)}.shell__tema-op{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:0;border-radius:var(--fx-radius-full);background:transparent;color:var(--fx-text-secondary);cursor:pointer;transition:background var(--fx-duration-base) var(--fx-ease),color var(--fx-duration-base) var(--fx-ease)}.shell__tema-op:hover{color:var(--fx-text-primary)}.shell__tema-op[aria-pressed=true]{background:var(--fx-bg-surface);color:var(--fx-text-link);box-shadow:var(--fx-shadow-xs)}.shell__tema-op:focus-visible{outline:none;box-shadow:var(--fx-focus-ring)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
