:root{--n-950: #131313;--n-900: #1c1c1e;--n-800: #262626;--n-700: #3d3d3d;--n-600: #5c5c5c;--n-500: #6b6b6b;--n-400: #9a9a9a;--n-300: #c9c9c9;--n-200: #e3e3e3;--n-100: #f0f0f0;--n-50: #f9f9f9;--heat: #fa5d19;--heat-ink: #c43f09;--heat-deep: #9c3306;--heat-soft: #fff1ea;--heat-tint: #fa5d1914;--heat-tint-strong: #fa5d1929;--heat-glow: #fa5d1933;--brand: var(--heat);--brand-ink: var(--heat-ink);--brand-strong: var(--heat-deep);--brand-soft: var(--heat-soft);--brand-on-dark: var(--heat);--bg-app: #f9f9f9;--surface: #ffffff;--surface-raised: #ffffff;--surface-soft: var(--n-100);--surface-muted: #eaeaea;--surface-hover: #fafafa;--surface-selected: var(--heat-soft);--sidebar-bg: #1c1c1e;--sidebar-raised: #2a2a2d;--sidebar-hover: #242427;--sidebar-border: #333336;--sidebar-text: #c7c7c7;--sidebar-text-strong: #ffffff;--sidebar-text-dim: #9a9a9d;--border-soft: #ededed;--border: #e3e3e3;--border-strong: #8f8f8f;--text: #1a1a1a;--text-2: var(--n-600);--text-3: var(--n-500);--text-disabled: #a8a8a8;--text-on-brand: #ffffff;--success-fill: #2aa250;--success: #0f7541;--success-soft: #e7f7ee;--warning-fill: #ecb730;--warning: #8a6400;--warning-soft: #fdf3dc;--danger-fill: #eb3424;--danger: #c9281c;--danger-soft: #fdeceb;--info-fill: #2a6dfb;--info: #1a55d6;--info-soft: #e8effe;--risk-raro: #6e6e6e;--risk-baixo: #0f7541;--risk-atencao: #7a6a00;--risk-significativo: #94590a;--risk-alto: #c9281c;--risk-extremo: #8f1d16;--chart-1: #fa5d19;--chart-2: #2a6dfb;--chart-3: #9061ff;--chart-4: #42c366;--chart-5: #ecb730;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--shadow-soft: 0 1px 2px rgba(19, 19, 19, .05);--shadow-hover: 0 4px 16px rgba(19, 19, 19, .08);--shadow-modal: 0 24px 64px rgba(19, 19, 19, .22);--font: Geist, "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "Geist Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;--fs-page: 26px;--fs-section: 18px;--fs-body: 14px;--fs-list: 14px;--fs-meta: 12px;--fs-micro: 11px;--fs-kpi: 34px;--h-topbar: 54px;--h-toolbar: 44px;--h-row: 46px;--h-row-2line: 58px;--h-control: 36px;--h-control-touch: 44px;--h-nav-item: 36px;--h-bar: 4px;--sidebar-w: 240px;--focus: var(--heat-ink);--focus-on-dark: var(--heat);--transition: .15s cubic-bezier(.2, .7, .3, 1);--transition-slow: .22s cubic-bezier(.2, .7, .3, 1)}@media(max-width:640px){:root{--fs-page: 22px;--fs-section: 16px;--fs-kpi: 30px;--h-toolbar: 52px;--h-row: 68px;--h-control: 44px;--h-nav-item: 44px;--sidebar-w: 100vw}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:var(--fs-body);line-height:1.45;color:var(--text);background:var(--bg-app);-webkit-font-smoothing:antialiased;overflow-x:hidden}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;letter-spacing:-.011em}p{margin:0}img{max-width:100%;height:auto}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm)}:focus:not(:focus-visible){outline:none}.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}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--h-topbar) 1fr;grid-template-areas:"sidebar topbar" "sidebar main";height:100dvh}.shell--mobile{grid-template-columns:1fr;grid-template-areas:"topbar" "main"}.shell__sidebar{grid-area:sidebar;background:var(--sidebar-bg);color:var(--sidebar-text);border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;min-height:0}.shell__sidebar :focus-visible{outline-color:var(--focus-on-dark)}.shell__sidebar--drawer{position:fixed;inset:0;z-index:90;width:var(--sidebar-w);transform:translate(-100%);transition:transform var(--transition)}.shell__sidebar--open{transform:translate(0)}.shell__scrim{position:fixed;inset:0;z-index:89;background:#0f131773;border:0;padding:0}.shell__topbar{grid-area:topbar;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-4);min-width:0}.shell__topbar-title{font-size:var(--fs-body);font-weight:500;min-width:0}.shell__main{grid-area:main;overflow-y:auto;min-height:0}.brand{display:flex;align-items:center;gap:var(--space-2);height:var(--h-topbar);padding:0 var(--space-3) 0 var(--space-4);border-bottom:1px solid var(--sidebar-border);font-weight:600;font-size:14px;color:var(--sidebar-text-strong);flex:0 0 auto}.brand__name{min-width:0;line-height:1.2}.brand__mark{width:26px;height:26px;border-radius:var(--radius-sm);background:var(--heat);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700;letter-spacing:.02em;flex:0 0 auto}.brand__spacer{flex:1 1 auto}.nav{padding:var(--space-2) var(--space-2) var(--space-4);overflow-y:auto;flex:1 1 auto}.nav__group-label{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.07em;color:var(--sidebar-text-dim);font-weight:600;padding:var(--space-4) var(--space-3) var(--space-1)}.nav__item{position:relative;display:flex;align-items:center;gap:10px;height:var(--h-nav-item);padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--sidebar-text);text-decoration:none;font-size:var(--fs-body);transition:background var(--transition),color var(--transition)}.nav__item:hover{background:var(--sidebar-hover);color:var(--sidebar-text-strong)}.nav__item[aria-current=page]{background:var(--sidebar-raised);color:var(--sidebar-text-strong);font-weight:500}.nav__item[aria-current=page]:before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:3px;border-radius:0 2px 2px 0;background:var(--heat)}.nav__item svg{flex:0 0 auto;opacity:.9}.sidebar__foot{flex:0 0 auto;padding:var(--space-3);border-top:1px solid var(--sidebar-border);display:flex;flex-direction:column;gap:6px}.sidebar__meta{font-size:var(--fs-micro);color:var(--sidebar-text-dim);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.select.select--on-dark{background:var(--sidebar-hover);border-color:var(--sidebar-border);color:var(--sidebar-text-strong)}.select.select--on-dark option{color:var(--text);background:var(--surface)}.icon-btn.icon-btn--on-dark{color:var(--sidebar-text)}.icon-btn.icon-btn--on-dark:hover{background:var(--sidebar-hover);color:var(--sidebar-text-strong)}.page{padding:var(--space-4) var(--space-5) var(--space-6);max-width:1440px}.page__header{margin-bottom:var(--space-4)}.page__title{font-size:var(--fs-page);font-weight:600;letter-spacing:-.01em}.page__subtitle{font-size:var(--fs-meta);color:var(--text-3);margin-top:2px}.section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:40px;border-bottom:1px solid var(--border-soft);margin-bottom:2px}.section-header__title{font-size:var(--fs-section);font-weight:600}.section-header__count{font-size:var(--fs-meta);color:var(--text-3)}.toolbar{display:flex;align-items:center;gap:var(--space-2);min-height:var(--h-toolbar);margin-bottom:var(--space-3)}.toolbar__spacer{flex:1 1 auto}@media(max-width:860px){.toolbar{flex-wrap:wrap;row-gap:var(--space-2)}.toolbar__count{order:99}}.toolbar__count{font-size:var(--fs-meta);color:var(--text-3);white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--h-control);padding:0 14px;border-radius:var(--radius-md);border:1px solid transparent;background:var(--surface);color:var(--text);font-size:var(--fs-body);font-weight:500;cursor:pointer;white-space:nowrap;transition:background var(--transition),border-color var(--transition),color var(--transition)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--heat-ink);color:var(--text-on-brand);font-weight:600;border-color:var(--heat-ink)}.btn--primary:hover:not(:disabled){background:var(--heat);border-color:var(--heat);box-shadow:0 0 0 3px var(--heat-glow)}.btn--primary:active:not(:disabled){background:var(--heat-deep);border-color:var(--heat-deep);box-shadow:none}.btn--secondary{background:var(--surface);border-color:var(--border-strong)}.btn--secondary:hover:not(:disabled){background:var(--heat-tint);border-color:var(--heat);color:var(--heat-ink)}.btn--ghost{background:transparent}.btn--ghost:hover:not(:disabled){background:var(--heat-tint);color:var(--heat-ink)}.btn--danger{background:var(--surface);color:var(--danger);border-color:var(--border-strong)}.btn--danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.btn--sm{height:30px;padding:0 10px;font-size:var(--fs-meta)}.icon-btn{display:inline-grid;place-items:center;width:32px;height:32px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--text-2);cursor:pointer;transition:background var(--transition),color var(--transition)}.icon-btn:hover{background:var(--heat-tint);color:var(--heat-ink)}.icon-btn--danger:hover{background:var(--danger-soft);color:var(--danger)}@media(max-width:640px){.btn{height:var(--h-control-touch)}.icon-btn{width:44px;height:44px}}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field__label{font-size:var(--fs-meta);color:var(--text-2);font-weight:500}.field__req{color:var(--danger);margin-left:2px}.field__error{font-size:var(--fs-meta);color:var(--danger)}.field__hint{font-size:var(--fs-meta);color:var(--text-3)}.input,.select,.textarea{height:var(--h-control);padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--fs-body);width:100%;min-width:0;transition:border-color var(--transition),box-shadow var(--transition)}.textarea{height:auto;min-height:76px;padding:8px 10px;resize:vertical}.input:hover:not(:disabled),.select:hover:not(:disabled),.textarea:hover:not(:disabled){border-color:var(--n-600)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--heat);box-shadow:0 0 0 3px var(--heat-glow)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--surface-muted);color:var(--text-disabled);cursor:not-allowed}.input[aria-invalid=true]{border-color:var(--danger)}.search{position:relative;display:flex;align-items:center;flex:1 1 260px;min-width:0;max-width:520px}.search__icon{position:absolute;left:10px;color:var(--text-3);pointer-events:none}.search__input{height:var(--h-control);width:100%;padding:0 10px 0 32px;background:var(--surface-soft);border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--fs-body);transition:background var(--transition),border-color var(--transition)}.search__input::placeholder{color:var(--text-3)}.search__input:hover{background:var(--surface-muted)}.search__input:focus{outline:none;background:var(--surface);border-color:var(--heat);box-shadow:0 0 0 3px var(--heat-glow)}.search:focus-within .search__icon{color:var(--heat-ink)}@media(max-width:640px){.search{flex:1 1 auto;max-width:none}}.form-grid{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.form-grid--full{grid-column:1 / -1}@media(max-width:640px){.form-grid{grid-template-columns:1fr}}.fieldset{border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:var(--space-4);margin:0 0 var(--space-4);background:var(--surface)}.fieldset>legend{font-size:var(--fs-meta);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);padding:0 6px}.list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.list__head{display:grid;align-items:center;gap:var(--space-3);height:36px;padding:0 var(--space-3);border-bottom:1px solid var(--border);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);font-weight:600}.row{position:relative;display:grid;align-items:center;gap:var(--space-3);min-height:var(--h-row);padding:0 var(--space-3);border-bottom:1px solid var(--border-soft);text-decoration:none;color:inherit;transition:background var(--transition)}.row:last-child{border-bottom:none}.row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--heat);transform:scaleY(0);transition:transform var(--transition)}.row:hover{background:var(--heat-tint)}.row:hover:before{transform:scaleY(1)}.row__primary{color:#000;font-weight:400;font-size:var(--fs-list);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row__meta{color:var(--text-3);font-size:var(--fs-meta);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row__actions{display:flex;align-items:center;gap:2px;justify-content:flex-end}.row__thumb{width:32px;height:32px;border-radius:var(--radius-sm);object-fit:cover;background:var(--surface-muted);flex:0 0 auto}.row--mobile{display:none}@media(max-width:860px){.list__head,.row{display:none}.row--mobile{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;align-items:center;gap:2px var(--space-3);min-height:var(--h-row);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-soft);text-decoration:none;color:inherit}.row--mobile:active{background:var(--surface-hover)}.row--mobile .row__thumb{grid-row:1 / 3}.row--mobile .row__primary,.row--mobile .row__meta{grid-column:2}.row--mobile .row__actions{grid-row:1 / 3;grid-column:3}}.status{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-meta);white-space:nowrap}.status__dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 auto}.status--ok{color:var(--success)}.status--warn{color:var(--warning)}.status--danger{color:var(--danger)}.status--muted{color:var(--text-3)}.badge{display:inline-flex;align-items:center;gap:4px;height:21px;padding:0 9px;border-radius:var(--radius-pill);font-size:11px;font-weight:600;white-space:nowrap;border:1px solid var(--border);background:var(--surface-soft);color:var(--text-2)}.badge--danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.badge--warn{background:var(--warning-soft);color:var(--warning);border-color:transparent}.badge--ok{background:var(--success-soft);color:var(--success);border-color:transparent}.risk-band{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-meta);font-weight:600;white-space:nowrap}.risk-band:before{content:"";width:3px;height:14px;border-radius:2px;background:currentColor}.risk-band[data-band=Raro]{color:var(--risk-raro)}.risk-band[data-band=Baixo]{color:var(--risk-baixo)}.risk-band[data-band=Atenção]{color:var(--risk-atencao)}.risk-band[data-band=Significativo]{color:var(--risk-significativo)}.risk-band[data-band=Alto]{color:var(--risk-alto)}.risk-band[data-band=Extremo]{color:var(--risk-extremo)}.risk-band[data-band=NA]{color:var(--text-3)}.risk-band--sem-mapa{color:var(--text-2);font-weight:500}.risk-band--sem-mapa:before{background:var(--n-300)}.risk-band__nota{margin-left:6px;padding:1px 6px;border-radius:var(--radius-pill);background:var(--surface-soft);border:1px dashed var(--border-strong);color:var(--text-3);font-size:var(--fs-micro);font-weight:500;text-transform:none;letter-spacing:0;white-space:nowrap}.kpi-grid{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.kpi{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);min-height:88px;display:flex;flex-direction:column;justify-content:center}.kpi__label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);font-weight:600}.kpi__value{font-size:var(--fs-kpi);font-weight:600;line-height:1.1;margin-top:2px}.kpi__note{font-size:var(--fs-meta);color:var(--text-3)}@media(max-width:640px){.kpi-grid{grid-template-columns:1fr 1fr}}.modal__overlay{position:fixed;inset:0;background:#1111116b;display:grid;place-items:center;padding:var(--space-3);z-index:100}.modal{background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-modal);width:min(640px,100%);max-height:min(92dvh,900px);display:flex;flex-direction:column;overflow:hidden}.modal--wide{width:min(900px,100%)}.modal__header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--border-soft);flex:0 0 auto}.modal__title{font-size:var(--fs-section);font-weight:600;flex:1 1 auto}.modal__body{padding:var(--space-4);overflow-y:auto;flex:1 1 auto}.modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-soft);flex:0 0 auto}@media(max-width:640px){.modal__overlay{padding:12px;align-items:flex-end}.modal{width:100%;max-height:calc(100dvh - 24px);border-radius:var(--radius-lg)}}.save-feedback{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-meta);white-space:nowrap}a.save-feedback{text-decoration:none;color:var(--text-2)}a.save-feedback:hover{color:var(--text)}.save-feedback--saving{color:var(--text-3)}.save-feedback--saved{color:var(--success)}.save-feedback--pending{color:var(--warning)}.save-feedback--error{color:var(--danger)}.spinner{width:13px;height:13px;flex:0 0 auto;border:2px solid var(--n-300);border-top-color:var(--heat);border-radius:50%;animation:spin .7s linear infinite}.spinner--lg{width:22px;height:22px;border-width:2.5px}.spin{animation:spin .9s linear infinite}.btn--primary .spinner{border-color:#fff6;border-top-color:#fff}@keyframes spin{to{transform:rotate(360deg)}}.banner{display:flex;align-items:center;flex-wrap:wrap;row-gap:2px;gap:var(--space-2);min-height:36px;padding:6px var(--space-3);border-radius:var(--radius-sm);font-size:var(--fs-meta);margin-bottom:var(--space-3)}.banner--info{background:var(--info-soft);color:var(--info)}.banner--warn{background:var(--warning-soft);color:var(--warning)}.banner--danger{background:var(--danger-soft);color:var(--danger)}.banner__spacer{flex:1 1 auto}.empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);text-align:center;color:var(--text-3)}.empty__title{font-size:var(--fs-body);color:var(--text-2);font-weight:500}.skeleton{background:linear-gradient(90deg,var(--surface-muted) 25%,var(--heat-tint) 45%,var(--surface-soft) 55%,var(--surface-muted) 75%);background-size:200% 100%;animation:shimmer 1.4s linear infinite;border-radius:var(--radius-pill)}@keyframes shimmer{to{background-position:-200% 0}}.auth{min-height:100dvh;display:grid;place-items:center;padding:var(--space-4);background:var(--bg-app)}.auth__card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-xl);padding:var(--space-5);width:min(400px,100%);box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:var(--space-3)}.stack{display:flex;flex-direction:column;gap:var(--space-3)}.inline{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.muted{color:var(--text-3)}.mono{font-family:var(--font-mono);font-size:12px}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}.dropzone{background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-md);padding:var(--space-6) var(--space-4);text-align:center}.stepper{display:flex;align-items:center;gap:var(--space-3);list-style:none;margin:0 0 var(--space-4);padding:0;flex-wrap:wrap}.stepper__item{display:inline-flex;align-items:center;gap:6px}.stepper__item+.stepper__item:before{content:"—";color:var(--text-3);margin-right:var(--space-3)}.stepper__dot{width:20px;height:20px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;font-size:11px;font-weight:700;background:var(--surface-muted);color:var(--text-3)}.stepper__dot[data-state=done]{background:var(--success-fill);color:#fff}.stepper__dot[data-state=current]{background:var(--heat);color:#fff;box-shadow:0 0 0 4px var(--heat-glow)}.stepper__item[data-state=done] .stepper__label{color:var(--text-2)}.stepper__label{font-size:12px;color:var(--text-3)}.stepper__item[aria-current=step] .stepper__label{color:var(--text);font-weight:600}.map-row{grid-template-columns:260px minmax(0,1fr) minmax(0,1.2fr);align-items:center}.map-row__hint{min-width:0}.preview-table{border-collapse:collapse;width:100%;font-size:12px}.preview-table th{text-align:left;padding:8px 10px;white-space:nowrap;border-bottom:1px solid var(--border);color:var(--text-3);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.preview-table td{padding:6px 10px;white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis}.preview-table tbody tr{border-bottom:1px solid var(--border-soft)}.batch-row{grid-template-columns:1.4fr .9fr 1fr 110px 110px}.wizard-actions{justify-content:flex-end;gap:var(--space-2)}@media(max-width:860px){.map-list .map-row{display:grid;grid-template-columns:1fr;gap:6px;padding:var(--space-3);min-height:auto}.map-row__hint{font-size:11px}.batch-row{display:none}.wizard-actions{flex-direction:column-reverse;align-items:stretch}.wizard-actions .btn{width:100%;justify-content:center}.stepper__label{display:none}.stepper__item+.stepper__item:before{margin-right:var(--space-2)}.stepper{gap:var(--space-2)}}.alert-bar{display:flex;align-items:center;gap:var(--space-2);min-height:32px;padding:4px var(--space-4);font-size:var(--fs-meta);border-bottom:1px solid transparent}.alert-bar__spacer{flex:1 1 auto}.shell__main>.alert-bar:first-child,.shell__main>.loadbar+.alert-bar{position:sticky;top:0;z-index:5}.alert-bar--info{background:var(--info-soft);color:var(--info);border-bottom-color:#cfe1ee}.alert-bar--warn{background:var(--warning-soft);color:var(--warning);border-bottom-color:#ecdcb8}.alert-bar--danger{background:var(--danger-soft);color:var(--danger);border-bottom-color:#f2cfcb}.alert-bar a{color:inherit;font-weight:600}.segmented{display:inline-flex;align-items:center;height:var(--h-control);padding:2px;background:var(--surface-soft);border:1px solid var(--border-soft);border-radius:var(--radius-md);flex:0 0 auto}.segmented__item{display:inline-flex;align-items:center;gap:5px;height:100%;padding:0 10px;border:0;background:transparent;border-radius:var(--radius-sm);color:var(--text-2);font-size:var(--fs-meta);font-weight:500;white-space:nowrap;cursor:pointer;transition:background var(--transition),color var(--transition)}.segmented__item:hover{color:var(--text)}.segmented__item:hover{color:var(--heat-ink);background:var(--heat-tint)}.segmented__item[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-soft)}.segmented__item[aria-pressed=true]:hover{background:var(--surface)}.segmented__item[aria-pressed=true] svg{color:var(--heat-ink)}.segmented__count{color:var(--text-3);font-variant-numeric:tabular-nums}.segmented__item[aria-pressed=true] .segmented__count{color:var(--text-2)}@media(max-width:640px){.segmented{width:100%;justify-content:space-between}.segmented__item{flex:1 1 0;justify-content:center;padding:0 6px}}.meter{display:block;position:relative;height:8px;width:100%;border-radius:4px;background:var(--surface-muted);overflow:hidden}.meter__fill{position:absolute;inset:0 auto 0 0;width:var(--meter-value, 0%);border-radius:4px;background:var(--meter-color, var(--chart-1))}.kpi--link{text-decoration:none;color:inherit;transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition)}.kpi--link:hover{border-color:var(--heat);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.kpi--link:active{transform:translateY(0)}.kpi__value--danger{color:var(--danger)}.kpi__value--warn{color:var(--warning)}.empty--first{padding:var(--space-6) var(--space-4) var(--space-5)}.empty__art{margin-bottom:var(--space-2)}.empty__hint{max-width:46ch;font-size:var(--fs-meta)}.empty__cta{margin-top:var(--space-3)}.help-btn{display:inline-flex;align-items:center;gap:6px;height:var(--h-control);padding:0 12px;background:var(--surface);color:var(--brand);border:1px solid var(--border-strong);border-radius:var(--radius-md);font-size:var(--fs-body);font-weight:500;cursor:pointer;transition:background var(--transition),border-color var(--transition)}.help-btn:hover{background:var(--brand-soft);border-color:var(--brand)}.help-steps{list-style:none;counter-reset:step;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.help-steps li{counter-increment:step;display:grid;grid-template-columns:22px 1fr;gap:var(--space-3);align-items:start;font-size:var(--fs-body);color:var(--text-2)}.help-steps li:before{content:counter(step);display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-size:var(--fs-micro);font-weight:700}.help-steps strong{color:var(--text);font-weight:600}.dash-section{margin-top:var(--space-5)}.risk-row{grid-template-columns:150px minmax(0,1fr) 64px}.due-row{grid-template-columns:130px minmax(0,1fr) 110px 110px}.row__num{text-align:right;font-variant-numeric:tabular-nums}@media(max-width:860px){.risk-row{display:grid;grid-template-columns:110px minmax(0,1fr) 48px;min-height:44px}}.auth__brand{display:flex;align-items:center;gap:var(--space-2);font-size:15px;font-weight:600}.auth__legend{font-size:var(--fs-meta);color:var(--text-3)}.auth__card{border-top:3px solid var(--sidebar-bg)}.pill{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 13px 0 5px;border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-soft);font-family:var(--font-mono);font-size:12.5px;font-weight:500;color:var(--text);white-space:nowrap}.pill__icon{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;color:#fff;flex:0 0 auto}.pill--ok .pill__icon{background:var(--success-fill)}.pill--run .pill__icon{background:var(--heat)}.pill--warn .pill__icon{background:var(--warning-fill);color:var(--n-900)}.pill--danger .pill__icon{background:var(--danger-fill)}.pill--muted .pill__icon{background:var(--n-300);color:var(--n-700)}.pill--plain{border-color:transparent;box-shadow:none;background:transparent}.progress{position:relative;overflow:hidden;height:var(--h-bar);width:100%;border-radius:var(--radius-pill);background:var(--n-200)}.progress__fill{display:block;height:100%;width:var(--progress-value, 0%);border-radius:var(--radius-pill);background:var(--heat);transition:width var(--transition-slow)}.progress--done .progress__fill{background:var(--success-fill)}.progress--indeterminate .progress__fill{width:34%;animation:progress-slide 1.15s cubic-bezier(.5,0,.5,1) infinite}@keyframes progress-slide{0%{transform:translate(-110%)}to{transform:translate(400%)}}.progress-row{display:flex;align-items:center;gap:var(--space-2);min-width:0}.progress-row .progress{flex:1 1 auto;min-width:40px}.progress-row__value{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--text-2);font-variant-numeric:tabular-nums;flex:0 0 auto}.loadbar{position:sticky;top:0;z-index:6;height:2px;width:100%;overflow:hidden;background:transparent}.loadbar:after{content:"";position:absolute;inset:0;width:40%;background:linear-gradient(90deg,transparent,var(--heat),transparent);animation:progress-slide 1.1s linear infinite}.state-dot{width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;flex:0 0 auto;color:#fff}.state-dot--ok{background:var(--success-fill)}.state-dot--run{background:var(--heat)}.state-dot--warn{background:var(--warning-fill);color:var(--n-900)}.state-dot--danger{background:var(--danger-fill)}.state-dot--idle{background:var(--n-200);color:var(--n-600)}.state-dot--run{animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 0 var(--heat-glow)}50%{box-shadow:0 0 0 5px transparent}}.sw-update{position:fixed;left:12px;right:12px;bottom:12px;z-index:999;display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);padding:8px var(--space-3);border-radius:var(--radius-md);background:var(--info-soft);color:var(--info);border:1px solid #cfe1ee;box-shadow:var(--shadow-hover);font-size:var(--fs-meta)}@media(min-width:861px){.sw-update{left:auto;right:16px;bottom:16px;max-width:520px}}.pager{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-top:var(--space-4)}.pager__label{font-size:var(--fs-meta);color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap}@media(max-width:640px){.pager{gap:var(--space-2)}.pager .btn{flex:1 1 0}.pager__label{flex:0 0 auto}}.card-hover{transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition)}.card-hover:hover{border-color:var(--heat);box-shadow:var(--shadow-hover);transform:translateY(-2px)}@keyframes rise{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.rise{animation:rise .18s cubic-bezier(.2,.7,.3,1) both}
