/* Loaded only by the pages that have opted into this presentation layer. */
body:has(.portal-polish) { background: #f2f6fa; color: #182738; }
body:has(.portal-polish)::before, body:has(.portal-polish)::after { display: none; }
body:has(.portal-polish) :is(.workspace,.main-area,.page-content) { min-width: 0; }
.portal-polish {
  --pp-accent: #2868ce; --pp-border: #8db3e9; --pp-tint: #dceaff;
  --pp-ink: #182738; --pp-muted: #526477; --pp-line: #c9d7e5;
  display: flex; flex-direction: column; gap: 22px; min-width: 0; width: 100%;
  color: var(--pp-ink); font-family: 'Segoe UI', Tahoma, sans-serif; font-size: 14px;
}
.portal-polish--teal { --pp-accent: #087c6c; --pp-border: #70bbad; --pp-tint: #d4f0e7; }
.portal-polish--violet { --pp-accent: #7950bd; --pp-border: #b29bdc; --pp-tint: #eae0fa; }
.portal-polish--amber { --pp-accent: #995b06; --pp-border: #dfae51; --pp-tint: #fff0cc; }
.portal-polish--rose { --pp-accent: #b83255; --pp-border: #df93aa; --pp-tint: #fbe0e8; }
.portal-polish *, .portal-polish *::before, .portal-polish *::after { box-sizing: border-box; letter-spacing: 0; }
.portal-polish [hidden] { display: none !important; }
.portal-polish :focus-visible { outline: 3px solid var(--pp-accent); outline-offset: 3px; }
.portal-polish .portal-context { display: flex; align-items: center; min-height: 28px; border-bottom: 1px solid var(--pp-line); padding-bottom: 12px; }
.portal-polish .portal-context a { display: inline-flex; align-items: center; gap: 8px; color: var(--pp-accent); font-size: 13px; font-weight: 650; text-decoration: none; }
.portal-polish .portal-context a:hover { text-decoration: underline; }
.portal-polish .portal-context img { flex: 0 0 18px; }
.portal-polish :is(.tecnico-fuel-back,.tecnico-faq-back,.tecnico-feedback-back,.audit-log__back) { display: none; }
.portal-polish :is(h1,h2,h3,h4) { color: var(--pp-ink); line-height: 1.35; overflow-wrap: anywhere; }
.portal-polish h1 { font-size: 24px; }
.portal-polish h2 { font-size: 18px; }
.portal-polish h3 { font-size: 16px; }
.portal-polish :is(.section-title,.fuel-list-title,.permessi-section-title,.feedback-section-title) { border-left: 4px solid var(--pp-accent); padding-left: 10px; margin: 0 0 16px; }
.portal-polish :is(.content-section,.hero-card,.analytics-hero,.cfm-hero,.cfm-card,.form-card,.filters-card,.costs-table-card,.analytics-panel,.manual-card,.fuel-history-wrapper,.history-card,.calendar-card,.feedback-list-section,.permessi-list-section,.fuel-list-section,.tecnico-feedback-support-card) {
  min-width: 0; max-width: 100%; border-radius: 0; box-shadow: none;
  border: 0; border-top: 2px solid var(--pp-border); background: #fff;
  color: var(--pp-ink); padding: 20px; overflow: visible;
}
.portal-polish :is(.content-section,.cfm-card,.analytics-panel) > :is(.content-section,.cfm-card,.analytics-panel) { padding: 16px 0; background: transparent; }
.portal-polish :is(.hero-card,.analytics-hero,.cfm-hero) { padding: 20px; background: #fff; border-top: 4px solid var(--pp-accent); }
.portal-polish :is(.hero-card,.analytics-hero,.cfm-hero)::before,
.portal-polish :is(.hero-card,.analytics-hero,.cfm-hero)::after { display: none; }
.portal-polish :is(.hero-card,.analytics-hero,.cfm-hero) :is(p,.analytics-meta,.cfm-hero__eyebrow,.cfm-hero__panel-label) { color: var(--pp-muted); }
.portal-polish :is(.hero-card,.analytics-hero,.cfm-hero) h1 { font-size: 24px; margin: 0 0 8px; }
.portal-polish :is(.bu-badge__pill,.badge-neutral,.cfm-pill,.cfm-hero__panel) { color: #24435f; background: #edf4fb; border: 1px solid var(--pp-line); border-radius: 6px; }
.portal-polish .cfm-hero__panel-value { color: var(--pp-ink); }
.portal-polish :is(.fisse-wrapper,.tecnico-rimborsi-main,.tecnico-expenses-main) > .card { border: 0; border-top: 2px solid var(--pp-border); border-radius: 0; background: #fff; padding: 20px; box-shadow: none; }
.portal-polish > .card { border: 0; border-top: 2px solid var(--pp-border); border-radius: 0; background: #fff; box-shadow: none; }
.portal-polish--standalone > .card { border: 2px solid var(--pp-border); border-top: 4px solid var(--pp-accent); border-radius: 8px; }
.portal-polish :is(.section-subtitle,.form-hint,.muted,.metric-hint,.insight-card__meta,.cfm-muted,.cfm-note,.cfm-stat__meta) { color: var(--pp-muted); line-height: 1.5; }
.portal-polish :is(.nav-card,.hub-card,.link-card,.insight-card,.metric-card,.stat-card,.summary-card,.cfm-stat,.cfm-category-card,.audit-log__summary-card,.fuel-stat,.fuel-report-card,.permessi-stat,.feedback-stat,.tecnico-feedback-stat-card,.cassa-dash-card) {
  --tile-accent: #2868ce; --tile-border: #8db3e9; --tile-tint: #dceaff;
  min-width: 0; border: 2px solid var(--tile-border); border-top: 4px solid var(--tile-accent);
  border-radius: 8px; background: linear-gradient(125deg, var(--tile-tint), #fff 85%);
  color: var(--pp-ink); box-shadow: 0 3px 10px #18344b08; padding: 16px;
}
.portal-polish :is(.nav-card,.hub-card,.link-card,.insight-card,.metric-card,.stat-card,.summary-card,.cfm-stat,.audit-log__summary-card,.fuel-report-card,.tecnico-feedback-stat-card):nth-child(4n+2) {
  --tile-accent: #7950bd; --tile-border: #b29bdc; --tile-tint: #eae0fa;
}
.portal-polish :is(.nav-card,.hub-card,.link-card,.insight-card,.metric-card,.stat-card,.summary-card,.cfm-stat,.audit-log__summary-card,.fuel-report-card,.tecnico-feedback-stat-card):nth-child(4n+3) {
  --tile-accent: #087c6c; --tile-border: #70bbad; --tile-tint: #d4f0e7;
}
.portal-polish :is(.nav-card,.hub-card,.link-card,.insight-card,.metric-card,.stat-card,.summary-card,.cfm-stat,.audit-log__summary-card,.fuel-report-card,.tecnico-feedback-stat-card):nth-child(4n+4) {
  --tile-accent: #995b06; --tile-border: #dfae51; --tile-tint: #fff0cc;
}
.portal-polish :is(.stat-card--ok,.fuel-stat--active,.cassa-card--ok) { --tile-accent: #087c6c; --tile-border: #70bbad; --tile-tint: #d4f0e7; }
.portal-polish :is(.stat-card--ko,.cassa-card--critico) { --tile-accent: #b83255; --tile-border: #df93aa; --tile-tint: #fbe0e8; }
.portal-polish .cassa-card--attenzione { --tile-accent: #995b06; --tile-border: #dfae51; --tile-tint: #fff0cc; }
.portal-polish :is(.permessi-stat--approvato,.feedback-stat--risolto,.fuel-stat--available) { --tile-accent: #087c6c; --tile-border: #70bbad; --tile-tint: #d4f0e7; }
.portal-polish :is(.permessi-stat--in-attesa,.feedback-stat--in_lavorazione,.feedback-stat--in-lavorazione) { --tile-accent: #995b06; --tile-border: #dfae51; --tile-tint: #fff0cc; }
.portal-polish .permessi-stat--respinto { --tile-accent: #b83255; --tile-border: #df93aa; --tile-tint: #fbe0e8; }
.portal-polish .fuel-stat--assigned { --tile-accent: #7950bd; --tile-border: #b29bdc; --tile-tint: #eae0fa; }
.portal-polish :is(.nav-card,.hub-card,.link-card) { min-height: 150px; text-decoration: none; transition: border-color .15s ease, background-color .15s ease; }
.portal-polish :is(.nav-card,.hub-card,.link-card):hover { transform: none; border-color: var(--tile-accent); box-shadow: 0 3px 12px #18344b14; }
.portal-polish :is(.nav-card__icon,.hub-card__pill) { background: var(--tile-tint); color: var(--tile-accent); border-radius: 6px; }
.portal-polish .portal-card-icon { width: 22px; height: 22px; }
.portal-polish :is(.nav-card__title,.hub-card__title,.link-card__title) { font-size: 16px; font-weight: 700; }
.portal-polish :is(.nav-card__body,.hub-card__description,.link-card__description) { font-size: 13px; color: var(--pp-muted); line-height: 1.5; }
.portal-polish :is(.metric-value,.metric-card__value,.stat-value,.summary-value,.cfm-stat__value,.insight-card__value,.cassa-card__value,.fuel-stat__value,.permessi-stat__value,.feedback-stat__value) { font-size: 24px; line-height: 1.25; font-weight: 750; color: var(--pp-ink); overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.portal-polish :is(.metric-label,.stat-label,.summary-label,.cfm-stat__label,.insight-card__label,.fuel-stat__label,.permessi-stat__label,.feedback-stat__label) { color: #37516b; font-size: 12px; font-weight: 700; }
.portal-polish :is(.cassa-card,.cassa-panel,.fuel-card,.feedback-card,.permesso-card,.profile-card,.history-item,.fuel-history__item,.fuel-pass-card,.thread-item,.tecnico-feedback-stat-card) { min-width: 0; border-radius: 8px; border: 1px solid var(--pp-border); box-shadow: none; }
.portal-polish :is(.cassa-card,.cassa-panel) { background: #fff; }
.portal-polish .cassa-dash-card { background: linear-gradient(125deg, var(--tile-tint), #fff 85%); border: 2px solid var(--tile-border); border-top: 4px solid var(--tile-accent); }
.portal-polish :is(.cassa-dash-card,.cfm-stat)::before { display: none; }
.portal-polish :is(.cassa-nav,.period-chips,.quick-periods,.quick-filters,.cfm-quick-months) { gap: 8px; flex-wrap: wrap; }
.portal-polish :is(.cassa-nav__link,.quick-filters a,.cfm-btn,.btn,.btn-primary,.btn-secondary,.btn-danger,.fuel-btn,.calendar-button,.fuel-filter button,.permessi-filter__submit,.feedback-filter__submit,.fuel-form__submit,.chat-panel__submit,.feedback-update__button,.permesso-update__button) {
  border-radius: 6px; min-height: 36px; padding: 8px 13px; font-size: 13px; line-height: 1.35; font-weight: 650;
  text-decoration: none; cursor: pointer; transition: background-color .15s ease, border-color .15s ease;
  box-shadow: none; white-space: normal;
}
.portal-polish :is(.btn-primary,.cfm-btn--primary,.fuel-btn--primary,.fuel-form__submit,.chat-panel__submit,.feedback-update__button,.permesso-update__button) { background: var(--pp-accent); border: 1px solid var(--pp-accent); color: #fff; }
.portal-polish :is(.btn-secondary,.cfm-btn--ghost,.cfm-btn--link,.fuel-btn--ghost,.quick-filters a) { background: #f1f6fc; border: 1px solid var(--pp-line); color: #254b79; }
.portal-polish :is(.btn-danger,.cfm-btn--danger,.fuel-btn--danger,.permesso-delete__button) { background: #fff1f2; color: #b32646; border: 1px solid #e6aab5; }
.portal-polish :is(.cassa-nav__link.is-active,.cassa-nav__link--active) { color: #fff; background: var(--pp-accent); border-color: var(--pp-accent); }
.portal-polish button:hover, .portal-polish a[class*="btn"]:hover { transform: none; filter: none; }
.portal-polish button:disabled { opacity: .55; cursor: not-allowed; }
.portal-polish :is(.form-field,.field,.fuel-field,.expense-field,.rimborso-field,.cfm-field,.form-actions,.cassa-actions,.cfm-actions) { min-width: 0; }
.portal-polish :is(.form-actions,.cassa-actions,.cfm-actions,.actions-wrap,.fuel-buttons,.tecnico-fuel-header-actions) { flex-wrap: wrap; gap: 8px; }
.portal-polish label { line-height: 1.4; }
.portal-polish :is(button,table) { font-family: inherit; }
.portal-polish :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="range"]):not([type="color"]), select, textarea) {
  max-width: 100%; min-width: 0; border: 1px solid #b6c8dc; border-radius: 6px; background: #fff; color: #182738;
  font: inherit; font-size: 14px; padding: 8px 10px; box-shadow: none;
}
.portal-polish :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select) { min-height: 38px; }
.portal-polish :is(input[type="checkbox"],input[type="radio"]) { accent-color: var(--pp-accent); }
.portal-polish textarea { resize: vertical; }
.portal-polish :is(input,select,textarea):focus { border-color: var(--pp-accent); }
.portal-polish :is(.portal-table-scroll,.table-wrapper,.table-card__wrapper,.table-scroll,.cassa-table-wrap,.cfm-table-wrap,.fuel-table-wrapper,.audit-log__table-wrapper) { max-width: 100%; min-width: 0; overflow-x: auto; border: 1px solid var(--pp-line); border-radius: 6px; background: #fff; }
.portal-polish :is(.table-wrapper,.table-card__wrapper,.table-scroll,.cassa-table-wrap,.cfm-table-wrap,.fuel-table-wrapper,.audit-log__table-wrapper) .portal-table-scroll { border: 0; }
.portal-polish section:has(> table) { overflow-x: auto; }
.portal-polish table { width: 100%; border-collapse: collapse; font-size: 13px; color: var(--pp-ink); margin: 0; }
.portal-polish thead th { background: #e7effa; color: #2f4c6b; font-size: 12px; font-weight: 700; padding: 11px 12px; border-bottom: 1px solid #b7cce8; text-align: left; }
.portal-polish tbody td { padding: 11px 12px; border-bottom: 1px solid #dce5ee; line-height: 1.5; }
.portal-polish tbody tr:nth-child(even):not([class*="group"]):not([class*="selected"]) { background-color: #f5f8fc; }
.portal-polish tbody tr:hover { background-color: #edf5fc; }
.portal-polish :is(.amount-cell,.amount,.num,.text-right,.cassa-text-right,.cfm-text-right,.percent-cell) { text-align: right; font-variant-numeric: tabular-nums; }
.portal-polish :is(.empty-state,.table-empty,.fuel-empty,.history-empty,.cfm-empty,.feedback-empty,.permessi-empty-state,.audit-log__empty) { padding: 20px; border: 1px dashed var(--pp-border); border-radius: 6px; color: var(--pp-muted); background: #f7faff; }
.portal-polish :is(.edit-modal__dialog,.audit-log__modal-panel) { background: #fff; color: var(--pp-ink); border: 2px solid var(--pp-border); border-radius: 8px; max-height: 88dvh; overflow-y: auto; box-shadow: 0 16px 60px #162d4b40; }
.portal-polish .edit-modal__close { color: var(--pp-ink); min-width: 40px; min-height: 40px; }
.portal-polish .portal-search { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 12px 0; }
.portal-polish .portal-search label { display: flex; align-items: center; gap: 8px; flex: 1 1 220px; max-width: 440px; }
.portal-polish .portal-search input { width: 100%; }
.portal-polish .portal-search button { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; background: #fff; border: 1px solid var(--pp-line); border-radius: 6px; cursor: pointer; }
.portal-polish .portal-search output { font-size: 12px; color: var(--pp-muted); }
.portal-polish .portal-search-empty { padding: 16px; background: #f4f8fc; border: 1px dashed var(--pp-border); }
.portal-polish .portal-search img { width: 18px; height: 18px; }
.portal-polish .portal-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.portal-polish :is(.nav-cards-grid,.hub-grid,.link-grid) { grid-template-columns: repeat(auto-fit,minmax(min(100%,240px),1fr)); gap: 16px; }
.portal-polish :is(.profile-grid,.metrics-grid,.insight-grid,.summary-grid,.stats-grid,.cassa-grid,.cfm-grid,.fuel-report-grid) > * { min-width: 0; }
.portal-polish :is(.page-shell,.cfm-wrapper,.analytics-wrapper,.fatturato-wrapper,.fisse-wrapper,.tecnico-fuel-main,.tecnico-feedback-main,.tecnico-faq-main,.tecnico-permessi-main) { min-width: 0; max-width: 100%; padding: 0; }
.portal-polish :is(.chart-card,.chart-shell) { min-width: 0; max-width: 100%; }
.portal-polish canvas { max-width: 100%; }
.portal-polish .analytics-panel > .chart-empty { position: static; min-height: 120px; padding: 20px; border-radius: 6px; }
.portal-polish .filters-card::before, .portal-polish .summary-card::after { display: none; }
.portal-polish .chart-card { border-radius: 0; border: 1px solid var(--pp-line); box-shadow: none; }
.portal-polish .cards > .card { border: 2px solid var(--pp-border); border-top: 4px solid var(--pp-accent); background: linear-gradient(125deg,var(--pp-tint),#fff 85%); border-radius: 8px; box-shadow: none; backdrop-filter: none; }
.portal-polish .cards > .card::after { display: none; }
.portal-polish .cards > .card:nth-child(2), .portal-polish .cards > .card:nth-child(3) { border-color: #df93aa; border-top-color: #b83255; background: linear-gradient(125deg,#fbe0e8,#fff 85%); }
.portal-polish :is(.permessi-config,.permessi-filter,.feedback-filter,.types-panel,.types-side,.fuel-actions,.fuel-card,.tecnico-feedback-support-card) { border-radius: 0; border: 0; border-top: 2px solid var(--pp-border); background: #fff; box-shadow: none; padding: 20px; }
.portal-polish :is(.permessi-meta,.feedback-meta-card,.fuel-meta,.audit-log__summary-card) { border: 1px solid var(--pp-border); border-radius: 8px; background: #f8fbff; box-shadow: none; padding: 16px; }
.portal-polish .cassa-page-tech .cassa-card.cassa-panel { border-radius: 8px; background: #fff; border: 1px solid var(--pp-border); box-shadow: none; }
.portal-polish .cassa-page-tech :is(.cassa-card--attenzione,.cassa-card--critico,.cassa-card--ok).cassa-panel { border-color: var(--tile-border); background: linear-gradient(125deg,var(--tile-tint),#fff 85%); }
.portal-polish .cassa-page-tech .cassa-table-wrap { border-radius: 6px; background: #fff; }
.portal-polish :is(.cassa-page-tech,.cassa-dash) .cassa-nav__link.is-active { background: var(--pp-accent); color: #fff; border-color: var(--pp-accent); box-shadow: none; }
.portal-polish :is(.feedback-board,.permessi-dashboard,.fuel-dashboard) { gap: 18px; }
.portal-polish :is(.permessi-config__header,.feedback-filter__form,.fuel-card__header) { margin-bottom: 16px; }
.portal-polish .manual-section { scroll-margin-top: 90px; border-top: 1px solid var(--pp-line); padding-top: 20px; }
body:has(.portal-polish--standalone) { padding: 24px; }
.portal-polish--standalone { width: min(100%, 560px); margin: auto; }
.portal-polish--standalone :is(.card,.profile-card,.reset-wrapper) { width: 100%; max-width: 100%; padding: 24px; background: #fff; border: 2px solid var(--pp-border); border-top: 4px solid var(--pp-accent); border-radius: 8px; box-shadow: 0 5px 22px #18344b0b; }
@media (max-width: 1000px) {
  .portal-polish :is(.analytics-grid--three,.analytics-grid--two,.cfm-analysis-grid,.tecnico-feedback-chat-layout) { grid-template-columns: minmax(0,1fr); }
  .portal-polish :is(.form-grid,.form-columns,.cassa-form-row,.expense-grid,.rimborso-grid,.request-form__grid,.fuel-details-form__grid) { grid-template-columns: repeat(auto-fit,minmax(min(100%,220px),1fr)); }
}
@media (max-width: 600px) {
  body:has(.portal-polish) .main-area { padding: 18px 12px; }
  .portal-polish { gap: 18px; }
  .portal-polish :is(.content-section,.hero-card,.analytics-hero,.cfm-hero,.cfm-card,.form-card,.filters-card,.costs-table-card,.analytics-panel,.manual-card,.fuel-history-wrapper,.history-card,.calendar-card) { padding: 16px 12px; }
  .portal-polish :is(.profile-grid,.metrics-grid,.insight-grid,.summary-grid,.stats-grid,.cassa-grid,.cfm-grid,.fuel-report-grid,.tecnico-fuel-grid,.form-card__grid,.types-workspace,.cfm-hero__top,.cfm-form-grid,.cfm-category-grid) { grid-template-columns: minmax(0,1fr); }
  .portal-polish :is(.cfm-stat--wide,.cfm-hero__panel) { grid-column: auto; }
  .portal-polish :is(.filters-form,.filters-row,.section-header,.audit-log__header,.tecnico-feedback-header,.tecnico-fuel-header,.tecnico-permessi-header,.calendar-header) { flex-wrap: wrap; gap: 12px; }
  .portal-polish :is(.filters-form .field,.filters-row > div,.form-field,.permessi-filter__group) { min-width: 0; max-width: 100%; }
  .portal-polish :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea) { font-size: 16px; }
  .portal-polish :is(.btn-primary,.btn-secondary,.fuel-btn,.calendar-button,.cfm-btn) { min-height: 42px; }
  .portal-polish table:not(.no-mobile-scroll) { display: table; min-width: 640px; }
  .portal-polish .portal-table-scroll { width: 100%; }
  .portal-polish .calendar-card { overflow-x: auto; }
  .portal-polish .calendar-grid { min-width: 620px; }
  .portal-polish .thread-list, .portal-polish .chat-panel { min-width: 0; }
  .portal-polish .toolbar > div { flex-wrap: wrap; min-width: 0; }
  .portal-polish :is(.permessi-config,.permessi-filter,.feedback-filter,.types-panel,.types-side,.fuel-actions,.fuel-card) { padding: 16px 12px; }
  .portal-polish .cards { grid-template-columns: minmax(0,1fr) !important; }
  .portal-polish--standalone :is(.card,.profile-card,.reset-wrapper) { padding: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .portal-polish *, .portal-polish *::before, .portal-polish *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
@media print {
  .portal-polish .portal-context, .portal-polish .portal-search { display: none !important; }
  .portal-polish .portal-table-scroll { overflow: visible; border: 0; }
  .portal-polish table:not(.no-mobile-scroll) { min-width: 0; }
  .portal-polish [data-portal-filter-hidden] { display: revert !important; }
}
