:root {
  --navy: #0d2843;
  --navy-deep: #081d31;
  --navy-soft: #355372;
  --orange: #d54000;
  --orange-dark: #b93600;
  --green: #10b981;
  --amber: #d79a19;
  --white: #fff;
  --ink: #142638;
  --muted: #66788a;
  --line: #dfe6ec;
  --surface: #f4f7f9;
  --danger: #b42318;
  --font: Bahnschrift, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --shadow: 0 18px 48px rgba(13, 40, 67, .13);
}

* { box-sizing: border-box; }
html { font-family: var(--font); color: var(--ink); background: var(--surface); }
body { margin: 0; min-height: 100vh; font-size: 16px; line-height: 1.5; }
button, input, select, textarea { font: inherit; }
a { color: inherit; }

.auth-page { background: var(--navy); }
.auth-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(360px, .86fr) minmax(520px, 1.14fr); }
.brand-panel { position: relative; overflow: hidden; display: flex; min-height: 100vh; flex-direction: column; justify-content: space-between; padding: 46px clamp(42px, 6vw, 88px); color: var(--white); background: linear-gradient(145deg, var(--navy-deep), var(--navy) 58%, #173e61); }
.brand-panel::before { content: ""; position: absolute; width: 520px; height: 520px; right: -260px; bottom: -160px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 90px rgba(255,255,255,.025), 0 0 0 180px rgba(255,255,255,.02); }
.brand-panel::after { content: ""; position: absolute; width: 4px; height: 120px; left: clamp(42px, 6vw, 88px); top: 37%; background: var(--orange); border-radius: 99px; }
.brand { position: relative; z-index: 1; display: inline-flex; align-items: center; width: 196px; color: var(--white); text-decoration: none; }
.brand-logo { display: block; width: 100%; height: auto; }
.brand-copy { position: relative; z-index: 1; max-width: 560px; padding-left: 26px; }
.brand-copy h1 { max-width: 520px; margin: 12px 0 20px; font-size: clamp(39px, 4.3vw, 67px); line-height: 1.03; letter-spacing: -.045em; }
.brand-copy > p:last-child { max-width: 490px; margin: 0; color: rgba(255,255,255,.72); font-size: 18px; line-height: 1.65; }
.brand-footer { position: relative; z-index: 1; margin: 0; color: rgba(255,255,255,.48); font-size: 13px; letter-spacing: .04em; }
.eyebrow { margin: 0 0 5px; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.brand-panel .eyebrow { color: #f3956d; }
.eyebrow.orange { color: var(--orange); }
.login-feature { position: relative; z-index: 1; display: flex; gap: 13px; align-items: center; width: fit-content; padding: 13px 16px; border: 1px solid rgba(255,255,255,.12); border-radius: 14px; background: rgba(255,255,255,.05); }
.login-feature > span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 8px; background: rgba(16,185,129,.16); color: #72e7bf; }
.login-feature p { margin: 0; color: rgba(255,255,255,.62); font-size: 12px; line-height: 1.5; }
.login-feature strong { color: var(--white); font-size: 13px; }
.auth-panel { display: grid; min-height: 100vh; place-items: center; padding: 48px clamp(28px, 7vw, 110px); background: #f7f9fb; }
.auth-card { width: min(100%, 610px); padding: clamp(28px, 4vw, 52px); border: 1px solid var(--line); border-radius: 24px; background: var(--white); box-shadow: var(--shadow); }
.auth-card.compact { width: min(100%, 480px); }
.auth-card h2 { margin: 5px 0 10px; font-size: clamp(32px, 3vw, 44px); letter-spacing: -.03em; text-transform: uppercase; }
.muted { margin: 0 0 28px; color: var(--muted); line-height: 1.6; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.form-grid .wide { grid-column: 1 / -1; }
.login-form { display: grid; gap: 20px; margin-top: 30px; }
label { display: grid; gap: 8px; color: var(--ink); font-size: 14px; font-weight: 700; letter-spacing: .025em; text-transform: uppercase; }
label small { color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.45; }
label small, label input, label select, label textarea { letter-spacing: normal; text-transform: none; }
input, select { width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid #cbd5dd; border-radius: 10px; outline: none; background: #fff; color: var(--ink); transition: border-color .18s, box-shadow .18s; }
input:focus, select:focus { border-color: var(--navy-soft); box-shadow: 0 0 0 4px rgba(53,83,114,.12); }
.remember-login { position: relative; display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: start; gap: 11px; cursor: pointer; }
.remember-login input { width: 18px; min-height: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--orange); }
.remember-login > span { display: grid; gap: 2px; }
.remember-login strong { font-size: 12px; }
.remember-login small { color: var(--muted); font-size: 10px; font-weight: 400; line-height: 1.45; letter-spacing: normal; text-transform: none; }
.password-field { position: relative; display: block; }
.password-field input { padding-right: 88px; }
.toggle-password { position: absolute; top: 50%; right: 9px; padding: 7px 9px; border: 0; border-radius: 7px; background: transparent; color: var(--navy-soft); font-size: 11px; font-weight: 800; cursor: pointer; transform: translateY(-50%); }
.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 12px 20px; border: 0; border-radius: 10px; text-decoration: none; font-weight: 800; cursor: pointer; transition: transform .16s, background .16s, box-shadow .16s; }
.button.primary { background: var(--orange); color: var(--white); box-shadow: 0 8px 20px rgba(213,64,0,.2); }
.button.primary:hover { background: var(--orange-dark); transform: translateY(-1px); }
.button:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.button.full { width: 100%; }
.alert { margin: 22px 0; padding: 14px 16px; border-radius: 10px; font-size: 13px; line-height: 1.5; }
.alert.danger { border: 1px solid #f1c7c2; background: #fff2f0; color: var(--danger); }
.alert.success { border: 1px solid #b9ead8; background: #ecfaf5; color: #087b59; }
.alert ul { margin: 7px 0 0; padding-left: 19px; }
.status-badge { display: inline-flex; padding: 7px 10px; border-radius: 99px; background: #e9eef2; color: var(--navy-soft); font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.status-badge.success { background: #e6f8f1; color: #087b59; }
.auth-help { margin: 24px 0 0; color: var(--muted); font-size: 12px; text-align: center; }
code { padding: 2px 5px; border-radius: 5px; background: #eef2f5; }

.app-page { background: var(--surface); }
.app-layout { min-height: 100vh; display: grid; grid-template-columns: 248px minmax(0, 1fr); }
.sidebar { position: fixed; z-index: 20; inset: 0 auto 0 0; display: flex; width: 248px; flex-direction: column; padding: 28px 18px 20px; background: var(--navy-deep); color: var(--white); }
.sidebar-brand { width: 174px; margin: 0 11px 42px; }
.main-nav, .sidebar-bottom { display: grid; gap: 5px; }
.main-nav a, .sidebar-bottom > a { display: flex; min-height: 46px; align-items: center; gap: 13px; padding: 10px 13px; border-radius: 9px; color: rgba(255,255,255,.65); font-size: 15px; font-weight: 700; letter-spacing: .035em; text-decoration: none; text-transform: uppercase; }
.main-nav a:hover, .sidebar-bottom > a:hover, .main-nav a.active, .sidebar-bottom > a.active { background: rgba(255,255,255,.08); color: var(--white); }
.main-nav a.active, .sidebar-bottom > a.active { box-shadow: inset 3px 0 0 var(--orange); }
.nav-icon { display: inline-grid; width: 22px; place-items: center; color: rgba(255,255,255,.48); }
.main-nav a.active .nav-icon { color: #ff8a57; }
.sidebar-bottom { margin-top: auto; }
.organization-chip { display: flex; gap: 11px; align-items: center; margin-top: 12px; padding: 13px; border-top: 1px solid rgba(255,255,255,.09); }
.organization-chip span:last-child { display: grid; gap: 2px; min-width: 0; }
.organization-chip small { color: rgba(255,255,255,.4); font-size: 10px; text-transform: uppercase; }
.organization-chip strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.org-dot { width: 9px; height: 9px; flex: 0 0 auto; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px rgba(16,185,129,.12); }
.app-main { grid-column: 2; min-width: 0; }
.topbar { position: sticky; z-index: 10; top: 0; display: flex; min-height: 72px; align-items: center; justify-content: space-between; padding: 0 clamp(24px, 4vw, 56px); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.93); backdrop-filter: blur(14px); }
.topbar-title { display: grid; gap: 2px; }
.topbar-title span { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .12em; }
.topbar-title strong { font-size: 14px; }
.topbar-actions, .user-menu { display: flex; align-items: center; gap: 13px; }
.icon-button { width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 50%; background: #fff; color: var(--orange); font-size: 8px; }
.avatar { display: grid; width: 37px; height: 37px; place-items: center; border-radius: 50%; background: var(--navy); color: #fff; font-size: 12px; font-weight: 800; }
.user-copy { display: grid; gap: 1px; }
.user-copy strong { font-size: 12px; }
.user-copy small { color: var(--muted); font-size: 10px; }
.logout-button { padding: 6px 9px; border: 0; background: transparent; color: var(--navy-soft); font-size: 11px; font-weight: 800; cursor: pointer; }
.menu-toggle { display: none; width: 39px; height: 39px; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--navy); }
.dashboard-content { max-width: 1560px; margin: 0 auto; padding: 44px clamp(24px, 4vw, 56px) 20px; }
.welcome-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 30px; }
.welcome-row h1 { margin: 4px 0 7px; font-size: clamp(32px, 3.3vw, 47px); letter-spacing: -.035em; text-transform: uppercase; }
.welcome-row p:last-child { margin: 0; color: var(--muted); font-size: 15px; }
.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.metric-card { position: relative; overflow: hidden; min-height: 142px; padding: 21px 22px; border: 1px solid var(--line); border-radius: 15px; background: #fff; box-shadow: 0 7px 22px rgba(13,40,67,.055); }
.metric-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--navy-soft); }
.metric-card.accent-orange::before { background: var(--orange); }
.metric-card.accent-green::before { background: var(--green); }
.metric-card.accent-amber::before { background: var(--amber); }
.metric-card strong { display: block; margin: 13px 0 7px; color: var(--navy); font-size: 31px; letter-spacing: -.035em; }
.metric-card small, .metric-label { color: var(--muted); font-size: 11px; }
.metric-label { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(280px, .7fr); gap: 18px; margin-top: 18px; }
.panel { border: 1px solid var(--line); border-radius: 15px; background: #fff; box-shadow: 0 7px 22px rgba(13,40,67,.045); }
.panel-heading { display: flex; min-height: 80px; align-items: center; justify-content: space-between; padding: 19px 22px; border-bottom: 1px solid var(--line); }
.panel-heading h2 { margin: 3px 0 0; font-size: 20px; }
.panel-heading a { color: var(--orange); font-size: 12px; font-weight: 800; text-decoration: none; }
.empty-state { display: grid; min-height: 260px; place-items: center; align-content: center; padding: 38px; text-align: center; }
.empty-icon { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 12px; background: #eef3f7; color: var(--navy-soft); }
.empty-state h3 { margin: 17px 0 6px; font-size: 16px; }
.empty-state p { max-width: 500px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.attention-panel { align-self: start; }
.attention-item { display: flex; gap: 14px; align-items: center; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.attention-item:last-child { border-bottom: 0; }
.attention-icon { display: grid; width: 38px; height: 38px; flex: 0 0 auto; place-items: center; border-radius: 10px; }
.orange-bg { background: #fff0e9; color: var(--orange); }
.blue-bg { background: #edf3f8; color: var(--navy-soft); }
.green-bg { background: #e9f9f3; color: #078a61; }
.attention-item strong { font-size: 13px; }
.attention-item p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.project-list { display: grid; }
.project-row { display: grid; grid-template-columns: 80px minmax(160px, 1fr) 100px 140px; gap: 12px; align-items: center; min-height: 72px; padding: 12px 21px; border-bottom: 1px solid var(--line); }
.project-row:last-child { border-bottom: 0; }
.project-code { color: var(--navy-soft); font-size: 11px; font-weight: 800; }
.project-info { display: grid; gap: 3px; min-width: 0; }
.project-info strong, .project-info small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-info strong { font-size: 13px; }
.project-info small { color: var(--muted); font-size: 10px; }
.project-status { justify-self: start; padding: 5px 8px; border-radius: 99px; background: #edf3f8; color: var(--navy-soft); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.status-active { background: #e7f8f1; color: #087b59; }
.status-on_hold { background: #fff3dd; color: #966200; }
.progress-cell { display: flex; align-items: center; gap: 8px; }
.progress-cell progress { overflow: hidden; width: 90px; height: 5px; border: 0; border-radius: 99px; background: #e7edf1; appearance: none; }
.progress-cell progress::-webkit-progress-bar { border-radius: 99px; background: #e7edf1; }
.progress-cell progress::-webkit-progress-value { border-radius: 99px; background: var(--orange); }
.progress-cell progress::-moz-progress-bar { border-radius: 99px; background: var(--orange); }
.progress-cell small { color: var(--muted); font-size: 10px; }
.app-footer { display: flex; justify-content: space-between; padding: 27px 2px 0; color: #8795a3; font-size: 10px; }

/* Modulo Clienti */
.module-content { max-width: 1480px; }
.module-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 26px; }
.module-heading h1 { margin: 5px 0 7px; color: var(--navy); font-size: clamp(34px, 3.3vw, 48px); letter-spacing: -.035em; text-transform: uppercase; }
.module-heading p:last-child { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.55; }
.compact-heading, .detail-heading { align-items: center; }
.back-link { display: inline-block; margin-bottom: 18px; color: var(--navy-soft); font-size: 12px; font-weight: 800; text-decoration: none; }
.heading-actions { display: flex; align-items: center; gap: 11px; }
.button.secondary { border: 1px solid #cbd6de; background: #fff; color: var(--navy); box-shadow: none; }
.button.secondary:hover { border-color: var(--navy-soft); background: #f7fafc; }
.button.small { min-height: 38px; margin-top: 18px; padding: 8px 14px; font-size: 12px; }
.button.no-margin { margin-top: 0; }
.client-metrics { display: grid; grid-template-columns: repeat(4, minmax(140px, 1fr)); gap: 12px; margin-bottom: 18px; }
.mini-metric { display: flex; min-height: 80px; align-items: center; justify-content: space-between; gap: 15px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 13px; background: #fff; color: var(--ink); text-decoration: none; transition: border-color .16s, box-shadow .16s; }
.mini-metric:hover, .mini-metric.selected { border-color: #9eb0bf; box-shadow: 0 7px 22px rgba(13,40,67,.07); }
.mini-metric.selected { box-shadow: inset 3px 0 0 var(--orange), 0 7px 22px rgba(13,40,67,.07); }
.mini-metric span { color: var(--muted); font-size: 12px; font-weight: 700; }
.mini-metric strong { color: var(--navy); font-size: 25px; }
.module-panel { overflow: hidden; margin-top: 18px; }
.filter-bar { display: grid; grid-template-columns: minmax(260px, 1fr) 190px auto auto; gap: 13px; align-items: end; padding: 18px 20px; border-bottom: 1px solid var(--line); background: #fbfcfd; }
.filter-bar label { gap: 6px; }
.filter-bar label > span { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.filter-bar input, .filter-bar select, .client-form input, .client-form select, .client-form textarea, .inline-editor input, .inline-editor select, .inline-editor textarea { width: 100%; min-height: 45px; padding: 10px 12px; border: 1px solid #cbd5dd; border-radius: 9px; outline: none; background: #fff; color: var(--ink); transition: border-color .18s, box-shadow .18s; }
.filter-bar input:focus, .filter-bar select:focus, .client-form input:focus, .client-form textarea:focus, .inline-editor input:focus { border-color: var(--navy-soft); box-shadow: 0 0 0 4px rgba(53,83,114,.1); }
.filter-bar .button { min-height: 45px; }
.text-link { align-self: center; padding: 12px 4px; color: var(--orange); font-size: 12px; font-weight: 800; text-decoration: none; }
.table-wrap { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th { padding: 13px 16px; border-bottom: 1px solid var(--line); background: #fff; color: #7d8b98; font-size: 10px; letter-spacing: .09em; text-align: left; text-transform: uppercase; white-space: nowrap; }
.data-table td { padding: 16px; border-bottom: 1px solid #e8edf1; font-size: 13px; vertical-align: middle; }
.data-table tbody tr:hover { background: #fafcfd; }
.data-table tbody tr:last-child td { border-bottom: 0; }
.code-chip { display: inline-flex; padding: 6px 8px; border-radius: 7px; background: #eef3f7; color: var(--navy-soft); font-size: 10px; font-weight: 800; white-space: nowrap; }
.client-name, .cell-stack { display: grid; gap: 3px; color: var(--ink); text-decoration: none; }
.client-name strong, .cell-stack strong { font-size: 13px; }
.client-name small, .cell-stack small { color: var(--muted); font-size: 11px; }
.client-name:hover strong { color: var(--orange); }
.number-cell { display: grid; width: 31px; height: 31px; place-items: center; border-radius: 50%; background: #f0f4f7; color: var(--navy); font-weight: 800; }
.status-pill { display: inline-flex; padding: 6px 9px; border-radius: 99px; font-size: 9px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.active-status { background: #e7f8f1; color: #087b59; }
.warning-status { background: #fff3dd; color: #8a5c00; }
.muted-status { background: #edf0f2; color: #687784; }
.actions-cell { text-align: right; white-space: nowrap; }
.row-action { margin-left: 10px; color: var(--orange); font-size: 11px; font-weight: 800; text-decoration: none; }
.pagination { display: flex; align-items: center; justify-content: space-between; padding: 15px 20px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; }
.pagination div { display: flex; gap: 15px; }
.pagination a { color: var(--navy-soft); font-weight: 800; text-decoration: none; }
.sr-only { position: absolute; overflow: hidden; width: 1px; height: 1px; clip: rect(0,0,0,0); white-space: nowrap; }

.client-form { display: grid; gap: 16px; }
.form-section { overflow: hidden; }
.form-section-heading { display: flex; gap: 15px; align-items: center; padding: 19px 22px; border-bottom: 1px solid var(--line); }
.form-section-heading > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 9px; background: #fff0e9; color: var(--orange); font-size: 10px; font-weight: 900; }
.form-section-heading h2 { margin: 0 0 3px; font-size: 18px; letter-spacing: .025em; text-transform: uppercase; }
.form-section-heading p { margin: 0; color: var(--muted); font-size: 12px; }
.module-form-grid { padding: 22px; }
.module-form-grid label { align-content: start; }
.module-form-grid label small { color: var(--muted); font-size: 10px; font-weight: 400; }
.module-form-grid textarea { min-height: 118px; resize: vertical; }
.company-identity-row { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(310px, .9fr); gap: 18px; align-items: start; }
.company-type-field { display: grid; gap: 8px; }
.company-type-field > label { display: block; }
.company-type-field > small { color: var(--muted); font-size: 10px; line-height: 1.45; }
.company-type-control { display: grid; grid-template-columns: minmax(0, 1fr) 45px 45px; gap: 8px; }
.company-type-action-button { display: grid; width: 45px; min-height: 45px; place-items: center; padding: 0; border: 1px solid var(--navy-soft); border-radius: 9px; background: #f2f6f9; color: var(--navy-soft); font-size: 19px; font-weight: 700; cursor: pointer; transition: background .16s, color .16s, transform .16s; }
.company-type-action-button:hover { background: var(--navy-soft); color: #fff; transform: translateY(-1px); }
.add-company-type-button { border-color: var(--orange); background: #fff5ef; color: var(--orange); font-size: 22px; font-weight: 500; }
.add-company-type-button:hover { background: var(--orange); }
.company-type-dialog { width: min(94vw, 720px); padding: 0; border: 0; border-radius: 18px; background: #fff; color: var(--ink); box-shadow: 0 28px 80px rgba(13,40,67,.28); }
.company-type-dialog::backdrop { background: rgba(7,27,43,.62); backdrop-filter: blur(3px); }
.company-type-dialog-form { display: grid; }
.dialog-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 24px 26px 20px; border-bottom: 1px solid var(--line); }
.dialog-heading h2 { margin: 4px 0 5px; color: var(--navy); font-size: 23px; text-transform: uppercase; }
.dialog-heading p:last-child { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.dialog-close { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: #fff; color: var(--muted); font-size: 21px; cursor: pointer; }
.dialog-body { display: grid; gap: 18px; padding: 24px 26px; }
.dialog-body input, .dialog-body textarea { width: 100%; min-height: 45px; padding: 10px 12px; border: 1px solid #cbd5dd; border-radius: 9px; outline: none; color: var(--ink); resize: vertical; }
.dialog-body input:focus, .dialog-body textarea:focus { border-color: var(--navy-soft); box-shadow: 0 0 0 4px rgba(53,83,114,.1); }
.dialog-error { margin: 0; }
.fiscal-fields-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
[data-company-field][hidden] { display: none !important; }
.field-rules { display: grid; gap: 10px; margin: 2px 0 0; padding: 17px; border: 1px solid var(--line); border-radius: 12px; background: #f8fafb; }
.field-rules legend { padding: 0 7px; color: var(--navy); font-size: 12px; font-weight: 800; letter-spacing: .035em; }
.field-rules > p { margin: -2px 0 4px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.tri-state-row { display: grid; grid-template-columns: minmax(130px, 1fr) minmax(215px, auto); align-items: center; gap: 14px; padding: 9px 0; border-top: 1px solid #e5eaee; }
.tri-state-row > span { color: var(--ink); font-size: 13px; font-weight: 800; letter-spacing: .025em; }
.tri-state-toggle { display: grid; grid-template-columns: 68px 128px; align-items: center; gap: 11px; padding: 0; border: 0; background: transparent; color: var(--muted); text-align: left; cursor: pointer; }
.tri-state-track { position: relative; display: block; width: 66px; height: 26px; border: 1px solid #aebbc6; border-radius: 999px; background: linear-gradient(90deg, #cbd5dd 0 33.333%, #e5a52b 33.333% 66.666%, var(--orange) 66.666% 100%); box-shadow: inset 0 1px 2px rgba(13,40,67,.12); }
.tri-state-track::before, .tri-state-track::after { position: absolute; top: 8px; width: 1px; height: 8px; background: rgba(255,255,255,.65); content: ""; }
.tri-state-track::before { left: 22px; }
.tri-state-track::after { left: 43px; }
.tri-state-track i { position: absolute; z-index: 1; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 2px 5px rgba(13,40,67,.3); transition: transform .18s ease; }
.tri-state-toggle[data-state="1"] .tri-state-track i { transform: translateX(20px); }
.tri-state-toggle[data-state="2"] .tri-state-track i { transform: translateX(40px); }
.tri-state-toggle strong { font-size: 11px; font-weight: 900; letter-spacing: .045em; }
.tri-state-toggle[data-state="1"] strong { color: #996600; }
.tri-state-toggle[data-state="2"] strong { color: var(--orange-dark); }
.tri-state-toggle:focus-visible { border-radius: 7px; outline: 3px solid rgba(213,64,0,.24); outline-offset: 3px; }
.operator-note { margin: -2px 0 0; padding: 12px 14px; border-left: 3px solid var(--orange); border-radius: 0 8px 8px 0; background: #fff7f2; color: #725141; font-size: 10px; line-height: 1.5; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 10px; padding: 18px 26px; border-top: 1px solid var(--line); background: #f8fafb; }
.toggle-label { position: relative; display: grid !important; grid-template-columns: 50px minmax(0, 1fr); align-items: center; align-content: center !important; column-gap: 12px; min-height: 56px; cursor: pointer; }
.toggle-input { position: absolute; width: 1px !important; min-height: 0 !important; height: 1px !important; margin: 0; opacity: 0; pointer-events: none; }
.toggle-control { position: relative; display: block; width: 48px; height: 27px; border: 1px solid #aebbc6; border-radius: 999px; background: #cbd5dd; box-shadow: inset 0 1px 2px rgba(13,40,67,.12); transition: border-color .18s ease, background .18s ease, box-shadow .18s ease; }
.toggle-control::after { position: absolute; top: 3px; left: 3px; width: 19px; height: 19px; border-radius: 50%; background: #fff; box-shadow: 0 2px 5px rgba(13,40,67,.28); content: ""; transition: transform .18s ease; }
.toggle-input:checked + .toggle-control { border-color: var(--orange); background: var(--orange); box-shadow: inset 0 1px 2px rgba(95,29,0,.18); }
.toggle-input:checked + .toggle-control::after { transform: translateX(21px); }
.toggle-input:focus-visible + .toggle-control { outline: 3px solid rgba(213,64,0,.24); outline-offset: 3px; }
.toggle-input:disabled + .toggle-control, .toggle-input:disabled ~ .toggle-copy { opacity: .52; cursor: not-allowed; }
.toggle-copy { display: grid; gap: 3px; min-width: 0; }
.toggle-title { color: var(--ink); font-size: 14px; font-weight: 800; letter-spacing: .025em; text-transform: uppercase; }
.toggle-copy small { color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.45; letter-spacing: normal; text-transform: none; }
.form-actions { position: sticky; z-index: 5; bottom: 0; display: flex; justify-content: flex-end; gap: 10px; padding: 16px 0; background: rgba(244,247,249,.94); backdrop-filter: blur(8px); }
.tenant-safety-note { padding: 16px 18px; border: 1px solid #b9dfd2; border-left: 4px solid var(--green); border-radius: 12px; background: #edf9f5; }
.tenant-safety-note strong { color: #087b59; font-size: 12px; letter-spacing: .06em; }
.tenant-safety-note p { margin: 5px 0 0; color: #43675b; font-size: 12px; line-height: 1.55; }

.detail-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(260px, .55fr); gap: 18px; }
.detail-list { display: grid; grid-template-columns: 1fr 1fr; margin: 0; }
.detail-list div { min-height: 78px; padding: 17px 21px; border-bottom: 1px solid var(--line); }
.detail-list div:nth-child(odd) { border-right: 1px solid var(--line); }
.detail-list dt { margin-bottom: 6px; color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.detail-list dd { margin: 0; font-size: 12px; font-weight: 700; line-height: 1.45; }
.detail-list a { color: var(--navy-soft); text-decoration: none; }
.notes-box { padding: 19px 21px; background: #fafcfd; }
.notes-box strong { font-size: 11px; }
.notes-box p { margin: 7px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.quick-panel { align-self: start; }
.quick-stat { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.quick-stat span { color: var(--muted); font-size: 11px; }
.quick-stat strong { color: var(--navy); font-size: 22px; }
.danger-zone { padding: 20px; }
.danger-zone form { display: grid; gap: 7px; }
.danger-zone small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.text-danger { padding: 0; border: 0; background: transparent; color: var(--danger); font-size: 11px; font-weight: 800; text-align: left; cursor: pointer; }
.button.full { width: 100%; }
.linked-panel { scroll-margin-top: 90px; }
.compact-empty { padding: 30px 22px; color: var(--muted); font-size: 12px; text-align: center; }
.card-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; padding: 18px; }
.info-card { display: flex; gap: 13px; align-items: center; min-width: 0; padding: 15px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.inactive-card { opacity: .58; }
.person-avatar, .location-icon { display: grid; width: 38px; height: 38px; flex: 0 0 auto; place-items: center; border-radius: 10px; background: #edf3f8; color: var(--navy-soft); font-size: 11px; font-weight: 900; }
.location-icon { background: #fff0e9; color: var(--orange); font-size: 16px; }
.info-card-main { display: grid; gap: 3px; min-width: 0; flex: 1; }
.info-card-main > div { display: flex; gap: 7px; align-items: center; }
.info-card-main strong, .info-card-main p, .info-card-main small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.info-card-main strong { font-size: 12px; }
.info-card-main p { margin: 1px 0 0; color: var(--ink); font-size: 10px; }
.info-card-main small { color: var(--muted); font-size: 9px; }
.tiny-badge { padding: 3px 6px; border-radius: 99px; background: #e7f8f1; color: #087b59; font-size: 7px; font-weight: 900; text-transform: uppercase; }
.inline-editor { scroll-margin-top: 90px; border-top: 1px solid var(--line); background: #fafcfd; }
.inline-editor summary { padding: 15px 20px; color: var(--navy); font-size: 11px; font-weight: 800; cursor: pointer; }
.inline-editor form { border-top: 1px solid var(--line); }
.inline-actions { position: static; padding: 0 22px 20px; background: transparent; backdrop-filter: none; }

/* Importazione aziende */
.import-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(290px, .75fr); gap: 22px; align-items: start; }
.import-upload-panel, .import-help-panel, .import-result-panel { padding: clamp(22px, 3vw, 34px); }
.import-upload-panel .form-section-heading { margin: -34px -34px 24px; }
.import-upload-form { display: grid; gap: 18px; }
.file-drop { position: relative; display: flex; min-height: 240px; align-items: center; justify-content: center; flex-direction: column; gap: 8px; padding: 32px; border: 2px dashed #c4d0d8; border-radius: 16px; background: #f8fbfc; color: var(--navy); text-align: center; cursor: pointer; transition: border-color .16s, background .16s; }
.file-drop:hover, .file-drop:focus-within { border-color: var(--orange); background: #fff8f4; }
.file-drop strong { font-size: 17px; }
.file-drop > span:not(.file-drop-icon) { color: var(--muted); font-size: 12px; }
.file-drop input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.file-drop-icon { display: grid; width: 58px; height: 58px; place-items: center; border-radius: 15px; background: #e6f3eb; color: #16824b; font-size: 16px; font-weight: 900; letter-spacing: -.03em; }
.import-help-panel h2, .preview-heading h2, .import-result-panel h2 { margin: 5px 0 7px; color: var(--navy); }
.import-steps { display: grid; gap: 20px; margin: 24px 0; padding: 0; list-style: none; }
.import-steps li { display: grid; grid-template-columns: 32px 1fr; gap: 12px; }
.import-steps li > span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: var(--navy); color: #fff; font-size: 11px; font-weight: 900; }
.import-steps strong { color: var(--navy); font-size: 13px; }
.import-steps p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.import-note { padding: 16px; border-left: 3px solid var(--orange); border-radius: 0 10px 10px 0; background: #fff5ef; }
.import-note strong { color: var(--orange-dark); font-size: 12px; }
.import-note p { margin: 4px 0 0; color: #725141; font-size: 11px; line-height: 1.5; }
.import-metrics { grid-template-columns: repeat(4, 1fr); }
.mini-metric.metric-danger { border-color: #efb8b1; background: #fff5f3; }
.mini-metric.metric-danger strong { color: var(--danger); }
.import-preview-panel { overflow: hidden; }
.preview-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 24px 26px; border-bottom: 1px solid var(--line); }
.preview-heading p:last-child { margin: 0; color: var(--muted); font-size: 12px; }
.import-table-wrap { max-height: 560px; }
.import-table { min-width: 950px; }
.import-table thead { position: sticky; z-index: 2; top: 0; }
.import-row-error { background: #fff8f7; }
.line-number { color: var(--muted); font-variant-numeric: tabular-nums; }
.status-pill.error-status { background: #fff0ee; color: var(--danger); }
.row-errors { max-width: 360px; margin: 8px 0 0; padding-left: 16px; color: var(--danger); font-size: 10px; line-height: 1.45; }
.status-note { display: block; max-width: 260px; margin-top: 6px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.import-confirm-form { display: grid; grid-template-columns: minmax(360px, 1.3fr) minmax(220px, .7fr) auto; gap: 24px; align-items: end; padding: 22px 26px; border-top: 1px solid var(--line); background: #fbfcfd; }
.duplicate-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; min-width: 0; margin: 0; padding: 0; border: 0; }
.duplicate-options legend { margin-bottom: 8px; color: var(--navy); font-size: 11px; font-weight: 800; }
.duplicate-options label { display: flex; gap: 9px; padding: 12px; border: 1px solid #d6dfe5; border-radius: 10px; background: #fff; cursor: pointer; }
.duplicate-options input { margin-top: 2px; accent-color: var(--orange); }
.duplicate-options strong, .duplicate-options small { display: block; }
.duplicate-options strong { color: var(--navy); font-size: 11px; }
.duplicate-options small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.35; }
.duplicate-options:disabled { opacity: .55; }
.confirm-summary p { margin: 3px 0; color: var(--muted); font-size: 11px; }
.confirm-summary strong { color: var(--navy); }
.danger-text { color: var(--danger) !important; }
.inline-import-actions { position: static; padding: 0; background: transparent; backdrop-filter: none; }
.import-result-panel { display: grid; grid-template-columns: auto 1fr; gap: 4px 18px; }
.result-icon { display: grid; grid-row: span 2; width: 52px; height: 52px; place-items: center; border-radius: 50%; background: #e6f7f0; color: #07845d; font-size: 22px; font-weight: 900; }
.import-result-panel > div:nth-child(2) p:last-child { margin: 0; color: var(--muted); }
.import-summary-grid { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 28px; }
.import-summary-grid > div { padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: #fafcfd; }
.import-summary-grid span, .import-summary-grid strong { display: block; }
.import-summary-grid span { color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.import-summary-grid strong { margin-top: 5px; color: var(--navy); font-size: 28px; }
.import-summary-grid .has-errors strong { color: var(--danger); }
.import-details { grid-column: 1 / -1; margin-top: 18px; padding: 14px 16px; border-radius: 10px; background: #f7f9fa; }
.import-details summary { color: var(--navy); font-size: 12px; font-weight: 800; cursor: pointer; }
.import-details ul { margin: 12px 0 0; padding-left: 18px; color: var(--muted); font-size: 11px; line-height: 1.55; }
.inline-result-actions { position: static; grid-column: 1 / -1; padding: 20px 0 0; background: transparent; backdrop-filter: none; }

@media (max-width: 1050px) {
  .metric-grid { grid-template-columns: repeat(2, 1fr); }
  .dashboard-grid { grid-template-columns: 1fr; }
  .attention-panel { display: grid; grid-template-columns: repeat(3, 1fr); }
  .attention-panel .panel-heading { grid-column: 1 / -1; }
  .attention-item { border-bottom: 0; border-right: 1px solid var(--line); }
  .detail-grid { grid-template-columns: 1fr; }
  .quick-panel { display: grid; grid-template-columns: repeat(3, 1fr); }
  .quick-panel .panel-heading, .quick-panel .danger-zone { grid-column: 1 / -1; }
  .import-confirm-form { grid-template-columns: 1fr 1fr; }
  .inline-import-actions { grid-column: 1 / -1; }
  .fiscal-fields-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .auth-shell { grid-template-columns: 1fr; }
  .brand-panel { min-height: 320px; padding: 30px; }
  .brand-copy { padding-left: 18px; }
  .brand-copy h1 { font-size: 38px; }
  .brand-footer, .login-feature { display: none; }
  .auth-panel { min-height: auto; padding: 30px 18px 50px; }
  .app-layout { grid-template-columns: 1fr; }
  .sidebar { transform: translateX(-101%); transition: transform .2s; box-shadow: 20px 0 50px rgba(0,0,0,.22); }
  .menu-open .sidebar { transform: translateX(0); }
  .app-main { grid-column: 1; }
  .menu-toggle { display: inline-grid; place-items: center; }
  .topbar-title { display: none; }
  .user-copy { display: none; }
  .welcome-row { align-items: flex-start; flex-direction: column; }
  .module-heading { align-items: flex-start; flex-direction: column; }
  .heading-actions { width: 100%; flex-wrap: wrap; }
  .heading-actions .button { flex: 1 1 190px; }
  .import-layout { grid-template-columns: 1fr; }
  .import-metrics { grid-template-columns: repeat(2, 1fr); }
  .import-confirm-form { grid-template-columns: 1fr; align-items: stretch; }
  .duplicate-options { grid-template-columns: 1fr; }
  .inline-import-actions .button { width: 100%; }
  .client-metrics { grid-template-columns: repeat(2, 1fr); }
  .filter-bar { grid-template-columns: 1fr 180px; }
  .filter-bar .search-field { grid-column: 1 / -1; }
  .card-list { grid-template-columns: 1fr; }
  .project-row { grid-template-columns: 70px 1fr 95px; }
  .company-identity-row { grid-template-columns: 1fr; }
  .progress-cell { display: none; }
}

@media (max-width: 580px) {
  .form-grid { grid-template-columns: 1fr; }
  .form-grid .wide { grid-column: auto; }
  .auth-card { padding: 25px 20px; border-radius: 16px; }
  .metric-grid { grid-template-columns: 1fr; }
  .attention-panel { grid-template-columns: 1fr; }
  .attention-panel .panel-heading { grid-column: auto; }
  .attention-item { border-right: 0; border-bottom: 1px solid var(--line); }
  .topbar { padding: 0 16px; }
  .dashboard-content { padding: 28px 16px 18px; }
  .welcome-row .button { width: 100%; }
  .project-row { grid-template-columns: 1fr auto; }
  .project-code { display: none; }
  .app-footer { gap: 10px; flex-direction: column; }
  .client-metrics { grid-template-columns: 1fr; }
  .mini-metric { min-height: 64px; }
  .filter-bar { grid-template-columns: 1fr; }
  .filter-bar .search-field { grid-column: auto; }
  .detail-list { grid-template-columns: 1fr; }
  .detail-list div:nth-child(odd) { border-right: 0; }
  .quick-panel { grid-template-columns: 1fr; }
  .quick-panel .panel-heading, .quick-panel .danger-zone { grid-column: auto; }
  .form-actions { flex-direction: column-reverse; }
  .form-actions .button { width: 100%; }
  .import-summary-grid { grid-template-columns: repeat(2, 1fr); }
  .preview-heading { align-items: stretch; flex-direction: column; }
  .preview-heading .button { width: 100%; }
  .file-drop { min-height: 200px; padding: 22px; }
  .import-upload-panel .form-section-heading { margin: -22px -22px 24px; }
  .dialog-actions { flex-direction: column-reverse; }
  .dialog-actions .button { width: 100%; }
  .fiscal-fields-row { grid-template-columns: 1fr; }
  .tri-state-row { grid-template-columns: 1fr; gap: 7px; }
}

/* Regole grafiche globali BIMapp v15 */
button,
.button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
  font-family: "Bahnschrift Light", Bahnschrift, "Segoe UI", sans-serif !important;
  font-weight: 300 !important;
  letter-spacing: .055em;
  text-transform: uppercase !important;
}

.app-page h1,
.app-page h2,
.app-page h3,
.auth-card h1,
.auth-card h2,
.auth-card h3,
.form-section-heading h2,
.panel-heading h2,
.inline-editor summary {
  text-transform: uppercase;
}

.international-vat-control { display: grid; grid-template-columns: minmax(145px, .42fr) minmax(0, 1fr); gap: 8px; }
.international-vat-control select { min-width: 0; font-size: 12px; }
.international-vat-control input { text-transform: uppercase; }
.international-phone-control, .international-phone-control .iti { display: block; width: 100%; }
.international-phone-control .iti__selected-country { min-height: 43px; border-radius: 9px 0 0 9px; }
.international-phone-control .iti__dropdown-content { z-index: 80; max-width: min(420px, 90vw); }
.international-phone-control .iti__search-input { min-height: 40px; }
.international-phone-control input[type="tel"] { padding-left: 92px; }

@media (max-width: 580px) {
  .international-vat-control { grid-template-columns: 1fr; }
}

/* Indirizzi normalizzati e sedi multiple v12 */
.address-editor { position: relative; display: grid; grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 26px; }
.address-editor > .wide, .address-editor > .address-search-label { grid-column: 1 / -1; }
.address-location-name { grid-column: 1 / 2 !important; }
.address-search-label { position: relative; }
.address-search-control { position: relative; display: block; }
.address-search-control > input { padding-right: 170px; }
.address-search-status { position: absolute; top: 50%; right: 14px; max-width: 150px; overflow: hidden; transform: translateY(-50%); color: var(--muted); font-size: 11px; font-weight: 600; line-height: 1.2; text-align: right; text-overflow: ellipsis; white-space: nowrap; text-transform: none; }
.address-suggestions { position: absolute; z-index: 45; top: calc(100% - 4px); right: 0; left: 0; overflow: hidden; border: 1px solid #cbd5dd; border-radius: 12px; background: #fff; box-shadow: 0 18px 45px rgba(13,40,67,.18); }
.address-suggestion { display: block; width: 100%; padding: 13px 16px; border: 0; border-bottom: 1px solid #e5eaee; background: #fff; color: var(--ink); font: inherit; font-size: 13px; line-height: 1.35; text-align: left; cursor: pointer; text-transform: none; }
.address-suggestion:hover, .address-suggestion:focus-visible { outline: 0; background: #fff5ef; color: var(--navy); }
.address-attribution { padding: 8px 16px; background: #f7f9fa; color: #5e5e5e; font-family: Roboto, Arial, sans-serif; font-size: 12px; font-style: normal; font-weight: 400; letter-spacing: normal; text-align: right; white-space: nowrap; }
.address-value-control { display: grid; grid-template-columns: minmax(0, 1fr) 44px; gap: 8px; }
.address-value-control > input[readonly] { background: #f7f9fa; color: var(--ink); }
.address-add-button { min-height: 46px; border: 1px solid var(--orange); border-radius: 10px; background: #fff5ef; color: var(--orange); font-size: 21px; font-weight: 500; cursor: pointer; }
.address-add-button:hover, .address-add-button:focus-visible { background: var(--orange); color: #fff; }
.address-selected-note { display: flex; grid-column: 1 / -1; align-items: center; gap: 11px; padding: 11px 14px; border: 1px solid #b9dfd2; border-radius: 10px; background: #edf9f5; }
.address-selected-note > span { display: grid; width: 26px; height: 26px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #0b8d65; color: #fff; font-size: 12px; }
.address-selected-note > p { display: grid; gap: 2px; margin: 0; }
.address-selected-note strong { color: #087b59; font-size: 10px; letter-spacing: .06em; }
.address-selected-note small { color: #43675b; font-size: 11px; font-weight: 500; text-transform: none; }
.coordinates-ready { display: block; width: fit-content; margin-top: 6px; padding: 4px 7px; border-radius: 999px; background: #edf9f5; color: #087b59; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.panel-heading-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px 18px; }
.panel-heading-actions a { white-space: nowrap; }
.territory-dialog { width: min(94vw, 610px); max-height: min(90vh, 720px); padding: 0; border: 0; border-radius: 18px; background: #fff; box-shadow: 0 28px 80px rgba(13,40,67,.3); }
.territory-dialog::backdrop { background: rgba(7,27,43,.62); backdrop-filter: blur(3px); }
.territory-dialog form { display: grid; }
.territory-dialog h2 { text-transform: uppercase; }
.territory-parent-summary { margin: 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: #f7f9fa; color: var(--muted); font-size: 11px; line-height: 1.5; }
.territory-dialog label { display: grid; gap: 8px; color: var(--ink); font-size: 14px; font-weight: 800; letter-spacing: .025em; text-transform: uppercase; }
.territory-dialog input { width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid #cbd5dd; border-radius: 10px; outline: none; text-transform: none; }
.territory-dialog input:focus { border-color: var(--soft); box-shadow: 0 0 0 4px rgba(53,83,114,.12); }

@media (max-width: 900px) { .address-editor { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 580px) {
  .address-editor { grid-template-columns: 1fr; }
  .address-search-control > input { padding-right: 14px; }
  .address-search-status { position: static; display: block; max-width: none; margin-top: 6px; transform: none; text-align: left; }
  .address-location-name { grid-column: 1 / -1 !important; }
  .panel-heading-actions { width: 100%; justify-content: flex-start; }
}

/* Modulo COMMESSE v17 */
.projects-heading{align-items:flex-end}.project-filter-panel{display:grid;gap:16px;padding:20px}.project-filter-grid{display:grid;grid-template-columns:1.5fr repeat(4,minmax(145px,1fr));gap:13px}.project-filter-grid label{display:grid;gap:7px;color:var(--ink);font-size:11px;font-weight:800}.project-filter-grid input,.project-filter-grid select{width:100%;min-height:42px;padding:9px 11px;border:1px solid #cbd5dd;border-radius:9px;background:white;color:var(--ink)}.project-filter-actions{display:flex;justify-content:flex-end;gap:10px}.projects-list-panel{overflow:hidden}.projects-list-panel>.panel-heading{padding:19px 21px}.projects-list-panel>.panel-heading>strong{color:var(--muted);font-size:11px}.project-table{overflow-x:auto}.project-table-head,.project-table-row{display:grid;grid-template-columns:115px minmax(230px,1.6fr) minmax(130px,.8fr) minmax(150px,.9fr) 155px 75px 85px;gap:14px;align-items:center;min-width:1080px;padding:13px 20px}.project-table-head{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f8fafb;color:#72808d;font-size:9px;font-weight:800;letter-spacing:.08em}.project-table-row{min-height:74px;border-bottom:1px solid var(--line);color:var(--ink);font-size:11px;text-decoration:none}.project-table-row:hover{background:#fffaf7}.project-table-row>strong{color:var(--navy);font-size:12px}.project-table-row>span{display:grid;gap:4px}.project-table-row>span>b{font-size:12px}.project-table-row small{color:var(--muted);font-size:9px}.project-status{width:fit-content;padding:6px 9px;border-radius:99px;font-size:8px;font-style:normal;font-weight:900}.project-status-active{background:#e7f8f1;color:#087b59}.project-status-on_hold{background:#fff3d9;color:#906300}.project-status-closed{background:#edf1f4;color:#5f6d79}.pagination{display:flex;justify-content:center;gap:6px;padding:18px}.pagination a{display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--line);border-radius:8px;color:var(--ink);text-decoration:none}.pagination a.active{border-color:var(--orange);background:var(--orange);color:white}
.project-settings-form{overflow:hidden}.settings-body{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;padding:23px}.settings-body>label{display:grid;gap:8px;font-size:12px;font-weight:800}.settings-body input{min-height:47px;padding:11px 13px;border:1px solid #cbd5dd;border-radius:9px;font-family:ui-monospace,Consolas,monospace;font-size:16px}.settings-body small{color:var(--muted);font-weight:500}.code-token-help{display:grid;gap:9px}.code-token-help span{padding:11px 13px;border:1px solid var(--line);border-radius:9px;background:#f8fafb;font-size:10px}.code-token-help b{color:var(--orange);font-family:ui-monospace,Consolas,monospace}.code-preview{grid-column:1/-1;padding:18px;border-left:4px solid var(--orange);border-radius:10px;background:#fff6f1}.code-preview small{display:block;font-size:9px;font-weight:800}.code-preview strong{display:block;margin:5px 0;color:var(--navy);font-family:ui-monospace,Consolas,monospace;font-size:26px}.code-preview p{margin:0;color:var(--muted);font-size:10px}
.project-form{display:grid;gap:18px}.project-edit-heading{align-items:flex-end}.project-code-chip{padding:10px 13px;border-radius:9px;background:var(--navy);color:white;font-family:ui-monospace,Consolas,monospace;font-size:15px;font-weight:800}.project-main-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-main-grid>label,.project-commercial-grid>label,.project-combo-field{display:grid;gap:7px;color:var(--ink);font-size:11px;font-weight:800}.project-main-grid input,.project-main-grid select,.project-main-grid textarea,.project-commercial-grid input,.project-commercial-grid select{width:100%;min-height:44px;padding:10px 12px;border:1px solid #cbd5dd;border-radius:9px;background:white;color:var(--ink)}.project-main-grid input[readonly],.project-commercial-grid input[readonly]{background:#f6f8fa;color:#657482}.project-main-grid small,.project-commercial-grid small{color:var(--muted);font-size:9px;font-weight:500;text-transform:none}.inline-select-action{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:7px}.square-action{min-height:44px;border:1px solid var(--orange);border-radius:9px;background:#fff6f1;color:var(--orange);font-size:20px;cursor:pointer}.client-combobox{position:relative}.combobox-results{position:absolute;z-index:15;top:68px;right:51px;left:0;max-height:260px;overflow:auto;border:1px solid #cbd5dd;border-radius:10px;background:white;box-shadow:0 16px 35px rgba(13,40,67,.16)}.combobox-results button{display:grid;width:100%;gap:3px;padding:11px 13px;border:0;border-bottom:1px solid var(--line);background:white;color:var(--ink);text-align:left;cursor:pointer}.combobox-results button:hover{background:#fff6f1}.combobox-results small{color:var(--muted);font-size:9px;text-transform:none}.project-status-field{display:flex!important;align-items:center;gap:18px;padding-top:5px}.project-status-field>span{font-size:11px;font-weight:800}.project-state-toggle{display:grid;grid-template-columns:72px 90px;align-items:center;gap:10px;padding:0;border:0;background:transparent;cursor:pointer}.project-state-toggle>i{position:relative;width:72px;height:28px;border-radius:99px;background:linear-gradient(90deg,#16a477 0 33.33%,#e5a52b 33.33% 66.66%,#758390 66.66%);box-shadow:inset 0 0 0 1px rgba(13,40,67,.22)}.project-state-toggle>i::after{position:absolute;top:4px;left:4px;width:20px;height:20px;border-radius:50%;background:white;box-shadow:0 2px 6px rgba(13,40,67,.35);content:"";transition:transform .18s}.project-state-toggle[data-state="ON_HOLD"]>i::after{transform:translateX(22px)}.project-state-toggle[data-state="CLOSED"]>i::after{transform:translateX(44px)}.project-state-toggle>strong{color:#087b59;font-size:10px}.project-state-toggle[data-state="ON_HOLD"]>strong{color:#906300}.project-state-toggle[data-state="CLOSED"]>strong{color:#657482}
.project-commercial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.money-input{display:grid;grid-template-columns:42px 1fr}.money-input>b{display:grid;place-items:center;border:1px solid #cbd5dd;border-right:0;border-radius:9px 0 0 9px;background:#f5f7f9;color:var(--muted)}.money-input input{border-radius:0 9px 9px 0}.protected-upload{position:relative;display:flex;align-items:center;gap:13px;min-height:78px;padding:15px;border:1px dashed #9eacb8;border-radius:11px;background:#f8fafb;cursor:pointer}.protected-upload>b{display:grid;width:45px;height:45px;place-items:center;border-radius:9px;background:#fee9de;color:var(--orange)}.protected-upload>span{display:grid;gap:3px}.protected-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}.project-documents{display:grid;gap:9px}.project-documents h3{margin:0;font-size:12px}.project-documents>div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid var(--line);border-radius:9px}.project-documents a{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none}.project-documents a>b{padding:7px;border-radius:6px;background:#fee9de;color:var(--orange);font-size:9px}.project-documents a>span{display:grid;gap:3px}.project-documents>div>label{display:flex;align-items:center;gap:6px;color:#a33;font-size:9px;font-weight:800}.project-documents>div>label input{min-height:auto;width:auto}
.project-resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;padding:21px}.project-resource-grid label{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fafcfd;cursor:pointer}.project-resource-grid input{width:17px;height:17px;accent-color:var(--orange)}.project-resource-grid span{display:grid;gap:3px}.project-resource-grid strong{font-size:11px}.project-resource-grid small{color:var(--muted);font-size:9px}.phase-section{overflow:hidden}.phase-section-heading{grid-template-columns:auto 1fr auto}.phase-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 20px;border-bottom:1px solid var(--line);background:#fafcfd}.phase-tools>div{display:flex;gap:8px}.phase-tools select{min-width:300px;min-height:40px;padding:8px 10px;border:1px solid #cbd5dd;border-radius:8px}.phase-table-wrap{overflow-x:auto}.phase-table-head,.phase-row{display:grid;grid-template-columns:minmax(250px,1.5fr) 145px 145px 105px minmax(180px,1fr) 115px;gap:12px;align-items:center;min-width:1000px;padding:11px 18px}.phase-table-head{border-bottom:1px solid var(--line);background:#f2f5f7;color:#6f7e8b;font-size:9px;font-weight:800;letter-spacing:.06em}.phase-row{border-bottom:1px solid var(--line)}.phase-row input,.phase-row select{width:100%;min-height:39px;padding:7px 9px;border:1px solid #cbd5dd;border-radius:8px;background:white}.phase-row select{font-size:10px}.phase-name-cell{display:grid;grid-template-columns:62px 1fr;align-items:center;gap:9px}.phase-name-cell>span{padding:7px 8px;border-radius:7px;background:#eaf0f5;color:var(--navy);font-family:ui-monospace,Consolas,monospace;font-size:10px;font-weight:800;text-align:center}.phase-row.depth-1 .phase-name-cell{padding-left:20px}.phase-row.depth-2 .phase-name-cell{padding-left:40px}.phase-row output{font-size:14px;font-weight:800;text-align:center}.phase-row-actions{display:flex;justify-content:flex-end;gap:6px}.phase-row-actions button{display:grid;width:31px;height:31px;place-items:center;border:1px solid var(--line);border-radius:7px;background:white;color:var(--soft);cursor:pointer}.phase-row-actions button:last-child{color:#a33}.project-calculation-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;padding:18px 20px;background:#f8fafb}.project-calculation-summary>div{padding:16px;border:1px solid var(--line);border-left:4px solid var(--orange);border-radius:10px;background:white}.project-calculation-summary small{display:block;color:var(--muted);font-size:9px;font-weight:800}.project-calculation-summary strong{display:block;margin:5px 0;color:var(--navy);font-size:25px}.project-calculation-summary span{color:var(--muted);font-size:9px}.sticky-form-actions{position:sticky;z-index:10;bottom:0;padding:15px 18px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 -8px 25px rgba(13,40,67,.08);backdrop-filter:blur(8px)}
.project-type-dialog,.client-create-dialog{padding:0;border:0;border-radius:17px;background:white;box-shadow:0 28px 80px rgba(13,40,67,.3)}.project-type-dialog{width:min(94vw,620px)}.project-type-dialog::backdrop,.client-create-dialog::backdrop{background:rgba(8,24,42,.55)}.project-type-dialog form{overflow:hidden}.project-type-dialog .dialog-body{display:grid;gap:14px;padding:22px}.project-type-dialog .dialog-body label{display:grid;gap:7px;font-size:11px;font-weight:800}.project-type-dialog input{min-height:44px;padding:10px 12px;border:1px solid #cbd5dd;border-radius:9px}.client-create-dialog{width:min(96vw,1180px);height:min(94vh,900px)}.client-modal-heading{display:flex;align-items:center;justify-content:space-between;padding:17px 20px;border-bottom:1px solid var(--line)}.client-modal-heading h2{margin:3px 0 0}.client-modal-heading>button{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:white;font-size:20px}.client-create-dialog iframe{width:100%;height:calc(100% - 82px);border:0}.modal-client-page .sidebar,.modal-client-page .topbar,.modal-client-page .app-footer{display:none!important}.modal-client-page .app-layout,.modal-client-page .app-main{display:block!important;min-height:auto!important}.modal-client-page .app-main{margin:0!important}.modal-client-page .dashboard-content{padding:18px!important}.modal-client-page .module-heading{display:none}.modal-client-page .client-form{margin:0}.modal-client-page .form-actions{position:sticky;bottom:0;z-index:5;background:white}
@media(max-width:1100px){.project-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-main-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.projects-heading,.project-edit-heading{align-items:flex-start;flex-direction:column}.project-filter-grid,.project-main-grid,.project-commercial-grid,.settings-body,.project-calculation-summary{grid-template-columns:1fr}.code-preview{grid-column:auto}.project-resource-grid{grid-template-columns:1fr}.phase-tools{align-items:stretch;flex-direction:column}.phase-tools>div{flex-direction:column}.phase-tools select{min-width:0;width:100%}.project-status-field{align-items:flex-start;flex-direction:column}.client-create-dialog{width:100vw;height:100vh;max-width:none;max-height:none;border-radius:0}.heading-actions{width:100%;flex-wrap:wrap}.heading-actions .button{flex:1}.project-filter-actions{flex-direction:column}.project-filter-actions .button{width:100%}}

/* Toggle cromatici uniformi v19 */
.tri-state-track {
  border-color: #b83232;
  background: #cf3f3f;
  transition: border-color .18s ease, background .18s ease;
}
.tri-state-track::before,
.tri-state-track::after { display: none; }
.tri-state-toggle[data-state="1"] .tri-state-track { border-color: #c47712; background: #e39a24; }
.tri-state-toggle[data-state="2"] .tri-state-track { border-color: #087b59; background: #16a477; }
.tri-state-toggle strong { color: #a52d2d; }
.tri-state-toggle[data-state="1"] strong { color: #906300; }
.tri-state-toggle[data-state="2"] strong { color: #087b59; }

.project-state-toggle > i {
  background: #16a477;
  box-shadow: inset 0 0 0 1px #087b59;
  transition: background .18s ease, box-shadow .18s ease;
}
.project-state-toggle[data-state="ON_HOLD"] > i { background: #e39a24; box-shadow: inset 0 0 0 1px #c47712; }
.project-state-toggle[data-state="CLOSED"] > i { background: #cf3f3f; box-shadow: inset 0 0 0 1px #b83232; }
.project-state-toggle[data-state="CLOSED"] > strong { color: #a52d2d; }

/* Modulo RISORSE v20 */
.resources-heading,.resource-edit-heading{align-items:flex-end}.resource-filter-panel{display:grid;gap:16px;padding:20px}.resource-filter-grid{display:grid;grid-template-columns:1.6fr repeat(2,minmax(170px,.7fr));gap:14px}.resource-filter-grid label{display:grid;gap:7px;font-size:11px;font-weight:800}.resource-filter-grid input,.resource-filter-grid select{width:100%;min-height:43px;padding:9px 11px;border:1px solid #cbd5dd;border-radius:9px;background:white;color:var(--ink)}.resource-filter-actions{display:flex;justify-content:flex-end;gap:10px}.resource-list-panel{overflow:hidden}.resource-list-panel>.panel-heading{padding:19px 21px}.resource-list-panel>.panel-heading>strong{color:var(--muted);font-size:10px}.resource-table{overflow-x:auto}.resource-table-head,.resource-table-row{display:grid;grid-template-columns:100px minmax(235px,1.5fr) minmax(155px,1fr) 105px 65px minmax(165px,.9fr) 85px;gap:13px;align-items:center;min-width:1080px;padding:13px 20px}.resource-table-head{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f8fafb;color:#72808d;font-size:9px;font-weight:800;letter-spacing:.07em}.resource-table-row{min-height:77px;border-bottom:1px solid var(--line);color:var(--ink);font-size:11px;text-decoration:none}.resource-table-row:hover,.resource-table-row.highlighted{background:#fff8f4}.resource-table-row>strong{color:var(--navy);font-size:12px}.resource-table-row>span{display:grid;gap:4px}.resource-table-row>span>b{font-size:12px}.resource-table-row small{color:var(--muted);font-size:9px}.resource-table-row>b{text-align:center}.resource-status{width:fit-content;padding:6px 9px;border-radius:99px;font-size:8px;font-style:normal;font-weight:900}.resource-status.active{background:#e7f8f1;color:#087b59}.resource-status.inactive{background:#ffe9e9;color:#a52d2d}
.resource-code-chip{padding:10px 13px;border-radius:9px;background:var(--navy);color:white;font-family:ui-monospace,Consolas,monospace;font-size:15px;font-weight:800}.resource-form{display:grid;gap:18px}.resource-main-grid{grid-template-columns:repeat(3,minmax(0,1fr));padding:22px 24px;gap:18px 20px}.resource-validity-grid{grid-template-columns:repeat(4,minmax(0,1fr));padding:22px 24px;gap:18px}.resource-access-grid{grid-template-columns:repeat(3,minmax(0,1fr));padding:22px 24px;gap:18px}.resource-main-grid>label,.resource-validity-grid>label,.resource-access-grid>label,.resource-rate-form>label{display:grid;align-content:start;gap:7px;color:var(--ink);font-size:11px;font-weight:800}.resource-main-grid input,.resource-main-grid select,.resource-validity-grid input,.resource-validity-grid select,.resource-access-grid input,.resource-rate-form input,.resource-rate-form select{width:100%;min-height:44px;padding:10px 12px;border:1px solid #cbd5dd;border-radius:9px;background:white;color:var(--ink)}.resource-main-grid small,.resource-validity-grid small,.resource-access-grid small,.resource-rate-form small{color:var(--muted);font-size:9px;font-weight:500;text-transform:none}.resource-main-grid .wide,.resource-rate-form .wide{grid-column:1/-1}.resource-phone-field .iti,.resource-phone-field .international-phone-control{width:100%}.resource-access-grid>aside{grid-column:1/-1;padding:14px 16px;border:1px solid #b9dfd2;border-left:4px solid #16a477;border-radius:10px;background:#edf9f5}.resource-access-grid>aside strong{color:#087b59;font-size:10px;letter-spacing:.06em}.resource-access-grid>aside p{margin:4px 0 0;color:#43675b;font-size:10px}
.resource-active-toggle,.resource-rate-active-toggle{position:relative;display:grid!important;grid-template-columns:50px minmax(0,1fr);align-items:center!important;align-content:center!important;column-gap:12px;min-height:56px;cursor:pointer}.resource-active-toggle .toggle-control,.resource-rate-active-toggle .toggle-control{border-color:#b83232;background:#cf3f3f}.resource-active-toggle .toggle-input:checked+.toggle-control,.resource-rate-active-toggle .toggle-input:checked+.toggle-control{border-color:#087b59;background:#16a477;box-shadow:inset 0 1px 2px rgba(5,83,58,.22)}
.resource-rate-section{overflow:hidden;margin-top:18px}.resource-rate-form{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(150px,.8fr)) minmax(210px,1fr);gap:16px 18px;padding:22px 24px;border-bottom:1px solid var(--line);background:#fafcfd}.resource-rate-form .money-input{display:grid;grid-template-columns:42px 1fr}.resource-rate-actions{display:flex;grid-column:1/-1;justify-content:flex-end}.resource-rate-history>.panel-heading{padding:18px 21px}.resource-rate-history>.panel-heading>strong{color:var(--muted);font-size:9px}.resource-rate-table{overflow-x:auto}.resource-rate-head,.resource-rate-row{display:grid;grid-template-columns:minmax(230px,1.5fr) 125px 145px 110px 110px 130px;gap:14px;align-items:center;min-width:930px;padding:12px 20px}.resource-rate-head{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f2f5f7;color:#72808d;font-size:9px;font-weight:800;letter-spacing:.06em}.resource-rate-row{border-bottom:1px solid var(--line);font-size:11px}.resource-rate-row>span{display:grid;gap:3px}.resource-rate-row small{color:var(--muted);font-size:9px}.resource-rate-row>time{font-weight:700}.resource-rate-row>form{margin:0}.rate-status-toggle{display:grid;grid-template-columns:58px 62px;align-items:center;gap:8px;padding:0;border:0;background:transparent;cursor:pointer}.rate-status-toggle>i{position:relative;width:58px;height:26px;border-radius:99px;background:#cf3f3f;box-shadow:inset 0 0 0 1px #b83232}.rate-status-toggle>i::after{position:absolute;top:4px;left:4px;width:18px;height:18px;border-radius:50%;background:white;box-shadow:0 2px 5px rgba(13,40,67,.3);content:"";transition:transform .18s}.rate-status-toggle.active>i{background:#16a477;box-shadow:inset 0 0 0 1px #087b59}.rate-status-toggle.active>i::after{transform:translateX(32px)}.rate-status-toggle>strong{color:#a52d2d;font-size:9px}.rate-status-toggle.active>strong{color:#087b59}.empty-state.compact{min-height:100px;padding:24px}
@media(max-width:1100px){.resource-main-grid,.resource-access-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.resource-validity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.resource-rate-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.resources-heading,.resource-edit-heading{align-items:flex-start;flex-direction:column}.resource-filter-grid,.resource-main-grid,.resource-validity-grid,.resource-access-grid,.resource-rate-form{grid-template-columns:1fr}.resource-filter-actions{flex-direction:column}.resource-filter-actions .button{width:100%}.resource-main-grid,.resource-validity-grid,.resource-access-grid,.resource-rate-form{padding:18px 16px}.resource-main-grid .wide,.resource-rate-form .wide,.resource-rate-actions{grid-column:auto}.resource-rate-actions .button{width:100%}.resource-rate-history>.panel-heading{align-items:flex-start;flex-direction:column;gap:8px}}

/* Tipi di risorsa da archivio v21 */
.resource-type-field{display:grid;align-content:start;gap:7px;color:var(--ink);font-size:11px;font-weight:800}.resource-type-field>label{font-size:11px;font-weight:800}.resource-type-dialog{width:min(94vw,620px);padding:0;border:0;border-radius:17px;background:white;box-shadow:0 28px 80px rgba(13,40,67,.3)}.resource-type-dialog::backdrop{background:rgba(8,24,42,.55);backdrop-filter:blur(3px)}.resource-type-dialog form{overflow:hidden}.resource-type-dialog .dialog-body{display:grid;gap:14px;padding:22px}.resource-type-dialog .dialog-body label{display:grid;gap:7px;font-size:11px;font-weight:800}.resource-type-dialog input,.resource-type-dialog textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid #cbd5dd;border-radius:9px;background:white;color:var(--ink)}.resource-type-dialog textarea{resize:vertical}.resource-type-dialog input:focus,.resource-type-dialog textarea:focus{border-color:var(--navy-soft);box-shadow:0 0 0 4px rgba(53,83,114,.1);outline:none}

/* BIMapp v22: testi dei form e amministrazione dei cataloghi */
body[data-form-text-size="14"]{--form-control-text:14px;--form-label-text:12px;--form-help-text:11px;--form-control-height:44px}
body[data-form-text-size="16"],body:not([data-form-text-size]){--form-control-text:16px;--form-label-text:13px;--form-help-text:12px;--form-control-height:48px}
body[data-form-text-size="18"]{--form-control-text:18px;--form-label-text:14px;--form-help-text:13px;--form-control-height:52px}
.module-content form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),.module-content form select,.module-content form textarea{min-height:var(--form-control-height);font-size:var(--form-control-text);line-height:1.35}
.module-content form label,.module-content form .resource-type-field>label,.module-content form .resource-activity-field>label{font-size:var(--form-label-text)}
.module-content form label small,.module-content form .resource-type-field small,.module-content form .resource-activity-field small{font-size:var(--form-help-text)}
.resource-activity-field{display:grid;align-content:start;gap:7px;color:var(--ink);font-weight:800}.resource-activity-field .inline-select-action{width:100%}.activity-type-dialog select{width:100%;min-height:44px;padding:10px 12px;border:1px solid #cbd5dd;border-radius:9px;background:#fff;color:var(--ink)}

.administration-heading{align-items:flex-end}.admin-catalog-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px;margin-bottom:18px}.admin-catalog-card{display:grid;min-height:160px;align-content:start;gap:7px;padding:18px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);text-decoration:none;box-shadow:0 8px 22px rgba(13,40,67,.045);transition:border-color .16s,box-shadow .16s,transform .16s}.admin-catalog-card:hover,.admin-catalog-card.active{border-color:var(--orange);box-shadow:0 12px 28px rgba(217,92,35,.12);transform:translateY(-2px)}.admin-catalog-card>span{display:grid;width:38px;height:38px;place-items:center;border-radius:10px;background:#fff0e9;color:var(--orange);font-size:14px;font-weight:900}.admin-catalog-card strong{margin-top:4px;color:var(--navy);font-size:12px}.admin-catalog-card small{color:var(--muted);font-size:10px;line-height:1.5}.admin-catalog-panel,.admin-territory-panel{overflow:hidden}.admin-catalog-panel>.panel-heading,.admin-territory-panel>.panel-heading,.form-typography-panel>.panel-heading{padding:20px 22px}.admin-catalog-panel>.panel-heading p:last-child,.admin-territory-panel>.panel-heading p:last-child,.form-typography-panel>.panel-heading p:last-child{margin:4px 0 0;color:var(--muted);font-size:11px}.admin-catalog-table-wrap,.admin-territory-table{overflow-x:auto}.admin-catalog-head,.admin-catalog-row{display:grid;grid-template-columns:150px minmax(240px,1.5fr) minmax(180px,1fr) 95px 90px;gap:14px;align-items:center;min-width:900px;padding:13px 21px}.admin-catalog-head{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f5f7f9;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.07em}.admin-catalog-row{border-bottom:1px solid var(--line);font-size:11px}.admin-catalog-row>code{width:fit-content;padding:6px 8px;border-radius:7px;background:#edf3f8;color:var(--navy);font-size:10px;font-weight:800}.admin-catalog-row>span{display:grid;gap:3px}.admin-catalog-row>span strong{font-size:12px}.admin-catalog-row small{color:var(--muted);font-size:10px}.admin-catalog-row>em{width:fit-content;padding:6px 8px;border-radius:99px;font-size:8px;font-style:normal;font-weight:900}.admin-catalog-row>em.active{background:#e7f8f1;color:#087b59}.admin-catalog-row>em.inactive{background:#ffe9e9;color:#a52d2d}.admin-catalog-row>button{padding:7px;border:0;background:transparent;color:var(--orange);font-size:10px;font-weight:800;cursor:pointer}.admin-catalog-dialog{width:min(94vw,680px);padding:0;border:0;border-radius:17px;background:#fff;box-shadow:0 28px 80px rgba(13,40,67,.3)}.admin-catalog-dialog::backdrop{background:rgba(8,24,42,.55);backdrop-filter:blur(3px)}.admin-catalog-dialog form{overflow:hidden}.admin-catalog-dialog .dialog-body{display:grid;gap:15px;padding:22px 24px}.admin-catalog-dialog .dialog-body>label{display:grid;gap:7px}.admin-company-rules{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:0;padding:16px;border:1px solid var(--line);border-radius:11px}.admin-company-rules legend{padding:0 7px;color:var(--navy);font-size:11px;font-weight:800}.admin-active-toggle{display:grid!important;grid-template-columns:22px 1fr;align-items:center;gap:6px 10px!important;padding:13px;border:1px solid var(--line);border-radius:10px;background:#f8fafb}.admin-active-toggle input{width:18px;height:18px;accent-color:#16a477}.admin-active-toggle span{font-weight:900}.admin-active-toggle small{grid-column:2}.admin-territory-head,.admin-territory-table>article{display:grid;grid-template-columns:120px minmax(170px,.8fr) minmax(280px,1.6fr) 90px;gap:14px;align-items:center;min-width:800px;padding:13px 21px}.admin-territory-head{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f5f7f9;color:var(--muted);font-size:9px;font-weight:800}.admin-territory-table>article{border-bottom:1px solid var(--line);font-size:11px}.admin-territory-table>article>b{font-size:10px}.admin-territory-table>article>span{display:grid;gap:3px}.admin-territory-table small{color:var(--muted);font-size:9px}.admin-territory-table em{color:var(--navy-soft);font-size:9px;font-style:normal;font-weight:800}

.admin-catalog-head>button,.admin-territory-head>button{display:flex;align-items:center;gap:7px;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;letter-spacing:inherit;text-align:left;text-transform:uppercase;cursor:pointer}.admin-catalog-head>button::after,.admin-territory-head>button::after{content:"↕";color:#8795a1;font-size:11px}.admin-catalog-head>button[aria-sort="ascending"]::after,.admin-territory-head>button[aria-sort="ascending"]::after{content:"↑";color:var(--orange)}.admin-catalog-head>button[aria-sort="descending"]::after,.admin-territory-head>button[aria-sort="descending"]::after{content:"↓";color:var(--orange)}.admin-row-actions>button{padding:7px 0;border:0;background:transparent;color:var(--orange);font:inherit;font-size:10px;font-weight:900;cursor:pointer}.admin-row-actions>button:hover{text-decoration:underline;text-underline-offset:3px}

.form-typography-panel{overflow:hidden;margin-top:18px}.form-typography-panel>.panel-heading>strong{color:var(--orange);font-size:11px}.form-size-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;padding:22px}.form-size-card{position:relative;display:block!important;cursor:pointer}.form-size-card>input[type="radio"]{position:absolute;top:16px;right:16px;width:19px;height:19px;accent-color:var(--orange)}.form-size-card>span{display:grid;gap:8px;min-height:190px;padding:20px;border:2px solid var(--line);border-radius:13px;background:#fafcfd}.form-size-card>input:checked+span{border-color:var(--orange);background:#fff8f4;box-shadow:0 8px 22px rgba(217,92,35,.1)}.form-size-card b{padding-right:28px;color:var(--navy);font-size:12px}.form-size-card small{color:var(--muted);font-size:10px;text-transform:none}.form-size-card em{margin-top:12px;color:var(--ink);font-size:calc(var(--preview-form-size) - 3px);font-style:normal;font-weight:800}.form-size-card input[type="text"]{min-height:calc(var(--preview-form-size) + 32px)!important;padding:10px 12px!important;border:1px solid #cbd5dd!important;border-radius:9px!important;background:#fff!important;font-size:var(--preview-form-size)!important}.form-typography-panel .form-actions{padding:0 22px 22px}

@media(max-width:1100px){.admin-catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.administration-heading{align-items:flex-start;flex-direction:column}.admin-catalog-grid,.form-size-options{grid-template-columns:1fr}.admin-company-rules{grid-template-columns:1fr}}

/* v23 · accesso risorse e tipografia delle tabelle */
.resource-access-toggle{position:relative;display:grid!important;grid-column:1/-1;grid-template-columns:50px minmax(0,1fr);align-items:center!important;column-gap:12px;min-height:62px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:#f8fafb;cursor:pointer}.resource-access-toggle .toggle-control{border-color:#b83232;background:#cf3f3f}.resource-access-toggle .toggle-input:checked+.toggle-control{border-color:#087b59;background:#16a477;box-shadow:inset 0 1px 2px rgba(5,83,58,.22)}.resource-access-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.resource-access-fields[hidden]{display:none}.resource-access-fields>label,.resource-new-account-fields>label{display:grid;align-content:start;gap:7px;color:var(--ink);font-size:var(--form-label-text);font-weight:800}.resource-access-fields input,.resource-access-fields select{width:100%;min-height:var(--form-control-height);padding:10px 12px;border:1px solid #cbd5dd;border-radius:9px;background:white;color:var(--ink);font-size:var(--form-control-text)}.resource-account-link{grid-column:1/-1}.resource-account-link select{border-color:#8eb5d0;background:#f4f9fc}.resource-new-account-fields{display:grid;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.resource-new-account-fields[hidden]{display:none}

body[data-table-text-size="14"]{--table-text-size:14px}
body[data-table-text-size="16"],body:not([data-table-text-size]){--table-text-size:16px}
body[data-table-text-size="18"]{--table-text-size:18px}
:is(.data-table th,.data-table td,.project-table-head,.project-table-row,.resource-table-head,.resource-table-row,.resource-rate-head,.resource-rate-row,.admin-catalog-head,.admin-catalog-row,.admin-territory-head,.admin-territory-table>article,.phase-table-head,.phase-row,.import-table th,.import-table td){font-size:var(--table-text-size)!important;line-height:1.4}
:is(.project-table-head,.project-table-row,.resource-table-head,.resource-table-row,.resource-rate-head,.resource-rate-row,.admin-catalog-head,.admin-catalog-row,.admin-territory-head,.admin-territory-table>article,.phase-table-head,.phase-row) :is(span,strong,b,small,em,code,time,a,button){font-size:var(--table-text-size)!important;line-height:1.4}
body[data-table-text-uppercase="1"] :is(.data-table,.project-table,.resource-table,.resource-rate-table,.admin-catalog-table-wrap,.admin-territory-table,.phase-table-wrap,.import-table){text-transform:uppercase}

.table-typography-panel{overflow:hidden;margin-top:18px}.table-typography-panel>.panel-heading{padding:20px 22px}.table-typography-panel>.panel-heading p:last-child{margin:4px 0 0;color:var(--muted);font-size:11px}.table-typography-panel>.panel-heading>strong{color:var(--orange);font-size:11px}.table-size-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;padding:22px}.table-size-card{position:relative;display:block!important;cursor:pointer}.table-size-card>input[type="radio"]{position:absolute;top:16px;right:16px;width:19px;height:19px;accent-color:var(--orange)}.table-size-card>span{display:grid;gap:8px;min-height:225px;padding:20px;border:2px solid var(--line);border-radius:13px;background:#fafcfd}.table-size-card>input:checked+span{border-color:var(--orange);background:#fff8f4;box-shadow:0 8px 22px rgba(217,92,35,.1)}.table-size-card b{padding-right:28px;color:var(--navy);font-size:12px}.table-size-card small{color:var(--muted);font-size:10px;text-transform:none}.table-size-sample{display:grid;overflow:hidden;margin-top:12px;border:1px solid #d8e0e7;border-radius:9px;background:white;font-size:var(--preview-table-size);font-style:normal}.table-size-sample>span{display:grid;grid-template-columns:1fr 1.4fr .7fr;gap:8px;padding:9px 10px}.table-size-sample>span:first-child{background:#eef3f6;color:var(--muted)}.table-size-sample strong,.table-size-sample span{font-size:inherit}.table-typography-panel form[data-preview-uppercase="1"] .table-size-sample{text-transform:uppercase}.table-case-setting{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 22px 22px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#f8fafb}.table-case-setting>div strong{color:var(--navy);font-size:12px}.table-case-setting>div p{max-width:700px;margin:5px 0 0;color:var(--muted);font-size:11px}.table-uppercase-toggle{display:grid!important;grid-template-columns:50px minmax(130px,1fr);align-items:center;gap:12px!important;cursor:pointer}.table-uppercase-toggle .toggle-control{border-color:#72808d;background:#8795a1}.table-uppercase-toggle input:checked+.toggle-control{border-color:#087b59;background:#16a477}.table-uppercase-toggle .toggle-copy{display:grid;gap:3px}.table-uppercase-toggle b{font-size:11px}.table-uppercase-toggle small{font-size:10px!important;text-transform:none}.table-typography-panel .form-actions{padding:0 22px 22px}
@media(max-width:760px){.resource-access-fields,.resource-new-account-fields,.table-size-options{grid-template-columns:1fr}.table-case-setting{align-items:flex-start;flex-direction:column}.table-uppercase-toggle{width:100%}}

/* Correzione spaziature form COMMESSE v18 */
.project-main-grid,
.project-commercial-grid {
  column-gap: 18px;
  row-gap: 20px;
  padding: 22px 24px 24px;
}

.inline-select-action {
  gap: 8px;
}

.combobox-results {
  right: 52px;
}

.project-status-field {
  padding-top: 3px;
}

@media (max-width: 760px) {
  .project-main-grid,
  .project-commercial-grid {
    row-gap: 18px;
    padding: 18px 16px 20px;
  }
}

/* BIMapp v24 · ordinamento, password, fasi, profilo, accessi e notifiche */
.password-control{position:relative;display:block;width:100%}.password-control>input{width:100%;padding-right:92px!important}.password-visibility-button{position:absolute;top:50%;right:7px;min-width:72px;min-height:34px;padding:6px 9px;transform:translateY(-50%);border:1px solid #c8d2db;border-radius:7px;background:#f5f8fa;color:var(--navy);font-size:11px;font-weight:900;text-transform:uppercase;cursor:pointer}.password-visibility-button:hover{border-color:var(--orange);color:var(--orange)}
.user-menu{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:9px;padding:0;border:0;background:transparent;color:inherit;cursor:pointer}.profile-menu-popover{position:absolute;z-index:80;top:calc(100% + 12px);right:0;width:270px;overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 18px 50px rgba(13,40,67,.2)}.profile-menu-popover[hidden]{display:none}.profile-menu-popover>div{display:grid;gap:4px;padding:16px 18px;border-bottom:1px solid var(--line);background:#f7f9fb}.profile-menu-popover>div strong{color:var(--navy);font-size:13px}.profile-menu-popover>div small{color:var(--muted);font-size:11px}.profile-menu-popover>a,.profile-menu-popover form button{display:block;width:100%;padding:13px 18px;border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--ink);font:800 11px/1.3 inherit;text-align:left;text-decoration:none;cursor:pointer}.profile-menu-popover>a:hover,.profile-menu-popover form button:hover{background:#fff7f3;color:var(--orange)}
.sortable-head>span{display:flex;align-items:center;gap:8px}.sortable-head>span:nth-child(2){flex-wrap:wrap}.sortable-head a{color:inherit;text-decoration:none}.sortable-head a:hover{color:var(--orange);text-decoration:underline;text-underline-offset:3px}
.selected-resource-list{display:flex;flex-wrap:wrap;gap:10px;padding:20px 24px}.selected-resource-list>span,.phase-dialog-resources [data-phase-resource-summary]>span{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid #cbd7e0;border-radius:99px;background:#f7fafc;color:var(--ink);font-size:12px}.selected-resource-list b,.phase-dialog-resources [data-phase-resource-summary] b{padding:3px 6px;border-radius:6px;background:var(--navy);color:#fff;font-size:10px}.selected-resource-list button{display:grid;width:22px;height:22px;place-items:center;padding:0;border:0;border-radius:50%;background:#ffe7e7;color:#a52d2d;font-weight:900;cursor:pointer}.empty-selection{margin:0;color:var(--muted);font-size:12px}
.resource-selection-dialog,.phase-edit-dialog,.notification-rule-dialog{width:min(94vw,760px);max-height:90vh;padding:0;border:0;border-radius:17px;background:#fff;box-shadow:0 28px 80px rgba(13,40,67,.32)}.resource-selection-dialog::backdrop,.phase-edit-dialog::backdrop,.notification-rule-dialog::backdrop{background:rgba(8,24,42,.58);backdrop-filter:blur(3px)}.resource-selection-dialog form,.phase-edit-dialog form,.notification-rule-dialog form{overflow:auto;max-height:90vh}.resource-selection-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:20px 22px}.resource-selection-list>label{display:grid!important;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:10px!important;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fafcfd;cursor:pointer}.resource-selection-list>label:has(input:checked){border-color:var(--orange);background:#fff7f3}.resource-selection-list input{width:18px;height:18px;accent-color:var(--orange)}.resource-selection-list span{display:grid;gap:3px}.resource-selection-list span b{width:fit-content;color:var(--orange);font-size:10px}.resource-selection-list span strong{font-size:12px}.resource-selection-list span small{color:var(--muted);font-size:10px}
.phase-dialog-grid,.notification-rule-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px!important}.phase-dialog-grid .wide,.notification-rule-grid .wide{grid-column:1/-1}.phase-dialog-resources{display:grid;gap:10px}.phase-dialog-resources>span{font-weight:800}.phase-dialog-resources [data-phase-resource-summary]{display:flex;flex-wrap:wrap;gap:8px}.phase-dialog-resources [data-phase-resource-summary]>span{border-radius:9px}.phase-dialog-resources>.button{width:fit-content}
.phase-accordion-list{display:grid;gap:10px;padding:20px 22px}.phase-accordion{overflow:hidden;border:1px solid #d6dfe6;border-radius:12px;background:#fff}.phase-accordion.depth-1,.phase-accordion.depth-2{margin-top:10px;border-left:4px solid #91a7b8}.phase-accordion.depth-2{border-left-color:#d99a75}.phase-accordion>summary{display:grid;grid-template-columns:22px minmax(170px,1.3fr) minmax(120px,.7fr) 90px minmax(120px,.8fr) minmax(145px,.8fr) auto;gap:12px;align-items:center;padding:13px 14px;background:#f8fafb;list-style:none;cursor:pointer}.phase-accordion>summary::-webkit-details-marker{display:none}.phase-accordion[open]>summary{border-bottom:1px solid var(--line);background:#f2f6f8}.phase-chevron{font-size:24px;transition:transform .16s}.phase-accordion[open]>summary .phase-chevron{transform:rotate(90deg)}.phase-code-name,.phase-dates,.phase-hours,.phase-resource-codes,.phase-progress{display:grid;gap:3px}.phase-code-name b{width:fit-content;padding:4px 6px;border-radius:6px;background:var(--navy);color:#fff;font-size:10px}.phase-code-name strong{font-size:13px}.phase-dates{grid-template-columns:auto 1fr}.phase-dates small,.phase-hours small,.phase-resource-codes small,.phase-progress small{color:var(--muted);font-size:9px;font-weight:800}.phase-dates time,.phase-hours b,.phase-resource-codes b,.phase-progress b{font-size:11px}.phase-progress progress{width:100%;height:6px;accent-color:var(--orange)}.phase-summary-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}.phase-summary-actions button{padding:6px 7px;border:1px solid #ccd6de;border-radius:6px;background:#fff;color:var(--navy);font-size:9px;font-weight:800;cursor:pointer}.phase-summary-actions button:hover{border-color:var(--orange);color:var(--orange)}.phase-accordion-body{padding:12px 14px}.phase-status-note{display:flex;justify-content:space-between;gap:14px;color:var(--muted);font-size:10px}.phase-status-note b{color:var(--navy)}
.admin-system-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:0 0 18px}.admin-system-card{display:flex;align-items:center;gap:15px;padding:18px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);text-decoration:none}.admin-system-card:hover{border-color:var(--orange);box-shadow:0 10px 26px rgba(217,92,35,.1)}.admin-system-card>span{display:grid;flex:0 0 42px;height:42px;place-items:center;border-radius:10px;background:#fff0e9;color:var(--orange);font-size:18px}.admin-system-card>div{display:grid;gap:5px}.admin-system-card strong{color:var(--navy);font-size:12px}.admin-system-card small{color:var(--muted);font-size:10px;line-height:1.5}
.access-mode-tabs{display:flex;gap:8px;margin-bottom:16px}.access-mode-tabs a{padding:11px 16px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--muted);font-size:11px;font-weight:900;text-decoration:none}.access-mode-tabs a.active{border-color:var(--orange);background:#fff3ed;color:var(--orange)}.feature-access-form{overflow:hidden}.feature-target-select{display:flex;align-items:end;justify-content:space-between;gap:22px;padding:20px 22px;border-bottom:1px solid var(--line);background:#f7f9fb}.feature-target-select label{display:grid;min-width:min(100%,420px);gap:7px;font-weight:800}.feature-target-select select{width:100%;min-height:48px;padding:10px;border:1px solid #cbd5dd;border-radius:9px;background:#fff}.feature-target-select p{max-width:620px;margin:0;color:var(--muted);font-size:11px}.feature-group{display:grid;gap:0;margin:20px 22px;padding:0;border:1px solid var(--line);border-radius:12px}.feature-group legend{margin-left:14px;padding:0 8px;color:var(--navy);font-size:12px;font-weight:900}.feature-row{display:grid!important;grid-template-columns:minmax(0,1fr) 210px;align-items:center;gap:18px!important;padding:12px 15px;border-bottom:1px solid var(--line)}.feature-row:last-child{border-bottom:0}.feature-row>span{display:grid;gap:3px}.feature-row strong{font-size:12px}.feature-row small{color:var(--muted);font-size:10px;text-transform:none}.feature-row select{min-height:42px;padding:8px 10px;border:1px solid #cbd5dd;border-radius:8px;background:#fff}
.notification-rules-panel{overflow:hidden}.notification-rules-head,.notification-rule-row{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(230px,1.3fr) minmax(170px,.9fr) 130px 85px;gap:14px;align-items:center;min-width:900px;padding:13px 20px}.notification-rules-head{border-bottom:1px solid var(--line);background:#f2f5f7;color:var(--muted);font-size:9px;font-weight:900}.notification-rule-row{border-bottom:1px solid var(--line);font-size:11px}.notification-rule-row>span{display:grid;gap:3px}.notification-rule-row small{color:var(--muted);font-size:9px}.notification-rule-row em{width:fit-content;padding:6px 8px;border-radius:99px;font-size:8px;font-style:normal;font-weight:900}.notification-rule-row em.active{background:#e7f8f1;color:#087b59}.notification-rule-row em.inactive{background:#fff0df;color:#a65d12}.notification-rule-row>button{border:0;background:transparent;color:var(--orange);font-size:10px;font-weight:900;cursor:pointer}.notification-preferences-form{overflow:hidden}.notification-preference-row{display:grid!important;grid-template-columns:minmax(0,1fr) 28px 110px;align-items:center;gap:18px!important;padding:18px 22px;border-bottom:1px solid var(--line)}.notification-preference-row>span{display:grid;gap:4px}.notification-preference-row strong{font-size:13px}.notification-preference-row small{color:var(--muted);font-size:11px;text-transform:none}.notification-preference-row input{width:20px;height:20px;accent-color:var(--orange)}.notification-preference-row em{font-size:10px;font-style:normal;font-weight:900;color:var(--navy)}.notification-preferences-form>.form-actions{padding:18px 22px}
.profile-panel{display:grid;grid-template-columns:1fr auto;align-items:center;gap:20px;padding:24px}.profile-summary{display:flex;align-items:center;gap:16px}.profile-avatar{display:grid;width:64px;height:64px;place-items:center;border-radius:50%;background:var(--navy);color:#fff;font-size:20px;font-weight:900}.profile-summary>div{display:grid;gap:4px}.profile-summary h2,.profile-summary p{margin:0}.profile-summary small{color:var(--muted)}.profile-actions{display:flex;gap:10px}
.dashboard-quick-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px}
.access-denied-page{display:grid;min-height:100vh;place-items:center;margin:0;padding:24px;background:#eef3f6;font-family:Arial,sans-serif}.access-denied-dialog{position:static;display:grid;width:min(92vw,560px);place-items:center;gap:14px;padding:34px;border:0;border-radius:18px;background:#fff;box-shadow:0 24px 70px rgba(13,40,67,.25);text-align:center}.access-denied-icon{display:grid;width:58px;height:58px;place-items:center;border-radius:50%;background:#ffe8e8;color:#b83232;font-size:28px;font-weight:900}.access-denied-dialog h1{margin:0;color:#0d2843;font-size:24px}.access-denied-dialog p{margin:0 0 8px;color:#5c6c79;line-height:1.55}.access-denied-dialog>div:last-child{display:flex;gap:10px}
@media(max-width:1100px){.phase-accordion>summary{grid-template-columns:22px minmax(170px,1fr) 120px 80px minmax(120px,.8fr);}.phase-summary-actions{grid-column:2/-1}.phase-progress{grid-column:5}.phase-resource-codes{display:none}}
@media(max-width:760px){.resource-selection-list,.phase-dialog-grid,.notification-rule-grid,.admin-system-grid{grid-template-columns:1fr}.phase-dialog-grid .wide,.notification-rule-grid .wide{grid-column:auto}.phase-accordion-list{padding:14px}.phase-accordion>summary{grid-template-columns:20px 1fr 80px}.phase-dates,.phase-resource-codes{display:none}.phase-progress{grid-column:2}.phase-summary-actions{grid-column:2/-1;justify-content:flex-start}.feature-target-select,.profile-panel{align-items:stretch;grid-template-columns:1fr;flex-direction:column}.feature-row{grid-template-columns:1fr}.profile-panel{display:grid}.profile-actions{flex-direction:column}.notification-preference-row{grid-template-columns:1fr 28px 100px}.access-denied-dialog>div:last-child{flex-direction:column;width:100%}}

/* BIMapp v25 · login, cataloghi eliminabili, sedi commessa e rapportini */
.password-field{position:static;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;width:100%}
.password-field input{min-width:0;padding-right:14px}
.password-field .toggle-password{position:static;min-width:82px;min-height:42px;padding:8px 11px;border:1px solid #c8d2db;border-radius:8px;background:#f5f8fa;color:var(--navy);font-size:11px;font-weight:900;text-transform:uppercase;transform:none}
.password-field .toggle-password:hover{border-color:var(--orange);color:var(--orange)}
.auth-help a{color:var(--orange);font-weight:900;text-decoration:none}.auth-help a:hover{text-decoration:underline}
.data-table th[data-sort-key]{position:relative;padding-right:27px;cursor:pointer;user-select:none}.data-table th[data-sort-key]::after{position:absolute;right:10px;content:"↕";color:#8795a1;font-size:12px}.data-table th[data-sort-key][aria-sort="ascending"]::after{content:"↑";color:var(--orange)}.data-table th[data-sort-key][aria-sort="descending"]::after{content:"↓";color:var(--orange)}
.admin-row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px}.admin-row-actions form{margin:0}.danger-link{border:0;background:transparent;color:#b83232;font-size:10px;font-weight:900;cursor:pointer}.danger-link:hover{text-decoration:underline}
.project-location-list{display:grid;gap:12px;padding:20px 22px}.project-location-list>article,.project-location-row{display:grid;grid-template-columns:42px minmax(220px,1fr) auto;align-items:center;gap:16px;padding:15px;border:1px solid var(--line);border-radius:11px;background:#fff}.project-location-list>article>i{display:grid;width:38px;height:38px;place-items:center;border-radius:9px;background:#fff0e9;color:var(--orange);font-style:normal}.project-location-list>article>div{display:grid;gap:5px}.project-location-list>article p{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0}.project-location-list>article em{padding:4px 6px;border-radius:99px;background:#e6f8f1;color:#087b59;font-size:8px;font-style:normal;font-weight:900}.project-location-list>article small{color:var(--muted);font-size:10px}.project-location-list>article strong{font-size:12px}.project-location-row>span{display:grid;gap:4px}.project-location-row small{color:var(--muted);font-size:10px}.project-location-row strong{font-size:12px}.project-location-form{margin-top:16px;overflow:hidden}.project-location-form[hidden]{display:none}.project-location-form .address-editor{padding:20px 22px}.project-location-rate{display:grid;grid-template-columns:minmax(260px,1fr) minmax(220px,.7fr);align-items:start;gap:18px;padding:0 22px 22px}.project-location-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:18px 22px;border-top:1px solid var(--line)}
.timesheet-entry-form{display:grid;gap:18px}.form-section{overflow:hidden}.form-section-heading{display:flex;align-items:center;gap:14px;padding:18px 22px;border-bottom:1px solid var(--line);background:#f7f9fb}.form-section-heading>span{display:grid;width:38px;height:38px;flex:0 0 auto;place-items:center;border-radius:10px;background:var(--navy);color:#fff;font-size:12px;font-weight:900}.form-section-heading h2,.form-section-heading p{margin:0}.form-section-heading h2{font-size:16px}.form-section-heading p{margin-top:4px;color:var(--muted);font-size:11px}.timesheet-entry-form>.panel>.form-grid{padding:22px}.timesheet-reference-grid{grid-template-columns:180px 1.3fr 1fr}.timesheet-activity-grid{grid-template-columns:minmax(260px,1.25fr) 180px 180px}.timesheet-expense-grid{grid-template-columns:minmax(240px,1fr) 170px 1fr;padding:22px}.binary-option{display:grid!important;grid-template-columns:22px minmax(0,1fr);align-items:start;gap:12px!important;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#fafcfd;cursor:pointer}.binary-option:has(input:checked){border-color:var(--orange);background:#fff7f3}.binary-option>input{width:20px;min-height:20px;height:20px;margin:1px 0;accent-color:var(--orange)}.binary-option>span{display:grid;gap:4px}.binary-option b{font-size:12px}.binary-option small{font-size:10px}
.collaborator-selector{display:grid;gap:10px}.collaborator-selector>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.collaborator-selector>div>label{display:grid!important;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:9px!important;padding:11px;border:1px solid var(--line);border-radius:9px;background:#fafcfd;cursor:pointer}.collaborator-selector>div>label:has(input:checked){border-color:var(--orange);background:#fff7f3}.collaborator-selector input{width:18px;min-height:18px;height:18px;accent-color:var(--orange)}.collaborator-selector label span{display:grid;gap:3px;font-size:11px}.collaborator-selector label b{width:fit-content;padding:3px 5px;border-radius:5px;background:var(--navy);color:#fff;font-size:9px}
.segmented-control{display:flex;flex-wrap:wrap;gap:8px;padding:20px 22px}.segmented-control label{display:block;cursor:pointer}.segmented-control input{position:absolute;width:1px;height:1px;opacity:0}.segmented-control span{display:grid;min-height:43px;place-items:center;padding:10px 16px;border:1px solid #cbd5dd;border-radius:9px;background:#fff;color:var(--navy);font-size:11px;font-weight:900}.segmented-control input:checked+span{border-color:var(--orange);background:var(--orange);color:#fff;box-shadow:0 7px 16px rgba(213,64,0,.18)}.segmented-control.three span{min-width:160px}.offsite-fields{display:grid;gap:2px;padding-bottom:22px}.offsite-fields>[data-destination-panel]{margin:0 22px}.timesheet-other-address{margin:0 22px!important}.timesheet-other-address .address-editor{padding:0}.trip-control{padding-bottom:8px}.distance-result{display:grid;grid-template-columns:1fr auto;gap:4px 20px;align-items:center;margin:4px 22px 0;padding:17px 18px;border:1px solid #badbcd;border-radius:11px;background:#effaf6}.distance-result>span{color:#087b59;font-size:10px;font-weight:900}.distance-result>strong{grid-row:1/3;grid-column:2;color:#087b59;font-size:20px}.distance-result>small{color:#477064;font-size:10px}
.money-input{display:grid;grid-template-columns:42px minmax(0,1fr)}.money-input>b{display:grid;place-items:center;border:1px solid #cbd5dd;border-right:0;border-radius:10px 0 0 10px;background:#f3f6f8;color:var(--navy)}.money-input input{border-radius:0 10px 10px 0}.protected-upload{display:grid!important;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px!important;padding:13px 15px;border:1px dashed #aebdca;border-radius:10px;background:#fafcfd}.protected-upload>b{display:grid;width:40px;height:40px;place-items:center;border-radius:9px;background:#fff0e9;color:var(--orange);font-size:11px}.protected-upload>span{display:grid;gap:3px}.protected-upload input{min-height:0;padding:0;border:0;background:transparent}.sticky-form-actions{position:sticky;z-index:8;bottom:10px;padding:15px 18px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.96);box-shadow:0 14px 35px rgba(13,40,67,.13);backdrop-filter:blur(12px)}
.timesheet-summary-panel{margin-top:24px;overflow:hidden}.timesheet-summary-panel td{vertical-align:top}.timesheet-summary-panel td>small,.timesheet-summary-panel td>.document-link{display:block;margin-top:5px}.document-link{color:var(--orange);font-size:9px;font-weight:900;text-decoration:none}.document-link:hover{text-decoration:underline}.future-send-toggle{display:inline-grid!important;grid-template-columns:18px auto;align-items:center;gap:5px!important;color:var(--muted);font-size:9px!important}.future-send-toggle input{width:16px;min-height:16px;height:16px;margin:0;accent-color:var(--orange)}.timesheet-filter-panel{margin-bottom:20px;padding:20px 22px}.timesheet-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:13px}.timesheet-filter-grid label:nth-last-child(-n+2){grid-column:auto}.resource-filter-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:16px}.operator-note{margin:0;padding:14px 20px;border-top:1px solid var(--line);background:#fafcfd;color:var(--muted);font-size:10px}
.timesheet-entry-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.timesheet-entry-actions .row-action{margin-left:0}.timesheet-entry-actions form{margin:0}.timesheet-entry-actions .danger-link{padding:0}
.inline-add-button{display:grid;width:48px;min-width:48px;height:48px;place-items:center;padding:0;border:1px solid var(--orange);border-radius:10px;background:#fff7f3;color:var(--orange);font-size:22px;font-weight:700;cursor:pointer}.inline-add-button:hover{background:var(--orange);color:#fff}
@media(max-width:1100px){.timesheet-reference-grid,.timesheet-activity-grid,.timesheet-expense-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.collaborator-selector>div{grid-template-columns:repeat(2,minmax(0,1fr))}.timesheet-filter-grid{grid-template-columns:repeat(3,minmax(130px,1fr))}.project-location-row{grid-template-columns:1fr 1.5fr auto}.project-location-row>span:nth-child(3){grid-column:1/3}}
@media(max-width:760px){.password-field{grid-template-columns:1fr}.password-field .toggle-password{width:100%}.timesheet-reference-grid,.timesheet-activity-grid,.timesheet-expense-grid,.timesheet-filter-grid,.project-location-rate{grid-template-columns:1fr}.collaborator-selector>div{grid-template-columns:1fr}.segmented-control,.segmented-control.three{display:grid;grid-template-columns:1fr;padding:16px}.segmented-control.three span{min-width:0}.offsite-fields>[data-destination-panel],.timesheet-other-address,.distance-result{margin-right:16px!important;margin-left:16px!important}.distance-result{grid-template-columns:1fr}.distance-result>strong{grid-row:auto;grid-column:auto}.protected-upload{grid-template-columns:42px 1fr}.protected-upload input{grid-column:1/-1}.project-location-list>article,.project-location-row{grid-template-columns:1fr}.project-location-list>article>.admin-row-actions{justify-content:flex-start}.project-location-row>span:nth-child(3){grid-column:auto}.project-location-actions,.resource-filter-actions{flex-direction:column}.project-location-actions .button,.resource-filter-actions .button{width:100%}}

/* v25.5 · sede aziendale, toggle coerenti, azioni compatte e spese multiple */
.admin-catalog-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.company-address-panel{overflow:hidden}.company-address-panel>.panel-heading{padding:20px 22px}.company-address-panel>.panel-heading p:last-child{margin:4px 0 0;color:var(--muted);font-size:11px}.company-address-form>.address-grid{padding:22px}.company-address-note{margin:0 22px 20px;padding:14px 16px;border:1px solid #badbcd;border-left:4px solid var(--green);border-radius:10px;background:#effaf6}.company-address-note strong{color:#087b59;font-size:10px}.company-address-note p{margin:4px 0 0;color:#477064;font-size:10px;line-height:1.5}.company-address-form>.form-actions{padding:0 22px 22px}.address-ready-badge{padding:7px 10px;border-radius:99px;background:#e7f8f1;color:#087b59;font-size:9px}
.admin-catalog-head,.admin-catalog-row{grid-template-columns:150px minmax(240px,1.5fr) minmax(180px,1fr) 95px 104px}
.admin-row-actions{display:flex!important;flex-wrap:nowrap!important;justify-content:flex-end;gap:6px!important}.admin-row-actions form{display:block;margin:0}.icon-action{display:grid!important;width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;place-items:center;padding:0!important;border:1px solid var(--line)!important;border-radius:8px!important;background:#fff!important;font-size:18px!important;line-height:1!important;cursor:pointer}.icon-action.edit{border-color:#9db8cc!important;color:var(--navy)!important}.icon-action.delete{border-color:#e3aaaa!important;color:#b83232!important}.icon-action:hover{transform:translateY(-1px);box-shadow:0 5px 12px rgba(13,40,67,.11);text-decoration:none!important}.icon-action.edit:hover{border-color:var(--navy)!important;background:#edf3f8!important}.icon-action.delete:hover{border-color:#b83232!important;background:#fff0f0!important}
.table-case-setting{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,360px);align-items:center;gap:28px}.table-uppercase-toggle{width:100%;grid-template-columns:50px minmax(0,1fr)}.table-uppercase-toggle .toggle-copy{min-width:0}.table-uppercase-toggle .toggle-copy small{max-width:260px;line-height:1.45}
.feature-row{grid-template-columns:minmax(0,1fr) 220px}.feature-state-select{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;overflow:hidden;opacity:0;pointer-events:none}.feature-state-toggle{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:10px;width:100%;padding:0;border:0;background:transparent;cursor:pointer}.feature-state-toggle>i{position:relative;display:block;width:58px;height:27px;border-radius:99px;background:#cf3f3f;box-shadow:inset 0 0 0 1px #b83232}.feature-state-toggle>i span{position:absolute;top:4px;left:4px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(13,40,67,.28);transition:transform .18s}.feature-state-toggle strong{color:#a52d2d;font-size:9px;text-align:left}.feature-state-toggle[data-state="ALLOW"]>i{background:#16a477;box-shadow:inset 0 0 0 1px #087b59}.feature-state-toggle[data-state="ALLOW"]>i span{transform:translateX(31px)}.feature-state-toggle[data-state="ALLOW"] strong{color:#087b59}.feature-state-toggle[data-state="INHERIT"]>i{background:#e39a24;box-shadow:inset 0 0 0 1px #b77918}.feature-state-toggle[data-state="INHERIT"]>i span{transform:translateX(15px)}.feature-state-toggle[data-state="INHERIT"] strong{color:#906300}
.binary-option{position:relative;grid-template-columns:50px minmax(0,1fr)!important;align-items:center!important}.binary-option .toggle-control{border-color:#72808d;background:#8795a1}.binary-option .toggle-input:checked+.toggle-control{border-color:#087b59;background:#16a477;box-shadow:inset 0 1px 2px rgba(5,83,58,.22)}.binary-option:has(.toggle-input:checked){border-color:#9bd0bf;background:#f0faf6}.binary-option .toggle-copy{display:grid;gap:4px}
.collaborator-selector>div>label.collaborator-toggle{grid-template-columns:48px minmax(0,1fr)!important}.collaborator-toggle .toggle-control{width:46px;height:25px;border-color:#72808d;background:#8795a1}.collaborator-toggle .toggle-control::after{width:17px;height:17px}.collaborator-toggle .toggle-input:checked+.toggle-control{border-color:#087b59;background:#16a477}.collaborator-toggle .toggle-input:checked+.toggle-control::after{transform:translateX(19px)}
.offsite-fields[hidden],[data-expense-fields][hidden],[data-collaborator-field][hidden],[data-client-description-field][hidden]{display:none!important}.distance-result{margin-bottom:22px}
.timesheet-expenses-editor{padding:0 22px 22px}.expense-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 0}.expense-editor-heading>div{display:grid;gap:4px}.expense-editor-heading strong{color:var(--navy);font-size:11px}.expense-editor-heading small{color:var(--muted);font-size:10px}.expense-entry-head,.expense-entry-row{display:grid;grid-template-columns:minmax(190px,1.1fr) 150px minmax(180px,1fr) minmax(190px,.9fr) 44px;gap:10px;align-items:center;min-width:900px}.expense-entry-head{padding:10px 12px;border:1px solid var(--line);border-radius:9px 9px 0 0;background:#eef3f6;color:var(--muted);font-size:9px;font-weight:900}.expense-entry-list{overflow-x:auto;border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-left:1px solid var(--line);border-radius:0 0 9px 9px}.expense-entry-row{padding:12px;background:#fff;border-bottom:1px solid var(--line)}.expense-entry-row:last-child{border-bottom:0}.expense-entry-row>label{display:grid;gap:5px!important;font-size:9px!important;font-weight:900}.expense-entry-row>label>span:first-child{display:none}.expense-entry-row input:not([type="file"]),.expense-entry-row select{width:100%;min-height:43px!important;padding:8px 10px;border:1px solid #cbd5dd;border-radius:8px;background:#fff;font-size:14px!important}.expense-entry-row .money-input input{border-radius:0 8px 8px 0}.expense-document-field input{width:100%;font-size:10px}.expense-document-field small{overflow:hidden;color:#087b59;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.expense-editor-total{display:flex;justify-content:flex-end;align-items:center;gap:18px;padding:14px 12px;border-bottom:1px solid var(--line)}.expense-editor-total span{color:var(--muted);font-size:9px;font-weight:900}.expense-editor-total strong{color:#087b59;font-size:18px}.inline-category-link{margin-top:12px;padding:0;border:0;background:transparent;color:var(--orange);font-size:9px;font-weight:900;cursor:pointer}
.future-send-toggle{grid-template-columns:46px auto!important}.future-send-toggle .toggle-control{width:44px;height:23px}.future-send-toggle .toggle-control::after{width:15px;height:15px}.future-send-toggle .toggle-input:checked+.toggle-control::after{transform:translateX(19px)}
@media(max-width:760px){.table-case-setting{grid-template-columns:1fr}.feature-row{grid-template-columns:1fr}.expense-editor-heading{align-items:stretch;flex-direction:column}.expense-editor-heading .button{width:100%}.timesheet-expenses-editor{padding:0 16px 16px}.company-address-form>.address-grid{padding:18px 16px}.company-address-note{margin:0 16px 18px}.company-address-form>.form-actions{padding:0 16px 18px}}

/* v25.17 · identità aziendale condivisa e uploader coerente nei due pannelli */
.organization-sidebar-brand{display:flex;height:68px;align-items:center;justify-content:flex-start;margin-bottom:32px}
.organization-sidebar-brand .brand-logo{width:auto;max-width:174px;max-height:68px;object-fit:contain;object-position:left center}
.organization-branding-panel{overflow:hidden}
.organization-branding-panel>.panel-heading{padding:21px 23px}
.organization-branding-panel>.panel-heading p:last-child{max-width:720px;margin:5px 0 0;color:var(--muted);font-size:11px}
.branding-status{padding:7px 10px;border-radius:99px;font-size:9px;white-space:nowrap}
.branding-status.active{background:#e7f8f1;color:#087b59}
.branding-status.default{background:#eef3f6;color:var(--navy-soft)}
.organization-branding-body{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(420px,1.28fr);gap:0;border-top:1px solid var(--line)}
.organization-logo-preview{display:grid;align-content:start;gap:12px;padding:26px;border-right:1px solid var(--line);background:#f7f9fb}
.organization-logo-preview>span{color:var(--muted);font-size:9px;font-weight:900}
.organization-logo-preview>div{display:grid;min-height:178px;place-items:center;padding:28px;border-radius:13px;background:var(--navy-deep);box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}
.organization-logo-preview img{display:block;width:auto;max-width:100%;height:auto;max-height:118px;object-fit:contain}
.organization-logo-preview small{color:var(--muted);font-size:10px;line-height:1.5}
.organization-logo-form{display:grid;align-content:start;gap:20px;padding:27px}
.organization-logo-form>div:first-child h3{margin:4px 0 7px;font-size:17px}
.organization-logo-form>div:first-child p:last-child{max-width:700px;margin:0;color:var(--muted);font-size:11px;line-height:1.55}
.organization-logo-upload{display:grid!important;grid-template-columns:52px minmax(210px,1fr) minmax(230px,260px);align-items:center;gap:14px!important;padding:16px 17px;border:1px dashed #9eb1c0;border-radius:11px;background:#fafcfd;cursor:pointer}
.organization-logo-upload:hover{border-color:var(--orange);background:#fff8f4}
.organization-logo-upload>b{display:grid;width:48px;height:48px;place-items:center;border-radius:10px;background:#fff0e9;color:var(--orange);font-size:11px}
.organization-logo-upload>span{display:grid;min-width:0;gap:4px}
.organization-logo-upload strong{font-size:11px}
.organization-logo-upload small{overflow:hidden;max-width:480px;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.organization-logo-upload input{width:min(100%,260px);min-height:42px;padding:0;border:1px solid #cbd5dd;border-radius:8px;background:#fff;color:var(--muted);font-size:10px}
.organization-logo-upload input::file-selector-button,
input[type="file"][name="logo_svg"]::file-selector-button{height:40px;margin-right:9px;padding:0 13px;border:0;border-right:1px solid #cbd5dd;background:#eef3f6;color:var(--navy);font:inherit;font-weight:900;cursor:pointer}
.organization-logo-upload input::file-selector-button:hover,
input[type="file"][name="logo_svg"]::file-selector-button:hover{background:#e3eaf0;color:var(--orange)}
.organization-logo-requirements{display:flex;flex-wrap:wrap;gap:7px}
.organization-logo-requirements span{padding:6px 8px;border-radius:6px;background:#effaf6;color:#087b59;font-size:8px;font-weight:900}
.organization-branding-actions{display:flex;justify-content:flex-end;gap:10px;padding:18px 0 0;border-top:1px solid var(--line)}
.button.danger-outline{border:1px solid #db9b9b;background:#fff;color:#a52d2d}
.button.danger-outline:hover{border-color:#a52d2d;background:#fff3f3}
.organization-branding-note{display:grid;grid-template-columns:auto 1fr;gap:13px;align-items:start;margin-top:18px;padding:15px 17px;border:1px solid #badbcd;border-left:4px solid var(--green);border-radius:10px;background:#effaf6}
.organization-branding-note strong{color:#087b59;font-size:10px}
.organization-branding-note p{margin:0;color:#477064;font-size:10px;line-height:1.5}

/* Il campo dell'editor HUB viene trasformato via JS senza duplicare l'archivio. */
input[type="file"][name="logo_svg"]{display:block;width:100%;min-height:46px;padding:2px 10px 2px 2px;border:1px solid #cbd5dd!important;border-radius:8px!important;background:#fff!important;color:var(--muted);font-size:11px}
.hub-organization-logo-manager{display:grid;grid-column:1/-1;gap:0;overflow:hidden;margin-top:3px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 7px 22px rgba(13,40,67,.045);text-transform:none}
.hub-organization-logo-manager>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 19px;border-bottom:1px solid var(--line)}
.hub-organization-logo-manager>header div{display:grid;gap:3px}
.hub-organization-logo-manager>header strong{color:var(--navy);font-size:13px;letter-spacing:.03em;text-transform:uppercase}
.hub-organization-logo-manager>header small{color:var(--muted);font-size:10px;font-weight:400;line-height:1.45;text-transform:none}
.hub-organization-logo-manager>header em{padding:6px 9px;border-radius:99px;background:#e8f8f2;color:#087b59;font-size:8px;font-style:normal;font-weight:900;white-space:nowrap}
.hub-organization-logo-body{display:grid;grid-template-columns:minmax(230px,.72fr) minmax(420px,1.28fr)}
.hub-organization-logo-preview{display:grid;align-content:start;gap:8px;padding:18px;border-right:1px solid var(--line);background:#f7f9fb}
.hub-organization-logo-preview>span{color:var(--muted);font-size:9px;font-weight:900;text-transform:uppercase}
.hub-organization-logo-preview>div{display:grid;min-height:128px;place-items:center;padding:20px;border-radius:10px;background:var(--navy-deep)}
.hub-organization-logo-preview img{display:block;width:auto;max-width:100%;height:auto;max-height:88px;object-fit:contain}
.hub-organization-logo-controls{display:grid;align-content:start;gap:14px;padding:18px}
.hub-organization-logo-controls>p{margin:0;color:var(--muted);font-size:10px;font-weight:400;line-height:1.5;text-transform:none}
.hub-organization-logo-upload{display:grid!important;grid-template-columns:48px minmax(210px,1fr) minmax(230px,260px);align-items:center;gap:13px!important;padding:14px;border:1px dashed #9eb1c0;border-radius:10px;background:#fafcfd;cursor:pointer;text-transform:none}
.hub-organization-logo-upload>b{display:grid;width:46px;height:46px;place-items:center;border-radius:9px;background:#fff0e9;color:var(--orange);font-size:10px}
.hub-organization-logo-upload>span{display:grid;min-width:0;gap:3px}
.hub-organization-logo-upload strong{font-size:11px;white-space:nowrap}
.hub-organization-logo-upload small{overflow:hidden;color:var(--muted);font-size:10px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}
.hub-organization-logo-controls>footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:2px}
.hub-organization-logo-controls>footer small{color:#087b59;font-size:9px;font-weight:700;line-height:1.45;text-transform:none}
.hub-organization-logo-controls>footer button{min-height:42px;padding:9px 16px;font-size:11px;white-space:nowrap}

/* Ripristino dei contenitori HUB rimossi dai fogli stile sovrascritti. */
.hub-login-shell,.hub-auth-shell,.hub-login-layout{display:grid;min-height:100vh;grid-template-columns:minmax(430px,44%) minmax(520px,1fr);background:#f3f6f8}
.hub-login-brand,.hub-auth-brand,.hub-brand-panel{position:relative;overflow:hidden;display:flex;min-height:100vh;flex-direction:column;justify-content:space-between;padding:clamp(38px,5vw,72px);background:linear-gradient(145deg,var(--navy-deep),var(--navy) 60%,#173e61);color:#fff}
.hub-login-form-wrap,.hub-auth-form-wrap,.hub-login-main{display:grid;min-width:0;place-items:center;padding:clamp(28px,5vw,72px)}
.hub-login-card,.hub-auth-card{width:min(100%,440px);padding:clamp(28px,3vw,42px);border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:0 20px 50px rgba(13,40,67,.12)}
.hub-login-card input,.hub-auth-card input{width:100%;box-sizing:border-box}
.hub-page .module-content,.hub-app .module-content,.hub-main .module-content{width:min(100%,1500px);margin-inline:auto;padding:clamp(24px,3vw,48px)}
.hub-page .panel,.hub-app .panel,.hub-main .panel{overflow:hidden}
@media(max-width:900px){
  .organization-branding-body{grid-template-columns:1fr}
  .organization-logo-preview{border-right:0;border-bottom:1px solid var(--line)}
  .hub-organization-logo-body{grid-template-columns:1fr}
  .hub-organization-logo-preview{border-right:0;border-bottom:1px solid var(--line)}
  .hub-login-shell,.hub-auth-shell,.hub-login-layout{grid-template-columns:1fr}
  .hub-login-brand,.hub-auth-brand,.hub-brand-panel{min-height:280px}
}
@media(max-width:640px){
  .organization-branding-panel>.panel-heading{align-items:flex-start;flex-direction:column;gap:12px}
  .organization-logo-preview,.organization-logo-form{padding:18px}
  .organization-logo-upload{grid-template-columns:46px 1fr}
  .organization-logo-upload>b{width:42px;height:42px}
  .organization-logo-upload input{grid-column:1/-1;width:100%}
  .hub-organization-logo-manager>header,.hub-organization-logo-controls>footer{align-items:flex-start;flex-direction:column}
  .hub-organization-logo-upload{grid-template-columns:46px 1fr}
  .hub-organization-logo-upload input{grid-column:1/-1;width:100%}
  .organization-branding-actions{align-items:stretch;flex-direction:column}
  .organization-branding-actions .button{width:100%}
  .organization-branding-note{grid-template-columns:1fr}
}

/* v25.6 · rifiniture finali del rapportino */
.timesheet-reference-grid{align-items:start;grid-template-rows:auto auto}
.timesheet-reference-grid>label{align-content:start}
.timesheet-date-note{grid-column:1;grid-row:2;margin-top:-10px;color:var(--muted);font-size:11px;font-weight:400;line-height:1.45;text-transform:none}
.timesheet-activity-grid textarea{display:block;width:100%;min-height:104px;padding:12px 14px;border:1px solid #cbd5dd;border-radius:10px;outline:none;background:#fff;color:var(--ink);line-height:1.45;resize:vertical;transition:border-color .18s,box-shadow .18s}
.timesheet-activity-grid textarea:focus{border-color:var(--navy-soft);box-shadow:0 0 0 4px rgba(53,83,114,.12)}
[data-destination-panel][hidden]{display:none!important}
.expense-entry-table{overflow-x:auto;border:1px solid var(--line);border-radius:9px;background:#fff}
.expense-entry-head,.expense-entry-row{grid-template-columns:minmax(230px,1.15fr) 150px minmax(220px,1fr) minmax(300px,1.25fr) 48px;min-width:1080px}
.expense-entry-head{border:0;border-bottom:1px solid var(--line);border-radius:0}
.expense-entry-list{overflow:visible;border:0;border-radius:0}
.expense-entry-row{align-items:start}
.expense-entry-row>.icon-action{align-self:start;margin:0}
.expense-document-field input[type="file"]{display:block;width:100%;min-height:43px;padding:0 10px 0 0;border:1px solid #cbd5dd;border-radius:8px;background:#fff;color:var(--ink);font-size:10px;line-height:41px}
.expense-document-field input[type="file"]::file-selector-button{height:41px;margin:0 10px 0 0;padding:0 13px;border:0;border-right:1px solid #cbd5dd;background:#f3f6f8;color:var(--navy);font:inherit;font-weight:800;cursor:pointer}
.expense-document-field input[type="file"]::file-selector-button:hover{background:#e8eef2}
.expense-document-field small{display:block;min-height:14px;margin-top:1px;line-height:1.4}
@media(max-width:1100px){.timesheet-date-note{grid-column:1/-1;grid-row:auto;margin-top:-10px}.expense-entry-head,.expense-entry-row{min-width:1020px}}
@media(max-width:760px){.timesheet-reference-grid{grid-template-rows:auto}.timesheet-date-note{grid-column:auto;grid-row:auto;margin-top:-8px}.timesheet-activity-grid textarea{min-height:120px}}
/* v26 · comunicazioni e-mail SMTP, coda e tracciamento */
.notification-health-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:22px}
.notification-health-card,.notification-test-card{display:grid;align-content:start;gap:16px;padding:22px}
.notification-health-card{border-top:4px solid #8a9aa7}.notification-health-card.is-ready{border-top-color:#16a477}.notification-health-card.is-warning{border-top-color:#d49324}
.notification-health-heading{display:flex;align-items:center;gap:12px}.notification-health-heading>span{display:grid;width:42px;height:42px;place-items:center;border-radius:10px;background:#edf2f5;color:#0d2843;font-size:19px}.notification-health-card.is-ready .notification-health-heading>span{background:#e7f7f1;color:#087b59}.notification-health-card.is-warning .notification-health-heading>span{background:#fff5df;color:#9b650e}
.notification-health-heading h2,.notification-test-card h2{margin:2px 0 0;color:#0d2843;font-size:19px}.notification-health-heading>em{margin-left:auto;padding:6px 9px;border-radius:99px;background:#edf2f5;color:#526777;font-size:10px;font-style:normal;font-weight:900}.notification-health-card.is-ready .notification-health-heading>em{background:#dff5ed;color:#087b59}.notification-health-card.is-warning .notification-health-heading>em{background:#fff1cf;color:#8c5a09}
.notification-health-card dl{display:grid;gap:8px;margin:0}.notification-health-card dl>div{display:flex;justify-content:space-between;gap:12px;padding-bottom:7px;border-bottom:1px solid #e5eaee}.notification-health-card dt{color:#71818f;font-size:9px;font-weight:900}.notification-health-card dd{margin:0;color:#243b4f;font-size:11px;font-weight:800;text-align:right;overflow-wrap:anywhere}.notification-health-card>p,.notification-test-card p{margin:0;color:#6f7e8b;font-size:11px;line-height:1.5}
.notification-delivery-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.notification-delivery-kpis span{display:grid;gap:4px;padding:10px 6px;border-radius:8px;background:#f2f5f7;color:#6c7b87;font-size:8px;font-weight:900;text-align:center}.notification-delivery-kpis b{color:#0d2843;font-size:20px}
.notification-test-card{border-top:4px solid #e8702a}.notification-test-card>div{display:grid;gap:3px}.notification-test-card label{display:grid;gap:6px;color:#384d5e;font-size:10px;font-weight:900}.notification-test-card input{min-height:46px;padding:9px 11px;border:1px solid #cbd5dd;border-radius:8px;font-size:16px}.notification-test-card button{justify-self:start}.notification-test-card button:disabled{cursor:not-allowed;opacity:.45}
.notification-rules-panel,.notification-log-panel{margin-bottom:22px;overflow:hidden}.notification-rules-panel>.panel-heading,.notification-log-panel>.panel-heading{padding:20px 22px}.notification-rules-panel>.panel-heading h2,.notification-log-panel>.panel-heading h2{margin:3px 0;color:#0d2843}.notification-rules-panel>.panel-heading p:last-child,.notification-log-panel>.panel-heading p:last-child{margin:4px 0 0;color:#6f7e8b;font-size:11px}
.notification-status{display:inline-flex;width:max-content;padding:6px 8px;border-radius:99px;font-size:9px;font-style:normal;font-weight:900}.notification-status.status-pending{background:#fff1cf;color:#8c5a09}.notification-status.status-sent{background:#dff5ed;color:#087b59}.notification-status.status-failed{background:#ffe4e4;color:#a52d2d}.notification-status.status-cancelled{background:#edf1f4;color:#637584}
.notification-log-table td{vertical-align:top}.notification-log-table td strong,.notification-log-table td small{display:block}.notification-log-table td small{margin-top:4px;color:#71818f;line-height:1.45}.notification-log-actions{display:flex;align-items:flex-start;flex-wrap:wrap;gap:8px}.notification-log-actions>small{flex:1 1 220px;margin:0!important}.notification-log-actions form{margin:0}.notification-log-actions button{border:0;background:transparent;font-family:inherit;cursor:pointer}
@media(max-width:1100px){.notification-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.notification-test-card{grid-column:1/-1}}
@media(max-width:720px){.notification-health-grid{grid-template-columns:1fr}.notification-test-card{grid-column:auto}.notification-delivery-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.timesheet-workflow-panel {
  margin: 22px 0;
  overflow: hidden;
  border-left: 5px solid var(--accent, #f28c28);
}
.timesheet-workflow-panel > form {
  display: flex;
  justify-content: flex-end;
  padding: 22px;
}
.timesheet-review-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  padding: 22px;
  background: #f7f9fb;
}
.timesheet-review-card {
  display: grid;
  align-content: start;
  gap: 16px;
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: #fff;
}
.timesheet-review-card.approve-card {
  border-top: 4px solid #16a477;
}
.timesheet-review-card.correction-card {
  border-top: 4px solid var(--orange);
}
.timesheet-review-card-heading {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 13px;
  align-items: start;
}
.timesheet-review-card-heading > span {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 10px;
  background: #e7f8f1;
  color: #087b59;
  font-size: 20px;
  font-weight: 900;
}
.correction-card .timesheet-review-card-heading > span {
  background: #fff0e9;
  color: var(--orange);
}
.timesheet-review-card-heading h3,
.timesheet-review-card-heading p {
  margin: 0;
}
.timesheet-review-card-heading h3 {
  color: var(--navy);
  font-size: 14px;
}
.timesheet-review-card-heading p {
  margin-top: 4px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}
.timesheet-review-card label {
  display: grid;
  gap: 7px;
  font-size: 12px;
  letter-spacing: .04em;
}
.timesheet-review-card textarea {
  display: block;
  width: 100%;
  min-height: 112px;
  padding: 12px 14px;
  border: 1px solid #cbd5dd;
  border-radius: 10px;
  outline: none;
  background: #fff;
  color: var(--ink);
  line-height: 1.45;
  resize: vertical;
}
.timesheet-review-card textarea:focus {
  border-color: var(--navy-soft);
  box-shadow: 0 0 0 4px rgba(53,83,114,.12);
}
.timesheet-review-card label small {
  color: var(--muted);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: normal;
  line-height: 1.45;
  text-transform: none;
}
.timesheet-review-card .button {
  width: 100%;
  margin-top: auto;
}
.button.approve {
  background: #087b59;
  color: #fff;
  box-shadow: 0 8px 20px rgba(8,123,89,.2);
}
.button.approve:hover {
  background: #066c4e;
  transform: translateY(-1px);
}
.button.correction {
  border: 1px solid var(--orange);
  background: #fff;
  color: var(--orange);
  box-shadow: none;
}
.button.correction:hover {
  background: #fff4ee;
  transform: translateY(-1px);
}
.timesheet-status-chip.status-submitted {
  background: #fff2cc;
  color: #8a5b00;
}
.timesheet-status-chip.status-approved {
  background: #dff3e8;
  color: #146c43;
}
.timesheet-status-chip.status-rejected {
  background: #fde5e3;
  color: #a12622;
}
.timesheet-status-chip.status-draft {
  background: #e9eef3;
  color: #526274;
}
.operational-notification-panel {
  margin-top: 22px;
}
.operational-notification-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.notification-operational-card {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 14px;
  align-items: start;
  padding: 18px;
  border: 1px solid #dbe4ee;
  border-radius: 14px;
  background: #f8fafc;
}
.notification-operational-card > span {
  display: grid;
  gap: 6px;
}
.notification-operational-card > span small,
.notification-operational-card > b small {
  display: block;
  color: #627184;
  font-weight: 400;
  line-height: 1.45;
}
.notification-operational-card > input[type="checkbox"] {
  width: 22px;
  height: 22px;
  accent-color: #198754;
}
.notification-operational-card > em {
  color: #198754;
  font-style: normal;
  font-weight: 700;
  font-size: 12px;
}
.notification-operational-card > b {
  grid-column: 1 / -1;
  display: grid;
  gap: 7px;
  font-size: 12px;
}
.notification-operational-card > b input {
  width: 100%;
}
.notification-operational-card.mandatory {
  border-color: #b9d8c6;
  background: #f0faf4;
}
.notification-status.status-submitted {
  color: #8a5b00;
  background: #fff2cc;
}
.notification-status.status-approved {
  color: #146c43;
  background: #dff3e8;
}
.notification-status.status-rejected {
  color: #a12622;
  background: #fde5e3;
}
.notification-status.status-draft {
  color: #526274;
  background: #e9eef3;
}
@media (max-width: 980px) {
  .operational-notification-grid,
  .timesheet-review-actions {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 620px) {
  .timesheet-workflow-panel > form,
  .timesheet-review-actions {
    padding: 16px;
  }
  .timesheet-review-card {
    padding: 16px;
  }
}

/* v28 · Report e analisi */
.report-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}
.report-export-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}
.report-preset-bar {
  display: flex;
  align-items: flex-end;
  gap: 14px;
  margin-bottom: 18px;
  padding: 16px 18px;
}
.report-preset-select {
  flex: 1 1 320px;
}
.report-preset-bar label,
.report-filter-panel label,
.report-column-picker summary {
  display: grid;
  gap: 7px;
  color: var(--navy);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .05em;
}
.report-preset-bar select,
.report-preset-bar input,
.report-filter-panel select,
.report-filter-panel input {
  min-height: 42px;
  padding: 9px 11px;
  border: 1px solid #cbd5dd;
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  outline: none;
}
.report-preset-save {
  position: relative;
}
.report-preset-save > summary {
  min-height: 42px;
  padding: 11px 14px;
  border: 1px solid #b9c8d5;
  border-radius: 8px;
  color: var(--navy);
  font-size: 11px;
  font-weight: 800;
  list-style: none;
  cursor: pointer;
}
.report-preset-save > summary::-webkit-details-marker {
  display: none;
}
.report-preset-save[open] > form {
  position: absolute;
  z-index: 8;
  top: calc(100% + 9px);
  right: 0;
  display: grid;
  width: min(390px, 84vw);
  gap: 13px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(13,40,67,.18);
}
.report-default-toggle {
  display: flex !important;
  align-items: center;
  gap: 9px !important;
}
.report-default-toggle input {
  min-height: 18px;
  width: 18px;
  accent-color: var(--orange);
}
.report-filter-panel {
  display: grid;
  gap: 20px;
  margin-bottom: 20px;
  padding: 22px;
}
.report-filter-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(120px, 1fr));
  gap: 14px;
}
.report-multi-filter-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.report-multi-filter-grid label > small {
  color: var(--muted);
  font-size: 8px;
  letter-spacing: .03em;
}
.report-multi-filter-grid select[multiple] {
  min-height: 132px;
  padding: 5px;
}
.report-multi-filter-grid select[multiple] option {
  padding: 7px 8px;
  border-radius: 5px;
}
.report-multi-filter-grid fieldset {
  min-width: 0;
  margin: 0;
  padding: 13px 15px;
  border: 1px solid #cbd5dd;
  border-radius: 9px;
}
.report-multi-filter-grid legend {
  padding: 0 5px;
  color: var(--navy);
  font-size: 10px;
  font-weight: 800;
}
.report-check {
  display: flex !important;
  align-items: center;
  gap: 8px !important;
  min-height: 31px;
}
.report-check input {
  width: 17px;
  min-height: 17px;
  accent-color: var(--orange);
}
.report-check.financial span::after {
  content: "ECONOMICO";
  margin-left: 7px;
  padding: 2px 5px;
  border-radius: 4px;
  background: #e8f2fb;
  color: #255d87;
  font-size: 7px;
}
.report-column-picker {
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #f8fafc;
}
.report-column-picker > summary {
  padding: 13px 15px;
  cursor: pointer;
}
.report-column-picker > div {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px 16px;
  padding: 0 15px 15px;
}
.report-scope-badge {
  padding: 7px 10px;
  border: 1px solid #c8d7e4;
  border-radius: 999px;
  background: #edf4f9;
  color: #315b79;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .08em;
}
.report-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 20px;
}
.report-kpi-grid article {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 5px;
  min-height: 132px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(13,40,67,.05);
}
.report-kpi-grid article::after {
  content: "";
  position: absolute;
  right: -25px;
  bottom: -38px;
  width: 90px;
  height: 90px;
  border: 12px solid #edf2f6;
  border-radius: 50%;
}
.report-kpi-grid article > span {
  color: var(--muted);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .1em;
}
.report-kpi-grid article > strong {
  position: relative;
  z-index: 1;
  color: var(--navy);
  font-size: clamp(24px, 2.3vw, 36px);
  line-height: 1.15;
}
.report-kpi-grid article > strong i {
  font-size: 11px;
  font-style: normal;
}
.report-kpi-grid article > small {
  color: var(--muted);
  font-size: 10px;
}
.report-kpi-grid article.financial {
  border-top: 4px solid #2f688f;
  background: linear-gradient(180deg,#f7fbff,#fff);
}
.report-kpi-grid article.margin {
  border-top-color: #16835f;
  background: linear-gradient(180deg,#f3fbf7,#fff);
}
.report-dashboard-grid {
  display: grid;
  grid-template-columns: 1.5fr .8fr;
  gap: 18px;
  margin-bottom: 20px;
}
.report-chart-card {
  min-width: 0;
  padding: 20px;
}
.report-chart-card.report-top-projects {
  grid-column: 1 / -1;
}
.report-bar-chart {
  display: grid;
  gap: 11px;
  margin-top: 18px;
}
.report-bar-row {
  display: grid;
  grid-template-columns: minmax(100px, 180px) 1fr 78px;
  gap: 11px;
  align-items: center;
}
.report-bar-row > span {
  overflow: hidden;
  color: #4e6072;
  font-size: 10px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.report-bar-row > i {
  display: block;
  height: 12px;
  overflow: hidden;
  border-radius: 999px;
  background: #e8eef3;
}
.report-bar-row > i > b {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg,var(--navy),#3679a6);
}
.report-bar-row > strong {
  color: var(--navy);
  font-size: 10px;
  text-align: right;
}
.report-status-list {
  display: grid;
  gap: 5px;
  margin-top: 14px;
}
.report-status-list > div {
  display: grid;
  grid-template-columns: 12px 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid #edf1f4;
}
.report-status-list p {
  display: grid;
  margin: 0;
}
.report-status-list p strong,
.report-status-list > div > b {
  color: var(--navy);
  font-size: 10px;
}
.report-status-list p small {
  color: var(--muted);
  font-size: 9px;
}
.status-dot {
  display: block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #8b98a5;
}
.status-dot.status-approved { background: #16835f; }
.status-dot.status-submitted { background: #d79a19; }
.status-dot.status-rejected { background: #c73c36; }
.report-top-projects ol {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 22px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
  counter-reset: project-rank;
}
.report-top-projects li {
  counter-increment: project-rank;
  display: grid;
  grid-template-columns: 27px 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 11px 0;
  border-bottom: 1px solid #edf1f4;
}
.report-top-projects li::before {
  content: counter(project-rank, decimal-leading-zero);
  color: #9aa8b5;
  font-size: 9px;
  font-weight: 900;
}
.report-top-projects li > span {
  display: grid;
}
.report-top-projects li strong {
  color: var(--navy);
  font-size: 10px;
}
.report-top-projects li small {
  overflow: hidden;
  color: var(--muted);
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.report-top-projects li > b {
  color: var(--navy);
  font-size: 10px;
}
.report-detail-panel {
  padding: 20px;
}
.report-detail-table {
  min-width: max-content;
}
.report-detail-table th,
.report-detail-table td {
  max-width: 280px;
  white-space: nowrap;
}
.report-detail-table td {
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 1260px) {
  .report-filter-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .report-column-picker > div { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .report-kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .report-heading { align-items: flex-start; flex-direction: column; }
  .report-export-actions { justify-content: flex-start; }
  .report-preset-bar { align-items: stretch; flex-direction: column; }
  .report-preset-save[open] > form { left: 0; right: auto; }
  .report-multi-filter-grid,
  .report-dashboard-grid { grid-template-columns: 1fr; }
  .report-chart-card.report-top-projects { grid-column: auto; }
  .report-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .report-filter-grid,
  .report-column-picker > div,
  .report-kpi-grid,
  .report-top-projects ol { grid-template-columns: 1fr; }
  .report-bar-row { grid-template-columns: 92px 1fr 58px; }
  .report-filter-panel,
  .report-chart-card,
  .report-detail-panel { padding: 16px; }
}
