:root {
    --reone-viewport-height: 100dvh;
    --reone-viewport-top: 0px;
    --green: #149752;
    --green-dark: #0c713d;
    --green-soft: #eaf7f0;
    --red: #d4312a;
    --red-dark: #bd231e;
    --red-soft: #fff0ef;
    /* Alias storici mantenuti per compatibilità, ora nella palette RE.ONE. */
    --blue: #12864c;
    --blue-dark: #08683b;
    --blue-soft: #eaf7f0;
    --cyan: #19a15c;
    --orange: #f39a18;
    --purple: #7357c6;
    --navy: #172733;
    --navy-2: #203642;
    --ink: #1c2730;
    --muted: #667784;
    --line: #dde5ea;
    --line-strong: #ccd7de;
    --surface: #ffffff;
    --surface-2: #f6f8fa;
    --surface-3: #edf2f5;
    --shadow-sm: 0 4px 14px rgba(17, 42, 55, .07);
    --shadow-md: 0 16px 40px rgba(17, 42, 55, .12);
    --shadow-lg: 0 30px 80px rgba(10, 34, 49, .2);
    --radius-sm: 8px;
    --radius: 14px;
    --radius-lg: 22px;
    --shell: 1200px;
    --sidebar-width: 272px;
    --topbar-height: 72px;
    --transition: 180ms ease;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--surface); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 15px; line-height: 1.55; -webkit-font-smoothing: antialiased; }
body.modal-open { overflow: hidden; }
/* Screen lock only for public overlays, never for the normally scrolling site. */
html.reone-modal-locked { overflow: hidden !important; scroll-behavior: auto; }
body.reone-modal-locked { position: fixed; top: var(--reone-lock-y, 0px); left: 0; right: 0; width: 100%; }

a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .6; }
input, select, textarea { color: var(--ink); }
textarea { resize: vertical; }
svg.icon { width: 1.15em; height: 1.15em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
.shell { width: min(var(--shell), calc(100% - 40px)); margin-inline: auto; }
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 9999; padding: 10px 14px; color: #fff; background: var(--navy); border-radius: 8px; }
.skip-link:focus { top: 12px; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.eyebrow { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 8px; color: var(--green-dark); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.eyebrow.light { color: rgba(255,255,255,.72); }
.icon-button { display: inline-grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 1px solid transparent; border-radius: 10px; color: inherit; background: transparent; transition: var(--transition); }
.icon-button:hover { background: rgba(16, 53, 72, .07); }
.icon-button svg { width: 21px; height: 21px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 17px; border: 1px solid transparent; border-radius: 10px; font-weight: 750; line-height: 1.2; transition: transform var(--transition), box-shadow var(--transition), background var(--transition), border-color var(--transition); }
.button:hover { transform: translateY(-1px); }
.button:active { transform: translateY(0); }
.button-small { min-height: 38px; padding: 8px 13px; font-size: 13px; }
.button-large { min-height: 52px; padding-inline: 22px; }
.button-block { width: 100%; }
.button-primary { color: #fff; background: linear-gradient(135deg, var(--green), var(--green-dark)); box-shadow: 0 10px 22px rgba(20, 151, 82, .18); }
.button-primary:hover { box-shadow: 0 14px 28px rgba(20, 151, 82, .26); }
.button-secondary { color: var(--green-dark); background: var(--green-soft); border-color: #cce9d9; }
.button-secondary:hover { background: #dbf1e5; }
.button-danger { color: #fff; background: linear-gradient(135deg, var(--red), var(--red-dark)); }
.button-outline-red { color: var(--red); background: #fff; border-color: #f2b8b4; }
.button-outline-red:hover { background: var(--red-soft); }
.button-light { color: var(--navy); background: #fff; box-shadow: 0 14px 30px rgba(0,0,0,.13); }
.button-light:hover { background: #f5faf7; }
.button-ghost-light { color: #fff; border-color: rgba(255,255,255,.35); background: rgba(255,255,255,.06); }
.button-ghost-light:hover { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.55); }
.text-link { display: inline-flex; align-items: center; gap: 7px; font-weight: 700; }
.text-link.green { color: var(--green-dark); }
.back-link { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); font-weight: 700; }
.back-link:hover { color: var(--green-dark); }
.centered-link { justify-content: center; width: 100%; margin-top: 22px; }
.field { display: grid; gap: 7px; min-width: 0; }
.field > span { color: #4d606e; font-size: 12px; font-weight: 750; }
.field input, .field select, .field textarea, .toolbar-search input, .global-search input { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--line-strong); border-radius: 9px; outline: none; background: #fff; transition: border-color var(--transition), box-shadow var(--transition), background var(--transition); }
.field textarea { min-height: 110px; }
.field input:focus, .field select:focus, .field textarea:focus, .toolbar-search input:focus, .global-search input:focus { border-color: var(--green); box-shadow: 0 0 0 4px rgba(20, 151, 82, .11); }
.field input::placeholder, .field textarea::placeholder, .global-search input::placeholder { color: #9aa8b1; }
.form-grid { display: grid; gap: 16px; }
.form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.form-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.field-wide { grid-column: 1 / -1; }
.consent-row { display: flex; align-items: flex-start; gap: 9px; color: var(--muted); font-size: 12px; }
.consent-row input { margin-top: 3px; accent-color: var(--green); }
.alert { padding: 12px 14px; border-radius: 10px; font-weight: 650; }
.alert-error { color: #9c2621; background: var(--red-soft); border: 1px solid #f1c0bd; }
.alert-success { color: var(--green-dark); background: var(--green-soft); border: 1px solid #cde9d9; }
.alert-warning { color: #805400; background: #fff5dc; border: 1px solid #efd7a3; }
.empty-state { display: grid; place-items: center; min-height: 260px; padding: 35px; color: var(--muted); text-align: center; border: 1px dashed var(--line-strong); border-radius: var(--radius); background: linear-gradient(145deg, #fff, #f7fafb); }
.empty-state svg { width: 48px; height: 48px; margin-bottom: 8px; color: #a9b8c1; }
.empty-state h3 { margin: 4px 0; color: var(--ink); }
.empty-state p { margin: 0 0 18px; }
.loading-state { display: grid; place-items: center; min-height: 360px; color: var(--muted); }
.spinner { width: 34px; height: 34px; border: 3px solid #dce7ec; border-top-color: var(--green); border-radius: 50%; animation: spin .75s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* Public portal */
.public-body { background: #fff; }
.site-header { position: sticky; top: 0; z-index: 100; height: 76px; border-bottom: 1px solid rgba(18, 58, 76, .08); background: rgba(255,255,255,.94); backdrop-filter: blur(16px); transition: box-shadow var(--transition), height var(--transition); }
.site-header.scrolled { box-shadow: var(--shadow-sm); }
.header-inner { display: flex; align-items: center; gap: 28px; height: 100%; }
.brand img { width: 178px; height: auto; }
.brand-small { flex: 0 0 auto; }
.site-nav { display: flex; align-items: center; gap: 25px; margin-left: auto; }
.site-nav a { position: relative; color: #52636f; font-size: 13px; font-weight: 720; }
.site-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -11px; height: 2px; background: var(--green); transition: right var(--transition); }
.site-nav a:hover, .site-nav a.active { color: var(--green-dark); }
.site-nav a:hover::after, .site-nav a.active::after { right: 0; }
.header-actions { display: flex; align-items: center; gap: 14px; }
.header-actions .text-link { color: #455865; font-size: 13px; }
.mobile-menu-toggle { display: none; margin-left: auto; }
.hero-section { position: relative; overflow: hidden; min-height: 660px; padding: 88px 0 80px; color: #fff; background: #0d5d43 url('../images/hero-pattern.svg') center/cover no-repeat; }
.hero-section::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 70% 20%, rgba(25, 174, 103, .3), transparent 34%), linear-gradient(90deg, rgba(7, 50, 38, .15), rgba(12, 42, 58, .25)); }
.hero-section::after { content: ""; position: absolute; right: -180px; top: -220px; width: 660px; height: 660px; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; box-shadow: 0 0 0 80px rgba(255,255,255,.025), 0 0 0 160px rgba(255,255,255,.018); }
.hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(380px, .92fr); align-items: center; gap: 76px; }
.hero-copy h1 { max-width: 700px; margin: 0; font-size: clamp(42px, 5vw, 72px); line-height: 1.01; letter-spacing: -.045em; }
.hero-copy h1 span { color: #a8efc6; }
.hero-copy > p { max-width: 650px; margin: 25px 0 30px; color: rgba(255,255,255,.78); font-size: 18px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-trust { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 32px; color: rgba(255,255,255,.72); font-size: 12px; font-weight: 650; }
.hero-trust span { display: inline-flex; align-items: center; gap: 7px; }
.hero-trust svg { color: #9ff0c1; }
.search-panel { padding: 27px; color: var(--ink); border: 1px solid rgba(255,255,255,.22); border-radius: var(--radius-lg); background: rgba(255,255,255,.97); box-shadow: var(--shadow-lg); }
.search-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 20px; }
.search-panel-heading h2 { margin: 0; font-size: 23px; letter-spacing: -.025em; }
.search-panel-icon { display: grid; place-items: center; width: 50px; height: 50px; color: #fff; border-radius: 14px; background: var(--green); }
.search-panel-icon svg { width: 25px; height: 25px; }
.search-panel .form-grid { margin: 15px 0; }
.search-note { margin: 12px 0 0; color: var(--muted); font-size: 11px; text-align: center; }
.trust-strip { position: relative; z-index: 3; margin-top: -26px; }
.trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); padding: 22px 28px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-md); }
.trust-grid div { display: grid; gap: 2px; padding: 4px 25px; border-right: 1px solid var(--line); }
.trust-grid div:last-child { border-right: 0; }
.trust-grid strong { color: var(--green-dark); font-size: 24px; }
.trust-grid span { color: var(--muted); font-size: 12px; font-weight: 650; }
.section { padding: 92px 0; }
.section-soft { background: var(--surface-2); }
.section-heading { margin-bottom: 35px; }
.section-heading h2 { margin: 0 0 8px; font-size: clamp(30px, 3vw, 42px); line-height: 1.15; letter-spacing: -.035em; }
.section-heading p { max-width: 680px; margin: 0; color: var(--muted); font-size: 16px; }
.section-heading.split { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.section-heading.centered { max-width: 760px; margin-inline: auto; margin-bottom: 42px; text-align: center; }
.result-counter { padding: 8px 12px; color: var(--green-dark); border: 1px solid #cce8d8; border-radius: 999px; background: var(--green-soft); font-size: 12px; font-weight: 800; white-space: nowrap; }
.property-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.property-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: 0 5px 18px rgba(20, 50, 65, .05); transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition); }
.property-card:hover { transform: translateY(-5px); border-color: #bfd1da; box-shadow: var(--shadow-md); }
.property-image { position: relative; display: block; height: 230px; overflow: hidden; background: #dae5e9; }
.property-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 420ms ease; }
.property-card:hover .property-image img { transform: scale(1.045); }
.property-contract, .property-featured { position: absolute; top: 14px; padding: 6px 10px; border-radius: 999px; font-size: 10px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.property-contract { left: 14px; color: #fff; background: rgba(13, 36, 49, .83); backdrop-filter: blur(8px); }
.property-featured { right: 14px; display: inline-flex; align-items: center; gap: 5px; color: #fff; background: var(--green); }
.property-featured svg { width: 12px; height: 12px; }
.property-content { padding: 20px; }
.property-location { display: flex; align-items: center; gap: 5px; color: var(--green-dark); font-size: 11px; font-weight: 760; text-transform: uppercase; letter-spacing: .04em; }
.property-content h3 { margin: 8px 0 8px; font-size: 20px; line-height: 1.24; letter-spacing: -.02em; }
.property-content h3 a:hover { color: var(--green-dark); }
.property-content > p { min-height: 47px; margin: 0 0 15px; color: var(--muted); font-size: 13px; }
.property-facts { display: flex; gap: 15px; padding: 13px 0; color: var(--muted); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 11px; }
.property-facts strong { color: var(--ink); }
.property-footer { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding-top: 15px; }
.property-footer > strong { font-size: 20px; letter-spacing: -.02em; }
.property-footer > a { display: grid; place-items: center; width: 38px; height: 38px; color: #fff; border-radius: 10px; background: var(--green); }
.property-footer > a:hover { background: var(--green-dark); }
.property-grid.compact .property-image { height: 190px; }
.property-grid.compact .property-content > p, .property-grid.compact .property-facts { display: none; }
.public-empty { min-height: 350px; }
.service-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.service-card { padding: 28px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.service-card > span { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 20px; color: var(--green-dark); border-radius: 15px; background: var(--green-soft); }
.service-card > span svg { width: 25px; height: 25px; }
.service-card h3 { margin: 0 0 9px; font-size: 19px; }
.service-card p { min-height: 70px; margin: 0 0 18px; color: var(--muted); font-size: 13px; }
.service-card a { display: inline-flex; align-items: center; gap: 7px; color: var(--green-dark); font-size: 12px; font-weight: 800; }
.franchise-section { overflow: hidden; padding: 95px 0; color: #fff; background: linear-gradient(125deg, #0b5d3b 0%, #134b50 55%, #153344 100%); }
.franchise-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 80px; }
.franchise-copy h2 { margin: 0; font-size: clamp(34px, 4vw, 52px); line-height: 1.07; letter-spacing: -.04em; }
.franchise-copy > p { margin: 22px 0; color: rgba(255,255,255,.76); font-size: 17px; }
.feature-list { display: grid; gap: 12px; margin-bottom: 30px; }
.feature-list span { display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.88); }
.feature-list svg { color: #95eebc; }
.franchise-visual { position: relative; min-height: 460px; }
.network-core { position: absolute; top: 50%; left: 50%; z-index: 3; display: grid; place-items: center; width: 210px; height: 210px; padding: 25px; border-radius: 50%; background: #fff; box-shadow: 0 30px 60px rgba(0,0,0,.24); transform: translate(-50%, -50%); }
.network-orbit { position: absolute; top: 50%; left: 50%; border: 1px dashed rgba(255,255,255,.25); border-radius: 50%; transform: translate(-50%, -50%); }
.orbit-one { width: 355px; height: 355px; }
.orbit-two { width: 455px; height: 455px; }
.network-node { position: absolute; z-index: 4; display: grid; place-items: center; width: 88px; height: 88px; border: 1px solid rgba(255,255,255,.26); border-radius: 50%; color: #fff; background: rgba(255,255,255,.12); backdrop-filter: blur(12px); font-size: 12px; font-weight: 800; box-shadow: 0 14px 30px rgba(0,0,0,.14); }
.node-a { top: 2%; left: 42%; }
.node-b { top: 40%; right: 0; }
.node-c { bottom: 0; left: 46%; }
.node-d { top: 42%; left: 0; }
.blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.blog-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.blog-card img { width: 100%; height: 200px; object-fit: cover; }
.blog-card > div { padding: 22px; }
.blog-card span { color: var(--green-dark); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.blog-card h3 { margin: 8px 0; font-size: 20px; line-height: 1.25; }
.blog-card p { margin: 0 0 17px; color: var(--muted); font-size: 13px; }
.blog-card a { display: inline-flex; align-items: center; gap: 7px; color: var(--green-dark); font-weight: 800; font-size: 12px; }
.newsletter-section { padding: 0 0 90px; }
.newsletter-box { display: grid; grid-template-columns: 1fr minmax(350px, .72fr); align-items: center; gap: 45px; padding: 42px 48px; color: #fff; border-radius: var(--radius-lg); background: linear-gradient(135deg, var(--green-dark), #124f59); box-shadow: var(--shadow-md); }
.newsletter-box h2 { margin: 0; font-size: 30px; letter-spacing: -.03em; }
.newsletter-box p { margin: 8px 0 0; color: rgba(255,255,255,.7); }
.newsletter-form { display: flex; gap: 10px; }
.newsletter-form input { flex: 1; min-width: 0; min-height: 48px; padding: 11px 14px; border: 1px solid rgba(255,255,255,.3); border-radius: 10px; outline: none; color: #fff; background: rgba(255,255,255,.12); }
.newsletter-form input::placeholder { color: rgba(255,255,255,.65); }
.site-footer { padding: 60px 0 20px; color: #c8d3d9; background: #142630; }
.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: 45px; }
.footer-brand img { width: 190px; padding: 8px 12px; border-radius: 10px; background: #fff; }
.footer-brand p { max-width: 390px; color: #9eb0bb; }
.footer-badge { display: inline-flex; padding: 6px 10px; color: #9ce2b9; border: 1px solid rgba(156,226,185,.25); border-radius: 999px; font-size: 11px; }
.site-footer h3 { margin: 3px 0 14px; color: #fff; font-size: 14px; }
.site-footer a, .site-footer span { display: flex; align-items: center; gap: 7px; margin: 8px 0; color: #9eb0bb; font-size: 12px; }
.site-footer a:hover { color: #fff; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 42px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.09); color: #7f939e; font-size: 11px; }

/* Property detail */
.property-hero { padding: 56px 0 37px; background: linear-gradient(180deg, #f4f8f6, #fff); border-bottom: 1px solid var(--line); }
.property-title-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 35px; margin-top: 25px; }
.property-kicker { display: flex; gap: 8px; margin-bottom: 9px; }
.property-kicker span { padding: 5px 9px; color: var(--green-dark); border: 1px solid #c9e7d6; border-radius: 999px; background: var(--green-soft); font-size: 10px; font-weight: 850; text-transform: uppercase; }
.property-title-row h1 { margin: 0; font-size: clamp(32px, 4vw, 50px); line-height: 1.08; letter-spacing: -.04em; }
.property-title-row p { display: flex; align-items: center; gap: 7px; margin: 12px 0 0; color: var(--muted); }
.property-price-large { display: grid; justify-items: end; flex: 0 0 auto; }
.property-price-large span { color: var(--muted); font-size: 11px; font-weight: 700; }
.property-price-large strong { color: var(--green-dark); font-size: 34px; letter-spacing: -.04em; }
.property-price-large small { font-size: 14px; }
.property-detail-section { padding: 40px 0 85px; }
.property-detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 370px; gap: 32px; align-items: start; }
.gallery-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); }
.gallery-main { position: relative; display: block; width: 100%; height: 520px; padding: 0; border: 0; background: #d9e2e6; }
.gallery-main img { width: 100%; height: 100%; object-fit: cover; }
.gallery-main > span { position: absolute; right: 18px; bottom: 18px; display: inline-flex; align-items: center; gap: 7px; padding: 8px 12px; color: #fff; border-radius: 999px; background: rgba(15, 37, 48, .78); backdrop-filter: blur(8px); font-size: 11px; font-weight: 750; }
.gallery-thumbnails { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; padding: 10px; }
.gallery-thumbnails button { overflow: hidden; height: 92px; padding: 0; border: 2px solid transparent; border-radius: 9px; background: #e7edef; }
.gallery-thumbnails button.active { border-color: var(--green); }
.gallery-thumbnails img { width: 100%; height: 100%; object-fit: cover; }
.property-fact-bar { display: grid; grid-template-columns: repeat(4, 1fr); margin: 24px 0; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.property-fact-bar > div { display: grid; grid-template-columns: auto 1fr; column-gap: 10px; padding: 19px; border-right: 1px solid var(--line); }
.property-fact-bar > div:last-child { border-right: 0; }
.property-fact-bar > div > span { grid-row: 1 / span 2; display: grid; place-items: center; width: 40px; height: 40px; color: var(--green-dark); border-radius: 11px; background: var(--green-soft); }
.property-fact-bar strong { font-size: 16px; }
.property-fact-bar small { color: var(--muted); font-size: 10px; }
.detail-card { margin-top: 22px; padding: 28px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.detail-card-heading { display: flex; align-items: center; gap: 13px; padding-bottom: 20px; margin-bottom: 20px; border-bottom: 1px solid var(--line); }
.detail-card-heading > span { display: grid; place-items: center; width: 46px; height: 46px; color: var(--green-dark); border-radius: 13px; background: var(--green-soft); }
.detail-card-heading small { color: var(--green-dark); font-size: 9px; font-weight: 850; letter-spacing: .12em; }
.detail-card-heading h2 { margin: 1px 0 0; font-size: 21px; }
.detail-definition-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.detail-definition-grid > div { display: grid; gap: 3px; padding: 14px; border-radius: 10px; background: var(--surface-2); }
.detail-definition-grid span { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .04em; }
.detail-definition-grid strong { font-size: 14px; }
.lead-description { margin: 0; color: #3e505d; line-height: 1.8; }
.feature-chip-grid { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 24px; }
.feature-chip-grid span { display: inline-flex; align-items: center; gap: 7px; padding: 8px 11px; color: var(--green-dark); border: 1px solid #cde8d9; border-radius: 999px; background: var(--green-soft); font-size: 11px; font-weight: 700; }
.technical-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; }
.technical-grid dl { margin: 0; }
.technical-grid dl > div { display: flex; justify-content: space-between; gap: 15px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.technical-grid dt { color: var(--muted); font-size: 12px; }
.technical-grid dd { margin: 0; font-size: 12px; font-weight: 750; text-align: right; }
.map-placeholder { position: relative; overflow: hidden; display: grid; place-items: center; min-height: 300px; padding: 30px; border-radius: 12px; background: #eaf1f3; text-align: center; }
.map-grid-lines { position: absolute; inset: 0; opacity: .6; background-image: linear-gradient(35deg, transparent 45%, #fff 46% 48%, transparent 49%), linear-gradient(-25deg, transparent 45%, #d5e2e7 46% 49%, transparent 50%); background-size: 110px 85px, 140px 110px; }
.map-pin-large { position: relative; z-index: 1; display: grid; place-items: center; width: 64px; height: 64px; color: #fff; border: 6px solid rgba(255,255,255,.75); border-radius: 50%; background: var(--green); box-shadow: 0 12px 25px rgba(20,151,82,.25); }
.map-pin-large svg { width: 28px; height: 28px; }
.map-placeholder > div:last-child { position: relative; z-index: 1; display: grid; gap: 4px; margin-top: 10px; padding: 10px 15px; border-radius: 10px; background: rgba(255,255,255,.88); box-shadow: var(--shadow-sm); }
.map-placeholder small { color: var(--muted); }
.sticky-card { position: sticky; top: 95px; }
.contact-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-md); }
.contact-card-header { display: flex; align-items: center; gap: 12px; padding: 20px; color: #fff; background: linear-gradient(135deg, var(--green), var(--green-dark)); }
.contact-card-header > span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: rgba(255,255,255,.14); }
.contact-card-header div { display: grid; }
.contact-card-header small { color: rgba(255,255,255,.7); font-size: 9px; font-weight: 850; letter-spacing: .1em; }
.contact-card-header strong { font-size: 18px; }
.agent-mini { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.agent-avatar, .user-avatar { display: grid; place-items: center; width: 46px; height: 46px; color: #fff; border-radius: 50%; background: linear-gradient(135deg, var(--green), var(--blue)); font-size: 13px; font-weight: 850; }
.agent-mini > div:nth-child(2) { display: grid; }
.agent-mini span { color: var(--muted); font-size: 11px; }
.agent-mini > a { display: grid; place-items: center; width: 38px; height: 38px; color: var(--green-dark); border-radius: 10px; background: var(--green-soft); }
.contact-form { display: grid; gap: 13px; padding: 20px; }
.contact-actions { display: grid; gap: 9px; padding: 0 20px 18px; }
.contact-security { display: flex; align-items: flex-start; gap: 7px; margin: 0; padding: 14px 20px; color: var(--muted); border-top: 1px solid var(--line); background: var(--surface-2); font-size: 10px; }
.modal[hidden], .lightbox[hidden] { display: none; }
.modal { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 20px; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(9, 25, 34, .68); backdrop-filter: blur(5px); }
.modal-dialog { position: relative; z-index: 1; width: min(640px, 100%); max-height: calc(100vh - 40px); overflow-y: auto; padding: 32px; border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-lg); }
.modal-dialog h2 { margin: 8px 0 7px; font-size: 28px; }
.modal-dialog > p { margin: 0 0 22px; color: var(--muted); }
.modal-close { position: absolute; top: 15px; right: 15px; display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 0; border-radius: 10px; background: var(--surface-2); }
.modal-icon { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 15px; }
.modal-icon.green { color: var(--green-dark); background: var(--green-soft); }
.modal-icon.red { color: var(--red-dark); background: var(--red-soft); }
.lightbox { position: fixed; inset: 0; z-index: 1100; display: grid; place-items: center; padding: 40px; background: rgba(4, 16, 22, .94); }
.lightbox img { max-width: 95vw; max-height: 90vh; object-fit: contain; border-radius: 10px; }
.lightbox-close { position: absolute; top: 20px; right: 22px; display: grid; place-items: center; width: 45px; height: 45px; padding: 0; color: #fff; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; background: rgba(255,255,255,.1); }

/* Login */
.login-body { min-height: 100vh; background: #f4f7f8; }
.login-shell { display: grid; grid-template-columns: minmax(420px, .95fr) minmax(500px, 1.05fr); min-height: 100vh; }
.login-brand-panel { position: relative; overflow: hidden; display: flex; flex-direction: column; padding: 45px 7vw 35px 5vw; color: #fff; background: #0d5f42 url('../images/hero-pattern.svg') center/cover no-repeat; }
.login-brand-panel::after { content: ""; position: absolute; right: -210px; bottom: -220px; width: 600px; height: 600px; 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,.018); }
.login-logo { position: relative; z-index: 1; width: 210px; padding: 9px 14px; border-radius: 12px; background: #fff; }
.login-brand-copy { position: relative; z-index: 1; max-width: 610px; margin: auto 0; }
.login-brand-copy h1 { margin: 0; font-size: clamp(42px, 5vw, 68px); line-height: 1.03; letter-spacing: -.05em; }
.login-brand-copy > p { max-width: 570px; margin: 25px 0; color: rgba(255,255,255,.76); font-size: 17px; }
.login-feature-list { display: grid; gap: 12px; }
.login-feature-list span { display: flex; align-items: center; gap: 9px; color: rgba(255,255,255,.86); }
.login-feature-list svg { color: #a1efc1; }
.login-brand-footer { position: relative; z-index: 1; color: rgba(255,255,255,.45); font-size: 11px; }
.login-form-panel { display: grid; place-items: center; padding: 50px; }
.login-card { width: min(440px, 100%); padding: 38px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-md); }
.login-card-icon { display: grid; place-items: center; width: 58px; height: 58px; margin-bottom: 18px; color: #fff; border-radius: 17px; background: linear-gradient(135deg, var(--green), var(--blue)); }
.login-card-icon svg { width: 28px; height: 28px; }
.login-card h2 { margin: 0; font-size: 30px; letter-spacing: -.035em; }
.login-card > p { margin: 8px 0 22px; color: var(--muted); }
.login-form { display: grid; gap: 16px; }
.password-field { position: relative; }
.password-field input { padding-right: 48px; }
.password-field button { position: absolute; top: 3px; right: 3px; display: grid; place-items: center; width: 38px; height: 38px; padding: 0; color: var(--muted); border: 0; border-radius: 8px; background: transparent; }

/* Admin shell */
.admin-body { overflow: hidden; background: #eef3f6; }
.admin-app { display: grid; grid-template-columns: var(--sidebar-width) minmax(0, 1fr); height: 100vh; }
.admin-sidebar { position: relative; z-index: 400; display: flex; flex-direction: column; min-width: 0; color: #d6e0e5; background: linear-gradient(180deg, #172a36 0%, #14232d 100%); box-shadow: 8px 0 30px rgba(9, 27, 37, .11); }
.sidebar-brand-row { display: flex; align-items: center; justify-content: space-between; height: var(--topbar-height); padding: 0 18px 0 22px; border-bottom: 1px solid rgba(255,255,255,.08); background: linear-gradient(135deg, #087a45, #075638); }
.admin-brand { color: #fff; font-size: 22px; letter-spacing: -.04em; }
.admin-brand span { font-weight: 800; }
.admin-brand strong { font-weight: 300; }
.sidebar-close { display: none; color: #fff; }
.sidebar-user { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 11px; padding: 18px; border-bottom: 1px solid rgba(255,255,255,.07); }
.sidebar-user .user-avatar { width: 39px; height: 39px; font-size: 11px; }
.sidebar-user > div:nth-child(2) { display: grid; min-width: 0; }
.sidebar-user strong { overflow: hidden; color: #fff; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-user span { color: #8ea2ad; font-size: 10px; }
.online-dot { width: 8px; height: 8px; border: 2px solid rgba(20,151,82,.25); border-radius: 50%; background: #38c976; box-shadow: 0 0 0 4px rgba(56,201,118,.1); }
.sidebar-search { position: relative; margin: 13px 14px 8px; }
.sidebar-search svg { position: absolute; top: 50%; left: 11px; color: #8fa2ad; transform: translateY(-50%); }
.sidebar-search input { width: 100%; height: 38px; padding: 8px 10px 8px 35px; color: #eaf1f4; border: 1px solid rgba(255,255,255,.08); border-radius: 9px; outline: none; background: rgba(255,255,255,.06); }
.sidebar-search input::placeholder { color: #81959f; }
.sidebar-search input:focus { border-color: rgba(71, 205, 133, .62); background: rgba(255,255,255,.09); }
.admin-nav { flex: 1; overflow-y: auto; padding: 5px 8px 18px; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.16) transparent; }
.nav-section-label { display: block; padding: 15px 12px 7px; color: #627985; font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.admin-nav-item { position: relative; display: grid; grid-template-columns: 21px minmax(0, 1fr) auto; align-items: center; gap: 10px; width: 100%; min-height: 43px; padding: 9px 11px; color: #c7d3d8; border: 0; border-radius: 9px; background: transparent; text-align: left; transition: background var(--transition), color var(--transition); }
.admin-nav-item:hover { color: #fff; background: rgba(255,255,255,.055); }
.admin-nav-item.active { color: #fff; background: linear-gradient(90deg, rgba(20,151,82,.36), rgba(20,151,82,.12)); }
.admin-nav-item.active::before { content: ""; position: absolute; left: -8px; top: 7px; bottom: 7px; width: 3px; border-radius: 0 3px 3px 0; background: var(--red); }
.admin-nav-item svg { width: 17px; height: 17px; }
.admin-nav-item span { overflow: hidden; font-size: 12px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.admin-nav-item small { min-width: 22px; padding: 2px 6px; color: #afc0c8; border-radius: 999px; background: rgba(255,255,255,.08); font-size: 9px; text-align: center; }
.nav-group { border-radius: 9px; }
.nav-submenu { display: none; padding: 2px 0 6px 41px; }
.nav-group.open .nav-submenu { display: grid; }
.nav-submenu button { position: relative; padding: 6px 8px; color: #8297a2; border: 0; background: transparent; font-size: 10px; text-align: left; }
.nav-submenu button::before { content: ""; position: absolute; top: 12px; left: -9px; width: 4px; height: 4px; border-radius: 50%; background: #58717d; }
.nav-submenu button:hover { color: #dfe9ed; }
.sidebar-footer { display: grid; gap: 2px; padding: 14px 18px; border-top: 1px solid rgba(255,255,255,.07); color: #728994; font-size: 10px; }
.sidebar-footer small { color: #536b76; }
.sidebar-overlay { display: none; }
.admin-workspace { min-width: 0; overflow: hidden; }
.admin-topbar { position: relative; z-index: 300; display: flex; align-items: center; justify-content: space-between; height: var(--topbar-height); padding: 0 24px; color: #fff; background: linear-gradient(90deg, #087a45, #055636); box-shadow: 0 2px 10px rgba(6, 74, 43, .18); }
.topbar-left, .topbar-actions { display: flex; align-items: center; gap: 14px; min-width: 0; }
.admin-topbar .icon-button:hover { background: rgba(255,255,255,.12); }
.global-search { position: relative; width: min(460px, 35vw); }
.global-search > svg { position: absolute; top: 50%; left: 12px; color: rgba(255,255,255,.65); transform: translateY(-50%); }
.global-search input { height: 42px; padding: 9px 52px 9px 38px; color: #fff; border-color: rgba(255,255,255,.15); background: rgba(255,255,255,.12); }
.global-search input::placeholder { color: rgba(255,255,255,.62); }
.global-search input:focus { border-color: rgba(255,255,255,.5); box-shadow: 0 0 0 4px rgba(255,255,255,.1); }
.global-search kbd { position: absolute; top: 50%; right: 9px; padding: 3px 6px; color: rgba(255,255,255,.72); border: 1px solid rgba(255,255,255,.2); border-radius: 5px; background: rgba(255,255,255,.08); font-size: 9px; transform: translateY(-50%); }
.topbar-portal-link { display: inline-flex; align-items: center; gap: 7px; color: rgba(255,255,255,.82); font-size: 11px; font-weight: 700; }
.admin-language-select .re-language { display: block; }
.admin-language-select .re-language select { width: 64px; min-width: 64px; min-height: 38px; padding: 7px 24px 7px 9px; color: #fff; border: 1px solid rgba(255,255,255,.28); border-radius: 9px; outline: none; background: rgba(255,255,255,.12); font-size: 11px; font-weight: 800; cursor: pointer; }
.admin-language-select .re-language select:focus { border-color: #fff; box-shadow: 0 0 0 3px rgba(255,255,255,.15); }
.admin-language-select .re-language option { color: #14232d; background: #fff; }
.notification-button { position: relative; color: #fff; }
.notification-button > span { position: absolute; top: 4px; right: 3px; display: grid; place-items: center; min-width: 17px; height: 17px; padding: 0 4px; color: #fff; border: 2px solid #087a45; border-radius: 999px; background: var(--red); font-size: 8px; font-weight: 850; }
.user-menu-button { display: grid; grid-template-columns: auto auto auto; align-items: center; gap: 9px; padding: 5px 7px; color: #fff; border: 0; border-radius: 10px; background: transparent; text-align: left; }
.user-menu-button:hover { background: rgba(255,255,255,.1); }
.user-avatar.small { width: 35px; height: 35px; font-size: 10px; background: rgba(255,255,255,.18); }
.user-menu-button > span:nth-child(2) { display: grid; }
.user-menu-button strong { font-size: 11px; }
.user-menu-button small { color: rgba(255,255,255,.65); font-size: 9px; }
.user-menu-button > svg { width: 14px; height: 14px; }
.user-dropdown { position: absolute; top: 62px; right: 20px; z-index: 500; width: 210px; padding: 7px; color: var(--ink); border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow-md); }
.user-dropdown button, .user-dropdown a { display: flex; align-items: center; gap: 9px; width: 100%; padding: 10px; color: #455965; border: 0; border-radius: 8px; background: transparent; font-size: 12px; text-align: left; }
.user-dropdown button:hover, .user-dropdown a:hover { color: var(--green-dark); background: var(--surface-2); }
.admin-main { height: calc(100vh - var(--topbar-height)); overflow-y: auto; padding: 25px 28px 42px; }
.admin-page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 22px; }
.breadcrumb { display: flex; align-items: center; gap: 6px; color: #8797a1; font-size: 10px; }
.breadcrumb svg { width: 10px; height: 10px; }
.admin-page-header h1 { margin: 5px 0 0; font-size: 28px; line-height: 1.1; letter-spacing: -.035em; }
.admin-page-header p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.page-actions { display: flex; align-items: center; gap: 9px; }
.admin-content { min-width: 0; }

/* Admin common panels */
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 18px; }
.metric-card { position: relative; overflow: hidden; display: grid; grid-template-columns: 1fr auto; gap: 12px; min-height: 118px; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.metric-card::after { content: ""; position: absolute; right: -25px; bottom: -45px; width: 100px; height: 100px; border-radius: 50%; background: var(--metric-soft, var(--green-soft)); }
.metric-card > div:first-child { position: relative; z-index: 1; display: grid; align-content: space-between; }
.metric-card small { color: var(--muted); font-size: 10px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.metric-card strong { display: block; margin-top: 8px; font-size: 29px; line-height: 1; letter-spacing: -.04em; }
.metric-card em { color: var(--green-dark); font-size: 10px; font-style: normal; font-weight: 700; }
.metric-icon { position: relative; z-index: 2; display: grid; place-items: center; width: 45px; height: 45px; color: var(--metric-color, var(--green)); border-radius: 13px; background: var(--metric-soft, var(--green-soft)); }
.metric-icon svg { width: 23px; height: 23px; }
.metric-card.blue { --metric-color: var(--blue); --metric-soft: var(--blue-soft); }
.metric-card.red { --metric-color: var(--red); --metric-soft: var(--red-soft); }
.metric-card.orange { --metric-color: var(--orange); --metric-soft: #fff5e5; }
.metric-card.purple { --metric-color: var(--purple); --metric-soft: #f2effc; }
.shortcut-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 90px), 1fr)); gap: 8px; margin-bottom: 18px; padding: 10px; border-radius: 12px; background: linear-gradient(90deg, #129752, #087a45); box-shadow: var(--shadow-sm); }
.shortcut-card { display: grid; justify-items: center; gap: 5px; min-height: 72px; padding: 10px 8px; color: #fff; border: 1px solid rgba(255,255,255,.15); border-radius: 8px; background: rgba(13, 138, 85, .72); font-size: 9px; font-weight: 800; text-transform: uppercase; transition: var(--transition); }
.shortcut-card:hover { background: rgba(11,111,66,.92); transform: translateY(-1px); }
.shortcut-card svg { width: 22px; height: 22px; }
.shortcut-card.blue { background: rgba(9, 104, 60, .82); }
.action-banner-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 18px; }
.action-banner { position: relative; overflow: hidden; min-height: 120px; padding: 18px 18px 45px; color: #fff; border-radius: 12px; box-shadow: var(--shadow-sm); }
.action-banner.green { background: linear-gradient(135deg, #12a85d, #078445); }
.action-banner.orange { background: linear-gradient(135deg, #f6a31a, #e48404); }
.action-banner.red { background: linear-gradient(135deg, #e65348, #cf3129); }
.action-banner.blue { background: linear-gradient(135deg, #19a15c, #087a45); }
.action-banner h3 { margin: 0; font-size: 19px; }
.action-banner p { margin: 3px 0; color: rgba(255,255,255,.86); font-size: 11px; }
.action-banner > svg { position: absolute; right: 15px; top: 15px; width: 58px; height: 58px; opacity: .16; }
.action-banner button { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; height: 34px; color: #fff; border: 0; background: rgba(0,0,0,.1); font-size: 10px; font-weight: 800; }
.dashboard-columns { display: grid; grid-template-columns: minmax(0, 1.32fr) minmax(330px, .68fr); gap: 18px; }
.dashboard-stack { display: grid; gap: 18px; align-content: start; }
.panel-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:7px 12px;color:var(--green-dark);border:1px solid #cfe3d8;border-radius:9px;background:#f2faf6;font:inherit;font-size:9px;font-weight:850;line-height:1;white-space:nowrap;cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s ease}
.panel-link:hover,.panel-link:focus-visible{color:#fff;border-color:var(--green);background:var(--green);outline:0;transform:translateY(-1px)}
.panel-link svg{width:14px;height:14px}
.dashboard-pipeline-list{display:grid;gap:7px}
.dashboard-pipeline-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:10px;border:1px solid var(--line);border-radius:11px;background:#fff}
.dashboard-pipeline-item>div{display:grid;min-width:0}.dashboard-pipeline-item strong,.dashboard-pipeline-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-pipeline-item strong{font-size:10px}.dashboard-pipeline-item small{color:var(--muted);font-size:9px}
.dashboard-pipeline-summary{display:flex;align-items:center;gap:9px;margin-top:11px;padding-top:11px;border-top:1px solid var(--line)}
.dashboard-pipeline-summary>span{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:9px}.dashboard-pipeline-summary>span b{color:var(--ink);font-size:11px}.dashboard-pipeline-summary .panel-link{margin-left:auto}
.panel { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.panel-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 54px; padding: 13px 16px; border-bottom: 1px solid var(--line); }
.panel-title { display: flex; align-items: center; gap: 10px; min-width: 0; }
.panel-title > span { display: grid; place-items: center; width: 31px; height: 31px; color: var(--green-dark); border-radius: 9px; background: var(--green-soft); }
.panel-title h2, .panel-title h3 { margin: 0; font-size: 14px; }
.panel-title small { display: block; color: var(--muted); font-size: 9px; font-weight: 500; }
.panel-header .panel-link { color: var(--green-dark); border: 0; background: transparent; font-size: 10px; font-weight: 800; }
.panel-body { padding: 16px; }
.panel-body.flush { padding: 0; }
.panel-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-top: 1px solid var(--line); background: #fafcfd; border-radius: 0 0 var(--radius) var(--radius); }
.data-table-wrap { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; font-size: 11px; }
.data-table th { padding: 11px 12px; color: #667985; border-bottom: 1px solid var(--line); background: #f7fafb; font-size: 9px; font-weight: 850; letter-spacing: .04em; text-align: left; text-transform: uppercase; white-space: nowrap; }
.data-table td { padding: 12px; border-bottom: 1px solid #e9eef1; vertical-align: middle; }
.data-table tbody tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover { background: #fbfdfd; }
.table-primary { display: grid; gap: 2px; min-width: 150px; }
.table-primary strong { font-size: 11px; }
.table-primary small { color: var(--muted); font-size: 9px; }
.table-property { display: flex; align-items: center; gap: 10px; min-width: 210px; }
.table-property img { width: 52px; height: 40px; object-fit: cover; border-radius: 7px; background: #e1e9ed; }
.table-property div { display: grid; min-width: 0; }
.table-property strong { overflow: hidden; max-width: 210px; text-overflow: ellipsis; white-space: nowrap; }
.table-property small { color: var(--muted); }
.status-badge { display: inline-flex; align-items: center; gap: 5px; padding: 4px 7px; border-radius: 999px; color: #51636f; background: #eef2f4; font-size: 8px; font-weight: 850; text-transform: uppercase; white-space: nowrap; }
.status-badge::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: currentColor; opacity: .7; }
.status-badge.green, .status-badge.published, .status-badge.active, .status-badge.confirmed, .status-badge.completed, .status-badge.delivered { color: var(--green-dark); background: var(--green-soft); }
.status-badge.red, .status-badge.suspended, .status-badge.high { color: var(--red-dark); background: var(--red-soft); }
.status-badge.orange, .status-badge.draft, .status-badge.pending, .status-badge.open, .status-badge.in-progress { color: #a76500; background: #fff4df; }
.status-badge.blue, .status-badge.contacted, .status-badge.registered { color: var(--blue-dark); background: var(--blue-soft); }
.status-badge.purple { color: #5e45ac; background: #f0ecfb; }
.table-actions { display: flex; gap: 5px; justify-content: flex-end; }
.table-actions button, .table-actions a { display: grid; place-items: center; width: 29px; height: 29px; padding: 0; color: #657784; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.table-actions .valuation-dossier-action{display:flex;width:auto;min-width:98px;gap:6px;padding:0 10px;color:var(--green-dark);border-color:#b9dac8;background:var(--green-soft);font-size:10px;font-weight:850}
.table-actions button:hover, .table-actions a:hover { color: var(--green-dark); border-color: #b9dac8; background: var(--green-soft); }
.table-actions .danger:hover { color: var(--red-dark); border-color: #efc0bd; background: var(--red-soft); }
.table-actions svg { width: 14px; height: 14px; }
.muted { color: var(--muted); }
.currency { font-weight: 800; white-space: nowrap; }
.activity-list { display: grid; }
.activity-item { display: grid; grid-template-columns: auto 1fr auto; gap: 11px; align-items: start; padding: 12px 0; border-bottom: 1px solid var(--line); }
.activity-item:last-child { border-bottom: 0; }
.activity-icon { display: grid; place-items: center; width: 34px; height: 34px; color: var(--green-dark); border-radius: 10px; background: var(--green-soft); }
.activity-icon svg { width: 16px; height: 16px; }
.activity-item > div:nth-child(2) { display: grid; }
.activity-item strong { font-size: 11px; }
.activity-item span { color: var(--muted); font-size: 9px; }
.activity-item time { color: #8c9aa3; font-size: 8px; white-space: nowrap; }
.appointment-mini-list { display: grid; gap: 10px; }
.appointment-mini { display: grid; grid-template-columns: 46px 1fr auto; align-items: center; gap: 10px; padding: 10px; border: 1px solid var(--line); border-radius: 10px; }
.appointment-date { display: grid; place-items: center; width: 46px; height: 46px; color: var(--green-dark); border-radius: 10px; background: var(--green-soft); }
.appointment-date strong { font-size: 17px; line-height: 1; }
.appointment-date small { font-size: 8px; text-transform: uppercase; }
.appointment-mini > div:nth-child(2) { display: grid; }
.appointment-mini > div:nth-child(2) strong { font-size: 10px; }
.appointment-mini > div:nth-child(2) small { color: var(--muted); font-size: 9px; }
.appointment-mini > time { color: var(--blue-dark); font-size: 10px; font-weight: 800; }
.map-widget { position: relative; overflow: hidden; display: grid; place-items: center; min-height: 265px; background: #eef3f5; }
.map-widget::before { content: ""; position: absolute; inset: 0; opacity: .7; background-image: linear-gradient(30deg, transparent 47%, #fff 48% 50%, transparent 51%), linear-gradient(-38deg, transparent 47%, #d9e5e9 48% 50%, transparent 51%); background-size: 100px 75px, 130px 100px; }
.map-widget-content { position: relative; z-index: 1; display: grid; justify-items: center; color: #8498a3; }
.map-widget-content svg { width: 52px; height: 52px; margin-bottom: 8px; }
.map-widget-content strong { color: #667c87; }
.map-widget-content small { margin-top: 4px; }
.module-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 16px; padding: 13px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow-sm); }
.toolbar-left, .toolbar-right { display: flex; align-items: center; gap: 9px; min-width: 0; }
.toolbar-search { position: relative; width: min(360px, 32vw); }
.toolbar-search svg { position: absolute; top: 50%; left: 11px; color: #83939d; transform: translateY(-50%); }
.toolbar-search input { height: 39px; min-height: 39px; padding-left: 35px; font-size: 11px; }
.filter-select { height: 39px; padding: 7px 31px 7px 10px; color: #536672; border: 1px solid var(--line-strong); border-radius: 8px; outline: none; background: #fff; font-size: 10px; }
.admin-body .filter-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.admin-body .filter-pill { padding: 6px 10px; color: #677985; border: 1px solid var(--line); border-radius: 999px; background: #fff; font-size: 9px; font-weight: 750; }
.admin-body .filter-pill.active { color: var(--green-dark); border-color: #b9dfcb; background: var(--green-soft); }
.pagination-row { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: 10px; }
.pagination-buttons { display: flex; gap: 5px; }
.pagination-buttons button { min-width: 30px; height: 30px; color: #5f7380; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.pagination-buttons button.active { color: #fff; border-color: var(--green); background: var(--green); }

/* Admin modules */
.record-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.record-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.record-card-cover { position: relative; height: 165px; background: #dbe4e8; }
.record-card-cover img { width: 100%; height: 100%; object-fit: cover; }
.record-card-cover .status-badge { position: absolute; top: 11px; left: 11px; }
.record-card-body { padding: 16px; }
.record-card-body h3 { margin: 0 0 5px; font-size: 15px; }
.record-card-body p { margin: 0; color: var(--muted); font-size: 10px; }
.record-card-meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.record-card-meta span { display: grid; color: var(--muted); font-size: 8px; }
.record-card-meta strong { color: var(--ink); font-size: 10px; }
.record-card-footer { display: flex; align-items: center; justify-content: space-between; padding: 11px 16px; border-top: 1px solid var(--line); background: #fafcfd; }
.record-card-footer strong { color: var(--green-dark); font-size: 15px; }
.agent-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.agent-card { padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.agent-card-top { display: flex; align-items: center; gap: 12px; }
.agent-card-top .user-avatar { width: 50px; height: 50px; }
.agent-card-top > div:nth-child(2) { display: grid; min-width: 0; }
.agent-card-top strong { font-size: 13px; }
.agent-card-top span { color: var(--muted); font-size: 10px; }
.agent-card-top .status-badge { margin-left: auto; }
.agent-card-info { display: grid; gap: 8px; margin: 18px 0; padding: 14px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.agent-card-info span { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 10px; }
.agent-card-info svg { color: var(--green-dark); }
.agent-kpi { display: flex; justify-content: space-between; gap: 15px; }
.agent-kpi div { display: grid; }
.agent-kpi small { color: var(--muted); font-size: 8px; text-transform: uppercase; }
.agent-kpi strong { font-size: 14px; }
.calendar-layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 18px; }
.calendar-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.calendar-header { display: flex; align-items: center; justify-content: space-between; padding: 16px; border-bottom: 1px solid var(--line); }
.calendar-header h2 { margin: 0; font-size: 17px; }
.calendar-controls { display: flex; gap: 6px; }
.calendar-controls button { display: grid; place-items: center; width: 34px; height: 34px; padding: 0; color: #61737f; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); }
.calendar-weekday { padding: 9px; color: var(--muted); border-bottom: 1px solid var(--line); background: #f8fafb; font-size: 8px; font-weight: 850; text-align: center; text-transform: uppercase; }
.calendar-day { position: relative; min-height: 105px; padding: 8px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; }
.calendar-day:nth-child(7n) { border-right: 0; }
.calendar-day.outside { color: #5f6f77; background: #fafcfd; }
.calendar-day.today { background: #f1faf5; }
.calendar-day > strong { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; font-size: 9px; }
.calendar-day.today > strong { color: #fff; background: var(--green); }
.calendar-event { display: block; overflow: hidden; margin-top: 5px; padding: 5px 6px; color: var(--blue-dark); border-left: 3px solid var(--blue); border-radius: 4px; background: var(--blue-soft); font-size: 7px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event.visit { color: var(--green-dark); border-color: var(--green); background: var(--green-soft); }
.calendar-event.meeting { color: #5c45a7; border-color: var(--purple); background: #f2effc; }
.agenda-side { display: grid; gap: 16px; align-content: start; }
.agenda-day-list { display: grid; gap: 10px; }
.agenda-item { display: grid; grid-template-columns: 50px 1fr; gap: 10px; padding: 11px; border: 1px solid var(--line); border-radius: 10px; }
.agenda-item time { color: var(--green-dark); font-size: 10px; font-weight: 850; }
.agenda-item div { display: grid; }
.agenda-item strong { font-size: 10px; }
.agenda-item small { color: var(--muted); font-size: 8px; }
.template-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.template-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 13px; padding: 16px; border: 1px solid var(--line); border-radius: 11px; background: #fff; transition: var(--transition); }
.template-card:hover { border-color: #b9d9c8; box-shadow: var(--shadow-sm); }
.template-card > span { display: grid; place-items: center; width: 42px; height: 42px; color: var(--red-dark); border-radius: 10px; background: var(--red-soft); }
.template-card div { display: grid; }
.template-card strong { font-size: 11px; }
.template-card small { color: var(--muted); font-size: 9px; }
.template-card button { display: grid; place-items: center; width: 33px; height: 33px; padding: 0; color: var(--green-dark); border: 1px solid #c9e5d5; border-radius: 8px; background: var(--green-soft); }
.course-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.course-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.course-card-professional { display:flex; min-height:430px; flex-direction:column; padding:18px; }
.course-card-top { display:flex; align-items:center; gap:8px; }
.course-card-top .status-badge { margin-left:auto; }
.course-icon { display:grid; width:38px; height:38px; place-items:center; border-radius:10px; color:var(--green-dark); background:var(--green-soft); }
.course-level { color:var(--green-dark); font-size:9px; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }
.course-card-professional h3 { margin:16px 0 8px; font-size:16px; line-height:1.35; }
.course-card-professional>p { margin:0; color:var(--muted); font-size:10px; line-height:1.55; }
.course-outcomes { display:grid; gap:5px; margin:13px 0; padding-left:17px; color:#40535e; font-size:9px; line-height:1.4; }
.course-card-professional .course-meta { flex-wrap:wrap; gap:6px 12px; margin-top:auto; padding-top:14px; border-top:1px solid var(--line); }
.course-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:34px; }
.course-footer>strong { color:var(--green-dark); font-size:9px; }
.course-cover { display: grid; place-items: center; height: 120px; color: #fff; background: linear-gradient(135deg, var(--green), var(--blue)); }
.course-cover svg { width: 45px; height: 45px; opacity: .8; }
.course-body { padding: 16px; }
.course-body h3 { min-height: 38px; margin: 0 0 8px; font-size: 14px; line-height: 1.3; }
.course-meta { display: flex; justify-content: space-between; color: var(--muted); font-size: 9px; }
.progress-track { overflow: hidden; height: 7px; margin: 13px 0 7px; border-radius: 999px; background: #e8eef1; }
.progress-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--green), var(--blue)); }
.progress-label { display: flex; justify-content: space-between; color: var(--muted); font-size: 8px; }
.stats-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 18px; }
.chart-area { min-height: 330px; padding: 20px; }
.bar-chart { display: grid; grid-template-columns: repeat(6, 1fr); align-items: end; gap: 17px; height: 220px; padding: 25px 10px 0; border-bottom: 1px solid var(--line); }
.bar-group { display: grid; justify-items: center; align-content: end; gap: 6px; height: 100%; }
.bar-column { position: relative; width: 38px; min-height: 5px; border-radius: 8px 8px 0 0; background: linear-gradient(180deg, var(--green), var(--green-dark)); }
.bar-column::after { content: attr(data-value); position: absolute; top: -19px; left: 50%; color: #536671; font-size: 8px; font-weight: 800; transform: translateX(-50%); }
.bar-group small { color: var(--muted); font-size: 8px; }
.donut-wrap { display: grid; place-items: center; padding: 22px; }
.donut { --value: 72; display: grid; place-items: center; width: 180px; height: 180px; border-radius: 50%; background: conic-gradient(var(--green) calc(var(--value) * 1%), #e5ecef 0); }
.donut::before { content: ""; grid-area: 1/1; width: 125px; height: 125px; border-radius: 50%; background: #fff; }
.donut-content { z-index: 1; grid-area: 1/1; display: grid; justify-items: center; }
.donut-content strong { font-size: 28px; }
.donut-content small { color: var(--muted); font-size: 9px; }
.legend-list { display: grid; gap: 8px; width: 100%; margin-top: 18px; }
.legend-list span { display: flex; justify-content: space-between; gap: 15px; color: var(--muted); font-size: 9px; }
.legend-list i { display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; background: var(--green); }
.info-banner { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 16px; padding: 14px 16px; color: #49616f; border: 1px solid #bfe2ef; border-radius: 10px; background: var(--blue-soft); font-size: 11px; }
.info-banner > span { display: grid; place-items: center; width: 30px; height: 30px; color: var(--blue-dark); border-radius: 8px; background: #d9f0f8; }
.placeholder-module { overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr); min-height: 480px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.placeholder-copy { display: grid; align-content: center; padding: 55px; }
.placeholder-copy > span { display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: 20px; color: var(--green-dark); border-radius: 18px; background: var(--green-soft); }
.placeholder-copy > span svg { width: 31px; height: 31px; }
.placeholder-copy h2 { margin: 0; font-size: 30px; letter-spacing: -.04em; }
.placeholder-copy p { max-width: 620px; color: var(--muted); }
.placeholder-features { display: grid; gap: 9px; margin: 18px 0 25px; }
.placeholder-features span { display: flex; align-items: center; gap: 8px; font-size: 11px; }
.placeholder-features svg { color: var(--green); }
.placeholder-visual { position: relative; overflow: hidden; display: grid; place-items: center; min-height: 480px; background: linear-gradient(145deg, #e9f7ef, #eaf4f9); }
.placeholder-visual::before, .placeholder-visual::after { content: ""; position: absolute; border: 1px solid rgba(20,151,82,.2); border-radius: 50%; }
.placeholder-visual::before { width: 390px; height: 390px; }
.placeholder-visual::after { width: 260px; height: 260px; }
.placeholder-visual > span { position: relative; z-index: 1; display: grid; place-items: center; width: 135px; height: 135px; color: #fff; border-radius: 35px; background: linear-gradient(135deg, var(--green), var(--blue)); box-shadow: var(--shadow-md); transform: rotate(-7deg); }
.placeholder-visual > span svg { width: 64px; height: 64px; }

/* Admin forms and overlays */
.admin-modal[hidden], .quick-create[hidden], .notification-drawer[hidden], .drawer-overlay[hidden] { display: none; }
.admin-modal { position: fixed; inset: 0; z-index: 1100; display: grid; place-items: center; padding: 20px; }
.admin-modal-backdrop, .quick-create-backdrop { position: absolute; inset: 0; background: rgba(8, 24, 33, .68); backdrop-filter: blur(5px); }
.admin-modal-dialog { position: relative; z-index: 1; width: min(820px, 100%); max-height: calc(100vh - 35px); overflow-y: auto; border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-lg); }
.admin-modal-header { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 24px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); backdrop-filter: blur(10px); }
.admin-modal-header h2 { margin: 0; font-size: 23px; }
.admin-modal-body { padding: 24px; }
.admin-modal-dialog.modal-admin-page { width: min(1440px, calc(100vw - 26px)) !important; height: calc(100dvh - 26px); max-height: calc(100dvh - 26px); margin: 0 auto !important; overflow: hidden !important; display: grid; grid-template-rows: auto minmax(0,1fr); }
.modal-admin-page .admin-modal-body { position: relative; min-height: 0; padding: 0; overflow: hidden; background: #edf3f0; }
.structured-data-field{min-width:0}.structured-data-list{display:grid;gap:7px;padding:12px;border:1px solid var(--line,#dce4df);border-radius:12px;background:#f7faf8;max-height:280px;overflow:auto}.structured-data-row{display:grid;grid-template-columns:minmax(120px,.45fr) minmax(0,1fr);gap:10px;padding:7px 0;border-bottom:1px solid #e5ece8}.structured-data-row:last-child{border-bottom:0}.structured-data-row strong{font-size:.78rem;color:#315044}.structured-data-row span{min-width:0;overflow-wrap:anywhere;color:#17241f}.readonly-value{min-height:44px;padding:11px 12px;border-radius:10px;background:#eef3f0;color:#3c4f47;overflow-wrap:anywhere}
@media(max-width:620px){.structured-data-row{grid-template-columns:1fr;gap:3px}}
.admin-page-frame { display: block; width: 100%; height: 100%; min-height: 0; border: 0; background: #fff; opacity: 1; visibility: visible; pointer-events: auto; transition: none; }
.admin-page-frame[data-ready="1"] { opacity: 1; visibility: visible; pointer-events: auto; }

body.superadmin-workspace-active .admin-page-header{display:none}
body.superadmin-workspace-active .admin-main{padding:0;overflow:hidden}
body.superadmin-workspace-active .admin-content{height:calc(100dvh - 74px);padding:0;overflow:hidden}
.superadmin-embedded-host{position:relative;width:100%;height:100%;min-height:0;overflow:hidden;background:#f3f6f5}
.superadmin-embedded-frame{display:block;width:100%;height:100%;border:0;background:#f3f6f5;opacity:0;transition:opacity .18s ease}
.superadmin-embedded-frame[data-ready="1"]{opacity:1}
.superadmin-embedded-host>.admin-page-loading{position:absolute;inset:0;z-index:2}
.re-push-notice { position: fixed; z-index: 2147483640; left: 50%; bottom: max(22px, env(safe-area-inset-bottom)); width: min(92vw, 520px); padding: 14px 17px; border: 1px solid #cbdad3; border-radius: 14px; background: #fff; color: #173228; box-shadow: 0 18px 50px rgba(16,45,32,.22); font: 700 14px/1.45 system-ui,sans-serif; opacity: 0; transform: translate(-50%,18px); transition: opacity .2s ease,transform .2s ease; }
.re-push-notice.is-visible { opacity: 1; transform: translate(-50%,0); }
.re-push-notice.is-success { border-color: #90d2b1; background: #effaf4; color: #08683d; }
.re-push-notice.is-error { border-color: #e7aaa6; background: #fff4f3; color: #982821; }
.admin-page-loading { position: absolute; inset: 0; z-index: 2; display: grid; place-content: center; justify-items: center; gap: 10px; color: #415a50; background: #f4f8f6; }
.admin-page-loading[hidden] { display: none; }
.admin-page-tools { position: absolute; right: 12px; bottom: 12px; z-index: 3; padding: 5px; border-radius: 11px; background: rgba(255,255,255,.92); box-shadow: 0 8px 24px rgba(10,35,27,.18); }
.global-search-result { width: 100%; min-width: 0; color: #203b30; border: 0; text-align: left; cursor: pointer; }
.global-search-result:hover,.global-search-result:focus-visible { background: #edf7f1; outline: 2px solid #87bea0; outline-offset: -2px; }
.admin-form { display: grid; gap: 21px; }
.form-section { display: grid; gap: 14px; padding: 17px; border: 1px solid var(--line); border-radius: 12px; background: #fbfcfd; }
.form-section-title { display: flex; align-items: center; gap: 9px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.form-section-title span { display: grid; place-items: center; width: 32px; height: 32px; color: var(--green-dark); border-radius: 9px; background: var(--green-soft); }
.form-section-title h3 { margin: 0; font-size: 13px; }
.form-actions { position: sticky; bottom: -24px; display: flex; justify-content: flex-end; gap: 9px; margin: 0 -24px -24px; padding: 15px 24px; border-top: 1px solid var(--line); background: rgba(255,255,255,.97); backdrop-filter: blur(10px); }
.checkbox-field { display: flex; align-items: center; gap: 8px; padding-top: 24px; }
.checkbox-field input { width: 17px; height: 17px; accent-color: var(--green); }
.placement-field{grid-column:1/-1;margin:0;padding:16px;border:1px solid #d9e6df;border-radius:16px;background:#f7fbf9}.placement-field>legend{padding:0 8px;color:#123d2e;font-size:12px;font-weight:850}.placement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.placement-grid .checkbox-field{align-items:flex-start;padding:12px;border:1px solid #dce8e2;border-radius:12px;background:#fff}.placement-grid .checkbox-field>span{display:grid;gap:3px}.placement-grid .checkbox-field small{color:#64786e;font-weight:500}@media(max-width:680px){.placement-grid{grid-template-columns:1fr}}
.quick-create { position: fixed; inset: 0; z-index: 1050; display: flex; justify-content: flex-end; }
.quick-create-panel { position: relative; z-index: 1; width: min(520px, 100%); height: 100%; padding: 25px; background: #fff; box-shadow: -20px 0 60px rgba(8, 28, 39, .22); animation: slideIn .2s ease; }
@keyframes slideIn { from { transform: translateX(30px); opacity: .6; } }
.quick-create-header { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 26px; }
.quick-create-header h2 { margin: 0; font-size: 25px; }
.quick-create-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.quick-create-grid > button { display: grid; justify-items: start; gap: 5px; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: #fff; text-align: left; transition: var(--transition); }
.quick-create-grid > button:hover { transform: translateY(-2px); border-color: #b8daca; box-shadow: var(--shadow-sm); }
.quick-create-grid strong { font-size: 13px; }
.quick-create-grid small { color: var(--muted); font-size: 9px; }
.quick-icon { display: grid; place-items: center; width: 43px; height: 43px; margin-bottom: 7px; border-radius: 12px; }
.quick-icon.green { color: var(--green-dark); background: var(--green-soft); }
.quick-icon.blue { color: var(--blue-dark); background: var(--blue-soft); }
.quick-icon.orange { color: #a76400; background: #fff3dd; }
.quick-icon.purple { color: #5e46a8; background: #f0ecfb; }
.quick-icon.red { color: var(--red-dark); background: var(--red-soft); }
.quick-icon.cyan { color: #06799b; background: #e5f8fc; }
.notification-drawer { position: fixed; top: var(--reone-viewport-top, 0px); right: 0; z-index: 1200; width: min(430px, 100%); height: 100vh; height: var(--reone-viewport-height, 100dvh); display:flex; flex-direction:column; min-height:0; padding:22px; overflow:hidden; background:#fff; box-shadow:-20px 0 60px rgba(8,28,39,.22); animation:slideIn .2s ease; }
body.notification-open { overflow:hidden; }
.drawer-overlay { position: fixed; inset: 0; z-index: 1190; background: rgba(8,24,33,.48); backdrop-filter: blur(3px); }
.drawer-header { display: flex; flex:0 0 auto; align-items: center; justify-content: space-between; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.drawer-header h2 { margin: 0; font-size: 23px; }
.drawer-list { display:grid; flex:1 1 auto; align-content:start; min-height:0; margin-top:12px; padding:0 8px 24px 0; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; scrollbar-width:thin; scrollbar-color:#8bb7a0 transparent; }
.drawer-list::-webkit-scrollbar{width:7px}.drawer-list::-webkit-scrollbar-thumb{border-radius:999px;background:#8bb7a0}
.drawer-notification { display: grid; grid-template-columns: auto minmax(0,1fr) auto;align-items:center; gap: 11px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.drawer-notification > span { display: grid; place-items: center; width: 38px; height: 38px; color: var(--green-dark); border-radius: 11px; background: var(--green-soft); }
.drawer-notification div { display:grid; min-width:0; }
.drawer-notification strong { font-size:11px; overflow-wrap:anywhere; }
.drawer-notification small { color:var(--muted); font-size:9px; overflow-wrap:anywhere; }
.drawer-notification[data-module]{cursor:pointer}.drawer-notification[data-module]:hover{background:#f7faf8}
.notification-section-title{position:sticky;top:0;z-index:2;padding:10px 4px 8px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px)}
.notification-controls { display:flex;flex-wrap:wrap;gap:7px;align-items:center;padding-top:12px;flex:none; }
.notification-controls button { flex:1 1 auto;white-space:normal; }
.notification-controls button[aria-pressed="true"] { border-color:var(--green);background:var(--green-soft); }
.notification-summary { margin:7px 0 0;color:var(--muted);font-size:12px;flex:none; }
.notification-drawer .drawer-notification { align-items:start;grid-template-columns:38px minmax(0,1fr); }
.notification-drawer .drawer-notification.unread { border-left:3px solid var(--green);padding-left:8px; }
.notification-drawer .drawer-notification strong { font-size:14px; }
.notification-drawer .drawer-notification small { font-size:12px;white-space:pre-wrap; }
.notification-item-actions { display:flex!important;flex-wrap:wrap;gap:7px;margin-top:8px; }
.notification-pagination { display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:12px 0; }
.notification-drawer .drawer-header { gap:12px; }
.notification-drawer .drawer-header .icon-button { flex:none; }
.notification-coverage{margin-top:16px;padding:12px;border:1px solid #dce9e2;border-radius:13px;background:#f6faf7;color:var(--muted);font-size:10px;line-height:1.55}
@media(max-width:600px){.notification-drawer{width:100%;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom))}.drawer-list{padding-right:3px}}
.toast-stack { position: fixed; right: 18px; bottom: 18px; z-index: 2000; display: grid; gap: 9px; width: min(390px, calc(100vw - 36px)); }
.toast { display: grid; grid-template-columns: auto 1fr auto; align-items: start; gap: 10px; padding: 14px; color: #fff; border-radius: 12px; background: #17313f; box-shadow: var(--shadow-md); animation: toastIn .2s ease; }
.toast.success { background: #0f7542; }
.toast.error { background: #a92d27; }
.toast > span:first-child { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: rgba(255,255,255,.13); }
.toast strong { display: block; font-size: 11px; }
.toast p { margin: 2px 0 0; color: rgba(255,255,255,.78); font-size: 9px; }
.toast button { color: rgba(255,255,255,.75); border: 0; background: transparent; }
@keyframes toastIn { from { transform: translateY(10px); opacity: 0; } }
.noscript-message { position: fixed; inset: 20px; z-index: 9999; display: grid; place-items: center; padding: 30px; color: #fff; border-radius: 15px; background: #a92d27; }

/* Responsive */
@media (max-width: 1180px) {
    :root { --sidebar-width: 246px; }
    .site-nav { gap: 17px; }
    .header-actions .text-link { display: none; }
    .property-grid, .agent-grid, .course-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .shortcut-grid { grid-template-columns: repeat(5, minmax(90px, 1fr)); }
    .dashboard-columns { grid-template-columns: 1fr; }
    .topbar-portal-link { display: none; }
    .record-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 980px) {
    .site-nav { position: fixed; top: 76px; left: 20px; right: 20px; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow-lg); }
    .site-nav.open { display: flex; }
    .site-nav a { padding: 10px; border-radius: 8px; }
    .site-nav a:hover { background: var(--surface-2); }
    .site-nav a::after { display: none; }
    .mobile-menu-toggle { display: grid; }
    .header-actions { margin-left: 0; }
    .hero-grid { grid-template-columns: 1fr; gap: 40px; }
    .hero-section { padding-top: 65px; }
    .search-panel { max-width: 680px; }
    .trust-grid { grid-template-columns: repeat(2, 1fr); }
    .trust-grid div:nth-child(2) { border-right: 0; }
    .trust-grid div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .property-detail-grid { grid-template-columns: 1fr; }
    .sticky-card { position: static; }
    .franchise-grid { grid-template-columns: 1fr; }
    .franchise-visual { order: 2; }
    .newsletter-box { grid-template-columns: 1fr; }
    .footer-grid { grid-template-columns: 1.5fr 1fr 1fr; }
    .footer-grid > div:last-child { grid-column: 1 / -1; }
    .login-shell { grid-template-columns: 1fr; }
    .login-brand-panel { min-height: 560px; }
    .admin-app { grid-template-columns: 1fr; }
    .admin-sidebar { position: fixed; inset: 0 auto 0 0; width: min(300px, 88%); transform: none; opacity: 0; visibility: hidden; pointer-events: none; contain: layout; transition: opacity .18s ease, visibility .18s ease; }
    .admin-sidebar.open { opacity: 1; visibility: visible; pointer-events: auto; }
    .sidebar-close { display: grid; }
    .sidebar-overlay { position: fixed; inset: 0; z-index: 350; display: none; background: rgba(8,24,33,.52); }
    .sidebar-overlay.show { display: block; }
    .global-search { width: min(420px, 50vw); }
    .calendar-layout, .stats-grid { grid-template-columns: 1fr; }
    .action-banner-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 740px) {
    .shell { width: min(100% - 26px, var(--shell)); }
    .site-header { height: 66px; }
    .site-nav { top: 66px; }
    .brand img { width: 145px; }
    .header-actions .button { display: none; }
    .hero-section { min-height: auto; padding: 55px 0 62px; }
    .hero-copy h1 { font-size: 43px; }
    .hero-copy > p { font-size: 15px; }
    .hero-actions { display: grid; }
    .hero-actions .button { width: 100%; }
    .hero-trust { display: grid; gap: 8px; }
    .search-panel { padding: 20px; }
    .form-grid.two, .form-grid.three, .form-grid.four { grid-template-columns: 1fr; }
    .trust-strip { margin-top: 0; padding-top: 18px; }
    .trust-grid { padding: 12px; }
    .trust-grid div { padding: 12px; }
    .section { padding: 65px 0; }
    .section-heading.split { align-items: flex-start; flex-direction: column; }
    .property-grid, .blog-grid, .service-grid, .agent-grid, .course-grid, .record-card-grid { grid-template-columns: 1fr; }
    .property-image { height: 225px; }
    .franchise-visual { min-height: 340px; transform: scale(.82); margin: -35px; }
    .newsletter-box { padding: 30px 22px; }
    .newsletter-form { flex-direction: column; }
    .footer-grid { grid-template-columns: 1fr; }
    .footer-grid > div:last-child { grid-column: auto; }
    .footer-bottom { flex-direction: column; }
    .property-title-row { align-items: flex-start; flex-direction: column; }
    .property-price-large { justify-items: start; }
    .gallery-main { height: 330px; }
    .gallery-thumbnails { grid-template-columns: repeat(3, 1fr); }
    .property-fact-bar { grid-template-columns: repeat(2, 1fr); }
    .property-fact-bar > div:nth-child(2) { border-right: 0; }
    .property-fact-bar > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .detail-definition-grid, .technical-grid { grid-template-columns: 1fr; }
    .modal-dialog { padding: 24px 18px; }
    .login-brand-panel { min-height: 490px; padding: 30px 25px; }
    .login-brand-copy h1 { font-size: 42px; }
    .login-form-panel { padding: 25px 14px; }
    .login-card { padding: 25px 20px; }
    .admin-topbar { padding: 0 12px; }
    .global-search { display: none; }
    .topbar-portal-link { display: none; }
    .admin-language-select .re-language select { width: 54px; min-height: 36px; padding-inline: 7px 19px; }
    .user-menu-button > span:nth-child(2), .user-menu-button > svg { display: none; }
    .admin-main { padding: 18px 13px 30px; }
    .admin-page-header { align-items: flex-start; flex-direction: column; }
    .page-actions { width: 100%; }
    .page-actions .button { flex: 1; }
    .metric-grid { grid-template-columns: 1fr; }
    .shortcut-grid { grid-template-columns: repeat(3, 1fr); }
    .action-banner-grid { grid-template-columns: 1fr; }
    .module-toolbar { align-items: stretch; flex-direction: column; }
    .toolbar-left, .toolbar-right { flex-wrap: wrap; }
    .toolbar-search { width: 100%; }
    .template-grid { grid-template-columns: 1fr; }
    .calendar-day { min-height: 80px; padding: 4px; }
    .calendar-event { padding: 3px; font-size: 0; }
    .calendar-event::before { content: "•"; font-size: 10px; }
    .placeholder-module { grid-template-columns: 1fr; }
    .placeholder-copy { padding: 30px 22px; }
    .placeholder-visual { min-height: 280px; }
    .quick-create-grid { grid-template-columns: 1fr; }
    .admin-modal-body { padding: 17px; }
    .admin-modal-dialog.modal-admin-page { width: calc(100vw - 10px) !important; height: calc(100dvh - 10px); max-height: calc(100dvh - 10px); border-radius: 14px; }
    .modal-admin-page .admin-modal-header { padding: 13px 15px; }
    .modal-admin-page .admin-modal-header h2 { font-size: 18px; }
    .admin-page-tools { right: 7px; bottom: 7px; }
    .form-actions { margin: 0 -17px -17px; padding: 13px 17px; }
}

/* ========================================================================
   Extended prototype: installer, content pages, complete modules and print
   ======================================================================== */
.empty-inline { display:flex; align-items:center; justify-content:center; gap:9px; min-height:74px; padding:18px; color:var(--muted); font-size:11px; text-align:center; }
.empty-inline svg { width:20px; height:20px; }
.compact-note { margin-top:12px; padding:10px 12px; color:#627581; border:1px solid var(--line); border-radius:9px; background:#f7fafb; font-size:10px; line-height:1.55; }
.kiosk-platform-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.android-kiosk-card{border-color:#9bd0b3;background:linear-gradient(145deg,#fff,#f0faf4)}.android-kiosk-enrollment{display:grid;grid-template-columns:112px minmax(0,1fr);gap:12px;align-items:center;margin-top:14px;padding:11px;border:1px solid #cce5d7;border-radius:12px;background:#fff}.android-kiosk-enrollment>div{width:112px;height:112px;padding:5px;border:1px solid #dbe9e1;border-radius:9px;background:#fff}.android-kiosk-enrollment svg{display:block;width:100%;height:100%}.android-kiosk-enrollment span{display:grid;gap:5px;min-width:0}.android-kiosk-enrollment strong{color:#075f38;font-size:11px}.android-kiosk-enrollment small{color:#667a6f;font-size:9px;line-height:1.45}.kiosk-platform-grid .record-card-footer>span{display:flex;flex-wrap:wrap;gap:6px}
@media(max-width:1180px){.kiosk-platform-grid{grid-template-columns:1fr}.android-kiosk-enrollment{grid-template-columns:96px minmax(0,1fr)}.android-kiosk-enrollment>div{width:96px;height:96px}}
.mini-chip { display:inline-flex; margin:2px; padding:4px 7px; color:var(--green-dark); border:1px solid #cbe6d7; border-radius:999px; background:var(--green-soft); font-size:8px; font-weight:800; }
.mini-chip.is-muted { color:#6f7e77; border-color:#d8dfdb; background:#f3f5f4; opacity:.78; }
.prestige-toggle{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:5px 9px;border:1px solid #d7dfda;border-radius:999px;background:#fff;color:#617069;font:inherit;font-size:9px;font-weight:850;white-space:nowrap;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}
.prestige-toggle .icon{width:13px;height:13px}.prestige-toggle:hover{border-color:#188956;color:#087747}.prestige-toggle.is-active{border-color:#d2a83d;background:#fff8e5;color:#6d4c05;box-shadow:inset 0 0 0 1px rgba(210,168,61,.12)}.prestige-toggle:disabled{cursor:wait;opacity:.55}
.property-visibility-section{border-color:#e5d7ac;background:linear-gradient(145deg,#fffefa,#fffaf0)}
.prestige-selection-grid .checkbox-field:first-child{border-color:#d8bc69;background:#fff7dd;color:#5e4308}.prestige-selection-note{border-left:4px solid #c49a2f;background:#fffaf0}.prestige-selection-note>span{color:#9a7318}
.property-history-list{display:grid;gap:8px}.property-history-list article{display:grid;grid-template-columns:145px minmax(0,1fr) 170px;gap:12px;align-items:center;padding:11px 13px;border:1px solid #dfe8e3;border-radius:12px;background:#fbfdfc}.property-history-list article>span{color:#6e8078;font-size:10px;font-weight:750}.property-history-list article>div{display:grid;gap:3px;min-width:0}.property-history-list article strong{font-size:12px}.property-history-list article small{overflow:hidden;color:#586c63;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.property-history-list article em{color:#47705e;font-size:10px;font-style:normal;text-align:right}@media(max-width:720px){.property-history-list article{grid-template-columns:1fr}.property-history-list article em{text-align:left}}
.visure-service-catalog { margin-bottom:18px; }
.visure-service-catalog > summary { cursor:pointer; list-style:none; }
.visure-service-catalog > summary::-webkit-details-marker { display:none; }
.visure-service-groups { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.visure-service-groups > div { min-width:0; padding:12px; border:1px solid var(--line); border-radius:10px; background:#fbfdfc; }
.visure-service-groups > div > strong { color:var(--green-dark); font-size:11px; }
.visure-service-groups p { margin:8px 0 0; }
.profile-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:14px 0; border:1px solid var(--line); border-radius:10px; overflow:hidden; }
.profile-detail-grid > div { min-width:0; padding:11px 13px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; }
.profile-detail-grid dt { color:#728079; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.profile-detail-grid dd { margin:4px 0 0; overflow-wrap:anywhere; color:#20352c; font-size:12px; font-weight:700; }
.visure-provider-section { margin:10px 0 0; padding:14px; border:1px solid #cfe6da; border-radius:12px; background:#f8fcfa; }
.visure-command-center{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);gap:24px;align-items:center;margin-bottom:18px;padding:26px;border-radius:19px;background:radial-gradient(circle at 90% 10%,rgba(255,255,255,.13),transparent 28%),linear-gradient(135deg,#0b3d2d,#087747);color:#fff;box-shadow:0 14px 34px rgba(9,67,44,.15)}.visure-command-copy>span{color:#bfe3d1;font-size:10px;font-weight:900;letter-spacing:.14em}.visure-command-copy h2{margin:6px 0 8px;font-size:clamp(22px,2.4vw,32px)}.visure-command-copy p{max-width:720px;margin:0;color:#d5e9df;line-height:1.55}.visure-command-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.visure-command-actions .button-secondary{border-color:#ffffff55;background:#ffffff12;color:#fff}.visure-pipeline{display:grid;gap:9px;padding:16px;border:1px solid #ffffff2b;border-radius:15px;background:#ffffff0d}.visure-pipeline span{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:750}.visure-pipeline b{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#fff;color:#087747}.visure-pipeline i{width:2px;height:12px;margin-left:13px;background:#ffffff42}.visure-health-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px}.visure-health-card{display:flex;gap:13px;min-width:0;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}.visure-health-card>span{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:11px;background:#edf7f2;color:#087747}.visure-health-card small,.visure-health-card strong,.visure-health-card p{display:block}.visure-health-card small{color:#728178;font-size:9px;font-weight:900;letter-spacing:.08em}.visure-health-card strong{margin:3px 0;color:#173b2d}.visure-health-card p{margin:0;color:#68786f;font-size:11px;line-height:1.4}.visure-health-card.is-off{border-color:#ead7b8;background:#fffaf1}.visure-health-card.is-off>span{background:#fff0d5;color:#9a6612}.visure-request-wizard{display:grid;gap:13px}.visure-request-wizard .form-section{margin:0}.visure-form-lead{border-color:#b9ddc9;background:linear-gradient(145deg,#fbfefc,#f0f8f4)}.visure-legal-check{padding:13px 15px;border:1px solid #c6dfd1;border-radius:11px;background:#f3faf6}.visure-guidance{border-left:4px solid #168954;background:#eef9f3;color:#315d4a}.conditional-field-locked{position:relative;opacity:.42;filter:grayscale(.35);pointer-events:none}.conditional-field-locked>span:first-child:after{content:" · non richiesto";color:#7b8781;font-size:8px;font-weight:700}.conditional-field-active{opacity:1;filter:none}.conditional-field-active:has([required])>span:first-child:after{content:" *";color:#b42626}.conditional-guidance{margin:0 0 13px;border-left:4px solid #168954;background:#f0f9f4;color:#365f4d}.conditional-panel-locked{background:linear-gradient(145deg,#fafbfa,#f1f3f2)}
@media(max-width:980px){.visure-command-center{grid-template-columns:1fr}.visure-pipeline{grid-template-columns:repeat(3,1fr);align-items:center}.visure-pipeline i{width:auto;height:2px;margin:0}.visure-health-grid{grid-template-columns:1fr}}
@media(max-width:740px){.visure-service-groups,.profile-detail-grid{grid-template-columns:1fr}.profile-detail-grid>div{border-right:0}.visure-command-center{padding:20px 16px}.visure-command-actions .button{width:100%;justify-content:center}.visure-pipeline{grid-template-columns:1fr}.visure-pipeline i{width:2px;height:9px;margin-left:13px}.visure-health-card{padding:14px}}
.progress-inline { display:inline-block; overflow:hidden; width:92px; height:7px; margin-right:7px; vertical-align:middle; border-radius:999px; background:#e7edf0; }
.progress-inline span, .progress-track span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--green),var(--blue)); }
.progress-track { overflow:hidden; width:100%; height:7px; margin-top:12px; border-radius:999px; background:#e8eef1; }
.mini-spinner { width:17px !important; height:17px !important; border-width:2px !important; }

.tab-strip { display:flex; gap:6px; margin:0 0 15px; padding:5px; border:1px solid var(--line); border-radius:11px; background:#fff; box-shadow:var(--shadow-sm); }
.tab-strip button { flex:0 0 auto; min-height:36px; min-width:max-content; padding:8px 15px; color:#657784; border:0; border-radius:8px; background:transparent; font-size:10px; font-weight:800; }
.tab-strip button:hover { background:var(--surface-2); }
.tab-strip button.active { color:#fff; background:linear-gradient(135deg,var(--green),var(--green-dark)); }

.integration-list { display:grid; gap:10px; }
.integration-card { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:14px; padding:14px; border:1px solid var(--line); border-radius:11px; background:#fbfcfd; }
.integration-card:hover { border-color:#c2ddcf; background:#fff; }
.integration-icon { display:grid; place-items:center; width:46px; height:46px; color:var(--green-dark); border-radius:13px; background:var(--green-soft); }
.integration-icon svg { width:22px; height:22px; }
.integration-card h3 { margin:0 0 3px; font-size:12px; }
.integration-card p { margin:0; color:var(--muted); font-size:9px; }
.integration-meta { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-top:7px; color:#71838e; font-size:8px; }

.settings-layout { display:grid; grid-template-columns:300px minmax(0,1fr); gap:18px; align-items:start; }
.settings-summary { position:sticky; top:0; display:grid; justify-items:center; gap:11px; padding:28px 22px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; box-shadow:var(--shadow-sm); text-align:center; }
.settings-summary h2 { margin:5px 0 0; font-size:20px; }
.settings-summary > p { margin:0; color:var(--muted); font-size:11px; }
.profile-avatar-large, .settings-hero-icon { display:grid; place-items:center; width:88px; height:88px; color:#fff; border-radius:27px; background:linear-gradient(135deg,var(--green),var(--blue)); box-shadow:0 16px 30px rgba(20,151,82,.2); font-size:25px; font-weight:850; }
.settings-hero-icon svg { width:40px; height:40px; }
.profile-facts { display:grid; width:100%; gap:8px; margin:10px 0; padding-top:15px; border-top:1px solid var(--line); text-align:left; }
.profile-facts span { display:flex; align-items:center; gap:8px; color:#536873; font-size:10px; }
.profile-facts svg { width:14px; height:14px; color:var(--green-dark); }

.upload-field { padding:14px; border:1px dashed #b8d5c7; border-radius:10px; background:#f3faf6; }
.upload-field input[type="file"] { min-height:auto; padding:9px; background:#fff; }
.upload-field small { color:var(--muted); font-size:9px; }
.upload-field code { color:var(--green-dark); }
.form-section-title > div { min-width:0; }
.form-section-title small { display:block; margin-top:2px; color:var(--muted); font-size:8px; }

.modal-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.course-player { display:grid; gap:16px; }
.course-player-screen { display:grid; place-items:center; min-height:230px; padding:30px; color:#fff; border-radius:14px; background:linear-gradient(135deg,#0b6448,#0d7fa4); text-align:center; }
.course-player-screen svg { width:54px; height:54px; margin-bottom:10px; }
.course-player-screen strong { font-size:18px; }
.course-player-screen small { margin-top:5px; color:rgba(255,255,255,.72); }
.lesson-list { display:grid; max-height:300px; overflow:auto; border:1px solid var(--line); border-radius:11px; }
.lesson-row { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:10px; padding:11px 13px; border-bottom:1px solid var(--line); }
.lesson-row:last-child { border-bottom:0; }
.lesson-row > span { display:grid; place-items:center; width:30px; height:30px; color:var(--green-dark); border-radius:8px; background:var(--green-soft); }
.lesson-row div { display:grid; }
.lesson-row strong { font-size:10px; }
.lesson-row small { color:var(--muted); font-size:8px; }
.guide-preview { color:#364c59; line-height:1.75; }
.guide-preview .lead { color:var(--ink); font-size:16px; font-weight:650; }
.guide-preview p { white-space:pre-wrap; }

.guide-manual-hero{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);gap:24px;align-items:center;margin-bottom:16px;padding:clamp(22px,3vw,34px);border-radius:20px;background:linear-gradient(135deg,#073d2a,#0b7048);color:#fff;box-shadow:0 18px 55px rgba(5,61,41,.2)}
.guide-manual-hero small{display:block;margin-bottom:8px;color:#bce4ce;font-weight:800;letter-spacing:.08em}
.guide-manual-hero h2{margin:0 0 10px;color:#fff;font-size:clamp(25px,3vw,38px);line-height:1.08}
.guide-manual-hero p{max-width:800px;margin:0;color:rgba(255,255,255,.82);line-height:1.55}
.guide-manual-stats{display:grid;gap:8px}
.guide-manual-stats span{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.08);font-size:12px}
.guide-manual-stats strong{font-size:20px;color:#fff}
.guide-manual-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.guide-manual-card{display:flex;min-width:0;min-height:250px;flex-direction:column;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .18s ease}
.guide-manual-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.guide-manual-card header,.guide-manual-card footer{display:flex;align-items:center;gap:10px}
.guide-manual-card header>div{display:grid;min-width:0}
.guide-manual-card header small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.07em}
.guide-manual-card header strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.guide-manual-icon{display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;border-radius:11px;background:#e9f5ee;color:var(--green)}
.guide-origin{margin-left:auto;padding:4px 8px;border-radius:999px;background:#edf7f1;color:var(--green);font-size:10px;font-weight:800}
.guide-manual-card h3{margin:18px 0 8px;color:var(--ink);font-size:19px;line-height:1.18}
.guide-manual-card p{display:-webkit-box;overflow:hidden;margin:0;color:var(--muted);line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.guide-manual-card footer{justify-content:space-between;margin-top:auto;padding-top:18px;border-top:1px solid var(--line)}
.guide-manual-card footer>span{color:var(--muted);font-size:10px}
@media(max-width:1100px){.guide-manual-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.guide-manual-hero{grid-template-columns:minmax(0,1fr)}.guide-manual-grid{grid-template-columns:minmax(0,1fr)}.guide-manual-card{min-height:220px}}
.agenda-button { width:100%; color:inherit; border:0; background:transparent; text-align:left; }
.agenda-event-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:7px;min-width:0}.agenda-event-row .agenda-item{min-width:0}.agenda-event-delete{width:40px;min-width:40px;border:1px solid #f0c9c7;border-radius:10px;background:#fff6f5;color:#b3261e;display:grid;place-items:center}.agenda-event-delete:hover,.agenda-event-delete:focus-visible{background:#b3261e;color:#fff}.agenda-event-delete svg{width:17px;height:17px}
.calendar-day { border-top:0; border-left:0; color:inherit; text-align:left; cursor:pointer; }
.calendar-day:hover { z-index:1; box-shadow:inset 0 0 0 2px rgba(20,151,82,.25); }

/* Public internal content pages */
.page-hero { position:relative; overflow:hidden; padding:82px 0 76px; color:#fff; background:#0d6044 url('../images/hero-pattern.svg') center/cover no-repeat; }
.page-hero::after { content:""; position:absolute; right:-120px; top:-210px; width:520px; height:520px; border:1px solid rgba(255,255,255,.13); border-radius:50%; box-shadow:0 0 0 75px rgba(255,255,255,.025),0 0 0 150px rgba(255,255,255,.018); }
.page-hero .shell { position:relative; z-index:1; }
.page-hero-icon { display:grid; place-items:center; width:58px; height:58px; margin-bottom:18px; border-radius:16px; background:rgba(255,255,255,.13); }
.page-hero-icon svg { width:28px; height:28px; }
.page-hero h1 { max-width:760px; margin:3px 0 12px; font-size:clamp(38px,5vw,64px); line-height:1.03; letter-spacing:-.045em; }
.page-hero p { max-width:720px; margin:0; color:rgba(255,255,255,.75); font-size:17px; }
.content-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:35px; align-items:start; }
.content-main { min-width:0; color:#435865; font-size:15px; line-height:1.8; }
.content-main > h2 { margin:0 0 17px; color:var(--ink); font-size:32px; letter-spacing:-.035em; }
.content-main > p { margin:0 0 24px; }
.content-aside { position:sticky; top:100px; }
.content-aside .contact-card { display:grid; gap:12px; padding:24px; }
.content-aside h3 { margin:0; font-size:22px; }
.content-aside p { margin:0 0 7px; color:var(--muted); font-size:12px; line-height:1.65; }
.feature-content-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:28px; }
.feature-content-grid > div { padding:22px; border:1px solid var(--line); border-radius:13px; background:var(--surface-2); }
.feature-content-grid strong { color:var(--green-dark); font-size:16px; }
.feature-content-grid p { margin:7px 0 0; color:var(--muted); font-size:11px; line-height:1.6; }
.service-grid.two-col { grid-template-columns:repeat(2,minmax(0,1fr)); }
.step-list { display:grid; gap:13px; padding:0; margin:28px 0 0; counter-reset:steps; list-style:none; }
.step-list li { counter-increment:steps; display:grid; grid-template-columns:52px 1fr; column-gap:14px; padding:17px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:var(--shadow-sm); }
.step-list li::before { content:counter(steps); grid-row:1 / span 2; display:grid; place-items:center; width:42px; height:42px; color:#fff; border-radius:12px; background:var(--green); font-weight:850; }
.step-list strong { color:var(--ink); }
.step-list span { color:var(--muted); font-size:11px; }
.agency-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; }
.agency-grid article { padding:23px; border:1px solid var(--line); border-radius:14px; background:#fff; box-shadow:var(--shadow-sm); }
.agency-grid article > span { display:grid; place-items:center; width:48px; height:48px; color:#fff; border-radius:13px; background:linear-gradient(135deg,var(--green),var(--blue)); font-weight:850; }
.agency-grid h3 { margin:15px 0 5px; color:var(--ink); }
.agency-grid p { min-height:70px; margin:0 0 12px; color:var(--muted); font-size:11px; line-height:1.6; }
.agency-grid a { color:var(--green-dark); font-size:11px; font-weight:800; }
.contact-page-form { display:grid; gap:20px; padding:25px; border:1px solid var(--line); border-radius:15px; background:#fff; box-shadow:var(--shadow-sm); }
.faq { margin-bottom:10px; border:1px solid var(--line); border-radius:11px; background:#fff; }
.faq summary { padding:16px 18px; color:var(--ink); cursor:pointer; font-weight:750; }
.faq p { margin:0; padding:0 18px 18px; color:#526773; font-size:12px; white-space:pre-wrap; }

/* Installer */
.installer-body { min-height:100vh; padding:42px 18px; background:linear-gradient(145deg,#eef5f2,#edf4f8); }
.installer-shell { width:min(960px,100%); margin:0 auto; }
.installer-card { padding:34px; border:1px solid var(--line); border-radius:22px; background:#fff; box-shadow:var(--shadow-lg); }
.installer-card > img { width:190px; margin-bottom:25px; }
.installer-card h1 { margin:2px 0 8px; font-size:38px; letter-spacing:-.04em; }
.installer-card > p { max-width:760px; margin:0 0 25px; color:var(--muted); }
.check-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:23px 0; }
.check-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 13px; border:1px solid var(--line); border-radius:9px; background:#fafcfd; font-size:10px; }
.check-row b { padding:4px 7px; border-radius:999px; font-size:8px; }
.check-row.ok b { color:var(--green-dark); background:var(--green-soft); }
.check-row.bad b { color:var(--red-dark); background:var(--red-soft); }
.installer-form { margin-top:22px; }
.storage-choice { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.storage-choice label { display:flex; align-items:flex-start; gap:10px; padding:15px; border:1px solid var(--line); border-radius:11px; background:#fff; cursor:pointer; }
.storage-choice input { margin-top:4px; accent-color:var(--green); }
.storage-choice span { display:grid; }
.storage-choice strong { font-size:12px; }
.storage-choice small { margin-top:3px; color:var(--muted); font-size:9px; }
.installer-complete { display:grid; gap:12px; margin-top:22px; padding:22px; border:1px solid #c8e5d5; border-radius:14px; background:var(--green-soft); }
.installer-complete h2 { margin:0; }
.installer-complete p { margin:0; color:#496457; }
.installer-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:7px; }
.installer-card .alert ul { margin:8px 0 0; padding-left:20px; }

/* Print previews */
.print-document-body { min-height:100vh; padding:35px 18px 70px; color:#203743; background:#e8eef1; }
.print-toolbar { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; width:min(900px,100%); margin:0 auto 16px; }
.valuation-print-options{position:relative}.valuation-print-options>summary{list-style:none;cursor:pointer}.valuation-print-options>summary::-webkit-details-marker{display:none}.valuation-print-options>div{position:absolute;z-index:20;top:calc(100% + 8px);left:0;width:min(520px,calc(100vw - 36px));display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 15px 40px rgba(10,35,47,.16)}.valuation-print-options label{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:750}.valuation-print-options input{accent-color:var(--green)}
.print-sheet { width:min(900px,100%); min-width:0; min-height:1120px; margin:0 auto; padding:54px 58px 45px; overflow:hidden; background:#fff; box-shadow:0 18px 55px rgba(10,35,47,.18); }
.print-sheet-header { display:flex; align-items:flex-start; justify-content:space-between; gap:30px; padding-bottom:24px; border-bottom:3px solid var(--green); }
.print-sheet-header img { width:190px; }
.print-sheet-header > div { display:grid; justify-items:end; color:#536671; font-size:11px; text-align:right; }
.print-sheet-header strong { color:var(--ink); font-size:14px; }
.document-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:25px; margin:38px 0 28px; }
.document-heading span { color:var(--green-dark); font-size:9px; font-weight:850; letter-spacing:.13em; }
.document-heading h1 { margin:5px 0 3px; font-size:31px; letter-spacing:-.035em; }
.document-heading p { margin:0; color:var(--muted); }
.document-status { padding:8px 12px; color:var(--green-dark); border:1px solid #c4e2d2; border-radius:999px; background:var(--green-soft); font-size:10px; font-weight:850; text-transform:uppercase; }
.document-alert{display:flex;align-items:center;gap:12px;margin:-10px 0 20px;padding:12px 14px;border:1px solid #ecc876;border-radius:9px;background:#fff8e7;color:#6f4b00;font-size:10px}.document-alert strong{flex:none;text-transform:uppercase}.document-alert span{line-height:1.45}
.document-two-columns { display:grid; grid-template-columns:1fr 1fr; gap:17px; margin-bottom:24px; }
.document-box { padding:19px; border:1px solid var(--line); border-radius:10px; background:#fafcfd; }
.document-box h2, .document-notes h2 { margin:0 0 9px; color:var(--green-dark); font-size:12px; text-transform:uppercase; letter-spacing:.05em; }
.document-box p { margin:0; font-size:11px; line-height:1.7; }
.document-table { width:100%; border-collapse:collapse; margin:22px 0; font-size:11px; }
.document-table th { padding:11px; color:#fff; background:#123b4c; text-align:left; }
.document-table td { padding:13px 11px; border:1px solid var(--line); vertical-align:top; }
.key-value-table th { width:230px; color:var(--ink); border:1px solid var(--line); background:#f1f5f7; }
.document-totals { display:grid; justify-content:end; gap:2px; margin:25px 0; }
.document-totals > div { display:grid; grid-template-columns:150px 145px; gap:25px; padding:8px 12px; border-bottom:1px solid var(--line); }
.document-totals span { color:var(--muted); }
.document-totals strong { text-align:right; }
.document-totals .grand-total { color:#fff; border:0; border-radius:8px; background:var(--green-dark); }
.document-totals .grand-total span { color:rgba(255,255,255,.75); }
.document-notes { margin:28px 0; padding:20px; border-left:4px solid var(--green); background:#f4f8f6; }
.document-notes p { margin:0; font-size:11px; line-height:1.75; }
.valuation-result { margin:35px 0; padding:30px; color:#fff; border-radius:15px; background:linear-gradient(135deg,#0a7448,#0d7793); text-align:center; }
.valuation-result > span { color:rgba(255,255,255,.7); font-size:10px; text-transform:uppercase; letter-spacing:.08em; }
.valuation-result > div { display:grid; grid-template-columns:1fr 1.3fr 1fr; align-items:center; gap:15px; margin-top:15px; }
.valuation-result strong { font-size:17px; }
.valuation-result b { padding:18px; border-radius:11px; background:rgba(255,255,255,.13); font-size:22px; }
.valuation-result b small{display:block;margin-top:7px;color:rgba(255,255,255,.78);font-size:9px;font-weight:600}
.valuation-print-value-summary{display:flex;align-items:center;gap:16px;margin:14px 0 18px;padding:15px 18px;border:1px solid #b8d9c8;border-left:5px solid #087a45;border-radius:11px;background:#eef8f3}.valuation-print-value-summary span{color:#4c6559;font-size:9px;font-weight:900;letter-spacing:.08em}.valuation-print-value-summary strong{margin-left:auto;color:#075d37;font-size:22px}.valuation-print-value-summary small{color:#61736a;font-size:10px}
.valuation-method-report .document-table{margin-top:10px}.valuation-synthesis-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:11px 0}.valuation-synthesis-strip>span{display:grid;gap:4px;padding:11px;border:1px solid #dce8e2;border-radius:10px;background:#f7fbf9}.valuation-synthesis-strip small{color:#657970;font-size:9px;text-transform:uppercase}.valuation-synthesis-strip strong{color:#075d37;font-size:14px}.valuation-avm-evidence{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0;padding:13px 14px;border:1px solid #bcdcca;border-radius:11px;background:#eef8f3}.valuation-avm-evidence>div{display:grid;gap:2px}.valuation-avm-evidence span{color:#087a45;font-size:8px;font-weight:900;letter-spacing:.1em}.valuation-avm-evidence h3,.valuation-avm-evidence p{margin:0}.valuation-avm-evidence h3{font-size:13px}.valuation-avm-evidence p{color:#5f7068;font-size:9px}.valuation-unit-methods{margin-top:12px}.valuation-unit-methods h3{margin-bottom:0;color:#174a34;font-size:12px}
.valuation-calculation-audit{display:grid;gap:10px;margin:12px 0}.valuation-calculation-audit>h3{margin:0;color:#174a34;font-size:12px}.valuation-calculation-audit article{padding:11px 12px;border:1px solid #dce8e2;border-radius:10px;background:#fbfdfc;break-inside:avoid}.valuation-calculation-audit article>header{display:flex;justify-content:space-between;gap:12px;margin-bottom:5px;color:#123f2d}.valuation-calculation-audit article>p{margin:0 0 7px;font-size:9px;line-height:1.45}.valuation-calculation-audit article>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.valuation-calculation-audit section{padding:8px;border-radius:7px;background:#f1f7f4}.valuation-calculation-audit ul{margin:5px 0 0;padding-left:16px;font-size:8px;line-height:1.45}.valuation-calculation-audit.compact article{padding:9px}.valuation-comparable-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:10px 0}.valuation-comparable-stats>span{display:grid;gap:3px;padding:8px;border:1px solid #dce8e2;border-radius:8px;background:#f7fbf9}.valuation-comparable-stats small{color:#66786f;font-size:7px;font-weight:800;text-transform:uppercase}.valuation-comparable-stats strong{color:#075d37;font-size:11px}.valuation-comparables-complete{margin-top:8px;font-size:8px}.valuation-comparables-complete th{padding:7px 5px}.valuation-comparables-complete td{padding:7px 5px}.valuation-comparables-complete td small{display:block;margin-top:3px;color:#6d7b74;font-size:7px;line-height:1.35;overflow-wrap:anywhere}.valuation-method-report>.document-table,.valuation-unit-methods>.document-table{font-size:8px}.valuation-method-report>.document-table th,.valuation-method-report>.document-table td,.valuation-unit-methods>.document-table th,.valuation-unit-methods>.document-table td{padding:7px 5px}
.document-signatures { display:grid; grid-template-columns:1fr 1fr; gap:45px; margin:70px 0 35px; }
.document-signatures > div { display:grid; gap:25px; padding-top:10px; border-top:1px solid #7f9099; }
.document-signatures span { color:var(--muted); font-size:9px; text-transform:uppercase; }
.document-signatures strong { font-size:11px; }
.contract-text { min-height:560px; padding:30px 8px; color:#243b47; font-family:Georgia,'Times New Roman',serif; font-size:14px; line-height:1.9; }
.document-disclaimer { margin-top:35px; padding:12px; color:#825200; border:1px solid #efd8ad; border-radius:8px; background:#fff8e9; font-size:9px; }
.print-sheet-footer { display:flex; justify-content:space-between; gap:20px; margin-top:55px; padding-top:15px; color:#89979f; border-top:1px solid var(--line); font-size:8px; }

@media (max-width: 900px) {
    .settings-layout, .content-layout { grid-template-columns:1fr; }
    .settings-summary, .content-aside { position:static; }
    .agency-grid, .feature-content-grid { grid-template-columns:1fr; }
    .service-grid.two-col { grid-template-columns:1fr; }
    .check-list { grid-template-columns:1fr; }
    .print-sheet { padding:35px 28px; }
}
@media (max-width: 680px) {
    .tab-strip { display:grid; grid-auto-flow:column; grid-auto-columns:max-content; max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x proximity; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
    .tab-strip::-webkit-scrollbar { display:none; }
    .tab-strip button { white-space:nowrap; }
    .invoice-tabs button { scroll-snap-align:start; }
    .integration-card { grid-template-columns:auto 1fr; }
    .integration-card > .table-actions { grid-column:1 / -1; justify-content:flex-end; }
    .storage-choice, .document-two-columns, .document-signatures { grid-template-columns:1fr; }
    .installer-card { padding:23px 18px; }
    .installer-card h1 { font-size:30px; }
    .print-toolbar { flex-direction:column; gap:8px; }
    .print-toolbar > .button, .print-toolbar > button, .print-toolbar > details { width:100%; }
    .print-toolbar .button { min-height:44px; justify-content:center; }
    .valuation-print-options[open] > div { position:static; width:100%; margin-top:8px; grid-template-columns:repeat(2,minmax(0,1fr)); box-shadow:none; }
    .print-sheet { min-height:auto; padding:28px 20px; }
    .print-sheet-header { flex-direction:column; }
    .print-sheet-header > div { justify-items:start; text-align:left; }
    .document-heading { flex-direction:column; }
    .valuation-result > div { grid-template-columns:1fr; }
    .document-table { display:block; max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; }
    .document-table.key-value-table { display:table; table-layout:fixed; overflow:visible; }
    .document-table.key-value-table th { width:38%; }
    .document-table th, .document-table td { overflow-wrap:anywhere; word-break:normal; }
    .modal-card-grid { grid-template-columns:1fr; }
}
@media (max-width: 480px) {
    .print-document-body { padding:12px 8px 45px; }
    .print-sheet { padding:22px 14px; }
    .print-sheet-header img { width:min(170px,60vw); }
    .document-heading { margin:28px 0 20px; }
    .document-heading h1 { font-size:clamp(24px,8vw,31px); overflow-wrap:anywhere; }
    .valuation-print-options[open] > div { grid-template-columns:1fr; max-height:none; }
    .document-table.key-value-table, .document-table.key-value-table tbody { display:block; width:100%; }
    .document-table.key-value-table tr { display:grid; grid-template-columns:minmax(105px,.42fr) minmax(0,.58fr); width:100%; }
    .document-table.key-value-table th, .document-table.key-value-table td { display:block; width:auto; min-width:0; }
    .document-table.key-value-table th { border:1px solid var(--line); }
    .document-table.key-value-table td[colspan] { grid-column:auto; }
    .document-notes { padding:15px; }
    .valuation-unit-gallery { grid-template-columns:1fr; }
}

@media print {
    @page { size:A4 portrait; margin:8mm; }
    html, body { width:100% !important; max-width:none !important; min-width:0 !important; overflow:visible !important; }
    body.print-document-body { min-height:0; padding:0; color:#203743; background:#fff; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
    .print-toolbar { display:none !important; }
    [data-internal-report-section][hidden] { display:none !important; }
    .print-sheet { width:100% !important; max-width:none !important; min-height:0; margin:0 !important; padding:0; overflow:visible; box-shadow:none; }
    .document-heading,.print-sheet-header,.document-box,.valuation-result,.valuation-print-value-summary,.valuation-synthesis-strip,.document-notes,.document-signatures,.print-sheet-footer { break-inside:avoid; }
    .document-table { display:table !important; width:100% !important; table-layout:fixed; overflow:visible !important; break-inside:auto; }
    .document-table thead { display:table-header-group; }
    .document-table tr, .document-table img { break-inside:avoid; }
    .document-table th, .document-table td { padding:7px 6px; overflow-wrap:anywhere; }
    .key-value-table th { width:24%; }
    .document-disclaimer { color:#555; border-color:#bbb; background:#fff; }
    .r246269-report .print-sheet-footer { margin-top:12px; padding-top:8px; }
    .r246269-report .document-signatures { margin:32px 0 20px; }
    .r246269-report .document-disclaimer { margin-top:20px; }
}
/* RE.ONE Platform 1.5 - estensione portale, mappe, blog, agenzie e area cliente */
.page-hero.compact{padding:70px 0;background:linear-gradient(135deg,#073d2b,#0b6a46);color:#fff}.page-hero h1{font-size:clamp(2.2rem,5vw,4.5rem);margin:.35rem 0}.advanced-search,.contact-form{background:#fff;border:1px solid #dfe8e4;border-radius:20px;padding:24px;box-shadow:0 12px 40px #173b2d12}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.search-actions,.share-row,.property-title-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.results-map-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr);gap:28px;align-items:start}.search-map-panel{position:sticky;top:92px}.property-map{height:520px;border-radius:18px;overflow:hidden;border:1px solid #dce8e2;background:#eaf1ed}.property-map.tall{height:430px}.map-help{font-size:.85rem;color:#60746b}.compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.favorite-button{border:0;background:none;font-size:1.7rem;color:#d5232b;cursor:pointer}.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.blog-card{background:#fff;border:1px solid #e0e9e5;border-radius:20px;overflow:hidden}.blog-card img{width:100%;height:220px;object-fit:cover}.blog-card>div{padding:22px}.blog-card h2{font-size:1.35rem}.article-hero{padding:70px 0 40px;background:#f0f6f3}.shell.narrow{max-width:850px}.article-cover{width:100%;max-height:520px;object-fit:cover;border-radius:22px;margin:28px 0}.share-row button{padding:10px 14px;border:1px solid #d8e4de;background:#fff;border-radius:999px;cursor:pointer}.article-content{font-size:1.08rem;line-height:1.8}.article-content h2{margin-top:2rem}.comments-section{margin:50px 0}.comment{padding:18px;border-bottom:1px solid #e1e8e5}.comment-form{margin-top:24px}.agency-grid{display:grid;gap:20px}.agency-card{display:grid;grid-template-columns:230px 1fr;background:#fff;border:1px solid #dfe8e4;border-radius:20px;overflow:hidden}.agency-card>img{width:100%;height:100%;object-fit:cover}.agency-card>div{padding:24px}.agency-logo{width:110px;height:40px;object-fit:contain}.agency-hero{padding:90px 0;background-size:cover;background-position:center;color:#fff}.agency-hero img{width:160px;filter:brightness(0) invert(1);display:block;margin-bottom:24px}.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.team-card{text-align:center;padding:24px;border:1px solid #dfe8e4;border-radius:18px}.team-avatar{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;margin:auto;background:#0a8d55;color:#fff;font-weight:800;font-size:1.3rem}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:35px;align-items:start}.nearest-card{margin-top:14px;padding:16px;background:#eff7f3;border-radius:14px;display:flex;gap:14px}.auth-page{min-height:75vh;display:grid;place-items:center;padding:50px 20px;background:#eff5f2}.auth-card{width:min(460px,100%);background:#fff;padding:34px;border-radius:22px;box-shadow:0 18px 55px #08261a18}.auth-card>img{width:145px;margin-bottom:22px}.auth-separator{text-align:center;margin:18px 0;color:#708078}.customer-shell{display:grid;grid-template-columns:250px 1fr;max-width:1500px;margin:auto;min-height:75vh;background:#f4f7f6}.customer-nav{padding:30px;background:#0c3328;color:#fff;display:flex;flex-direction:column;gap:7px}.customer-nav a{color:#d5e8df;padding:11px 12px;border-radius:9px}.customer-nav a.active,.customer-nav a:hover{background:#ffffff18;color:#fff}.customer-main{padding:35px}.customer-main .panel{margin-top:24px}.chat-thread{display:flex;flex-direction:column;gap:12px}.chat-bubble{max-width:75%;padding:14px 18px;background:#edf5f1;border-radius:16px}.virtual-tour-placeholder{padding:45px;text-align:center;border:2px dashed #c7d9d0;border-radius:18px;background:#f5faf7}.alert{padding:13px 16px;border-radius:10px;margin:12px 0}.alert.success{background:#e4f7ec;color:#12663c}.alert.error{background:#fdeaea;color:#8f2020}
@media(max-width:980px){.results-map-layout,.contact-layout,.customer-shell{grid-template-columns:1fr}.search-map-panel{position:static}.form-grid.four{grid-template-columns:repeat(2,1fr)}.blog-grid{grid-template-columns:repeat(2,1fr)}.customer-nav{flex-direction:row;overflow:auto}.agency-card{grid-template-columns:180px 1fr}}
@media(max-width:650px){.form-grid.four,.compact-grid,.blog-grid,.team-grid{grid-template-columns:1fr}.agency-card{grid-template-columns:1fr}.agency-card>img{height:190px}.property-map{height:380px}.customer-main{padding:20px}.article-hero{padding:45px 0 25px}}
.cms-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.cms-nav{background:#102d25;color:#fff;padding:28px;display:flex;flex-direction:column;gap:8px}.cms-nav .admin-brand{margin-bottom:25px}.cms-nav>a:not(.admin-brand){color:#dbe9e3;padding:12px;border-radius:9px}.cms-nav>a.active,.cms-nav>a:hover{background:#ffffff16;color:#fff}.cms-main{padding:38px;background:#f4f7f6}.cms-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px}.cms-card-grid a,.cms-form,.cms-list{background:#fff;border:1px solid #dce7e2;border-radius:18px;padding:24px}.cms-card-grid a{color:inherit}.cms-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:25px}.cms-list{display:flex;flex-direction:column;gap:15px}.cms-list article{display:flex;gap:15px;padding-bottom:14px;border-bottom:1px solid #e4ebe8}.cms-list img{width:90px;height:70px;object-fit:cover;border-radius:10px}.cms-list article div{display:flex;flex-direction:column;gap:5px}.narrow-form{max-width:720px}.integration-checklist{max-width:720px;margin-top:22px;padding:22px;background:#e9f5ef;border-radius:16px}@media(max-width:850px){.cms-shell,.cms-two-cols{grid-template-columns:1fr}.cms-nav{position:static}.cms-card-grid{grid-template-columns:1fr}.cms-main{padding:20px}}


/* Voci di accesso nel menu mobile */
.site-nav-auth { display: none; }
@media (max-width: 900px) {
    .site-nav-auth { display: grid; gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line, #e3e8ec); }
    .site-nav-auth a { display: flex; align-items: center; gap: 8px; font-weight: 700; }
    .site-nav-auth .site-nav-cta { background: var(--green, #079447); color: #fff; padding: 10px 14px; border-radius: 10px; justify-content: center; }
}

/* Calcolatore rata: grafica coerente con le card della scheda */
.mortgage-widget { margin-top: 14px; padding: 16px; border: 1px solid #e3e8ec; border-radius: 14px; background: linear-gradient(160deg, #f6faf7, #eef5f0); }
.mortgage-widget > strong { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; font-size: 15px; }
.mortgage-widget .icon { width: 18px; height: 18px; color: var(--green, #079447); }
.mortgage-widget .form-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; }
@media (max-width: 640px) { .mortgage-widget .form-grid { grid-template-columns: 1fr; } }
.mortgage-result { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin: 12px 0 4px; padding: 12px 14px; background: #fff; border: 1px solid #dbe6de; border-radius: 10px; }
.mortgage-result strong { font-size: 20px; color: var(--green-dark, #05673a); }

/* Pannello ReoneGEST fisso: sidebar e contenuto scorrono in modo indipendente */
@media (min-width: 981px) {
    .admin-app { height: 100vh; overflow: hidden; }
    .admin-sidebar { position: sticky; top: 0; height: 100vh; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
    /* .admin-main è l'unico proprietario dello scroll. Un secondo viewport
       su .admin-content provocava il salto in alto e tagliava l'ultima riga. */
    .admin-workspace { height: 100vh; min-height: 0; }
    .admin-main { min-height: 0; overscroll-behavior: contain; scrollbar-gutter: stable; -webkit-overflow-scrolling: touch; }
    .admin-content { height: auto; min-height: 0; overflow: visible; }
    .admin-sidebar::-webkit-scrollbar { width: 8px; }
    .admin-sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.18); border-radius: 8px; }
}

/* Campo mancante o non valido */
.field-invalid input,.field-invalid select,.field-invalid textarea{border-color:#d43a2f!important;box-shadow:0 0 0 3px rgba(212,58,47,.15)!important;background:#fff7f6}
.field-invalid>span{color:#b3271d;font-weight:700}

/* Pulsanti di condivisione social */
.share-group{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center}
.share-btn{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line,#e3e8ec);border-radius:10px;background:#fff;color:#4c5f6b;cursor:pointer;transition:transform .15s ease,color .15s ease,border-color .15s ease}
.share-btn svg,.share-btn .icon{width:18px;height:18px}
.share-btn:hover{transform:translateY(-2px);color:#fff}
.share-wa:hover{background:#25d366;border-color:#25d366}
.share-fb:hover{background:#1877f2;border-color:#1877f2}
.share-li:hover{background:#0a66c2;border-color:#0a66c2}
.share-tg:hover{background:#229ed9;border-color:#229ed9}
.share-mail:hover{background:#546e7a;border-color:#546e7a}
.share-copy:hover{background:#079447;border-color:#079447}
.share-btn.share-done{background:#079447;border-color:#079447;color:#fff}
.share-btn.share-fail{background:#d43a2f;border-color:#d43a2f;color:#fff}

/* Icone social condivisione */
.share-icons,.share-buttons,.share-group{display:inline-flex;gap:8px;flex-wrap:wrap}
.share-icon,.share-btn{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid #dde5e9;background:#fff;cursor:pointer;transition:transform .15s ease,background .15s ease,color .15s ease}
.share-icon svg,.share-icon .icon,.share-btn svg,.share-btn .icon{width:18px;height:18px}
.share-icon:hover,.share-btn:hover{transform:translateY(-2px);color:#fff}
.share-wa:hover{background:#25d366;border-color:#25d366}
.share-fb:hover{background:#1877f2;border-color:#1877f2}
.share-in:hover{background:#0a66c2;border-color:#0a66c2}
.share-tg:hover{background:#229ed9;border-color:#229ed9}
.share-instagram:hover{background:#d62976;border-color:#d62976}
.share-mail:hover,.share-link:hover{background:#079447;border-color:#079447}

/* Simulatore mutuo */
.mortgage-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}
.mortgage-kpis>div{background:#fff;border:1px solid #dbe6de;border-radius:9px;padding:8px 10px}
.mortgage-kpis span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#5a6b76}
.mortgage-kpis strong{font-size:14px}
.mortgage-kpis .kpi-warn{color:#c0392b}
.mtg-note{grid-column:1/-1;margin:2px 0 0;font-size:11px;color:#b3271d;background:#fdeceb;border-radius:8px;padding:6px 8px}
.mortgage-actions{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.mortgage-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:8px;background:#fff;border-radius:8px;overflow:hidden}
.mortgage-table th,.mortgage-table td{border-bottom:1px solid #e6edea;padding:6px 8px;text-align:left}
.mortgage-table th{background:#f2f7f4;font-size:11px;text-transform:uppercase;letter-spacing:.03em}
@media(max-width:640px){.mortgage-kpis{grid-template-columns:repeat(2,1fr)}}

/* Blocco agenzia in fondo alla scheda */
.agency-strip-card{display:grid;grid-template-columns:1.6fr 1fr;gap:24px;background:linear-gradient(160deg,#f6faf7,#eef5f0);border:1px solid #dbe6de;border-radius:16px;padding:26px}
.agency-strip-card h2{margin:6px 0 8px}
.agency-strip-facts{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}
.agency-strip-facts li{display:flex;align-items:center;gap:8px;font-size:14px}
.agency-strip-facts .icon,.agency-strip-facts svg{width:16px;height:16px;color:#079447}
.agency-strip-social{display:flex;gap:8px;margin-top:14px}
.agency-strip-side{display:grid;gap:10px;align-content:start}
@media(max-width:820px){.agency-strip-card{grid-template-columns:1fr;padding:20px}}

/* Area cliente: caricamento immobile */
.upload-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.upload-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.upload-chip{background:#eef5f0;border:1px solid #dbe6de;border-radius:20px;padding:4px 12px;font-size:12px}

/* Chip categorie archivio */
.cat-chips{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.cat-chip{border:1px solid #dbe6de;background:#fff;border-radius:20px;padding:6px 14px;font-size:12px;font-weight:700;cursor:pointer;color:#41525c}
.cat-chip:hover{border-color:#079447;color:#079447}
.cat-chip.active{background:#087443;border-color:#087443;color:#fff}

/* Simulatore mutuo: KPI e piano di ammortamento */
.mortgage-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.mortgage-kpis > div { background: #fff; border: 1px solid #dbe6de; border-radius: 8px; padding: 8px 10px; }
.mortgage-kpis span { display: block; font-size: 11px; color: #5b6f7a; }
.mortgage-kpis strong { font-size: 14px; color: #14232d; }
@media (max-width: 520px) { .mortgage-kpis { grid-template-columns: 1fr; } }
.amort-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.amort-table th { text-align: left; padding: 7px 8px; background: #eef4f0; color: #2c6b4a; font-weight: 800; position: sticky; top: 0; }
.amort-table td { padding: 6px 8px; border-bottom: 1px solid #eef1f3; }
.amort-table tr:nth-child(even) td { background: #fafcfb; }
#mtg-plan { max-height: 320px; overflow-y: auto; border: 1px solid #dbe6de; border-radius: 10px; }

/* Blocco agenzia in fondo alla scheda immobile */
.agency-cta-card { display: grid; grid-template-columns: 1.35fr 1fr; gap: 26px; padding: 26px; background: linear-gradient(150deg, #f6faf7, #eef5f0); border: 1px solid #dbe6de; border-radius: 16px; }
.agency-cta-main h2 { margin: 6px 0 8px; font-size: 24px; }
.agency-cta-data { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 8px; }
.agency-cta-data li { display: flex; align-items: center; gap: 8px; font-size: 14px; color: #33454f; }
.agency-cta-data .icon { width: 16px; height: 16px; color: var(--green, #079447); flex: none; }
.agency-cta-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.agency-cta-side { background: #fff; border: 1px solid #dbe6de; border-radius: 12px; padding: 18px; }
.agency-cta-side p { font-size: 13px; color: #4c5f6b; margin: 6px 0 12px; }
@media (max-width: 900px) { .agency-cta-card { grid-template-columns: 1fr; padding: 18px; } }

/* Icone social nella barra di condivisione */
.share-group { display: inline-flex; gap: 8px; margin-left: 8px; vertical-align: middle; }
.share-btn { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid #dbe6de; border-radius: 10px; background: #fff; cursor: pointer; transition: transform .15s ease, background .15s ease, border-color .15s ease; }
.share-btn .icon { width: 18px; height: 18px; color: #4c5f6b; transition: color .15s ease; }
.share-btn:hover { transform: translateY(-2px); }
.share-btn.share-wa:hover { background: #25d366; border-color: #25d366; }
.share-btn.share-fb:hover { background: #1877f2; border-color: #1877f2; }
.share-btn.share-li:hover { background: #0a66c2; border-color: #0a66c2; }
.share-btn.share-tg:hover { background: #26a5e4; border-color: #26a5e4; }
.share-btn.share-mail:hover, .share-btn.share-copy:hover { background: var(--green, #079447); border-color: var(--green, #079447); }
.share-btn:hover .icon { color: #fff; }

/* Finestre modali: il contenuto e i pulsanti finali devono restare sempre raggiungibili */
.admin-modal { align-items: start; padding: 16px 16px 24px; overflow-y: auto; }
.admin-modal-dialog { max-height: none; margin: 12px auto 40px; overflow: visible; }
.admin-modal-body { max-height: none; overflow: visible; padding-bottom: 8px; }
.admin-modal-dialog .form-actions { position: sticky; bottom: 0; z-index: 3; margin-top: 14px; padding: 14px 24px; background: rgba(255,255,255,.97); backdrop-filter: blur(8px); border-top: 1px solid var(--line); border-radius: 0 0 var(--radius-lg) var(--radius-lg); }
@supports (height: 100dvh) { .admin-modal { max-height: 100dvh; } }
@media (max-width: 700px) {
    .admin-modal { padding: 8px 8px 20px; }
    .admin-modal-dialog { margin: 8px auto 32px; }
    .admin-modal-dialog .form-actions { padding: 12px 16px; flex-wrap: wrap; gap: 8px; }
    .admin-modal-dialog .form-actions .button { flex: 1 1 auto; }
}

/* Gestore media: anteprime, riordino, copertina */
.media-manager { border: 1px solid var(--line, #e3e8ec); border-radius: 12px; padding: 14px; background: #fbfdfc; }
.media-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.media-head strong { font-size: 13px; }
.media-head-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; flex-wrap: wrap; }
.media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(132px, 1fr)); gap: 10px; }
.media-tile { position: relative; margin: 0; border: 1px solid #dbe6de; border-radius: 10px; overflow: hidden; background: #fff; cursor: grab; transition: transform .15s ease, box-shadow .15s ease; scroll-margin-block: 96px; }
.media-tile:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(9,27,37,.12); }
.media-tile.dragging { opacity: .45; cursor: grabbing; }
.media-tile img { display: block; width: 100%; height: 96px; object-fit: cover; }
.media-doc { display: grid; place-items: center; height: 96px; background: #eef4f0; }
.media-doc .icon { width: 30px; height: 30px; color: var(--green, #079447); }
.media-tile figcaption { padding: 6px 8px; font-size: 11px; color: #4c5f6b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.media-badge { position: absolute; top: 6px; left: 6px; z-index: 1; pointer-events: none; padding: 2px 7px; border-radius: 6px; background: var(--green, #079447); color: #fff; font-size: 9px; font-weight: 800; letter-spacing: .04em; }
.media-tools { position: static; z-index: 2; display: flex; gap: 4px; padding: 0 7px 7px; flex-wrap: wrap; opacity: 1; }
.media-tools button, .media-tools a { display: grid; place-items: center; width: 26px; height: 26px; border: 0; border-radius: 7px; background: rgba(255,255,255,.94); cursor: pointer; box-shadow: 0 2px 6px rgba(9,27,37,.18); }
.media-tools .media-grip { touch-action: none; cursor: grab; font-size: 20px; line-height: 1; color: #24483a; user-select: none; -webkit-user-select: none; }
.media-tools .media-grip:active { cursor: grabbing; background: #e4f4eb; }
.media-tools .icon { width: 14px; height: 14px; color: #33454f; }
.media-tools button[data-media-remove]:hover { background: #d43a2f; }
.media-tools button[data-media-cover]:hover { background: var(--green, #079447); }
.media-tools button:hover .icon, .media-tools a:hover .icon { color: #fff; }
.media-empty { padding: 16px; text-align: center; font-size: 12px; color: #5b6f7a; border: 1px dashed #cfdcd5; border-radius: 10px; }
.document-upload-preview { display: grid; grid-template-columns: minmax(120px,220px) 1fr; gap: 14px; align-items: center; margin-top: 12px; padding: 12px; border: 1px solid #d7e3dc; border-radius: 12px; background: #f8fcfa; }
.document-upload-preview img,.document-upload-preview iframe { display: block; width: 100%; height: 180px; object-fit: contain; border: 0; border-radius: 8px; background: #fff; }
.document-upload-preview>div:last-child { display: grid; gap: 8px; overflow-wrap: anywhere; }
.document-row-preview { float: left; width: 46px; height: 46px; margin-right: 10px; border-radius: 7px; object-fit: cover; background: #eef4f0; }
@media (hover:none), (max-width:820px) {
  .media-head { align-items: flex-start; flex-direction: column; }
  .media-head-actions { width: 100%; justify-content: flex-start; }
  .media-head-actions .button { min-height: 42px; }
  .media-tools { position: static; opacity: 1; padding: 0 7px 7px; flex-wrap: wrap; }
  .media-tools button, .media-tools a { width: 38px; height: 38px; border: 1px solid #d7e3dc; box-shadow: none; }
  .media-grid { grid-template-columns: repeat(auto-fill, minmax(145px, 1fr)); }
  .document-upload-preview { grid-template-columns: 1fr; }
}

/* ============================================================
   TEMA PORTALE — palette bandiera italiana (verde/bianco/rosso)
   ============================================================ */

/* Barra filtri a pillole, stile portale immobiliare */
.filter-pills { display: flex; gap: 10px; overflow-x: auto; padding: 12px 0; scrollbar-width: none; }
.filter-pills::-webkit-scrollbar { display: none; }
.filter-pill { display: inline-flex; align-items: center; gap: 8px; flex: none; padding: 10px 16px; border: 1px solid var(--line, #e3e8ec); border-radius: 999px; background: #fff; font-weight: 700; font-size: 14px; color: #14232d; cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease; }
.filter-pill:hover { border-color: var(--green, #149752); }
.filter-pill.active { border-color: var(--green, #149752); background: var(--green-soft, #eaf7f0); color: var(--green-dark, #0c713d); }
.filter-pill .icon { width: 16px; height: 16px; }
.filter-bar-sticky { position: sticky; top: 0; z-index: 30; background: rgba(255,255,255,.97); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line, #e3e8ec); }

/* Scheda annuncio in stile portale: foto a sinistra, dati a destra */
.listing-card { display: grid; grid-template-columns: 320px 1fr; gap: 0; border: 1px solid var(--line, #e3e8ec); border-radius: 14px; overflow: hidden; background: #fff; margin-bottom: 16px; transition: box-shadow .18s ease, transform .18s ease; }
.listing-card:hover { box-shadow: 0 12px 30px rgba(9,27,37,.12); transform: translateY(-2px); }
.listing-media { position: relative; background: #eef1f3; }
.listing-media img { width: 100%; height: 100%; min-height: 220px; object-fit: cover; display: block; }
.listing-badge { position: absolute; left: 10px; bottom: 10px; padding: 4px 10px; border-radius: 6px; background: var(--green, #149752); color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .04em; }
.listing-badge.premium { background: var(--red, #e5352d); }
.listing-count { position: absolute; right: 10px; bottom: 10px; padding: 4px 9px; border-radius: 6px; background: rgba(0,0,0,.62); color: #fff; font-size: 11px; font-weight: 700; }
.listing-thumbs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; }
.listing-thumbs img { height: 62px; object-fit: cover; width: 100%; min-height: 0; }
.listing-body { padding: 18px 20px; display: flex; flex-direction: column; }
.listing-price { font-size: 26px; font-weight: 800; color: #14232d; letter-spacing: -.02em; }
.listing-title { margin: 6px 0 12px; font-size: 17px; font-weight: 700; }
.listing-title a { color: #14232d; }
.listing-title a:hover { color: var(--green-dark, #0c713d); }
.listing-specs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 14px; margin-bottom: 12px; }
.listing-specs span { display: flex; align-items: center; gap: 7px; font-size: 14px; color: #33454f; }
.listing-specs .icon { width: 17px; height: 17px; color: #6b7c86; flex: none; }
.listing-excerpt { font-size: 13px; color: #5b6f7a; line-height: 1.5; margin-bottom: 14px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.listing-actions { display: flex; gap: 10px; margin-top: auto; flex-wrap: wrap; }
.listing-actions .button { flex: 1 1 auto; justify-content: center; }
.listing-agency { position: absolute; top: 10px; right: 10px; padding: 6px 10px; background: rgba(255,255,255,.95); border-radius: 8px; font-size: 11px; font-weight: 800; color: var(--green-dark, #0c713d); }
@media (max-width: 780px) { .listing-card { grid-template-columns: 1fr; } .listing-specs { grid-template-columns: repeat(2, 1fr); } }

/* Bottone rosso "azione principale" come nei portali */
.button-cta { background: var(--red, #e5352d); color: #fff; border: 0; font-weight: 800; }
.button-cta:hover { background: var(--red-dark, #bd231e); color: #fff; }

/* Pagina corso a schermo intero */
.course-page { padding: 26px 0 50px; background: linear-gradient(180deg, #f6faf7, #fff 320px); min-height: 70vh; }
.course-breadcrumb { font-size: 13px; margin-bottom: 14px; color: #5b6f7a; }
.course-hero { display: grid; grid-template-columns: 1fr 250px; gap: 24px; padding: 24px; background: #fff; border: 1px solid var(--line, #e3e8ec); border-radius: 16px; margin-bottom: 20px; }
.course-hero h1 { margin: 6px 0 8px; font-size: 28px; }
.course-hero p { color: #4c5f6b; margin: 0; }
.course-meta { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 16px 0 0; padding: 0; }
.course-meta li { display: flex; align-items: center; gap: 7px; font-size: 13px; color: #33454f; }
.course-meta .icon { width: 16px; height: 16px; color: var(--green, #149752); }
.course-progress-card { display: grid; place-items: center; gap: 10px; padding: 18px; background: var(--green-soft, #eaf7f0); border-radius: 12px; text-align: center; }
.course-ring { width: 108px; height: 108px; border-radius: 50%; display: grid; place-content: center; background: conic-gradient(var(--green, #149752) calc(var(--value) * 1%), #d9e6de 0); position: relative; }
.course-ring::before { content: ''; position: absolute; inset: 10px; background: #fff; border-radius: 50%; }
.course-ring strong, .course-ring small { position: relative; z-index: 1; display: block; }
.course-ring strong { font-size: 22px; }
.course-ring small { font-size: 11px; color: #5b6f7a; }
.course-layout { display: grid; grid-template-columns: 1fr 320px; gap: 20px; align-items: start; }
.course-main { background: #fff; border: 1px solid var(--line, #e3e8ec); border-radius: 16px; padding: 20px; }
.course-stage { position: relative; padding-top: 56.25%; border-radius: 12px; overflow: hidden; background: #0d1a22; }
.course-stage iframe, .course-stage video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.course-stage-empty { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 10px; color: #fff; text-align: center; padding: 20px; }
.course-stage-empty .icon { width: 42px; height: 42px; color: var(--green, #149752); }
.course-lesson-content { position:absolute; inset:0; overflow:auto; padding:clamp(24px,5vw,56px); background:linear-gradient(145deg,#102a24,#173f34); color:#fff; }
.course-lesson-content h2 { margin:8px 0 16px; font-size:clamp(1.45rem,3vw,2.2rem); }
.course-lesson-content p { color:#e2f2eb; font-size:1rem; line-height:1.75; }
.course-deliverable { display:grid; gap:4px; margin-top:22px; padding:14px 16px; border:1px solid #ffffff38; border-radius:12px; background:#ffffff0e; }
.course-deliverable strong { color:#8ae3b2; font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; }
.course-resources { margin:18px 0 6px; padding:16px; border:1px solid var(--line,#e3e8ec); border-radius:14px; background:#fff; }
.course-resources h3 { margin:0 0 12px; font-size:1rem; }
.course-resources>div { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:10px; }
.course-resource { display:flex; align-items:center; gap:10px; min-height:62px; padding:11px 12px; border:1px solid #dbe7e1; border-radius:11px; color:#15342a; background:#f6fbf8; text-decoration:none; }
.course-resource:hover { border-color:#139255; box-shadow:0 6px 18px #0b663719; }
.course-resource .icon { width:22px; height:22px; color:#0b8047; }
.course-resource span { display:grid; min-width:0; }
.course-resource small { color:#62756d; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.course-completion-box { display:grid; gap:10px; margin-top:14px; padding:14px; border:1px solid #dce8e2; border-radius:12px; background:#f7fbf9; }
.course-completion-box>p { margin:0; color:#5a6b64; font-size:.82rem; line-height:1.45; }
.course-engagement { display:flex; justify-content:space-between; gap:12px; padding:9px 10px; border-radius:9px; background:#eaf5ef; font-size:.82rem; }
.course-attestation { display:flex; align-items:flex-start; gap:8px; color:#344b42; font-size:.82rem; line-height:1.4; cursor:pointer; }
.course-attestation input { margin-top:3px; accent-color:#0b874c; }
.course-quiz-locked { display:flex; align-items:flex-start; gap:12px; margin-top:14px; padding:16px; border:1px solid #ecd9aa; border-radius:12px; background:#fff9e9; color:#664d15; }
.course-quiz-locked .icon { flex:0 0 24px; width:24px; height:24px; }
.course-quiz-locked p { margin:3px 0 0; }
.button.is-disabled { opacity:.55; pointer-events:none; }
.certificate-verification-page { min-height:70vh; padding:56px 0; background:linear-gradient(150deg,#edf7f2,#f8faf9 48%,#eef3f1); }
.certificate-verification-shell { display:grid; place-items:center; }
.certificate-verification-card { width:min(760px,100%); padding:34px; border:1px solid #dce7e1; border-top:6px solid #b72828; border-radius:18px; background:#fff; box-shadow:0 22px 60px #17362a18; }
.certificate-verification-card.is-valid { border-top-color:#0c8c4e; }
.certificate-verification-mark { display:grid; width:58px; height:58px; place-items:center; margin-bottom:18px; border-radius:16px; color:#9e2020; background:#fdecec; }
.certificate-verification-card.is-valid .certificate-verification-mark { color:#087541; background:#e8f7ef; }
.certificate-verification-mark .icon { width:30px; height:30px; }
.certificate-verification-card h1 { margin:7px 0 10px; }
.certificate-alert { padding:12px 14px; border-radius:9px; color:#7c2424; background:#fff0f0; }
.certificate-verification-data { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:24px 0; border:1px solid #e1e9e5; border-radius:12px; overflow:hidden; }
.certificate-verification-data div { min-width:0; padding:13px 15px; border-bottom:1px solid #e1e9e5; }
.certificate-verification-data div:nth-child(odd) { border-right:1px solid #e1e9e5; }
.certificate-verification-data dt { color:#64766f; font-size:.75rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.certificate-verification-data dd { margin:4px 0 0; color:#152d24; font-weight:700; overflow-wrap:anywhere; }
.certificate-verification-data code { font-size:.7rem; }
.certificate-verification-note { margin:0; color:#66776f; font-size:.82rem; line-height:1.5; }
@media(max-width:620px){.certificate-verification-card{padding:24px 19px}.certificate-verification-data{grid-template-columns:1fr}.certificate-verification-data div:nth-child(odd){border-right:0}}
.certificate-document-heading { align-items:flex-start; }
.certificate-document-body { display:grid; grid-template-columns:1fr 190px; align-items:center; gap:28px; margin:28px 0; }
.certificate-document-statement { text-align:center; }
.certificate-document-qr { display:grid; justify-items:center; gap:6px; padding:12px; border:1px solid #d9e5df; border-radius:12px; text-align:center; }
.certificate-document-qr [data-certificate-qr] { width:145px; height:145px; }
.certificate-document-qr svg { display:block; width:100%; height:100%; }
.certificate-document-qr small { max-width:160px; color:#5e6f68; font-size:.62rem; overflow-wrap:anywhere; }
.certificate-document-meta .document-hash { font-size:.68rem; overflow-wrap:anywhere; }
@media(max-width:700px){.certificate-document-body{grid-template-columns:1fr}.certificate-document-qr{justify-self:center}}
.course-professional-brief { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:0 0 20px; }
.course-professional-brief article { display:flex; gap:14px; padding:18px; border:1px solid var(--line,#e3e8ec); border-radius:14px; background:#fff; }
.course-professional-brief article>span { display:grid; flex:0 0 38px; height:38px; place-items:center; border-radius:10px; color:var(--green,#149752); background:#eaf8f0; }
.course-professional-brief h2 { margin:0 0 8px; font-size:1rem; }
.course-professional-brief ul { display:grid; gap:5px; margin:0; padding-left:18px; color:#4c5f6b; font-size:.86rem; line-height:1.4; }
.course-lesson-title { margin: 18px 0 0; font-size: 21px; }
.course-side { background: #fff; border: 1px solid var(--line, #e3e8ec); border-radius: 16px; padding: 18px; position: sticky; top: 16px; }
.course-side h3 { margin: 0 0 12px; font-size: 15px; }
.course-lessons { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 6px; }
.course-lessons a { display: flex; gap: 10px; align-items: center; padding: 10px; border-radius: 10px; color: #14232d; }
.course-lessons a:hover { background: #f4f8f5; }
.course-lessons li.active a { background: var(--green-soft, #eaf7f0); box-shadow: inset 3px 0 0 var(--green, #149752); }
.course-lesson-num { flex: none; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 8px; background: #eef1f3; font-size: 12px; font-weight: 800; }
.course-lessons li.done .course-lesson-num { background: var(--green, #149752); color: #fff; }
.course-lesson-num .icon { width: 14px; height: 14px; }
.course-lessons small { display: block; font-size: 11px; color: #6b7c86; }
.course-quiz { margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--line, #e3e8ec); }
.course-quiz h2 { display: flex; align-items: center; gap: 8px; font-size: 20px; margin: 0 0 6px; }
.course-quiz fieldset { border: 1px solid var(--line, #e3e8ec); border-radius: 12px; padding: 14px 16px; margin: 14px 0; }
.course-quiz legend { font-weight: 700; padding: 0 6px; }
.quiz-option { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px; cursor: pointer; }
.quiz-option:hover { background: #f4f8f5; }
.quiz-ok { margin-top: 14px; padding: 14px; border-radius: 10px; background: var(--green-soft, #eaf7f0); border: 1px solid #bfe0cc; }
.quiz-ko { margin-top: 14px; padding: 14px; border-radius: 10px; background: #fdeceb; border: 1px solid #f3c2be; }
.course-blocked { display: flex; gap: 14px; padding: 20px; background: #fff8ec; border: 1px solid #f0dcb8; border-radius: 14px; }
.course-blocked .icon { width: 26px; height: 26px; color: #c98b18; }
@media (max-width: 900px) { .course-hero, .course-layout, .course-professional-brief { grid-template-columns: 1fr; } .course-side { position: static; } }

/* Pagina pubblica immobile */
.publish-hero { padding: 46px 0 40px; background: linear-gradient(140deg, var(--green-dark, #0c713d), var(--green, #149752)); color: #fff; }
.publish-hero h1 { font-size: 34px; margin: 8px 0 10px; }
.publish-hero p { max-width: 640px; opacity: .93; margin: 0; }
.publish-steps { list-style: none; display: flex; flex-wrap: wrap; gap: 22px; margin: 22px 0 0; padding: 0; }
.publish-steps li { display: flex; align-items: center; gap: 10px; font-weight: 700; }
.publish-steps span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--green-dark, #0c713d); font-weight: 800; }
.publish-layout { display: grid; grid-template-columns: 1fr 320px; gap: 22px; align-items: start; }
.publish-card { border: 1px solid var(--line, #e3e8ec); border-radius: 14px; padding: 20px; margin: 0 0 18px; background: #fff; }
.publish-card legend { display: flex; align-items: center; gap: 8px; font-weight: 800; padding: 0 8px; font-size: 16px; }
.publish-card legend .icon { width: 18px; height: 18px; color: var(--green, #149752); }
.publish-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.publish-grid .field-wide { grid-column: 1 / -1; }
.publish-uploads { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.upload-slot { display: grid; justify-items: center; gap: 4px; padding: 18px 12px; border: 2px dashed #cfdcd5; border-radius: 12px; text-align: center; cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.upload-slot:hover { border-color: var(--green, #149752); background: var(--green-soft, #eaf7f0); }
.upload-slot.filled { border-style: solid; border-color: var(--green, #149752); background: var(--green-soft, #eaf7f0); }
.upload-slot.loading { opacity: .6; pointer-events: none; }
.upload-slot .icon { width: 24px; height: 24px; color: var(--green, #149752); }
.upload-slot strong { font-size: 13px; }
.upload-slot small { font-size: 11px; color: #6b7c86; }
.publish-side { display: grid; gap: 16px; position: sticky; top: 16px; }
.publish-benefit, .publish-contact { border: 1px solid var(--line, #e3e8ec); border-radius: 14px; padding: 18px; background: #fff; }
.publish-benefit h3 { margin: 0 0 12px; font-size: 16px; }
.publish-benefit ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.publish-benefit li { display: flex; gap: 10px; }
.publish-benefit .icon { width: 20px; height: 20px; color: var(--green, #149752); flex: none; }
.publish-benefit strong { display: block; font-size: 14px; }
.publish-benefit span { font-size: 12px; color: #5b6f7a; }
.publish-contact p { display: flex; align-items: center; gap: 8px; margin: 8px 0 0; font-size: 14px; }
.publish-contact .icon { width: 16px; height: 16px; color: var(--green, #149752); }
.publish-ok { margin-top: 14px; padding: 14px; border-radius: 10px; background: var(--green-soft, #eaf7f0); border: 1px solid #bfe0cc; }
.publish-ko { margin-top: 14px; padding: 14px; border-radius: 10px; background: #fdeceb; border: 1px solid #f3c2be; }
@media (max-width: 900px) { .publish-layout { grid-template-columns: 1fr; } .publish-side { position: static; } .publish-grid, .publish-uploads { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .publish-grid, .publish-uploads { grid-template-columns: 1fr; } }

/* ============================================================
   RIFINITURA 5.18 — pubblicazione immobile, blocco agenzia,
   pulsanti e sezioni informative (palette verde/bianco/rosso)
   ============================================================ */

/* Pulsanti aggiuntivi */
.button-white { background: #fff; color: var(--green-dark, #0c713d); border: 0; font-weight: 800; }
.button-white:hover { background: #f2f7f4; color: var(--green-dark, #0c713d); }
.button-ghost { background: rgba(255,255,255,.14); color: #fff; border: 1px solid rgba(255,255,255,.5); font-weight: 700; }
.button-ghost:hover { background: rgba(255,255,255,.24); color: #fff; }
.button-block { display: flex; width: 100%; justify-content: center; }

/* Hero pubblicazione */
.publish-hero { padding: 54px 0 48px; background: linear-gradient(135deg, #0b6b3a 0%, #12924f 55%, #0e7c43 100%); color: #fff; position: relative; overflow: hidden; }
.publish-hero::after { content: ''; position: absolute; right: -120px; top: -120px; width: 420px; height: 420px; border-radius: 50%; background: rgba(255,255,255,.06); }
.publish-hero.compact { padding: 34px 0 30px; }
.publish-hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1.15fr .85fr; gap: 34px; align-items: center; }
.publish-hero h1 { font-size: 38px; line-height: 1.1; margin: 10px 0 12px; }
.publish-hero p { margin: 0; opacity: .94; max-width: 560px; font-size: 16px; }
.publish-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.publish-hero-side { display: flex; justify-content: flex-end; }
.publish-steps-card { list-style: none; margin: 0; padding: 20px; display: grid; gap: 14px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.22); border-radius: 16px; backdrop-filter: blur(6px); }
.publish-steps-card li { display: flex; gap: 12px; align-items: flex-start; }
.publish-steps-card span { flex: none; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--green-dark, #0c713d); font-weight: 800; font-size: 13px; }
.publish-steps-card strong { display: block; font-size: 14px; }
.publish-steps-card small { display: block; font-size: 12px; opacity: .88; margin-top: 2px; }
@media (max-width: 900px) { .publish-hero-inner { grid-template-columns: 1fr; } .publish-hero h1 { font-size: 30px; } .publish-hero-side { justify-content: flex-start; } }

/* Griglia vantaggi */
.benefit-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 24px; }
.benefit-grid article { padding: 22px; background: #fff; border: 1px solid var(--line, #e3e8ec); border-radius: 16px; transition: transform .16s ease, box-shadow .16s ease; }
.benefit-grid article:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(9,27,37,.1); }
.benefit-grid span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--green-soft, #eaf7f0); margin-bottom: 12px; }
.benefit-grid .icon { width: 22px; height: 22px; color: var(--green, #149752); }
.benefit-grid h3 { margin: 0 0 6px; font-size: 17px; }
.benefit-grid p { margin: 0; font-size: 14px; color: #5b6f7a; line-height: 1.55; }
@media (max-width: 1000px) { .benefit-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .benefit-grid { grid-template-columns: 1fr; } }

.publish-login-cta { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; justify-content: space-between; margin-top: 30px; padding: 26px; border-radius: 16px; background: var(--green-soft, #eaf7f0); border: 1px solid #cfe6d9; }
.publish-login-cta strong { font-size: 19px; display: block; }
.publish-login-cta p { margin: 4px 0 0; color: #4c5f6b; }
.publish-login-actions { display: flex; flex-wrap: wrap; gap: 10px; }

/* Modulo pubblicazione */
.publish-layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 24px; align-items: start; }
.publish-card { border: 1px solid var(--line, #e3e8ec); border-radius: 18px; padding: 24px; margin: 0 0 20px; background: #fff; box-shadow: 0 2px 12px rgba(9,27,37,.04); }
.publish-card-head { display: flex; gap: 14px; align-items: center; padding-bottom: 16px; margin-bottom: 18px; border-bottom: 1px solid var(--line, #e3e8ec); }
.publish-card-icon { flex: none; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; background: var(--green-soft, #eaf7f0); }
.publish-card-icon .icon { width: 21px; height: 21px; color: var(--green, #149752); }
.publish-card-head h2 { margin: 2px 0 0; font-size: 21px; }
.publish-card-note { margin: -4px 0 16px; font-size: 13px; color: #5b6f7a; }
.publish-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; }
.publish-grid .field-wide { grid-column: 1 / -1; }
.publish-grid .field span { display: block; font-size: 12px; font-weight: 700; color: #3d4f59; margin-bottom: 6px; }
.publish-grid input, .publish-grid select, .publish-grid textarea { width: 100%; padding: 11px 13px; border: 1px solid #d9e2e7; border-radius: 10px; font: inherit; background: #fff; transition: border-color .15s ease, box-shadow .15s ease; }
.publish-grid input:focus, .publish-grid select:focus, .publish-grid textarea:focus { outline: 0; border-color: var(--green, #149752); box-shadow: 0 0 0 3px rgba(20,151,82,.14); }
@media (max-width: 900px) { .publish-layout { grid-template-columns: 1fr; } .publish-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .publish-grid { grid-template-columns: 1fr; } }

/* Riquadri di caricamento */
.publish-uploads { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.upload-slot { display: grid; justify-items: center; gap: 5px; padding: 20px 12px; border: 2px dashed #cfdcd5; border-radius: 14px; background: #fbfdfc; text-align: center; cursor: pointer; font: inherit; color: inherit; transition: border-color .15s ease, background .15s ease, transform .15s ease; }
.upload-slot:hover { border-color: var(--green, #149752); background: var(--green-soft, #eaf7f0); transform: translateY(-2px); }
.upload-slot.filled { border-style: solid; border-color: var(--green, #149752); background: var(--green-soft, #eaf7f0); }
.upload-slot.loading { opacity: .55; pointer-events: none; }
.upload-slot.error { border-color: #d43a2f; background: #fdf3f2; }
.upload-icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: #fff; border: 1px solid #e0eae4; }
.upload-slot .icon { width: 20px; height: 20px; color: var(--green, #149752); }
.upload-slot strong { font-size: 13px; }
.upload-slot small { font-size: 11px; color: #6b7c86; }
.upload-preview { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.preview-tile { margin: 0; width: 96px; border: 1px solid var(--line, #e3e8ec); border-radius: 10px; overflow: hidden; background: #fff; }
.preview-tile img { display: block; width: 100%; height: 68px; object-fit: cover; }
.preview-doc { display: grid; place-items: center; height: 68px; background: #eef4f0; font-weight: 800; font-size: 12px; color: var(--green-dark, #0c713d); }
.preview-tile figcaption { padding: 4px 6px; font-size: 10px; text-align: center; color: #5b6f7a; }
@media (max-width: 900px) { .publish-uploads { grid-template-columns: 1fr 1fr; } }

.consent-row { display: flex; gap: 10px; align-items: flex-start; margin: 18px 0 16px; font-size: 13px; color: #4c5f6b; padding: 12px; border-radius: 10px; background: #f7faf8; }
.consent-row input { margin-top: 2px; }
.consent-row.field-invalid { background: #fdf3f2; box-shadow: 0 0 0 1px #d43a2f inset; }

/* Colonna laterale */
.publish-side { display: grid; gap: 16px; position: sticky; top: 16px; }
.side-card { border: 1px solid var(--line, #e3e8ec); border-radius: 16px; padding: 20px; background: #fff; }
.side-card h3 { margin: 6px 0 12px; font-size: 17px; }
.side-card p { margin: 8px 0 0; font-size: 14px; display: flex; align-items: center; gap: 8px; }
.side-card .icon { width: 16px; height: 16px; color: var(--green, #149752); flex: none; }
.side-card .muted { display: block; font-size: 12px; color: #6b7c86; margin-top: 12px; }
.side-card-accent { background: linear-gradient(160deg, #f6faf7, #eaf3ee); border-color: #cfe6d9; }
.side-card-quiet { background: #fbfdfc; }
.side-steps { list-style: none; counter-reset: s; margin: 0; padding: 0; display: grid; gap: 12px; }
.side-steps li { counter-increment: s; display: grid; grid-template-columns: 26px 1fr; gap: 10px; align-items: start; }
.side-steps li::before { content: counter(s); width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: var(--green, #149752); color: #fff; font-size: 12px; font-weight: 800; }
.side-steps strong { display: block; font-size: 14px; }
.side-steps span { font-size: 12px; color: #5b6f7a; }
.side-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.side-list li { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #33454f; }
.side-list .icon { width: 15px; height: 15px; color: var(--green, #149752); }
@media (max-width: 900px) { .publish-side { position: static; } }

.publish-ok { margin-top: 16px; padding: 18px; border-radius: 12px; background: var(--green-soft, #eaf7f0); border: 1px solid #bfe0cc; }
.publish-ok p { margin: 6px 0 12px; font-size: 14px; }
.publish-ko { margin-top: 16px; padding: 16px; border-radius: 12px; background: #fdeceb; border: 1px solid #f3c2be; }

/* Blocco agenzia in fondo alla scheda immobile — impaginazione corretta */
.agency-cta { padding-top: 10px; }
.agency-cta-card { display: grid; grid-template-columns: 1.3fr 1fr; gap: 28px; padding: 28px; background: linear-gradient(150deg, #f6faf7, #eaf3ee); border: 1px solid #cfe6d9; border-radius: 18px; }
.agency-cta-main h2 { margin: 6px 0 10px; font-size: 25px; }
.agency-cta-main > p { margin: 0; color: #4c5f6b; }
.agency-cta-data { list-style: none !important; margin: 16px 0 0; padding: 0; display: grid; gap: 9px; }
.agency-cta-data li { display: flex; align-items: center; gap: 9px; font-size: 14px; color: #33454f; }
.agency-cta-data li::marker { content: ''; }
.agency-cta-data .icon { width: 16px; height: 16px; color: var(--green, #149752); flex: none; }
.agency-cta-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.agency-cta-side { background: #fff; border: 1px solid var(--line, #e3e8ec); border-radius: 14px; padding: 20px; }
.agency-cta-side p { font-size: 13px; color: #4c5f6b; margin: 6px 0 14px; }
.agency-cta-side .field { display: block; margin-bottom: 10px; }
.agency-cta-side .field span { display: block; font-size: 12px; font-weight: 700; margin-bottom: 5px; }
.agency-cta-side input, .agency-cta-side textarea { width: 100%; padding: 10px 12px; border: 1px solid #d9e2e7; border-radius: 9px; font: inherit; }
@media (max-width: 900px) { .agency-cta-card { grid-template-columns: 1fr; padding: 20px; } }

/* Intestazioni di sezione centrate */
.section-heading.center { text-align: center; margin-bottom: 8px; }
.section-heading.center h2 { font-size: 30px; margin: 8px 0 0; }

/* ============================================================
   RICERCA 5.19 — autocompletamento comuni, scorciatoie, mappa home
   ============================================================ */
.city-suggest { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 60; background: #fff; border: 1px solid var(--line, #e3e8ec); border-radius: 12px; box-shadow: 0 16px 34px rgba(9,27,37,.16); overflow: hidden; max-height: 300px; overflow-y: auto; }
.city-suggest-item { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; width: 100%; padding: 10px 14px; border: 0; background: #fff; text-align: left; cursor: pointer; font: inherit; }
.city-suggest-item:hover, .city-suggest-item.active { background: var(--green-soft, #eaf7f0); }
.city-suggest-item strong { font-size: 14px; color: #14232d; }
.city-suggest-item span { font-size: 11px; color: #6b7c86; text-transform: uppercase; letter-spacing: .04em; }

.search-shortcuts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.search-shortcuts a { display: inline-flex; align-items: center; gap: 6px; padding: 7px 13px; border: 1px solid var(--line, #e3e8ec); border-radius: 999px; font-size: 13px; font-weight: 700; color: var(--green-dark, #0c713d); background: #fff; }
.search-shortcuts a:hover { background: var(--green-soft, #eaf7f0); border-color: var(--green, #149752); }
.search-shortcuts .icon { width: 14px; height: 14px; }

.services-more { display: flex; justify-content: center; margin-top: 26px; }

.home-map-section { padding-top: 10px; }
.home-map-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 18px; margin-top: 20px; }
.home-map { height: 440px; border-radius: 16px; overflow: hidden; border: 1px solid var(--line, #e3e8ec); z-index: 1; }
.home-map-side { border: 1px solid var(--line, #e3e8ec); border-radius: 16px; padding: 20px; background: #fff; display: flex; flex-direction: column; }
.home-map-side h3 { margin: 0 0 12px; font-size: 16px; }
.home-map-cities { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 4px; flex: 1; }
.home-map-cities a { display: flex; align-items: center; gap: 8px; padding: 9px 10px; border-radius: 9px; color: #14232d; font-size: 14px; }
.home-map-cities a:hover { background: var(--green-soft, #eaf7f0); }
.home-map-cities span { flex: 1; }
.home-map-cities strong { font-size: 12px; padding: 2px 8px; border-radius: 999px; background: var(--green-soft, #eaf7f0); color: var(--green-dark, #0c713d); }
.home-map-cities .icon { width: 15px; height: 15px; color: var(--green, #149752); }
@media (max-width: 900px) { .home-map-wrap { grid-template-columns: 1fr; } .home-map { height: 340px; } }

/* Strumenti mappa: disegno dell'area di ricerca */
.map-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 18px; padding: 12px 14px; background: #fff; border: 1px solid var(--line, #e3e8ec); border-radius: 12px; }
.map-tool { display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border: 1px solid var(--line, #e3e8ec); border-radius: 999px; background: #fff; font: inherit; font-size: 13px; font-weight: 700; color: #14232d; cursor: pointer; transition: all .15s ease; }
.map-tool:hover { border-color: var(--green, #149752); background: var(--green-soft, #eaf7f0); }
.map-tool.active { background: var(--green, #149752); border-color: var(--green, #149752); color: #fff; }
.map-tool.active .icon { color: #fff; }
.map-tool .icon { width: 15px; height: 15px; color: var(--green, #149752); }
.map-info { font-size: 13px; color: #4c5f6b; margin-left: auto; }
.map-info strong { color: var(--green-dark, #0c713d); }
.home-map.drawing-mode { cursor: crosshair; }
.home-map.drawing-mode .leaflet-container { cursor: crosshair; }

/* Elenco comuni scorrevole accanto alla mappa */
.home-map-side-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.home-map-side-head h3 { margin: 0; }
.home-map-side-head span { font-size: 11px; font-weight: 700; color: #6b7c86; text-transform: uppercase; letter-spacing: .05em; }
.city-filter { display: block; margin-bottom: 10px; }
.city-filter input { width: 100%; padding: 9px 12px; border: 1px solid #d9e2e7; border-radius: 9px; font: inherit; font-size: 13px; }
.city-filter input:focus { outline: 0; border-color: var(--green, #149752); box-shadow: 0 0 0 3px rgba(20,151,82,.14); }
.home-map-cities { max-height: 300px; overflow-y: auto; scrollbar-width: thin; padding-right: 4px; }
.home-map-cities::-webkit-scrollbar { width: 7px; }
.home-map-cities::-webkit-scrollbar-thumb { background: #d5e2da; border-radius: 8px; }
.home-map-cities span { display: flex; flex-direction: column; }
.home-map-cities small { font-size: 10px; color: #8a99a2; text-transform: uppercase; letter-spacing: .04em; }
.home-map-note { font-size: 12px; color: #6b7c86; margin: 10px 0; }
.franchise-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }

/* ============================================================
   5.21 — Barra filtri portale, mappa affiancata, scheda immobile
   ============================================================ */

/* Barra filtri sticky con pillole */
.filter-bar { position: sticky; top: 0; z-index: 40; margin: 0 0 22px; padding: 14px; background: rgba(255,255,255,.98); border: 1px solid var(--line, #e3e8ec); border-radius: 16px; box-shadow: 0 6px 22px rgba(9,27,37,.07); backdrop-filter: blur(10px); }
.filter-bar-main { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.filter-search { display: flex; align-items: center; gap: 9px; flex: 1 1 260px; min-width: 220px; padding: 10px 14px; border: 1px solid #d9e2e7; border-radius: 999px; background: #fff; position: relative; }
.filter-search .icon { width: 17px; height: 17px; color: #6b7c86; flex: none; }
.filter-search input { flex: 1; border: 0; outline: 0; font: inherit; font-size: 14px; background: transparent; }
.filter-pills { display: flex; flex-wrap: wrap; gap: 8px; flex: 2 1 420px; }
.filter-pill { display: inline-flex; align-items: center; gap: 7px; padding: 9px 14px; border: 1px solid var(--line, #e3e8ec); border-radius: 999px; background: #fff; font-size: 13px; font-weight: 700; color: #14232d; cursor: pointer; transition: all .15s ease; }
.filter-pill:hover { border-color: var(--green, #149752); }
.filter-pill.active { border-color: var(--green, #149752); background: var(--green-soft, #eaf7f0); color: var(--green-dark, #0c713d); }
.filter-pill select { border: 0; background: transparent; font: inherit; font-weight: 700; color: inherit; cursor: pointer; outline: 0; padding-right: 2px; max-width: 150px; }
.filter-pill .icon { width: 15px; height: 15px; color: var(--green, #149752); }
.filter-pill-more { border-style: dashed; }
.filter-pill-more em { font-style: normal; display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--red, #e5352d); color: #fff; font-size: 11px; }
.filter-submit { flex: none; border-radius: 999px; padding: 11px 22px; }
.filter-drawer { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line, #e3e8ec); }
.filter-drawer-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.filter-drawer-grid .field span { display: block; font-size: 12px; font-weight: 700; color: #3d4f59; margin-bottom: 6px; }
.filter-drawer-grid input, .filter-drawer-grid select { width: 100%; padding: 10px 12px; border: 1px solid #d9e2e7; border-radius: 9px; font: inherit; }
.filter-drawer-grid input[type="range"] { padding: 0; accent-color: var(--green, #149752); }
.filter-features { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; }
.filter-features-label { font-size: 12px; font-weight: 700; color: #3d4f59; margin-right: 4px; }
.feature-chip { display: inline-flex; align-items: center; gap: 6px; padding: 7px 13px; border: 1px solid var(--line, #e3e8ec); border-radius: 999px; font-size: 13px; cursor: pointer; background: #fff; transition: all .15s ease; }
.feature-chip:hover { border-color: var(--green, #149752); }
.feature-chip.active { background: var(--green-soft, #eaf7f0); border-color: var(--green, #149752); color: var(--green-dark, #0c713d); font-weight: 700; }
.feature-chip input { accent-color: var(--green, #149752); }
.filter-drawer-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px; }
@media (max-width: 1000px) { .filter-drawer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .filter-bar-main { flex-direction: column; align-items: stretch; } .filter-submit { width: 100%; } .filter-drawer-grid { grid-template-columns: 1fr; } }

/* Layout risultati + mappa affiancata */
.results-map-layout { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 22px; align-items: start; }
.search-map-panel { position: sticky; top: 96px; border: 1px solid var(--line, #e3e8ec); border-radius: 16px; overflow: hidden; background: #fff; }
.map-panel-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; border-bottom: 1px solid var(--line, #e3e8ec); }
.map-panel-head strong { display: flex; align-items: center; gap: 7px; font-size: 14px; }
.map-panel-head .icon { width: 16px; height: 16px; color: var(--green, #149752); }
.map-panel-head span { font-size: 12px; color: #6b7c86; }
.property-map { height: 520px; }
.map-panel-tools { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 16px 0; }
.search-map-panel .button-block { margin: 12px 16px 0; width: calc(100% - 32px); }
.map-help { padding: 12px 16px 16px; margin: 0; font-size: 12px; color: #6b7c86; line-height: 1.5; }
@media (max-width: 1080px) { .results-map-layout { grid-template-columns: 1fr; } .search-map-panel { position: static; } .property-map { height: 380px; } }

/* Marker con prezzo, stile portale */
.price-marker { background: transparent; border: 0; }
.price-marker span { display: inline-block; padding: 4px 10px; background: var(--green, #149752); color: #fff; font-size: 12px; font-weight: 800; border-radius: 999px; box-shadow: 0 3px 10px rgba(9,27,37,.28); white-space: nowrap; border: 2px solid #fff; }
.price-marker.dimmed span { background: #b9c6cd; box-shadow: none; }
.leaflet-marker-icon.dimmed { opacity: .45; }

/* Scheda immobile: condivisione e logo agenzia */
.share-bar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 14px; padding: 12px 16px; background: #f7faf8; border: 1px solid var(--line, #e3e8ec); border-radius: 12px; }
.share-bar-label { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 700; color: #3d4f59; }
.share-bar-label .icon { width: 15px; height: 15px; color: var(--green, #149752); }
.share-bar .share-group { display: inline-flex; gap: 8px; margin: 0; }
.agency-brand { display: flex; align-items: center; gap: 14px; margin-bottom: 6px; }
.agency-logo { max-height: 46px; max-width: 150px; object-fit: contain; background: #fff; padding: 6px 10px; border-radius: 10px; border: 1px solid var(--line, #e3e8ec); }

/* ============================================================
   5.22 — Correzioni impaginazione risultati, mappa, condivisione
   ============================================================ */

/* RISULTATI: con la mappa a fianco le schede stanno in colonna unica
   (prima erano in griglia a più colonne dentro uno spazio stretto e
   venivano tagliate a metà). */
.results-map-layout .property-grid,
.results-map-layout .compact-grid { display: grid !important; grid-template-columns: 1fr !important; gap: 16px; }
.results-map-layout .listing-card { grid-template-columns: 260px minmax(0, 1fr); }
.results-map-layout .listing-card .listing-media img { min-height: 200px; }
.results-map-layout .listing-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 1400px) { .results-map-layout .listing-card { grid-template-columns: 220px minmax(0, 1fr); } }
@media (max-width: 780px) { .results-map-layout .listing-card { grid-template-columns: 1fr; } }
.listing-card, .listing-body { min-width: 0; }
.listing-title, .listing-excerpt { overflow-wrap: anywhere; }
.listing-actions .button { flex: 1 1 120px; min-width: 0; }

/* Intestazione risultati ordinata */
.results-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 14px; margin-bottom: 16px; }
.results-head h2 { margin: 4px 0 0; font-size: 26px; }
.results-tools { display: flex; align-items: center; gap: 8px; }
.sort-select { padding: 9px 12px; border: 1px solid var(--line, #e3e8ec); border-radius: 999px; font: inherit; font-size: 13px; font-weight: 700; background: #fff; }

/* Barra strumenti mappa compatta (home) */
.map-toolbar.compact { padding: 8px 10px; gap: 8px; }
.map-toolbar.compact .map-tool { padding: 7px 12px; font-size: 12px; }
.map-tool.ghost { padding: 7px 10px; }
.map-toolbar.compact .map-info { font-size: 12px; }

/* Preferito + condivisione insieme, icone sempre visibili */
.share-bar { align-items: center; }
.fav-btn { display: inline-flex; align-items: center; gap: 7px; padding: 9px 16px; border: 1px solid #f0c9c6; border-radius: 999px; background: #fff; color: var(--red-dark, #bd231e); font: inherit; font-size: 13px; font-weight: 800; cursor: pointer; transition: all .15s ease; }
.fav-btn:hover { background: #fdeceb; border-color: var(--red, #e5352d); }
.fav-btn.active { background: var(--red, #e5352d); border-color: var(--red, #e5352d); color: #fff; }
.fav-heart { font-size: 16px; line-height: 1; }
.share-btn { background: #fff !important; border: 1px solid #dbe6de !important; }
.share-btn .icon { width: 18px; height: 18px; color: #465863; fill: currentColor; stroke: currentColor; opacity: 1; }
.share-btn:hover .icon { color: #fff; }
.share-btn.share-wa:hover { background: #25d366 !important; border-color: #25d366 !important; }
.share-btn.share-fb:hover { background: #1877f2 !important; border-color: #1877f2 !important; }
.share-btn.share-li:hover { background: #0a66c2 !important; border-color: #0a66c2 !important; }
.share-btn.share-tg:hover { background: #26a5e4 !important; border-color: #26a5e4 !important; }
.share-btn.share-mail:hover, .share-btn.share-copy:hover { background: var(--green, #149752) !important; border-color: var(--green, #149752) !important; }

/* Blocco agenzia: dimensioni contenute e consenso leggibile */
.agency-cta-card { padding: 24px; }
.agency-cta-main h2 { font-size: 22px; }
.agency-cta-side { padding: 18px; }
.agency-cta-side .field { margin-bottom: 9px; }
.agency-cta-side textarea { min-height: 84px; resize: vertical; }
.agency-cta-side .consent-row,
.agency-cta-side .checkbox-field { display: flex; align-items: flex-start; gap: 8px; margin: 10px 0 4px; padding: 10px; border-radius: 9px; background: #f7faf8; font-size: 12px; line-height: 1.45; color: #4c5f6b; overflow-wrap: anywhere; }
.agency-cta-side .consent-row input,
.agency-cta-side .checkbox-field input { margin-top: 2px; flex: none; }
.agency-cta-side .button { margin-top: 6px; }
.agency-cta-actions .button { flex: 0 1 auto; }

/* ============================================================
   5.23 — CORREZIONI FINALI (queste regole chiudono il foglio e
   hanno la precedenza su tutte le duplicazioni precedenti)
   ============================================================ */

/* ICONE SOCIAL: i simboli whatsapp/facebook/linkedin/telegram sono
   tracciati PIENI, mentre la regola base usa fill:none — per questo
   apparivano trasparenti. Qui il riempimento è forzato. */
.share-btn svg.icon,
.share-icon svg.icon,
.agency-strip-social svg.icon {
    fill: currentColor !important;
    stroke: none !important;
    width: 19px !important;
    height: 19px !important;
    color: #37474f !important;
    opacity: 1 !important;
}
.share-btn:hover svg.icon, .share-icon:hover svg.icon { color: #fff !important; }
.share-btn { width: 42px !important; height: 42px !important; background: #fff !important; border: 1px solid #d7e2da !important; border-radius: 12px !important; }
.share-bar { gap: 10px; padding: 12px 14px; }

/* CONSENSO PRIVACY: il testo andava a capo lettera per lettera perché
   lo span non aveva larghezza minima in flex. */
.consent-row, .checkbox-field, .contact-security { min-width: 0; }
.consent-row > span, .checkbox-field > span, .contact-security > span:last-child {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    display: block !important;
    overflow-wrap: anywhere;
    white-space: normal !important;
    font-size: 12px;
    line-height: 1.5;
}
.contact-form .consent-row, .contact-card .consent-row { padding: 10px 12px; background: #f7faf8; border-radius: 9px; }

/* GALLERIA ANNUNCIO più grande, con miniature scorrevoli e conteggio */
.gallery-main { height: clamp(420px, 52vw, 660px) !important; cursor: zoom-in; }
.gallery-thumbnails { display: flex !important; gap: 8px; overflow-x: auto; padding: 10px; scrollbar-width: thin; }
.gallery-thumbnails::-webkit-scrollbar { height: 7px; }
.gallery-thumbnails::-webkit-scrollbar-thumb { background: #cfdcd5; border-radius: 8px; }
.gallery-thumbnails button { flex: 0 0 132px; height: 92px; }
.gallery-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; display: grid; place-items: center; width: 46px; height: 46px; border: 0; border-radius: 50%; background: rgba(255,255,255,.94); box-shadow: 0 4px 14px rgba(9,27,37,.22); cursor: pointer; }
.gallery-nav:hover { background: #fff; }
.gallery-nav.prev { left: 14px; }
.gallery-nav.next { right: 14px; }
.gallery-nav svg { width: 20px; height: 20px; color: #14232d; }
@media (max-width: 780px) { .gallery-main { height: 300px !important; } .gallery-thumbnails button { flex: 0 0 104px; height: 74px; } }

/* Blocco agenzia unico: due colonne ordinate */
.agency-strip-card { display: grid; grid-template-columns: 1.5fr .9fr; gap: 26px; padding: 26px; background: linear-gradient(150deg, #f6faf7, #eaf3ee); border: 1px solid #cfe6d9; border-radius: 18px; }
.agency-strip-main h2 { margin: 4px 0 6px; font-size: 24px; }
.agency-strip-facts { list-style: none !important; margin: 14px 0 0; padding: 0; display: grid; gap: 9px; }
.agency-strip-facts li { display: flex; align-items: center; gap: 9px; font-size: 14px; color: #33454f; }
.agency-strip-side { display: grid; gap: 10px; align-content: start; }
.agency-strip-side .muted { font-size: 12px; color: #6b7c86; line-height: 1.5; }
@media (max-width: 900px) { .agency-strip-card { grid-template-columns: 1fr; padding: 20px; } }

/* Cursore disegno sulla mappa risultati */
.property-map.drawing-mode, .property-map.drawing-mode .leaflet-container { cursor: crosshair !important; }

/* ============================================================
   5.23 — CORREZIONI DEFINITIVE
   ============================================================ */

/* ICONE SOCIAL INVISIBILI — causa: la regola globale svg.icon impone
   fill:none e stroke:currentColor, ma i loghi social sono sagome piene
   (path chiusi senza tracciato). Risultato: invisibili. Qui si inverte. */
.share-btn .icon,
.share-icon .icon,
.agency-strip-social .icon,
.share-group .icon {
    fill: currentColor !important;
    stroke: none !important;
    stroke-width: 0 !important;
    opacity: 1 !important;
    color: #34495e;
}
.share-btn:hover .icon, .share-icon:hover .icon { color: #fff !important; }
.share-btn { background: #fff !important; border: 1px solid #d5e0da !important; width: 40px; height: 40px; }
.share-btn:hover { border-color: transparent !important; }

/* SCHEDE ANNUNCIO: foto grandi con galleria sfogliabile dalla scheda */
.results-map-layout .listing-card { grid-template-columns: 340px minmax(0, 1fr); }
.results-map-layout .listing-media img { min-height: 260px; }
@media (max-width: 1500px) { .results-map-layout .listing-card { grid-template-columns: 300px minmax(0, 1fr); } }
@media (max-width: 1200px) { .results-map-layout .listing-card { grid-template-columns: 260px minmax(0, 1fr); } }
@media (max-width: 900px) { .results-map-layout .listing-card { grid-template-columns: 1fr; } .results-map-layout .listing-media img { min-height: 240px; } }
.listing-media { overflow: hidden; }
.listing-slide { position: relative; height: 100%; }
.listing-slide img { transition: opacity .2s ease; }
.listing-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 34px; height: 34px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255,255,255,.92); box-shadow: 0 2px 10px rgba(9,27,37,.25); cursor: pointer; opacity: 0; transition: opacity .15s ease; z-index: 2; font-size: 18px; font-weight: 800; color: #14232d; line-height: 1; }
.listing-card:hover .listing-nav { opacity: 1; }
.listing-nav.prev { left: 8px; }
.listing-nav.next { right: 8px; }
.listing-dots { position: absolute; left: 50%; bottom: 44px; transform: translateX(-50%); display: flex; gap: 5px; z-index: 2; }
.listing-dots i { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.6); }
.listing-dots i.on { background: #fff; width: 16px; border-radius: 3px; }

/* Scheda immobile: media e allegati */
.media-section-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.media-embed { position: relative; padding-top: 56.25%; border-radius: 12px; overflow: hidden; background: #0d1a22; grid-column: 1 / -1; }
.media-embed iframe, .media-embed video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.doc-list { display: grid; gap: 8px; }
.doc-item { display: flex; align-items: center; gap: 11px; padding: 12px 14px; border: 1px solid var(--line, #e3e8ec); border-radius: 11px; background: #fff; transition: all .15s ease; }
.doc-item:hover { border-color: var(--green, #149752); background: var(--green-soft, #eaf7f0); }
.doc-item .icon { width: 20px; height: 20px; color: var(--green, #149752); flex: none; }
.doc-item strong { font-size: 14px; display: block; }
.doc-item small { font-size: 11px; color: #6b7c86; }
.doc-item .doc-open { margin-left: auto; font-size: 12px; font-weight: 800; color: var(--green-dark, #0c713d); white-space: nowrap; }
.floorplan-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.floorplan-grid a { display: block; border: 1px solid var(--line, #e3e8ec); border-radius: 11px; overflow: hidden; background: #fff; }
.floorplan-grid img { width: 100%; height: 150px; object-fit: contain; background: #f6f8fa; padding: 6px; }
.floorplan-grid span { display: block; padding: 8px 10px; font-size: 12px; font-weight: 700; border-top: 1px solid var(--line, #e3e8ec); }
@media (max-width: 700px) { .media-section-grid { grid-template-columns: 1fr; } }

/* Blocco agenzia: una sola colonna di contenuti, niente doppioni */
.agency-cta-card + .agency-cta-card, .agency-strip-card + .agency-cta-card { display: none; }

/* ============================================================
   Icone piene (loghi social) e strumento di simulazione sempre disponibile
   ============================================================ */

/* I loghi social sono sagome piene: la regola globale svg.icon
   (fill:none, stroke:currentColor) li rendeva invisibili.
   Questa classe, applicata direttamente dal PHP, li ripristina. */
svg.icon-solid,
.icon-solid {
    fill: currentColor !important;
    stroke: none !important;
    stroke-width: 0 !important;
    color: #37474f;
    width: 19px !important;
    height: 19px !important;
}
.share-btn:hover .icon-solid { color: #fff !important; }

/* Scheda annuncio: proporzioni corrette (l'immagine non deve dettare
   l'altezza della scheda) */
.listing-card { align-items: stretch; }
.listing-media { position: relative; min-height: 0; }
.listing-slide { position: relative; height: 100%; min-height: 220px; }
.listing-slide > a { display: block; height: 100%; }
.listing-slide img { width: 100%; height: 100%; object-fit: cover; }
.results-map-layout .listing-card { min-height: 260px; max-height: 340px; }
.results-map-layout .listing-media img,
.results-map-layout .listing-slide { min-height: 240px; }
.results-map-layout .listing-body { overflow: hidden; }
@media (max-width: 900px) { .results-map-layout .listing-card { max-height: none; } }

/* Stati informativi nella sezione media della scheda */
.media-empty-note { display: flex; gap: 12px; align-items: flex-start; padding: 16px; border: 1px dashed #cfdcd5; border-radius: 12px; background: #fbfdfc; }
.media-empty-note .icon { width: 22px; height: 22px; color: var(--green, #149752); flex: none; }
.media-empty-note strong { display: block; font-size: 14px; }
.media-empty-note span { font-size: 13px; color: #5b6f7a; }
.media-empty-note a { color: var(--green-dark, #0c713d); font-weight: 700; }

/* ============================================================
   v5.28 — Raffinamenti scheda immobile, condivisione e filtri
   ============================================================ */

/* --- Sidebar che accompagna lo scorrimento e si ferma a fine griglia (sopra la scheda agenzia) --- */
.property-sidebar { position: sticky; top: 82px; align-self: start; max-height: calc(100vh - 98px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #c7d4da transparent; padding-right: 2px; }
.property-sidebar::-webkit-scrollbar { width: 6px; }
.property-sidebar::-webkit-scrollbar-thumb { background: #c7d4da; border-radius: 999px; }
.property-sidebar .sticky-card { position: static; top: auto; }
@media (max-width: 1000px) { .property-sidebar { position: static; max-height: none; overflow: visible; padding-right: 0; } }

/* --- Scheda media a linguette accanto alla galleria --- */
.media-card { padding: 0; overflow: hidden; }
.media-tab-list { display: flex; gap: 4px; padding: 10px 12px 0; border-bottom: 1px solid var(--line, #e3e8ec); background: #f7fafb; }
.media-tab { display: inline-flex; align-items: center; gap: 8px; padding: 11px 18px 12px; margin-bottom: -1px; border: 1px solid transparent; border-bottom: 0; border-radius: 11px 11px 0 0; background: transparent; font: inherit; font-size: 14px; font-weight: 700; color: #55676f; cursor: pointer; transition: color .15s ease, background .15s ease; }
.media-tab .icon { width: 16px; height: 16px; color: currentColor; }
.media-tab em { font-style: normal; display: inline-grid; place-items: center; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px; background: #e3ecef; color: #3d4f59; font-size: 11px; font-weight: 800; }
.media-tab:hover { color: var(--green-dark, #0c713d); }
.media-tab.active { background: #fff; border-color: var(--line, #e3e8ec); color: var(--ink, #14232d); }
.media-tab.active em { background: var(--green, #149752); color: #fff; }
.media-pane { padding: 18px; }
.media-pane .media-embed { margin: 0; }

/* --- Barra preferiti + condivisione --- */
.share-bar { display: inline-flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 0; padding: 8px 10px 8px 8px; background: #fff; border: 1px solid var(--line, #e3e8ec); border-radius: 999px; box-shadow: 0 4px 14px rgba(9, 27, 37, .06); }
.share-sep { width: 1px; align-self: stretch; margin: 4px 0; background: var(--line, #e3e8ec); }
.share-bar-label { font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #6b7c86; }
.share-group { display: inline-flex; align-items: center; gap: 7px; }
.share-btn { width: 36px; height: 36px; border-radius: 50%; }
.fav-btn { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border: 1.5px solid #f0c8c4; border-radius: 999px; background: #fff5f4; color: #c0392b; font: inherit; font-size: 14px; font-weight: 750; cursor: pointer; transition: all .15s ease; }
.fav-btn .fav-heart { font-size: 17px; line-height: 1; }
.fav-btn:hover { border-color: #c0392b; transform: translateY(-1px); }
.fav-btn.active { background: #c0392b; border-color: #c0392b; color: #fff; box-shadow: 0 6px 16px rgba(192, 57, 43, .28); }

/* Variante di chiusura scheda: sezione dedicata sopra la scheda agenzia */
.share-footer-section { padding-top: 0; }
.share-footer-card { display: flex; align-items: center; justify-content: space-between; gap: 26px; flex-wrap: wrap; padding: 26px 30px; background: linear-gradient(120deg, #f3faf6, #ffffff 55%); border: 1px solid #d9ece1; border-radius: 18px; }
.share-footer-card h2 { margin: 4px 0 6px; font-size: 21px; letter-spacing: -.02em; }
.share-footer-card p { margin: 0; max-width: 520px; color: #5b6e79; font-size: 14px; }
@media (max-width: 720px) { .share-footer-card { flex-direction: column; align-items: flex-start; } }

/* --- Bottone Disegna area: due etichette pulite, commutate dallo stato --- */
.map-tool-label-off, .map-tool-label-on { display: inline-flex; align-items: center; gap: 7px; }
.map-tool .map-tool-label-on { display: none; }
.map-tool.active .map-tool-label-off { display: none; }
.map-tool.active .map-tool-label-on { display: inline-flex; }
.map-tool.active .map-tool-label-on .icon { color: #fff; }

/* --- Ricerca in home: pannello ridisegnato --- */
.search-panel { padding: 30px 30px 26px; border: 1px solid rgba(20, 151, 82, .16); border-radius: 22px; background: #fff; box-shadow: 0 24px 60px rgba(9, 27, 37, .16); }
.search-panel-heading { margin-bottom: 22px; padding-bottom: 18px; border-bottom: 1px solid #edf3f0; }
.search-panel-heading .eyebrow { color: var(--green, #149752); }
.search-panel-heading h2 { font-size: 21px; }
.search-panel-icon { width: 46px; height: 46px; border-radius: 999px; background: var(--green-soft, #eaf7f0); color: var(--green-dark, #0c713d); }
.search-panel-icon svg { width: 21px; height: 21px; }
.search-panel .field > span { display: block; margin-bottom: 7px; font-size: 11px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: #5b6e79; }
.search-panel .field input, .search-panel .field select { width: 100%; padding: 13px 15px; border: 1.5px solid #dbe4e9; border-radius: 12px; background: #fbfdfe; font: inherit; font-size: 15px; transition: border-color .15s ease, box-shadow .15s ease, background .15s ease; }
.search-panel .field input:focus, .search-panel .field select:focus { outline: 0; border-color: var(--green, #149752); background: #fff; box-shadow: 0 0 0 4px rgba(20, 151, 82, .12); }
.search-panel .button-primary { padding: 15px 22px; border-radius: 12px; font-size: 15.5px; letter-spacing: .01em; box-shadow: 0 10px 24px rgba(20, 151, 82, .3); }
.search-shortcuts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.search-shortcuts a { display: inline-flex; align-items: center; gap: 6px; padding: 7px 13px; border: 1px solid #dbe4e9; border-radius: 999px; background: #fff; font-size: 13px; font-weight: 700; color: #3d4f59; text-decoration: none; transition: all .15s ease; }
.search-shortcuts a:hover { border-color: var(--green, #149752); color: var(--green-dark, #0c713d); background: var(--green-soft, #eaf7f0); }
.search-note { margin: 14px 0 0; font-size: 12.5px; color: #7a8a93; }

/* --- Filtri pagina immobili: barra rifinita --- */
.filter-bar { top: 8px; padding: 12px 14px; border-radius: 18px; border-color: #dfe8ec; box-shadow: 0 10px 30px rgba(9, 27, 37, .1); }
.filter-search { flex: 1 1 300px; padding: 0 6px 0 16px; border: 1.5px solid #d5e0e6; border-radius: 14px; background: #f8fbfc; transition: border-color .15s ease, box-shadow .15s ease, background .15s ease; }
.filter-search:focus-within { border-color: var(--green, #149752); background: #fff; box-shadow: 0 0 0 4px rgba(20, 151, 82, .12); }
.filter-search .icon { color: var(--green, #149752); }
.filter-search input { padding: 13px 8px 13px 0; font-size: 14.5px; }
.filter-pill { position: relative; padding: 11px 15px; border-radius: 12px; border-color: #d5e0e6; color: #2c3e48; }
.filter-pill:hover { border-color: var(--green, #149752); box-shadow: 0 3px 10px rgba(20, 151, 82, .12); }
.filter-pill.active { box-shadow: inset 0 0 0 1px var(--green, #149752); }
.filter-pill select { font-weight: 700; }
.filter-pill:has(select)::after { content: ""; width: 8px; height: 8px; margin-left: 2px; border-right: 2px solid #8ba0aa; border-bottom: 2px solid #8ba0aa; transform: rotate(45deg) translateY(-2px); pointer-events: none; }
.filter-pill.active:has(select)::after { border-color: var(--green-dark, #0c713d); }
.filter-pill-more { border-style: solid; background: #f3f7f9; }
.filter-submit { border-radius: 12px; padding: 13px 26px; box-shadow: 0 8px 20px rgba(20, 151, 82, .28); }
.filter-drawer { margin-top: 12px; padding: 18px; border-top: 0; background: #f7fafb; border: 1px solid #e2ebef; border-radius: 14px; }
.filter-drawer-grid input, .filter-drawer-grid select { border-radius: 11px; border: 1.5px solid #d5e0e6; background: #fff; transition: border-color .15s ease, box-shadow .15s ease; }
.filter-drawer-grid input:focus, .filter-drawer-grid select:focus { outline: 0; border-color: var(--green, #149752); box-shadow: 0 0 0 4px rgba(20, 151, 82, .12); }
.filter-features { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 16px; }
.filter-features-label { flex-basis: 100%; font-size: 11px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: #5b6e79; }
.feature-chip { border-radius: 999px; border: 1.5px solid #d5e0e6; background: #fff; padding: 8px 14px; font-weight: 600; }
.feature-chip input { position: absolute; opacity: 0; pointer-events: none; }
.feature-chip.active { font-weight: 750; box-shadow: 0 3px 10px rgba(20, 151, 82, .14); }
.filter-drawer-actions { margin-top: 18px; padding-top: 14px; border-top: 1px dashed #d8e3e8; }
.feature-chip { position: relative; overflow: hidden; }


/* ReoneGEST 6.3 - Modelli e contratti */
.contracts-home-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.8fr);gap:18px}.contract-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.contract-type-card{border:1px solid #dfe8e4;background:#fff;border-radius:14px;padding:16px;text-align:left;display:flex;flex-direction:column;gap:7px;cursor:pointer}.contract-type-card:hover{border-color:#0b9153;box-shadow:0 10px 24px rgba(14,74,49,.1)}.contract-type-card>span{width:38px;height:38px;border-radius:11px;background:#e9f7ef;color:#087443;display:grid;place-items:center}.contract-type-card strong{font-size:14px}.contract-type-card small{color:#6b7c75}.contracts-recent{display:flex;flex-direction:column;gap:8px}.contracts-recent button{display:flex;align-items:center;gap:10px;width:100%;border:1px solid #e5ece8;background:#fff;border-radius:11px;padding:11px;text-align:left}.contracts-recent button>span{color:#087443}.contracts-recent button div{display:flex;flex-direction:column}.contracts-recent small{color:#72817b}.modal-contracts-wide{width:min(1180px,calc(100vw - 28px))!important;max-width:none!important}.contract-editor-toolbar{display:flex;flex-wrap:wrap;gap:6px;border:1px solid #dfe8e4;border-bottom:0;border-radius:12px 12px 0 0;padding:8px;background:#f5f8f7}.contract-editor-toolbar button{border:1px solid #d5e0db;background:#fff;border-radius:7px;padding:7px 10px;cursor:pointer}.contract-editor{min-height:430px;border:1px solid #dfe8e4;background:#fff;padding:42px;outline:none;line-height:1.6;box-shadow:inset 0 0 0 1px #fff}.placeholder-palette{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.placeholder-palette strong{width:100%}.placeholder-palette button{border:1px solid #dce7e2;border-radius:999px;background:#f8fbfa;padding:6px 10px;font-size:12px;cursor:pointer}.wizard-steps{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:16px}.wizard-steps button{border:0;border-radius:9px;padding:9px 6px;background:#edf3f0;color:#61716a;font-size:12px}.wizard-steps button.active{background:#087443;color:#fff}.clause-selector-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.clause-select-card{border:1px solid #dfe8e4;border-radius:12px;padding:12px;display:flex;gap:10px;align-items:flex-start}.clause-select-card input{width:auto;margin-top:4px}.clause-select-card span{display:flex;flex-direction:column}.clause-select-card small{color:#6d7b75}.contract-review-box{border:1px solid #dfe8e4;background:#f8fbfa;border-radius:14px;padding:18px}.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.review-grid span{background:#fff;border:1px solid #e1e9e5;border-radius:10px;padding:12px;display:flex;flex-direction:column;color:#6c7b75}.review-grid strong{color:#172f27;margin-top:4px}.contract-preview-toolbar{display:flex;justify-content:flex-end;gap:8px;margin-bottom:12px}.contract-a4-preview{width:min(794px,100%);min-height:1123px;margin:0 auto;background:#fff;border:1px solid #dfe8e4;box-shadow:0 18px 50px rgba(17,47,38,.12);padding:70px 64px;line-height:1.65;color:#1c2d27}.contract-a4-preview h1{text-align:center;font-size:25px}.contract-a4-preview h2{font-size:17px;margin-top:28px}@media(max-width:900px){.contracts-home-grid{grid-template-columns:1fr}.contract-type-grid{grid-template-columns:repeat(2,1fr)}.wizard-steps{grid-template-columns:repeat(3,1fr)}.review-grid{grid-template-columns:1fr 1fr}.contract-a4-preview{padding:34px 24px;min-height:900px}.clause-selector-grid{grid-template-columns:1fr}}@media(max-width:560px){.contract-type-grid,.review-grid{grid-template-columns:1fr}.wizard-steps{grid-template-columns:repeat(2,1fr)}}
.contract-dossier-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px;margin-bottom:16px;border-radius:18px;background:linear-gradient(135deg,#173b2d,#276d50);color:#fff}.contract-dossier-head>div:first-child{min-width:0}.contract-dossier-head span{font-size:10px;font-weight:900;letter-spacing:.14em;opacity:.7}.contract-dossier-head h2{margin:5px 0;font-size:clamp(22px,3vw,32px);overflow-wrap:anywhere}.contract-dossier-head p{margin:0;opacity:.78;overflow-wrap:anywhere}.contract-readiness{display:grid;place-items:center;flex:none;width:116px;height:116px;border-radius:50%;background:conic-gradient(#60d394 var(--progress),rgba(255,255,255,.16) 0);box-shadow:inset 0 0 0 12px rgba(23,59,45,.72);text-align:center}.contract-readiness strong{font-size:25px;line-height:1}.contract-readiness span{max-width:70px;margin-top:3px;font-size:9px;line-height:1.2;letter-spacing:0}.contract-dossier-section{margin-top:16px}.contract-checklist-grid{display:grid;gap:9px}.contract-check-item{display:grid;grid-template-columns:36px minmax(0,1fr) minmax(145px,190px) auto;align-items:center;gap:10px;padding:11px;border:1px solid #e1e8e4;border-radius:13px;background:#fff}.contract-check-item>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#fff5dc;color:#9b6b08}.contract-check-item.is-complete>span{background:#e7f7ee;color:#087443}.contract-check-item.is-blocked>span{background:#fdeceb;color:#b3271d}.contract-check-item strong,.contract-check-item small{display:block;overflow-wrap:anywhere}.contract-check-item small{margin-top:3px;color:#718078}.contract-check-item select{width:100%;min-width:0}.contract-dossier-section .mono-text{font-size:11px;overflow-wrap:anywhere}@media(max-width:760px){.contract-dossier-head{align-items:flex-start}.contract-readiness{width:86px;height:86px;box-shadow:inset 0 0 0 9px rgba(23,59,45,.72)}.contract-readiness strong{font-size:19px}.contract-check-item{grid-template-columns:34px minmax(0,1fr)}.contract-check-item select,.contract-check-item button{grid-column:2}.contract-check-item button{justify-self:start}}@media(max-width:480px){.contract-dossier-head{display:grid}.contract-readiness{width:78px;height:78px}.contract-preview-toolbar{justify-content:stretch;overflow-x:auto}.contract-preview-toolbar .button{min-width:max-content}}
.contract-document-heading{break-after:avoid}.contract-document-meta{margin-bottom:24px}.document-hash{max-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;overflow-wrap:anywhere;word-break:break-all}.contract-document-content{font-family:Georgia,"Times New Roman",serif;font-size:13px;line-height:1.65;color:#202b27}.contract-document-content h1{text-align:center;margin:20px 0 24px;font-size:25px;line-height:1.2}.contract-document-content h2{margin:25px 0 9px;padding-bottom:5px;border-bottom:1px solid #dfe5e2;font-family:Inter,Arial,sans-serif;font-size:16px;color:#173b2d;break-after:avoid}.contract-document-content h3{font-size:14px;break-after:avoid}.contract-document-content p,.contract-document-content li{orphans:3;widows:3}.contract-document-content .contract-agency-card,.contract-document-content .contract-party-card{margin:9px 0;padding:10px 12px;border:1px solid #dfe5e2;border-radius:6px;background:#fbfcfb;break-inside:avoid}.contract-document-content .contract-agency-card h3,.contract-document-content .contract-party-card h3{margin:0 0 5px;color:#173b2d}.contract-document-content .contract-agency-card p,.contract-document-content .contract-party-card p{margin:3px 0}.contract-document-content .signature-table{width:100%;margin-top:28px;border-collapse:collapse;break-inside:avoid}.contract-document-content .signature-table td{width:33.33%;padding:12px 8px;text-align:center;vertical-align:top}.contract-document-content .missing-field{background:#fff1b8;color:#7b5200;padding:1px 4px;border-radius:3px}.contract-page-break{break-before:page;page-break-before:always}.contract-document-annex{margin-top:26px;break-before:auto}.contract-document-annex h2{font-size:17px;color:#173b2d}@media print{.contract-document-content{font-size:10.5pt}.contract-document-content h1{font-size:19pt}.contract-document-content h2{font-size:12pt}.contract-page-break,.contract-document-annex{break-before:page;page-break-before:always}.contract-document-meta{break-inside:avoid}}
.contract-professional-sheet{--contract-accent:#075e3b}.contract-professional-sheet .print-sheet-header{border-bottom-color:var(--contract-accent)}.contract-professional-sheet .contract-document-heading{margin-top:26px;padding:22px 24px;border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--contract-accent) 12%,white),#fff);border:1px solid color-mix(in srgb,var(--contract-accent) 28%,white)}.contract-professional-sheet .contract-document-heading span,.contract-professional-sheet .contract-document-content h2,.contract-professional-sheet .contract-document-annex h2{color:var(--contract-accent)}.contract-professional-sheet .document-status{color:var(--contract-accent);border-color:color-mix(in srgb,var(--contract-accent) 28%,white);background:color-mix(in srgb,var(--contract-accent) 9%,white)}.contract-professional-sheet .contract-document-meta th{border-color:color-mix(in srgb,var(--contract-accent) 14%,#dfe8e4);background:color-mix(in srgb,var(--contract-accent) 7%,white)}.contract-professional-sheet .contract-document-meta td{border-color:color-mix(in srgb,var(--contract-accent) 14%,#dfe8e4)}.contract-layout-classic .contract-document-heading{padding:0;border:0;border-radius:0;background:none}.contract-layout-minimal .contract-professional-sheet{padding-top:40px}.contract-layout-minimal .contract-document-heading{padding:0 0 15px;border:0;border-bottom:2px solid var(--contract-accent);border-radius:0;background:none}.contract-layout-minimal .contract-document-meta th{background:#fff}.clause-select-card.is-manual-choice{border-style:dashed;background:#fffdf7}.clause-select-card.is-manual-choice .contract-clause-status{color:#835c08;background:#fff2c9}

/* Fascicolo estimativo professionale multi-unità. Il motore V8.4 resta
   separato: queste regole governano soltanto composizione, leggibilità e A4. */
.valuation-dossier-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.valuation-dossier-summary>span{display:grid;gap:4px;min-width:0;padding:13px 14px;border:1px solid #dbe8e1;border-radius:12px;background:linear-gradient(145deg,#f8fcfa,#edf7f2)}.valuation-dossier-summary small{color:#64776d;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.045em}.valuation-dossier-summary strong{color:#0b5935;font-size:17px;line-height:1.25;overflow-wrap:anywhere}.valuation-unit-list{display:grid;gap:12px}.valuation-unit-card{min-width:0;overflow:hidden;border:1px solid #d9e5df;border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(18,67,45,.06)}.valuation-unit-card.is-primary{border-color:#8bcaaa}.valuation-unit-card>header{display:grid;gap:3px;padding:13px 15px;border-bottom:1px solid #e6eee9;background:#f8fbf9}.valuation-unit-card>header span{color:#087a45;font-size:10px;font-weight:900;letter-spacing:.1em}.valuation-unit-card>header strong{overflow-wrap:anywhere}.valuation-unit-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.valuation-unit-facts>span{display:grid;gap:3px;min-width:0;padding:12px 15px;border-right:1px solid #edf2ef}.valuation-unit-facts>span:last-child{border-right:0}.valuation-unit-facts small{color:#718078;font-size:10px}.valuation-unit-facts b{overflow-wrap:anywhere;font-size:13px}.valuation-unit-card>footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 15px;border-top:1px solid #edf2ef;color:#63736b;font-size:11px}.valuation-unit-card>footer span{min-width:0;overflow-wrap:anywhere}.valuation-dossier-units .compact-note{margin-top:12px}.valuation-professional-section,.valuation-dossier-report{margin-top:18px}.valuation-professional-section>h2,.valuation-dossier-report>h2{margin:0 0 10px;color:#123f2d;font-size:18px}.valuation-method-note{margin:0 0 12px;padding:10px 12px;border-left:4px solid #07884b;background:#f1f8f4;color:#44594f;font-size:11px;line-height:1.5}.valuation-unit-summary small{display:block;margin-top:3px;color:#738079;font-size:8px}.valuation-unit-total th{background:#e9f6ef!important;color:#075e37!important}.valuation-unit-report{margin-top:22px;padding-top:16px;border-top:2px solid #0a7b48}.valuation-unit-report>header{margin-bottom:10px}.valuation-unit-report>header span{color:#087a45;font-size:9px;font-weight:900;letter-spacing:.12em}.valuation-unit-report>header h3{margin:3px 0;color:#132c22;font-size:17px}.valuation-unit-report>header small{color:#6d7b74}.valuation-unit-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0}.valuation-unit-values>span{display:grid;gap:3px;padding:10px;border:1px solid #dbe8e1;border-radius:9px;background:#f8fbf9}.valuation-unit-values small{color:#66786f;font-size:9px}.valuation-unit-values strong{color:#0a5f39;font-size:13px;overflow-wrap:anywhere}.valuation-unit-cover{display:block;width:100%;max-height:280px;margin:11px 0;border-radius:10px;object-fit:cover}.valuation-unit-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0}.valuation-unit-gallery img{width:100%;height:100px;border-radius:8px;object-fit:cover}.valuation-narrative-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.valuation-narrative-grid .document-notes{margin:0}.valuation-print-options>div{max-height:min(65vh,560px);overflow-y:auto}
.valuation-module-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0 20px}.valuation-module-guide article{display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px;padding:15px;border:1px solid #dbe8e1;border-radius:14px;background:#fff}.valuation-module-guide article>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e8f6ee;color:#087a45;font-size:10px;font-weight:900}.valuation-module-guide article>div{display:grid;gap:4px;min-width:0}.valuation-module-guide strong{font-size:12px;color:#143e2e}.valuation-module-guide small{color:#68776f;line-height:1.45}.valuation-dossier-quickbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 16px;padding:16px 18px;border:1px solid #bcdcca;border-radius:15px;background:linear-gradient(135deg,#eff9f4,#fff)}.valuation-dossier-quickbar>div:first-child{display:grid;gap:3px;min-width:0}.valuation-dossier-quickbar>div:first-child>span{color:#087a45;font-size:9px;font-weight:900;letter-spacing:.12em}.valuation-dossier-quickbar>div:first-child>strong{font-size:14px;color:#123e2d}.valuation-dossier-quickbar>div:first-child>small{color:#68776f}.valuation-dossier-quickbar>div:last-child{display:flex;flex:none;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.valuation-workspace-tabs{align-items:center;background:#fff;border:1px solid #dce8e2;border-radius:13px;display:flex;gap:5px;margin:0 0 16px;padding:5px}.valuation-workspace-tabs button{align-items:center;background:transparent;border:0;border-radius:9px;color:#65766e;cursor:pointer;display:inline-flex;font:inherit;font-size:11px;font-weight:850;gap:7px;min-height:38px;padding:8px 13px}.valuation-workspace-tabs button.active{background:#e9f6ef;color:#087a45}.valuation-workspace-tabs svg{height:15px;width:15px}.valuation-workspace{background:#fff;border:1px solid #dbe7e1;border-radius:18px;box-shadow:0 10px 34px rgba(21,64,46,.08);min-width:0;overflow:hidden}.valuation-workspace[hidden]{display:none!important}.valuation-workspace-head{align-items:center;background:linear-gradient(135deg,#f0f9f4,#fff);border-bottom:1px solid #dce9e2;display:flex;gap:18px;justify-content:space-between;padding:18px 20px}.valuation-workspace-head>div{display:grid;gap:3px;min-width:0}.valuation-workspace-head span{color:#087a45;font-size:9px;font-weight:900;letter-spacing:.14em}.valuation-workspace-head h2{color:#123d2d;font-size:20px;line-height:1.2;margin:0;overflow-wrap:anywhere}.valuation-workspace-head p{color:#66786f;font-size:11px;line-height:1.45;margin:0}.valuation-workspace-frame-wrap{min-height:720px;position:relative}.valuation-workspace-frame{border:0;display:block;height:max(760px,calc(100dvh - 190px));max-width:100%;min-height:720px;width:100%}.valuation-workspace>.admin-form{border:0;border-radius:0;box-shadow:none;margin:0;max-height:none;overflow:visible;padding:18px}.valuation-workspace .form-actions{position:relative}.valuation-workspace .admin-page-loading{inset:0;position:absolute;z-index:3}
@media(max-width:900px){.valuation-dossier-summary,.valuation-unit-facts,.valuation-unit-values{grid-template-columns:repeat(2,minmax(0,1fr))}.valuation-unit-facts>span:nth-child(2){border-right:0}.valuation-unit-facts>span:nth-child(-n+2){border-bottom:1px solid #edf2ef}.valuation-unit-card>footer{align-items:flex-start;flex-direction:column}.valuation-narrative-grid{grid-template-columns:1fr}}
@media(max-width:900px){.valuation-module-guide{grid-template-columns:1fr}.valuation-dossier-quickbar{align-items:flex-start;flex-direction:column}.valuation-dossier-quickbar>div:last-child{width:100%;justify-content:flex-start}.valuation-workspace-head{align-items:flex-start;flex-direction:column}.valuation-workspace-head .button{width:100%}.valuation-workspace-frame{height:max(780px,calc(100dvh - 138px));min-height:780px}}
@media(max-width:560px){.valuation-dossier-summary,.valuation-unit-facts,.valuation-unit-values{grid-template-columns:1fr}.valuation-unit-facts>span{border-right:0;border-bottom:1px solid #edf2ef}.valuation-unit-facts>span:last-child{border-bottom:0}.valuation-unit-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.valuation-unit-gallery img{height:90px}.valuation-unit-card>footer .button{width:100%;white-space:normal}.valuation-dossier-units .form-actions .button{width:100%;white-space:normal}.valuation-unit-summary{min-width:720px}.valuation-dossier-report{min-width:0;overflow-x:auto}.valuation-dossier-quickbar>div:last-child{display:grid;grid-template-columns:1fr}.valuation-dossier-quickbar .button{width:100%;white-space:normal}.table-actions .valuation-dossier-action{min-width:88px}.valuation-workspace-tabs{align-items:stretch;flex-direction:column}.valuation-workspace-tabs button{justify-content:center;width:100%}.valuation-workspace-head{padding:15px}.valuation-workspace-head h2{font-size:17px}.valuation-workspace>.admin-form{padding:12px}.valuation-workspace-frame-wrap{min-height:760px}.valuation-workspace-frame{min-height:760px}}

.valuation-comparable-row{background:#f8fbf9;border:1px solid #dbe8e1;border-radius:14px;margin:10px 0;padding:13px}.valuation-comparable-row>header{align-items:center;border-bottom:1px solid #e4ece8;display:flex;gap:12px;justify-content:space-between;margin:-2px 0 12px;padding:0 1px 9px}.valuation-comparable-row>header strong{color:#174632;font-size:12px}.valuation-comparable-row [data-comparable-remove]{align-items:center;background:#fff;border:1px solid #e2c7c4;border-radius:50%;color:#a63d35;cursor:pointer;display:flex;font-size:18px;height:30px;justify-content:center;line-height:1;padding:0;width:30px}.valuation-comparable-row [data-comparable-remove]:hover{background:#fff3f2;border-color:#c65c53}.valuation-comparable-row .field-wide{grid-column:span 2}
@media(max-width:720px){.valuation-comparable-row{padding:11px}.valuation-comparable-row .field-wide{grid-column:auto}}
@media print{.valuation-professional-section,.valuation-unit-values,.valuation-unit-cover,.valuation-unit-gallery,.valuation-avm-evidence,.valuation-comparable-stats{break-inside:avoid}.valuation-unit-report,.valuation-unit-methods{break-inside:auto}.valuation-unit-report>header{break-after:avoid}.valuation-unit-report>header+.document-table{break-inside:avoid}.valuation-unit-page{break-before:auto}.valuation-dossier-report{overflow:visible}.valuation-unit-summary{min-width:0}.valuation-unit-values{grid-template-columns:repeat(4,minmax(0,1fr))}.valuation-unit-cover{width:100%;max-height:92mm;object-fit:cover}.valuation-unit-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:3mm}.valuation-unit-gallery img{width:100%;height:52mm;object-fit:cover}.valuation-professional-section>h2,.valuation-dossier-report>h2{font-size:13pt}.valuation-unit-report>header h3{font-size:12pt}.valuation-avm-evidence .button{display:none}.valuation-calculation-audit article{break-inside:avoid}.valuation-comparables-complete thead{display:table-header-group}.valuation-comparables-complete tr{break-inside:avoid}.valuation-comparable-stats{grid-template-columns:repeat(6,minmax(0,1fr))}}

/* Moduli esterni integrati nel contenitore ReoneGEST */
.embedded-module-shell{position:relative;width:100%;height:calc(100vh - 154px);min-height:680px;background:#fff;border:1px solid var(--border,#dfe7e2);border-radius:18px;overflow:hidden;box-shadow:0 8px 24px rgba(19,47,39,.06)}
.embedded-module-frame{display:block;width:100%;height:100%;border:0;background:#fff}
@media(max-width:900px){.embedded-module-shell{height:calc(100vh - 122px);min-height:620px;border-radius:12px}}


/* RE.ONE 6.4 - workspace nativi CMS/Super Admin e Document Engine */
.native-workspace{display:grid;grid-template-columns:230px minmax(0,1fr);gap:18px;align-items:start}.workspace-subnav{position:sticky;top:82px;background:#fff;border:1px solid var(--border,#e6e9e7);border-radius:16px;padding:12px;box-shadow:0 8px 28px rgba(24,45,35,.06)}.workspace-subnav-head{padding:10px 10px 14px;border-bottom:1px solid #edf0ee;margin-bottom:8px}.workspace-subnav-head small{display:block;font-size:10px;font-weight:800;letter-spacing:.13em;color:#8a958f}.workspace-subnav-head strong{display:block;font-size:18px;margin-top:4px;color:#173b2d}.workspace-subnav-item{width:100%;display:flex;align-items:center;gap:10px;border:0;background:transparent;border-radius:10px;padding:10px;text-align:left;color:#52615a;font-weight:700;cursor:pointer}.workspace-subnav-item .icon{width:18px;height:18px}.workspace-subnav-item span{flex:1}.workspace-subnav-item em{font-style:normal;font-size:10px}.workspace-subnav-item:hover,.workspace-subnav-item.active{background:#edf7f2;color:#176044}.workspace-subnav-foot{border-top:1px solid #edf0ee;margin-top:10px;padding:12px 10px 4px;font-size:12px;color:#758079}.workspace-subnav-foot a,.workspace-subnav-foot span{display:flex;gap:8px;align-items:center;color:inherit;text-decoration:none}.workspace-main{min-width:0}.contract-standard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.contract-standard-card{display:grid;grid-template-columns:46px minmax(0,1fr) 20px;align-items:center;gap:12px;padding:16px;border:1px solid #e4eae7;border-radius:14px;background:#fff;text-align:left;cursor:pointer;transition:.2s}.contract-standard-card:hover{border-color:#2a7d59;box-shadow:0 10px 28px rgba(27,91,63,.10);transform:translateY(-1px)}.contract-standard-card>span{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:#edf7f2;color:#176044}.contract-standard-card strong{display:block;color:#173b2d;font-size:15px}.contract-standard-card small{display:block;color:#78837d;margin-top:4px;line-height:1.35}.contracts-hero{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#173b2d,#276d50);color:#fff;border-radius:18px;padding:24px 28px;margin-bottom:18px;overflow:hidden}.contracts-hero small{font-weight:800;letter-spacing:.14em;opacity:.7}.contracts-hero h2{margin:6px 0;font-size:24px}.contracts-hero p{margin:0;max-width:760px;opacity:.82}.contracts-hero>span .icon{width:72px;height:72px;opacity:.16}.missing-placeholder{background:#fff1b8;color:#8a5d00;padding:1px 4px;border-radius:4px}.chip-filters{display:flex;flex-wrap:wrap;gap:8px}.chip-filter{border:1px solid #dfe6e2;background:#fff;border-radius:999px;padding:8px 12px;font-weight:700;color:#59675f;cursor:pointer}.chip-filter.active{background:#176044;color:#fff;border-color:#176044}@media(max-width:900px){.native-workspace{grid-template-columns:1fr}.workspace-subnav{position:static;display:flex;overflow:auto}.workspace-subnav-head,.workspace-subnav-foot{display:none}.workspace-subnav-item{min-width:max-content;width:auto}.contract-standard-grid{grid-template-columns:1fr}}@media(max-width:600px){.contracts-hero{padding:20px}.contracts-hero>span{display:none}}

/* Official RE.ONE brand variants */
.login-logo{background:transparent!important;padding:0!important;width:230px!important}
.login-logo img{width:100%;height:auto;max-height:110px;object-fit:contain}
.login-brand-panel .login-logo img{filter:none!important}
@media(max-width:740px){
  .login-shell{min-height:100dvh;grid-template-columns:1fr}
  .login-brand-panel{min-height:0!important;padding:22px 20px 24px!important;gap:12px}
  .login-logo{width:158px!important;margin:0 0 6px!important}
  .login-logo img{max-height:72px!important}
  .login-brand-copy h1{font-size:30px!important;line-height:1.08;margin:7px 0 9px}
  .login-brand-copy p{font-size:14px;line-height:1.45;margin:0}
  .login-feature-list,.login-brand-footer{display:none!important}
  .login-form-panel{padding:20px 12px 32px!important;place-items:start center}
  .login-card{width:100%;max-width:520px;padding:24px 19px!important}
  .login-card h2{font-size:27px;line-height:1.12}
}
/* Professional My RE.ONE conversations · V8.5.6 */
.staff-conversation-list{display:grid;gap:16px}.staff-conversation{border:1px solid #dfe9e4;border-radius:20px;background:#fff;overflow:hidden;box-shadow:0 10px 30px rgba(10,55,39,.06)}.staff-conversation>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid #e9efec;background:linear-gradient(180deg,#fff,#fbfdfc)}.staff-conversation>header>div:first-child{display:flex;align-items:center;gap:11px;min-width:0}.staff-conversation header strong,.staff-conversation header small{display:block}.staff-conversation header small{color:#73827b;margin-top:2px;white-space:normal}.staff-chat-history{max-height:380px;overflow:auto;padding:16px;background:#f7faf8;display:grid;gap:9px}.staff-chat-bubble{max-width:min(78%,680px);padding:11px 13px;border-radius:16px;border:1px solid #e1e9e5}.staff-chat-bubble.from-customer{justify-self:start;background:#fff;border-bottom-left-radius:5px}.staff-chat-bubble.from-agency{justify-self:end;background:#e8f6ee;border-color:#cfe8d9;border-bottom-right-radius:5px}.staff-chat-bubble>div{display:flex;justify-content:space-between;gap:15px;font-size:11px}.staff-chat-bubble time{color:#7b8982}.staff-chat-bubble p{margin:5px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.staff-chat-bubble small{display:block;margin-top:7px;color:#64746c}.staff-chat-composer{display:flex;gap:10px;padding:14px 16px;background:#fff;border-top:1px solid #e9efec}.staff-chat-composer input{flex:1;min-width:0;border:1px solid #ccd9d2;border-radius:12px;padding:11px 13px}@media(max-width:720px){.staff-conversation>header{align-items:flex-start;flex-direction:column}.staff-chat-bubble{max-width:92%}.staff-chat-composer{flex-direction:column}.staff-chat-composer .button{width:100%}}

/* RE.ONE 8.6.2 · Cliente 360° / Qualità / Infrastruttura */
.admin-nav-item[data-module="client360"] svg,.admin-nav-item[data-module="quality"] svg,.admin-nav-item[data-module="communications_infra"] svg{opacity:.95}.admin-nav-item[data-module="quality"]{border-left:2px solid rgba(205,39,49,.45)}.admin-nav-item[data-module="client360"]{border-left:2px solid rgba(7,148,71,.45)}

/* RE.ONE 8.6.2 · quality & communications workspaces */
.quality-thread{display:grid;gap:10px;max-height:52vh;overflow:auto;padding:6px}
.quality-msg{padding:11px 13px;border-radius:14px;background:#f3f5f4;border:1px solid #e3e9e5}
.quality-msg--customer{background:#edf8f2;border-color:#c8e6d3}
.quality-actions{display:flex;flex-wrap:wrap;gap:8px}
.review-official-response{padding:10px 12px;background:#f0f7f3;border-left:4px solid var(--green,#087846);border-radius:0 10px 10px 0}
.comm-health-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.comm-health-card{border:1px solid #e4e9e6;border-radius:14px;padding:14px;background:#fff}
@media(max-width:760px){.comm-health-grid{grid-template-columns:1fr}}

/* ========================================================================== 
   RE.ONE V9.0.2 - adaptive stability layer
   This final layer normalises every legacy screen without changing markup.
   ========================================================================== */

html {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    overflow-x: clip;
    overscroll-behavior-x: none;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
    overflow-x: clip;
    overscroll-behavior-x: none;
}

:where(main, section, article, aside, form, fieldset, .shell, .card, .panel,
       .property-main-column, .property-sidebar, .listing-body, .admin-main,
       .customer-main, .platform main, .ws-main, .sa-main) {
    min-width: 0;
}

:where(img, video, iframe, canvas, svg) { max-width: 100%; }
:where(input, select, textarea, button) { min-width: 0; max-width: 100%; }
:where(p, li, dd, td, th, label, strong, small, code, pre) { overflow-wrap: anywhere; }

/* Data remains reachable inside its own scroll region; it never widens body. */
:where(.table-wrap, .sa-table-wrap, .data-table-wrap, .table-responsive,
       .records-table-wrap, .invoice-table-wrap, #mtg-plan) {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}

:where(.table-wrap, .sa-table-wrap, .data-table-wrap, .table-responsive,
       .records-table-wrap, .invoice-table-wrap) > table {
    width: 100%;
}

/* Public and administrative overlays scroll on the overlay itself. This fixes
   iOS dialogs whose final fields/actions previously remained unreachable. */
.modal {
    align-items: start;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: max(16px, env(safe-area-inset-top)) 16px
             max(20px, env(safe-area-inset-bottom));
}

.modal-dialog {
    width: min(640px, calc(100vw - 32px));
    max-width: 100%;
    max-height: none;
    margin: auto;
    overflow: visible;
    overflow-wrap: anywhere;
}

.modal-dialog > :where(form, section, div) { min-width: 0; }
.modal-dialog :where(input, select, textarea) { width: 100%; }
.modal-close { z-index: 5; }

.admin-modal {
    display: block;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: max(14px, env(safe-area-inset-top)) 14px
             max(24px, env(safe-area-inset-bottom));
}

.admin-modal-dialog {
    width: min(820px, calc(100vw - 28px));
    max-width: 100%;
    max-height: none;
    margin: 0 auto 30px;
    overflow: visible;
}

.lightbox {
    width: 100%;
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
    padding: max(58px, env(safe-area-inset-top)) 16px
             max(18px, env(safe-area-inset-bottom));
}

.lightbox img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: calc(100dvh - 90px);
}

/* Listing gallery controls must also exist visually on touch-only devices. */
.listing-media,
.listing-slide { min-width: 0; }

.listing-nav {
    opacity: 1;
    visibility: visible;
    touch-action: manipulation;
}

.listing-dots {
    max-width: calc(100% - 80px);
    bottom: 12px;
    pointer-events: none;
}

.results-map-layout .listing-card {
    max-height: none;
    height: auto;
}

.results-map-layout .listing-body { overflow: visible; }

/* Leaflet and embedded media keep a measurable, stable box at every width. */
:where(.property-map, .home-map, .re-map-canvas, .re-map-stage, #detail-map) {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    isolation: isolate;
}

:where(.property-map, .home-map, .re-map-canvas, .re-map-stage, #detail-map)
    > .leaflet-container,
.leaflet-container {
    width: 100%;
    max-width: 100%;
}

@media (hover: hover) and (pointer: fine) {
    .listing-nav { opacity: 0; }
    .listing-card:hover .listing-nav,
    .listing-nav:focus-visible { opacity: 1; }
}

/* Tablet portrait / small laptop. */
@media (max-width: 1024px) {
    .property-detail-grid { grid-template-columns: 1fr; }
    .property-sidebar { position: static; max-height: none; overflow: visible; }
    .home-map-wrap,
    .results-map-layout,
    .contact-layout { grid-template-columns: 1fr; }
    .search-map-panel { position: static; top: auto; }
    .property-map { height: clamp(360px, 52vw, 480px); }
    .top-actions,
    .page-actions,
    .toolbar-left,
    .toolbar-right { min-width: 0; flex-wrap: wrap; }
}

/* Phones and narrow tablets. */
@media (max-width: 768px) {
    .shell { width: calc(100% - 28px); max-width: calc(100vw - 28px); }

    :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
        font-size: 16px;
    }

    .form-grid.two,
    .form-grid.three,
    .form-grid.four { grid-template-columns: minmax(0, 1fr); }

    .modal { padding-inline: 8px; }
    .modal-dialog {
        width: calc(100vw - 16px);
        padding: 58px 17px 20px;
        border-radius: 18px;
    }
    .modal-dialog h2 { font-size: clamp(23px, 7vw, 28px); line-height: 1.08; }
    .modal-close { top: 12px; right: 12px; width: 42px; height: 42px; }
    .modal-icon { position: absolute; top: 13px; left: 17px; width: 42px; height: 42px; }

    .admin-modal { padding-inline: 7px; }
    .admin-modal-dialog { width: calc(100vw - 14px); border-radius: 16px; }
    .admin-modal-dialog .form-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }

    .lightbox { padding-inline: 8px; }
    .lightbox-close {
        top: max(8px, env(safe-area-inset-top));
        right: 10px;
    }

    .listing-nav { width: 40px; height: 40px; opacity: 1; }
    .listing-slide,
    .results-map-layout .listing-slide { min-height: 230px; }

    .map-toolbar,
    .map-panel-tools { align-items: stretch; }
    .map-toolbar .map-info { flex: 1 0 100%; margin-left: 0; }
    .map-tool { flex: 1 1 145px; justify-content: center; min-height: 44px; }

    .property-map,
    .property-map.tall,
    .home-map { height: clamp(310px, 78vw, 390px); min-height: 310px; }

    .media-tab-list {
        max-width: 100%;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
    }
}

@media (max-width: 430px) {
    .shell { width: calc(100% - 24px); max-width: calc(100vw - 24px); }
    .button,
    .btn,
    .map-tool { min-height: 44px; }
    .modal-dialog { padding-inline: 14px; }
    .property-map,
    .property-map.tall,
    .home-map { height: 320px; min-height: 300px; }
    .doc-item { align-items: flex-start; }
    .doc-item .doc-open { margin-left: 0; }
}

@media (max-width: 390px) {
    .shell { width: calc(100% - 20px); max-width: calc(100vw - 20px); }
    .modal { padding-inline: 5px; }
    .modal-dialog { width: calc(100vw - 10px); border-radius: 15px; }
    .admin-modal-dialog .form-actions { grid-template-columns: 1fr; }
}

/* R7 · fascicolo immobile e distribuzione multicanale */
.form-check-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 9px;
    margin-top: 12px;
}
.form-check-grid .checkbox-field { min-width: 0; }
.table-subline { display: block; margin-top: 4px; color: var(--muted, #64727a); }
.publication-dossier { min-width: 0; }
.publication-summary,
.publication-site-toggle,
.publication-channel {
    border: 1px solid #dce6e1;
    border-radius: 16px;
    background: #fff;
}
.publication-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px;
    margin-bottom: 12px;
}
.publication-summary div { display: grid; gap: 3px; min-width: 0; }
.publication-summary span,
.publication-summary small,
.publication-channel small { color: #65746d; }
.publication-site-toggle {
    display: grid;
    grid-template-columns: auto 42px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    padding: 15px;
    cursor: pointer;
    background: #f3fbf7;
    border-color: #b9dfca;
}
.publication-site-toggle > span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    color: #fff;
    background: #087a45;
}
.publication-site-toggle div { display: grid; gap: 3px; }
.publication-channel-grid { display: grid; gap: 10px; margin: 14px 0; }
.publication-channel {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 10px 13px;
    align-items: start;
    padding: 14px;
    cursor: pointer;
}
.publication-channel.is-ready { border-color: #b8dfca; }
.publication-channel.has-issues { border-color: #efd1ca; }
.publication-channel-main { display: grid; gap: 2px; min-width: 0; }
.publication-score { font-weight: 800; color: #087a45; }
.publication-checks {
    grid-column: 2 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.publication-checks > span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 12px;
    line-height: 1.25;
}
.publication-ok { color: #075d37; background: #e7f7ee; }
.publication-warning { color: #745200; background: #fff5d8; }
.publication-issue { color: #8c251b; background: #ffebe7; }
.publication-checks svg { width: 14px; height: 14px; }
.property-translation-editor{margin:4px 0 8px;border:1px solid #d8e3de;border-radius:15px;background:#f9fcfa;overflow:hidden}.property-translation-editor>summary{display:flex;align-items:center;gap:9px;padding:14px 16px;cursor:pointer;font-weight:800;list-style:none}.property-translation-editor>summary::-webkit-details-marker{display:none}.property-translation-editor>summary svg{width:20px;height:20px;color:#087a45}.property-translation-editor>summary small{margin-inline-start:auto;color:#68776f;font-weight:500}.property-translation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 14px 14px}.property-translation-grid section{min-width:0;padding:13px;border:1px solid #e0e8e4;border-radius:13px;background:#fff}.property-translation-grid h4{margin:0 0 9px}.property-translation-grid .field{margin-top:8px}
@media (max-width: 600px) {
    .publication-summary { align-items: flex-start; flex-direction: column; }
    .publication-site-toggle { grid-template-columns: auto 38px minmax(0, 1fr); }
    .publication-channel { grid-template-columns: auto minmax(0, 1fr); }
    .publication-score { grid-column: 2; }
    .publication-checks { grid-column: 1 / -1; }
    .property-translation-editor>summary{align-items:flex-start;flex-wrap:wrap}.property-translation-editor>summary small{width:100%;margin-inline-start:29px}.property-translation-grid{grid-template-columns:1fr;padding-inline:10px}
}

/* R10 · un solo modello di scorrimento per tutte le finestre. Il documento
   resta fermo; header e azioni restano raggiungibili e scorre soltanto il
   contenuto centrale, anche su Safari/iOS con tastiera aperta. */
.modal:not([hidden]) {
    top: var(--reone-viewport-top, 0px);
    bottom: auto;
    height: var(--reone-viewport-height, 100dvh);
    display: grid;
    place-items: center;
    overflow: hidden;
    padding: max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom));
}
.modal:not([hidden]) > .modal-dialog {
    width: min(640px, calc(100vw - 16px));
    max-width: 100%;
    max-height: calc(100vh - 16px);
    max-height: calc(var(--reone-viewport-height, 100dvh) - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    margin: auto;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}
.admin-modal:not([hidden]) {
    top: var(--reone-viewport-top, 0px);
    bottom: auto;
    height: var(--reone-viewport-height, 100dvh);
    display: grid;
    place-items: center;
    overflow: hidden;
    padding: max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom));
}
.admin-modal:not([hidden]) > .admin-modal-dialog {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    width: min(820px, calc(100vw - 16px));
    max-width: 100%;
    max-height: calc(100vh - 16px);
    max-height: calc(var(--reone-viewport-height, 100dvh) - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    margin: auto;
    overflow: hidden;
}
.admin-modal:not([hidden]) .admin-modal-header { position: relative; flex: none; }
.admin-modal:not([hidden]) .admin-modal-body {
    min-height: 0;
    max-height: none;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}
.admin-modal:not([hidden]) .admin-modal-dialog.modal-admin-page { grid-template-rows: auto minmax(0, 1fr); }
.admin-modal:not([hidden]) .modal-admin-page .admin-modal-body { overflow: hidden; }
.quick-create-panel { overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
@media (max-width: 700px) {
    .admin-modal:not([hidden]) > .admin-modal-dialog,
    .modal:not([hidden]) > .modal-dialog {
        width: calc(100vw - 10px);
        max-height: calc(var(--reone-viewport-height, 100dvh) - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
        border-radius: 15px;
    }
    .admin-modal:not([hidden]) .admin-modal-body { padding: 16px; }
}

/* Tap immediato nei pannelli autenticati. Gli editor drag-and-drop e le
   mappe mantengono le loro dichiarazioni touch-action dedicate. */
@media (pointer: coarse) {
    :where(a, button, summary, label[for], [role="button"], input[type="button"], input[type="submit"], input[type="reset"]) {
        touch-action: manipulation;
        -webkit-tap-highlight-color: rgba(8, 116, 67, .12);
    }
}

/* R13 · control room coerenti con le finestre ReoneGest */
.control-room-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.control-room-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;min-height:112px;padding:17px;color:#18342a;border:1px solid #dce7e2;border-radius:14px;background:linear-gradient(145deg,#fff,#f8fbf9);text-align:left;box-shadow:0 6px 18px rgba(18,60,43,.05);cursor:pointer;transition:.18s ease}
.control-room-card:hover,.control-room-card:focus-visible{border-color:#8fc8aa;box-shadow:0 12px 26px rgba(9,90,52,.11);transform:translateY(-2px);outline:0}
.control-room-card>span{display:grid;place-items:center;width:43px;height:43px;color:#087b47;border-radius:12px;background:#e7f6ed}
.control-room-card>span svg{width:21px;height:21px}.control-room-card>svg{width:16px;height:16px;color:#8aa098}
.control-room-card div{display:grid;gap:3px;min-width:0}.control-room-card small{color:#799087;font-size:9px;font-weight:900;letter-spacing:.1em}.control-room-card strong{font-size:14px}.control-room-card p{margin:0;color:#65786f;font-size:11px}
.control-window-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;padding:12px 14px;border:1px solid #dce7e2;border-radius:13px;background:#f7faf8}
.control-window-toolbar .chip-filters{flex:1;max-height:96px;overflow-y:auto}.control-window-toolbar .chip-filter{display:inline-flex;align-items:center;gap:5px}.control-window-toolbar .chip-filter svg{width:13px;height:13px}
.control-section-select{display:grid;grid-template-columns:auto minmax(220px,380px);align-items:center;gap:10px}.control-section-select>span{color:#52685e;font-size:10px;font-weight:850;text-transform:uppercase}.security-seal{display:inline-flex;align-items:center;gap:7px;color:#087343;font-size:10px;font-weight:800}.security-seal svg{width:16px;height:16px}.control-resource-panel{margin-bottom:14px}.control-resource-panel .panel-body{padding:12px}

/* R13 · Centro messaggi a thread singolo, con contesto operativo */
.message-center{display:grid;grid-template-columns:minmax(230px,310px) minmax(360px,1fr) minmax(210px,270px);min-height:600px;max-height:calc(100dvh - 285px);overflow:hidden;border:1px solid #dce6e2;border-radius:16px;background:#fff;box-shadow:var(--shadow-sm)}
.message-thread-list{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;border-right:1px solid #e1e9e5;background:#f8faf9}.message-thread-list>header{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:17px;border-bottom:1px solid #e1e9e5}.message-thread-list>header small{grid-column:1;color:#087747;font-size:9px;font-weight:900;letter-spacing:.12em}.message-thread-list>header strong{font-size:15px}.message-thread-list>header span{grid-column:2;grid-row:1/3;align-self:center;padding:4px 8px;color:#087747;border-radius:999px;background:#e5f5ec;font-size:10px;font-weight:850}.message-thread-list>div{min-height:0;overflow-y:auto}
.message-thread-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;width:100%;padding:14px 13px;color:#263e35;border:0;border-bottom:1px solid #e7edea;background:transparent;text-align:left;cursor:pointer}.message-thread-item:hover{background:#f0f7f3}.message-thread-item.active{background:#e7f5ed;box-shadow:inset 3px 0 #078349}.message-thread-copy{display:grid;gap:2px;min-width:0}.message-thread-copy strong,.message-thread-copy small,.message-thread-copy em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-thread-copy strong{font-size:11px}.message-thread-copy small{color:#5b7066;font-size:9px}.message-thread-copy em{color:#87968f;font-size:9px;font-style:normal}.message-thread-meta{display:grid;justify-items:end;align-content:start;gap:7px}.message-thread-meta time{color:#889890;font-size:8px;white-space:nowrap}.message-thread-meta b{display:grid;place-items:center;min-width:19px;height:19px;padding:0 5px;color:#fff;border-radius:999px;background:#d9463d;font-size:8px}
.message-center-main{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;background:#fff}.message-conversation-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 17px;border-bottom:1px solid #e1e9e5}.message-conversation-header>div{display:flex;align-items:center;gap:10px;min-width:0}.message-conversation-header>div>div{display:grid;min-width:0}.message-conversation-header strong{font-size:12px}.message-conversation-header small{overflow:hidden;color:#73857c;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.message-history{display:flex;flex-direction:column;gap:9px;min-height:0;padding:18px;overflow-y:auto;background:linear-gradient(#f8faf9,#f4f8f6)}.message-bubble{max-width:min(78%,650px);padding:11px 13px;border:1px solid #e0e8e4;border-radius:4px 14px 14px;background:#fff;box-shadow:0 3px 10px rgba(18,52,39,.04)}.message-bubble.from-agency{align-self:flex-end;color:#11452f;border-color:#bce1cb;border-radius:14px 4px 14px 14px;background:#eaf7ef}.message-bubble header{display:flex;justify-content:space-between;gap:18px}.message-bubble header strong{font-size:9px}.message-bubble time{color:#819087;font-size:8px}.message-bubble p{margin:5px 0 0;font-size:11px;line-height:1.48;white-space:pre-wrap}.message-bubble a{display:inline-flex;align-items:center;gap:5px;margin-top:7px;font-size:9px;font-weight:750}.message-composer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;padding:13px;border-top:1px solid #dfe8e4;background:#fff}.message-composer textarea{min-height:48px;max-height:130px;resize:vertical}.message-composer button{align-self:end;min-height:44px}
.message-context{min-width:0;padding:17px;border-left:1px solid #e1e9e5;background:#fbfcfb}.message-context-title{display:flex;align-items:center;gap:9px;padding-bottom:13px;border-bottom:1px solid #e3ebe7}.message-context-title>span{display:grid;place-items:center;width:34px;height:34px;color:#087747;border-radius:10px;background:#e7f5ed}.message-context-title>div{display:grid}.message-context-title small{color:#7e9087;font-size:8px;font-weight:850;letter-spacing:.1em}.message-context-title strong{font-size:11px}.message-context dl{display:grid;gap:0;margin:12px 0}.message-context dl div{padding:9px 0;border-bottom:1px solid #e8eeeb}.message-context dt{color:#7b8c84;font-size:8px;font-weight:800;text-transform:uppercase}.message-context dd{margin:3px 0 0;overflow-wrap:anywhere;color:#263d34;font-size:10px;font-weight:650}.message-context-actions{display:grid;gap:7px;margin-top:14px}.message-center-empty{grid-column:2/4;display:grid;place-content:center;justify-items:center;padding:40px;text-align:center}.message-center-empty>span{display:grid;place-items:center;width:58px;height:58px;color:#087747;border-radius:17px;background:#e7f5ed}.message-center-empty h3{margin:12px 0 2px}.message-center-empty p{margin:0;color:#6f8178;font-size:11px}

/* R13 · collegamenti ricercabili, senza select di migliaia di righe */
.relation-field{position:relative}.relation-control{position:relative;display:flex;align-items:center}.relation-control>svg{position:absolute;left:12px;z-index:1;width:16px;height:16px;color:#71847a;pointer-events:none}.relation-control input{padding-left:38px!important;padding-right:38px!important}.relation-control button{position:absolute;right:5px;display:grid;place-items:center;width:32px;height:32px;color:#71847a;border:0;border-radius:8px;background:transparent;cursor:pointer}.relation-control button:hover{color:#9d2d26;background:#fcecea}.relation-control button svg{width:14px;height:14px}.relation-results{position:absolute;top:calc(100% - 16px);left:0;right:0;z-index:120;max-height:260px;overflow-y:auto;padding:6px;border:1px solid #cfded6;border-radius:11px;background:#fff;box-shadow:0 16px 38px rgba(13,45,32,.18)}.relation-results[hidden]{display:none}.relation-results button{display:block;width:100%;padding:9px 10px;color:#263e34;border:0;border-radius:7px;background:#fff;font-size:10px;text-align:left;cursor:pointer}.relation-results button:hover,.relation-results button:focus{color:#086f40;background:#eaf6ef;outline:0}.relation-help{display:block;margin-top:5px;color:#83938b;font-size:8px}.relation-loading,.relation-empty{padding:13px;color:#71827a;font-size:10px;text-align:center}
.multi-relation-field{position:relative}.multi-relation-chips{display:flex;flex-wrap:wrap;gap:6px;min-height:34px;margin-bottom:7px}.multi-relation-chips>small{align-self:center;color:#7f8f88;font-size:9px}.relation-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:6px 8px;border:1px solid #cfe1d7;border-radius:999px;background:#edf7f1;color:#235b43;font-size:9px;cursor:pointer}.relation-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.relation-chip svg{width:12px;height:12px;flex:none}.relation-chip:hover{border-color:#efc8c6;background:#fff2f1;color:#9d2d26}.multi-relation-field>.relation-results{top:calc(100% - 16px)}

@media(max-width:1100px){.control-room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.message-center{grid-template-columns:minmax(220px,285px) minmax(0,1fr)}.message-context{display:none}}
@media(max-width:720px){.control-room-grid{grid-template-columns:1fr}.control-window-toolbar{align-items:stretch;flex-direction:column}.control-section-select{grid-template-columns:1fr}.control-window-toolbar .chip-filters{max-height:130px}.message-center{display:block;max-height:none}.message-thread-list{max-height:280px;border-right:0;border-bottom:1px solid #e1e9e5}.message-center-main{min-height:520px}.message-history{min-height:310px;max-height:440px}.message-composer{grid-template-columns:1fr}.message-composer button{width:100%}}

/* Fascicolo valutazione professionale R13: layout isolato dal resto del gestionale. */
.admin-modal-dialog.valuation-modal-wide{width:min(1420px,calc(100vw - 24px));max-width:1420px;height:min(930px,calc(100dvh - 24px));max-height:calc(100dvh - 24px)}
.admin-modal-dialog.valuation-modal-wide .admin-modal-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.valuation-form-pro{display:grid;gap:14px;min-width:0;padding-bottom:96px}
.valuation-form-pro>.form-section{min-width:0;margin:0;border:1px solid #dce8e2;border-radius:16px;background:#fff;box-shadow:0 8px 25px rgba(18,60,43,.045)}
.valuation-form-pro .form-grid>*{min-width:0}
.valuation-form-pro .form-actions:last-child{position:sticky;bottom:-1px;z-index:8;margin:8px -1px -1px;padding:14px 18px;border-top:1px solid #dce8e2;background:rgba(255,255,255,.96);backdrop-filter:blur(12px)}
.valuation-dossier-quickbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 19px;border:1px solid #bddfce;border-radius:16px;background:linear-gradient(135deg,#f1faf5,#e5f5ed);color:#173d2d}
.valuation-dossier-quickbar>div:first-child{display:grid;gap:3px;min-width:0}.valuation-dossier-quickbar span{color:#087a45;font-size:10px;font-weight:900;letter-spacing:.12em}.valuation-dossier-quickbar strong{font-size:16px}.valuation-dossier-quickbar small{color:#5f7268;line-height:1.45}
.valuation-inline-actions,.valuation-calculate-actions{justify-content:flex-start;flex-wrap:wrap;margin-top:12px}
.valuation-feature-grid{display:grid;grid-template-columns:auto repeat(5,minmax(120px,1fr));align-items:center;gap:8px;margin-top:14px;padding:12px;border:1px solid #e0ebe5;border-radius:13px;background:#f8fbf9}
.valuation-feature-grid>span{color:#50665b;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.valuation-feature-toggle{display:block;min-width:0;cursor:pointer}.valuation-feature-toggle input{position:absolute;opacity:0;pointer-events:none}.valuation-feature-toggle span{display:flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:8px 10px;border:1px solid #d8e4de;border-radius:10px;background:#fff;color:#465c51;font-size:12px;font-weight:700;transition:.16s ease}.valuation-feature-toggle input:checked+span{border-color:#49a879;background:#e7f6ee;color:#075f38;box-shadow:inset 0 0 0 1px #86caa7}.valuation-feature-toggle input:focus-visible+span{outline:3px solid rgba(16,126,75,.18)}
.valuation-unit-section [data-valuation-units]{display:grid;gap:12px}.valuation-unit-editor{overflow:hidden;border:1px solid #d9e6df;border-radius:14px;background:#fbfdfc}.valuation-unit-editor>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 14px;border-bottom:1px solid #e1ebe6;background:#f2f8f5}.valuation-unit-editor>header>div{display:grid;gap:2px}.valuation-unit-editor>header span{color:#0a7b47;font-size:9px;font-weight:900;letter-spacing:.1em}.valuation-unit-editor>header strong{font-size:13px}.valuation-unit-editor>header button,.valuation-comparable-row>header button{display:grid;place-items:center;width:30px;height:30px;border:1px solid #e2c8c7;border-radius:50%;background:#fff;color:#a73731;font-size:20px;cursor:pointer}.valuation-unit-editor>.form-grid{padding:14px}
.valuation-method-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.valuation-method-card{position:relative;display:grid;grid-template-columns:auto auto 1fr;align-items:start;gap:10px;min-width:0;padding:14px;border:1px solid #dbe7e1;border-radius:13px;background:#fbfdfc;cursor:pointer}.valuation-method-card.is-primary{border-color:#8bcaaa;background:#eff9f4}.valuation-method-card>input{margin-top:4px}.valuation-method-card>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#e7f4ed;color:#087945}.valuation-method-card>div{display:grid;gap:3px;min-width:0}.valuation-method-card strong{font-size:12px}.valuation-method-card small{color:#65776e;font-size:10px;line-height:1.45}.valuation-method-card:has(input:checked){border-color:#55ad7e;box-shadow:0 0 0 2px rgba(68,165,115,.1)}.valuation-method-card.has-evidence{border-color:#2d9662;background:#edf9f3}.valuation-method-card.has-evidence:after{content:'RAPPORTO COLLEGATO';position:absolute;top:7px;right:8px;padding:3px 6px;border-radius:999px;background:#087b47;color:#fff;font-size:7px;font-weight:900;letter-spacing:.06em}
.valuation-weight-grid{margin-top:12px;padding:12px;border-radius:12px;background:#f5f9f7}.valuation-parameter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.valuation-parameter-grid>article{min-width:0;padding:14px;border:1px solid #e0e9e4;border-radius:13px}.valuation-parameter-grid h4{margin:0 0 10px;color:#174a34}.valuation-calculate-actions{padding-top:12px;border-top:1px solid #e5ece8}
.omi-bundled-note{display:flex;align-items:center;gap:7px;margin-top:12px;padding:11px 13px;border:1px solid #b9ddca;border-radius:11px;background:#ecf8f2;color:#24563f;font-size:12px}.omi-bundled-note svg{color:#078448;flex:0 0 auto}
.valuation-media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0}.valuation-media-grid>*{min-width:0}.valuation-report-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.valuation-report-options label{display:flex;align-items:center;gap:8px;min-width:0;padding:10px 11px;border:1px solid #dfe9e4;border-radius:10px;background:#fafcfa;color:#3f554a;font-size:11px;font-weight:700}.valuation-report-options input{accent-color:#087b47}
.valuation-calculation-result{display:grid;gap:10px;margin-top:12px}.valuation-calculation-result>header{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:13px 15px;border-radius:12px;background:#eaf7f0}.valuation-calculation-result>header>div{display:grid;gap:2px}.valuation-calculation-result>header small{color:#587166}.valuation-calculation-result>header strong{color:#075d37;font-size:21px}.valuation-calculation-result>header>span{color:#5d7167;font-size:11px}.valuation-calculation-methods,.valuation-calculation-units,.valuation-calculation-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.valuation-calculation-methods article,.valuation-calculation-units article,.valuation-calculation-cards article{display:grid;gap:3px;min-width:0;padding:11px;border:1px solid #dce8e2;border-radius:11px;background:#fff}.valuation-calculation-methods span,.valuation-calculation-units span,.valuation-calculation-cards span{color:#60736a;font-size:9px;font-weight:800;text-transform:uppercase}.valuation-calculation-methods strong,.valuation-calculation-units strong,.valuation-calculation-cards strong{color:#163d2d}.valuation-calculation-methods small,.valuation-calculation-units small,.valuation-calculation-cards small{color:#687a71;font-size:9px}.valuation-calculation-cards a{margin-top:5px;color:#087a45;font-size:9px;font-weight:800}
.valuation-quality-card{display:grid;gap:11px;padding:15px;border:1px solid #dbe7e1;border-radius:13px;background:#f8fbf9}.valuation-quality-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.valuation-quality-card>header>div{display:grid;gap:3px}.valuation-quality-card>header span{color:#667a70;font-size:8px;font-weight:900;letter-spacing:.1em}.valuation-quality-card>header strong{font-size:17px}.valuation-quality-card>header>b{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#e2f3e9;color:#087443;font-size:20px}.valuation-quality-card>header b small{font-size:8px}.valuation-quality-card section{padding:10px 12px;border-radius:10px;background:#fff}.valuation-quality-card h4{margin:0 0 6px}.valuation-quality-card ul{margin:0;padding-left:18px;color:#5b6b63}.valuation-quality-card p{margin:0}.valuation-quality-card.is-incomplete{border-color:#e5b9b4;background:#fff6f5}.valuation-quality-card.is-incomplete>header>b{background:#f9dfdc;color:#af2924}.valuation-quality-card.is-review{border-color:#ead6ab;background:#fffbf1}.valuation-quality-card.is-review>header>b{background:#fff0cd;color:#9b6507}
@media(max-width:1050px){.valuation-feature-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.valuation-feature-grid>span{grid-column:1/-1}.valuation-method-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.valuation-report-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.admin-modal-dialog.valuation-modal-wide{width:100vw;height:100dvh;max-height:100dvh;border-radius:0}.valuation-dossier-quickbar{align-items:stretch;flex-direction:column}.valuation-feature-grid,.valuation-method-grid,.valuation-parameter-grid,.valuation-media-grid,.valuation-report-options,.valuation-calculation-methods,.valuation-calculation-units,.valuation-calculation-cards{grid-template-columns:1fr}.valuation-form-pro{padding-bottom:72px}.valuation-form-pro>.form-section{border-radius:12px}}

/* R20 · fatturazione elettronica: documento a righe e registro SDI */
.invoice-command{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);align-items:center;gap:24px;margin-bottom:18px;padding:25px;border-radius:19px;background:radial-gradient(circle at 88% 5%,rgba(255,255,255,.14),transparent 30%),linear-gradient(135deg,#103d30,#08794a);color:#fff;box-shadow:0 15px 34px rgba(9,67,44,.16)}
.invoice-command-copy{display:grid;gap:5px}.command-kicker{color:#bce4d0;font-size:9px;font-weight:900;letter-spacing:.14em}.invoice-command h2{margin:0;font-size:clamp(21px,2.3vw,31px)}.invoice-command p{max-width:760px;margin:2px 0 0;color:#d8ebe1;line-height:1.5}
.invoice-channel{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:13px;padding:16px;border:1px solid #ffffff32;border-radius:14px;background:#ffffff10}.invoice-channel>span{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#fff;color:#087747}.invoice-channel>div{display:grid;gap:2px}.invoice-channel small{color:#c5e8d6;font-size:8px;font-weight:900;letter-spacing:.12em}.invoice-channel strong{font-size:14px}.invoice-channel em{color:#d8e9e1;font-size:9px;font-style:normal;line-height:1.35}.invoice-channel.setup>span{color:#9b6615;background:#fff4dd}
.invoice-sdi-id{display:block;max-width:220px;overflow:hidden;color:#357158!important;text-overflow:ellipsis;white-space:nowrap}.invoice-sdi-warning{display:block!important;margin-top:4px;color:#9a3412!important;font-weight:800;line-height:1.3;white-space:normal!important}.sdi-registry{margin-top:16px}.sdi-job-list{display:grid;gap:0;padding:0 17px 12px}.sdi-job{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:11px;padding:12px 2px;border-bottom:1px solid #e3ebe7}.sdi-job:last-child{border-bottom:0}.sdi-job-state{width:9px;height:9px;border-radius:50%;background:#98a79f}.sdi-job-state.active{background:#0b8a51}.sdi-job-state.pending,.sdi-job-state.in-progress{background:#e7a329}.sdi-job-state.suspended{background:#c94740}.sdi-job>div{display:grid;gap:2px;min-width:0}.sdi-job strong,.sdi-job small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdi-job strong{font-size:11px}.sdi-job small{color:#74877d;font-size:9px}.sdi-job time{color:#819189;font-size:9px;white-space:nowrap}
.invoice-lines{display:grid;gap:10px;margin-bottom:12px}.invoice-line{display:grid;grid-template-columns:minmax(210px,2fr) repeat(4,minmax(100px,.72fr)) minmax(110px,.75fr) auto;align-items:end;gap:9px;padding:13px;border:1px solid #dce7e1;border-radius:13px;background:#f9fbfa}.invoice-line>.field{min-width:0}.invoice-line>.field-wide{grid-column:auto}.invoice-line-total{display:grid;gap:5px;align-content:end;min-height:60px;padding:8px 10px;border-radius:9px;background:#eaf6f0}.invoice-line-total small{color:#61766b;font-size:8px;font-weight:850;text-transform:uppercase}.invoice-line-total strong{color:#086c40;font-size:12px}.invoice-line-remove{display:grid;place-items:center;width:38px;height:38px;margin-bottom:1px;color:#a43b35;border:1px solid #ebcecb;border-radius:10px;background:#fff;cursor:pointer}.invoice-line-remove:hover{background:#fff0ef}.invoice-line-remove svg{width:16px;height:16px}
.invoice-line-advanced{grid-column:1/-1;border-top:1px dashed #cfddd6;padding-top:9px}.invoice-line-advanced summary{color:#087443;font-size:11px;font-weight:800;cursor:pointer;list-style-position:inside}.invoice-line-advanced[open] summary{margin-bottom:11px}.invoice-wizard-steps{position:sticky;top:0;z-index:3;padding:9px;border:1px solid #dce8e2;border-radius:13px;background:rgba(255,255,255,.96);box-shadow:0 8px 22px rgba(18,58,44,.08)}.invoice-wizard-steps button.completed{background:#dff3e8;color:#087443}.invoice-preflight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:14px}.invoice-preflight-grid article{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid #dce8e2;border-radius:11px;background:#fff}.invoice-preflight-grid article>span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;flex:0 0 auto}.invoice-preflight-grid article>span svg{width:15px;height:15px}.invoice-preflight-grid article div{display:grid;gap:3px}.invoice-preflight-grid article small{color:#667a70}.invoice-preflight-grid .is-ok>span{color:#087443;background:#e6f6ed}.invoice-preflight-grid .is-warning>span{color:#9c6500;background:#fff0d2}
.invoice-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:15px}.invoice-totals>div{display:grid;gap:3px;padding:13px 15px;border:1px solid #dfe9e4;border-radius:11px;background:#fafcfb}.invoice-totals small{color:#6e8077;font-size:9px;font-weight:850;text-transform:uppercase}.invoice-totals strong{font-size:16px}.invoice-totals .grand{color:#fff;border-color:#087747;background:#087747}.invoice-totals .grand small{color:#cfebdc}.sdi-send-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:14px}.sdi-send-summary>div{display:grid;gap:4px;padding:12px;border:1px solid #dce8e2;border-radius:11px;background:#f7faf8}.sdi-send-summary small{color:#71847a;font-size:8px;font-weight:850;text-transform:uppercase}.sdi-send-summary strong{font-size:12px;overflow-wrap:anywhere}
@media(max-width:1180px){.invoice-line{grid-template-columns:minmax(220px,2fr) repeat(2,minmax(110px,1fr))}.invoice-line>.field:first-child{grid-column:1/-1}.invoice-command{grid-template-columns:1fr}.sdi-send-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.invoice-command{padding:20px 16px}.invoice-line{grid-template-columns:repeat(2,minmax(0,1fr));padding:11px}.invoice-line>.field:first-child,.invoice-line-total{grid-column:1/-1}.invoice-line-remove{grid-column:2;justify-self:end}.invoice-totals,.sdi-send-summary,.invoice-preflight-grid{grid-template-columns:1fr}.invoice-wizard-steps{grid-template-columns:repeat(3,minmax(0,1fr));position:static}.sdi-job{grid-template-columns:auto minmax(0,1fr) auto}.sdi-job time{display:none}}

/* R24 · Document Studio professionale e workflow condizionali */
.admin-modal-dialog.modal-document-studio{width:min(1540px,calc(100vw - 20px))!important;height:min(980px,calc(100dvh - 20px));max-height:calc(100dvh - 20px)}
.modal-document-studio .admin-modal-body{min-height:0;overflow:auto;padding-bottom:0}.contract-studio-section{padding-bottom:14px!important}.contract-studio{display:grid;grid-template-columns:260px minmax(520px,1fr) 240px;gap:14px;min-width:0;align-items:start}
.contract-field-sidebar,.contract-studio-inspector{position:sticky;top:0;display:grid;gap:11px;max-height:650px;padding:13px;border:1px solid #dce8e2;border-radius:14px;background:#f7faf8;overflow:auto}.contract-field-sidebar>p{margin:0;color:#65786e;font-size:10px;line-height:1.45}.contract-field-sidebar .field-search{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid #cfddd6;border-radius:10px;background:#fff}.contract-field-sidebar .field-search svg{width:15px;color:#688078}.contract-field-sidebar .field-search input{width:100%;border:0;outline:0;background:transparent;font:inherit}
.contract-field-groups{display:grid;gap:7px}.contract-field-group{border:1px solid #dbe6e1;border-radius:10px;background:#fff}.contract-field-group summary{display:flex;align-items:center;justify-content:space-between;padding:10px;cursor:pointer;color:#29483b;font-size:11px;font-weight:850}.contract-field-group summary em{display:grid;place-items:center;min-width:22px;height:20px;padding:0 5px;border-radius:999px;background:#e9f5ef;color:#087344;font-size:8px;font-style:normal}.contract-field-group>div{display:grid;gap:5px;padding:0 7px 8px}.contract-field-token{display:grid;gap:2px;width:100%;padding:8px;text-align:left;border:1px solid #e0e9e5;border-radius:8px;background:#fbfdfc;cursor:grab}.contract-field-token:hover,.contract-field-token.is-dragging{border-color:#64b48b;background:#eef9f3}.contract-field-token.is-block{border-color:#b5dcc8;background:#eef8f3}.contract-field-token span{color:#284c3c;font-size:10px;font-weight:800}.contract-field-token code{overflow:hidden;color:#71847a;font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.contract-editor-workspace{min-width:0}.contract-editor-toolbar{position:sticky;top:0;z-index:3;align-items:center;border-radius:12px 12px 0 0}.contract-editor-toolbar>span{width:1px;height:24px;background:#d9e2de}.contract-editor-page{padding:20px;background:#dfe8e4;border:1px solid #d1ddd7;border-top:0}.contract-editor{width:min(794px,100%);min-height:760px;margin:auto;padding:62px 58px;border-radius:2px;box-shadow:0 15px 40px rgba(19,51,40,.16);transition:.15s}.contract-editor.is-drop-target{box-shadow:0 0 0 4px #40a977,0 15px 40px rgba(19,51,40,.16);background:#f4fbf7}.contract-editor:empty:before{content:attr(data-placeholder);color:#8b9b94}.contract-editor table{width:100%;border-collapse:collapse}.contract-editor th,.contract-editor td{padding:7px;border:1px solid #bccdc5}.contract-editor .contract-page-break{height:10px;margin:35px -58px;border-top:2px dashed #8aa198;background:#eef2f0}.contract-editor-status{display:flex;justify-content:space-between;padding:8px 10px;color:#697d73;font-size:9px;background:#f6f9f7;border:1px solid #d8e3de;border-top:0;border-radius:0 0 10px 10px}.contract-studio-inspector h3{margin:2px 0 0;color:#153e2d}.contract-studio-inspector .field{min-width:0}.contract-studio-inspector .check-line{padding:9px;border:1px solid #dbe6e1;border-radius:9px;background:#fff;font-size:10px}
.contract-party-row,.contract-property-row{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(140px,1fr) minmax(150px,1fr) minmax(180px,1.2fr) 85px auto auto;gap:9px;align-items:end;padding:12px;border:1px solid #dbe6e1;border-radius:12px;background:#fafcfb}.contract-property-row{grid-template-columns:minmax(240px,1.8fr) minmax(150px,1fr) 100px auto}.contract-party-row .field,.contract-property-row .field{min-width:0}.contract-repeat-list{display:grid;gap:10px}.contract-repeat-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px}.contract-repeat-head p{margin:0;color:#65786e;font-size:11px}.contract-auto-document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:14px 0}.contract-auto-document-grid label{display:flex;gap:9px;align-items:flex-start;padding:12px;border:1px solid #dbe6e1;border-radius:11px;background:#fbfdfc}.contract-auto-document-grid label span{display:grid;gap:2px}.contract-auto-document-grid strong{font-size:11px}.contract-auto-document-grid small{color:#6b7d74;font-size:9px;line-height:1.4}.contract-custom-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.contract-custom-fields:empty{display:none}.contract-dossier-properties{margin-bottom:16px}
.conditional-choice-locked{opacity:.35;filter:grayscale(.5);pointer-events:none}.conditional-choice-locked small:after{content:" · non pertinente";font-weight:800}.contract-field-group.conditional-group-locked{opacity:.38;filter:grayscale(.55);pointer-events:none}.contract-field-group.conditional-group-locked summary em:after{content:" · bloccato";font-size:7px}.contract-repeat-head.conditional-field-locked{padding:10px;border:1px dashed #cbd4cf;border-radius:10px;background:#f4f6f5}.contract-wizard .conditional-panel-locked .conditional-guidance{border-left-color:#9aa69f;background:#f0f2f1;color:#68736d}
.contract-custom-definition-list{display:grid;gap:6px}.contract-custom-definition-list>small{color:#788981;font-size:9px}.contract-custom-definition{display:grid;grid-template-columns:1fr 28px;gap:5px}.contract-custom-definition button{min-width:0;padding:7px;border:1px solid #d4e1da;border-radius:8px;background:#fff;color:#244d3b;text-align:left}.contract-custom-definition button:first-child{display:grid}.contract-custom-definition button:last-child{display:grid;place-items:center;color:#a62b2b;font-size:17px;text-align:center}.contract-custom-definition span,.contract-custom-definition small{overflow:hidden;text-overflow:ellipsis}.contract-custom-definition span{font-size:10px;font-weight:800}.contract-custom-definition small{color:#708078;font-size:8px}.contract-custom-definition-editor{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:10px;border:1px solid #bcd8c9;border-radius:11px;background:#eef8f2}.contract-custom-definition-editor>strong,.contract-custom-definition-editor .field-wide{grid-column:1/-1}.contract-custom-definition-editor label{display:grid;gap:4px;min-width:0;color:#3c5d4e;font-size:9px;font-weight:750}.contract-custom-definition-editor input,.contract-custom-definition-editor select,.contract-custom-definition-editor textarea{width:100%;min-width:0;padding:7px;border:1px solid #cbdad2;border-radius:7px;background:#fff;color:#1e332a;font:inherit}.contract-custom-definition-editor .check-line{display:flex;align-items:center}.contract-custom-definition-editor .check-line input{width:auto}.contract-custom-definition-editor .form-actions{margin:0;gap:5px}.contract-custom-definition-editor .button{padding:7px 9px;font-size:9px}
@media(max-width:1220px){.contract-studio{grid-template-columns:220px minmax(500px,1fr)}.contract-studio-inspector{position:static;grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));max-height:none}.contract-studio-inspector h3,.contract-studio-inspector .compact-note{grid-column:1/-1}}
@media(max-width:860px){.admin-modal-dialog.modal-document-studio{width:100vw!important;height:100dvh;max-height:100dvh;border-radius:0}.contract-studio{grid-template-columns:1fr}.contract-field-sidebar,.contract-studio-inspector{position:static;max-height:none}.contract-field-sidebar{grid-template-columns:1fr}.contract-field-groups{grid-template-columns:repeat(2,minmax(0,1fr))}.contract-editor-page{padding:8px}.contract-editor{min-height:650px;padding:35px 24px}.contract-party-row,.contract-property-row{grid-template-columns:1fr 1fr}.contract-party-row>*:first-child,.contract-property-row>*:first-child{grid-column:1/-1}.contract-auto-document-grid,.contract-custom-fields{grid-template-columns:1fr}}

/* R24.5.2 · mappa gestionale reale e selezione portali accessibile */
.dashboard-map-panel,.property-geocode-panel{contain:layout paint;isolation:isolate}
.dashboard-map-panel{overflow:hidden}
.dashboard-property-map{position:relative;min-height:340px;background:#eef3f5;isolation:isolate}
.dashboard-property-map .leaflet-container{font-family:inherit}
.dashboard-map-empty{position:absolute;inset:0;z-index:2;display:grid;place-content:center;justify-items:center;gap:7px;padding:28px;text-align:center;color:#687d86;background:linear-gradient(145deg,#f7fafb,#e8f0f2)}
.dashboard-map-empty svg{width:46px;height:46px;color:var(--green)}
.dashboard-map-empty strong{color:#24453a;font-size:15px}
.dashboard-map-empty small{max-width:420px;line-height:1.5}
.dashboard-map-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-top:1px solid var(--line);background:#fbfcfd;color:var(--muted);font-size:10px}
.dashboard-map-footer strong{color:#34574b;font-size:10px;white-space:nowrap}
.dashboard-map-popup{display:grid;gap:4px;min-width:180px;font-family:inherit}
.dashboard-map-popup strong{color:#163b2c;font-size:12px}
.dashboard-map-popup small{color:#087747;font-size:9px;font-weight:800}
.dashboard-map-popup span{color:#66766f;font-size:10px}
.dashboard-map-popup b{font-size:11px}
.dashboard-map-popup a{margin-top:3px;color:#087747;font-size:10px;font-weight:850;text-decoration:none}
.portal-checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:6px}
.portal-checkbox-card{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:11px;min-width:0;padding:13px;border:1px solid #d8e3de;border-radius:12px;background:#fff;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.portal-checkbox-card:hover{border-color:#8cc2a6;box-shadow:0 7px 20px rgba(18,76,51,.07)}
.portal-checkbox-card:has(input:checked){border-color:#168954;background:#f0faf5;box-shadow:0 0 0 2px rgba(22,137,84,.1)}
.portal-checkbox-card input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.portal-checkbox-control{display:grid;place-items:center;width:30px;height:30px;border:1px solid #bfcfc7;border-radius:9px;background:#f8fbf9;color:transparent}
.portal-checkbox-control svg{width:16px;height:16px}
.portal-checkbox-card input:focus-visible+.portal-checkbox-control{outline:3px solid rgba(22,137,84,.22);outline-offset:2px}
.portal-checkbox-card input:checked+.portal-checkbox-control{border-color:#168954;background:#168954;color:#fff}
.portal-checkbox-card strong,.portal-checkbox-card small{display:block}
.portal-checkbox-card strong{color:#243d33;font-size:11px}
.portal-checkbox-card small{margin-top:3px;color:#718079;font-size:9px;line-height:1.4}
@media(max-width:720px){.dashboard-property-map{min-height:300px}.dashboard-map-footer{align-items:flex-start;flex-direction:column}.portal-checkbox-grid{grid-template-columns:1fr}}

/* R24.5.3 · shell gestionale stabile: il viewport non scorre mai.
   Scorrono esclusivamente navigazione, workspace e corpi delle finestre. */
html:has(body.admin-body),
body.admin-body {
    width: 100%;
    height: 100%;
    max-height: 100%;
    overflow: hidden !important;
    overscroll-behavior: none;
}
body.admin-body {
    position: fixed;
    inset: 0;
}
body.admin-body .admin-app {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100vh;
    top: var(--reone-viewport-top, 0px);
    bottom: auto;
    height: var(--reone-viewport-height, 100dvh);
    min-height: 0;
    max-width: 100%;
    overflow: hidden;
}
body.admin-body .admin-sidebar {
    height: 100%;
    min-height: 0;
    overflow: hidden !important;
}
body.admin-body .admin-nav {
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}
body.admin-body .admin-workspace {
    display: grid;
    grid-template-rows: var(--topbar-height) minmax(0, 1fr);
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}
/* The operator banner is an additional row; main keeps the remaining viewport. */
body.admin-body.is-impersonating .admin-workspace {
    grid-template-rows: auto var(--topbar-height) minmax(0, 1fr);
}
body.admin-body .admin-topbar {
    position: relative;
    min-height: var(--topbar-height);
}
body.admin-body .admin-main {
    height: auto !important;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}
@media (max-width: 980px) {
    body.admin-body .admin-sidebar { height: var(--reone-viewport-height, 100dvh); }
}
body.admin-body:is(.modal-open,.notification-open) :is(.admin-main,.admin-nav) {
    overflow: hidden !important;
}
body.admin-body .admin-main { scrollbar-gutter: stable; }
body.admin-body .admin-content { min-width: 0; max-width: 100%; }
body.admin-body .admin-sidebar :is(.sidebar-brand-row,.sidebar-user,.sidebar-search,.sidebar-footer) { flex-shrink: 0; }
body.admin-body .admin-nav { flex: 1 1 auto; }
body.admin-body .admin-topbar .icon-button { flex-shrink: 0; }
body.admin-body .admin-modal-dialog.modal-admin-page {
    height: calc(var(--reone-viewport-height, 100dvh) - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    max-height: calc(var(--reone-viewport-height, 100dvh) - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
}

/* Documenti 360° raggruppati: ogni cliente conserva la propria lista. */
.customer-document-groups{display:grid;gap:10px;margin-top:16px}
.customer-document-group{overflow:hidden;border:1px solid #dce7e1;border-radius:13px;background:#fff}
.customer-document-group>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 15px;cursor:pointer;list-style:none;background:#f7faf8}
.customer-document-group>summary::-webkit-details-marker{display:none}
.customer-document-group>summary strong,.customer-document-group>summary small{display:block}
.customer-document-group>summary small{margin-top:3px;color:#718078;font-size:9px;font-weight:500}
.customer-document-group>summary b{display:grid;place-items:center;min-width:30px;height:26px;padding:0 8px;border-radius:999px;background:#dff3e8;color:#087443;font-size:10px}
.customer-document-group>.data-table-wrap{border-top:1px solid #e4ebe7}
.myreone-documents-panel{min-width:0;border-color:#cfe3d8;background:linear-gradient(180deg,#fff,#fbfdfc)}
.myreone-documents-panel .panel-body{min-width:0}
.customer-document-share{padding:16px;border:1px solid #dbe8e1;border-radius:14px;background:linear-gradient(145deg,#f8fcfa,#fff);box-shadow:0 8px 24px rgba(8,73,45,.05)}
.customer-document-share .form-grid{align-items:start}
.customer-document-share input[type="file"]{display:block;width:100%;min-width:0;padding:8px;border:1px solid #dbe5e0;border-radius:10px;background:#fff}
.customer-document-share .form-actions{margin-top:12px;padding-top:12px;border-top:1px solid #e2ebe6}
.customer-document-group .data-table{min-width:720px}
.client-doc-lookup{position:relative;min-width:0}
.client-doc-search-control{position:relative;display:flex;align-items:center}
.client-doc-search-control>svg{position:absolute;left:11px;z-index:1;width:16px;height:16px;color:#688078;pointer-events:none}
.client-doc-search-control>input{width:100%;padding-left:36px!important;padding-right:38px!important}
.client-doc-search-control>button{position:absolute;right:5px;display:grid;place-items:center;width:30px;height:30px;padding:0;color:#728078;border:0;border-radius:8px;background:transparent}
.client-doc-search-control>button:hover{color:#075f38;background:#e9f5ee}
.client-doc-search-control>button svg{width:14px;height:14px}
.client-doc-results{position:absolute;top:calc(100% + 5px);right:0;left:0;z-index:80;overflow:auto;max-height:250px;padding:6px;border:1px solid #cfe0d7;border-radius:11px;background:#fff;box-shadow:0 16px 35px rgba(8,60,38,.16)}
.client-doc-results button{display:block;width:100%;padding:10px 11px;color:#253a31;border:0;border-radius:8px;background:transparent;text-align:left;font-size:11px}
.client-doc-results button:hover,.client-doc-results button:focus{outline:0;background:#eaf7f0;color:#075f38}
.client-doc-results>span{display:block;padding:12px;color:#75857d;font-size:10px;text-align:center}
.client-doc-lookup:has(input:disabled){opacity:.62}
.client-doc-type{margin:0;padding:0;border:0}
.client-doc-type legend{margin-bottom:7px;color:#40544a;font-size:10px;font-weight:800}
.client-doc-type>div{display:flex;flex-wrap:wrap;gap:7px}
.client-doc-type label{cursor:pointer}
.client-doc-type input{position:absolute;opacity:0;pointer-events:none}
.client-doc-type span{display:block;padding:8px 11px;border:1px solid #d7e4dd;border-radius:999px;background:#fff;color:#52685d;font-size:10px;font-weight:750;transition:.16s ease}
.client-doc-type input:checked+span{border-color:#149752;background:#eaf7f0;color:#075f38;box-shadow:0 0 0 2px rgba(20,151,82,.10)}
.settings-operational-links,.settings-system-tools{display:grid;gap:8px;width:100%;margin-top:4px}
.settings-system-tools{margin-top:9px;padding-top:13px;border-top:1px solid var(--line)}
.settings-system-tools>small{color:#718078;font-size:8px;font-weight:900;letter-spacing:.1em}
@media(max-width:1100px){.customer-document-share .form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-document-share .field-wide,.customer-document-share .span-2{grid-column:1/-1}}
@media(max-width:680px){.myreone-documents-panel .panel-body{padding:12px}.customer-document-share{padding:12px}.customer-document-share .form-grid,.customer-document-share .form-grid.three{grid-template-columns:1fr}.customer-document-share .field-wide,.customer-document-share .span-2,.client-doc-type{grid-column:1}.customer-document-share .form-actions{display:grid}.customer-document-share .form-actions .button{width:100%}.customer-document-group>summary{padding:12px}.customer-document-group>.data-table-wrap{overflow-x:auto;overscroll-behavior-x:contain}.client-doc-results{position:fixed;top:auto;right:12px;bottom:12px;left:12px;max-height:42dvh}.client-doc-type>div{gap:6px}.client-doc-type span{padding:7px 9px}}

/* Cataloghi contabili riutilizzabili. */
.invoice-masterdata-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.invoice-catalog-picker{display:flex;align-items:end;gap:10px;margin-bottom:12px}
.invoice-catalog-picker .field{flex:1}
@media(max-width:760px){.invoice-masterdata-grid{grid-template-columns:1fr}.invoice-catalog-picker{align-items:stretch;flex-direction:column}}

/* R24.5.11 · canali agenzia e fascicolo tecnico immobile. */
.agency-channel-grid{display:grid;gap:16px;margin-top:18px}
.agency-channel-card{overflow:hidden;border:1px solid #d8e5de;border-radius:17px;background:#fff;box-shadow:0 10px 28px rgba(13,66,45,.06)}
.agency-channel-card>header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid #e4ece8;background:linear-gradient(135deg,#f5fbf7,#fff)}
.agency-channel-card>header>span:first-child{display:grid;place-items:center;width:42px;height:42px;color:#087443;border-radius:12px;background:#e3f5eb}
.agency-channel-card>header svg{width:20px;height:20px}.agency-channel-card>header small{display:block;color:#6f8379;font-size:8px;font-weight:900;letter-spacing:.12em}.agency-channel-card>header h3{margin:2px 0 0;color:#17362b;font-size:17px}
.agency-channel-card>.form-grid{padding:18px}.agency-channel-secrets{margin:0 18px 18px;border:1px solid #dfe8e4;border-radius:12px;background:#f8fbf9}
.agency-channel-secrets>summary{padding:12px 14px;color:#244438;font-size:11px;font-weight:850;cursor:pointer}.agency-channel-secrets>p{margin:0;padding:0 14px 10px;color:#6a7e74;font-size:10px}.agency-channel-secrets>.form-grid{padding:0 14px 14px}
.agency-channel-card>footer{display:flex;align-items:end;justify-content:flex-end;gap:10px;padding:14px 18px;border-top:1px solid #e4ece8;background:#fbfdfc}.channel-test-recipient{width:min(310px,100%);margin-right:auto}

.due-diligence-workspace{display:grid;gap:15px}.due-diligence-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:17px 18px;color:#fff;border-radius:16px;background:linear-gradient(135deg,#053d2b,#087443 68%,#139453)}
.due-diligence-hero>span{display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(255,255,255,.25);border-radius:14px;background:rgba(255,255,255,.12)}.due-diligence-hero>span svg{width:24px;height:24px}
.due-diligence-hero small{font-size:8px;font-weight:900;letter-spacing:.12em;opacity:.75}.due-diligence-hero h3{margin:2px 0;font-size:19px}.due-diligence-hero p{margin:0;font-size:10px;opacity:.8}.due-diligence-hero-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.due-diligence-hero-actions .button{color:#fff;border-color:rgba(255,255,255,.34);background:rgba(255,255,255,.12)}
.due-diligence-empty{display:grid;place-items:center;gap:9px;padding:44px 24px;text-align:center;border:1px dashed #bad6c8;border-radius:16px;background:#f7fbf8}.due-diligence-empty>span{display:grid;place-items:center;width:58px;height:58px;color:#087443;border-radius:18px;background:#e3f5eb}.due-diligence-empty h3,.due-diligence-empty p{margin:0}.due-diligence-empty p{max-width:640px;color:#63766d;font-size:11px;line-height:1.6}
.due-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.due-metric-grid article{display:flex;flex-direction:column;gap:4px;min-height:104px;padding:14px;border:1px solid #dfe8e4;border-radius:13px;background:#fff}.due-metric-grid small{color:#6b8076;font-size:8px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.due-metric-grid strong{color:#143b2c;font-size:22px}.due-metric-grid span:not(.due-progress){color:#76877f;font-size:9px}.due-progress{display:block;overflow:hidden;height:5px;margin-top:auto;border-radius:9px;background:#e7efeb}.due-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0a7a46,#24b46e)}
.due-diligence-tabs{display:grid;gap:14px}.due-panel{overflow:hidden;border:1px solid #dce7e1;border-radius:15px;background:#fff}.due-panel>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid #e5ece8;background:#fbfdfc}.due-panel>header small{display:block;color:#13824e;font-size:8px;font-weight:900;letter-spacing:.11em}.due-panel>header h3{margin:2px 0 0;color:#17372b;font-size:15px}.due-panel>header>span{color:#6d7d75;font-size:10px}
.due-required{color:#9a4a11;font-size:9px;font-weight:850}.due-document-list,.due-finding-list,.due-review-list{display:grid;gap:9px;padding:13px}.due-document-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid #e1e9e5;border-radius:12px;background:#fff}.due-document-icon{display:grid;place-items:center;width:38px;height:38px;color:#087443;border-radius:10px;background:#e9f6ef}.due-document-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.due-document-copy strong{font-size:11px}.due-document-copy small,.due-document-copy span{color:#6d7f76;font-size:9px}.due-document-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.due-provider-summary{margin-top:7px;border:1px solid #dbe9e2;border-radius:9px;background:#f8fbf9;overflow:hidden}.due-provider-summary summary{padding:8px 10px;color:#086c40;cursor:pointer;font-size:9px;font-weight:850;list-style-position:inside}.due-provider-summary p{max-height:260px;margin:0;padding:10px;overflow:auto;border-top:1px solid #e2ece7;color:#273a31;font-size:10px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.due-provider-summary small{display:block;padding:0 10px 9px;color:#8a4c19!important;font-weight:750}
.due-finding{padding:13px;border:1px solid #e0e8e4;border-left:4px solid #91a39a;border-radius:11px;background:#fbfcfb}.due-finding.severity-high,.due-finding.severity-critical{border-left-color:#bd3229;background:#fff8f7}.due-finding.severity-medium{border-left-color:#d38724;background:#fffbf5}.due-finding header{display:flex;align-items:center;justify-content:space-between;gap:10px}.due-finding p{margin:6px 0;color:#445b50;font-size:10px;line-height:1.55}.due-finding small{color:#74847c;font-size:8px}.due-clear-state{display:flex;align-items:center;justify-content:center;gap:8px;padding:24px;color:#087443;border-radius:11px;background:#eff9f3;font-size:11px;font-weight:800}.due-clear-state svg{width:17px}
.due-review-record{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #e2ebe6;border-radius:10px}.due-review-record strong,.due-review-record small{display:block}.due-review-record small{margin-top:3px;color:#718078;font-size:9px}.due-review-form{padding:15px;border-top:1px solid #e5ece8;background:#fbfdfc}.due-review-form .form-actions{margin-bottom:-15px}.due-diligence-legal{display:flex;align-items:flex-start;gap:9px;padding:12px 14px;color:#5c6e65;border:1px solid #dce7e1;border-radius:12px;background:#f4f8f6;font-size:9px;line-height:1.55}.due-diligence-legal svg{flex:0 0 auto;width:16px;color:#087443}.due-provider-confirm{display:grid;gap:14px}.due-provider-confirm>.check-line{padding:14px;border:1px solid #dce7e1;border-radius:12px;background:#fbfdfc}
@media(max-width:860px){.due-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.due-diligence-hero{grid-template-columns:auto minmax(0,1fr)}.due-diligence-hero-actions{grid-column:1/-1;justify-content:flex-start}.due-document-card{grid-template-columns:auto minmax(0,1fr)}.due-document-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:620px){.agency-channel-card>header{grid-template-columns:auto minmax(0,1fr)}.agency-channel-card>header>.badge{grid-column:1/-1}.agency-channel-card>footer{align-items:stretch;flex-direction:column}.channel-test-recipient{width:100%}.due-metric-grid{grid-template-columns:1fr 1fr}.due-metric-grid strong{font-size:17px}.due-diligence-hero{grid-template-columns:1fr;text-align:left}.due-diligence-hero>span{display:none}.due-document-card{grid-template-columns:1fr}.due-document-icon{display:none}.due-document-actions{display:grid;grid-template-columns:1fr}.due-document-actions .button{width:100%}.due-panel>header{align-items:flex-start;flex-direction:column}.due-review-record{align-items:flex-start;flex-direction:column}.due-diligence-empty{padding:30px 16px}}

/* R24.6.26.2 — selettore Comuni pubblico: conserva la grafica storica bianca/verde. */
.re-public .re-search-field:has(> input[data-city-autocomplete]),
.re-public .re-field:has(> input[data-city-autocomplete]){position:relative;overflow:visible}
.re-public .city-suggest{z-index:1250;background:#fff;color:#14232d;border-color:var(--re-line,#e3e8ec);box-shadow:0 16px 34px rgba(9,27,37,.16)}
.re-public .city-suggest-item{background:#fff;color:#14232d}
.re-public .city-suggest-item:hover,.re-public .city-suggest-item.active{background:var(--re-green-soft,#eaf7f0);color:#14232d}

/* Native archive/property relations and optional professional portrait. */
.archive-property-link{border:0;background:transparent;padding:0;text-align:left;color:var(--primary,#087544);font:inherit;font-weight:600;cursor:pointer;overflow-wrap:anywhere}
.archive-cover-link{border:0;padding:0;background:transparent;border-radius:12px;cursor:pointer;display:inline-flex}
.archive-property-cover{width:88px;height:62px;object-fit:cover;border-radius:12px;border:1px solid #dcebe3}
.profile-photo-editor{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.agent-photo-frame{display:inline-flex;width:96px;height:96px;min-width:96px;align-items:center;justify-content:center;border:3px solid #fff;outline:1px solid #cae4d7;border-radius:24px;overflow:hidden;background:#eaf6ef;color:#08683f;box-shadow:0 5px 14px #075a2c18}
.agent-photo-frame img{width:100%;height:100%;object-fit:cover;display:block}

/* Keep the profile save action clear of the existing floating assistant. */
.settings-layout form[data-resource="profile"]{padding-bottom:90px}

/* Agent access actions and module choices. */
.table-actions .agent-access-link{width:auto;min-width:148px;max-width:none;white-space:nowrap;flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:8px 10px;height:auto;min-height:36px;line-height:1.3}
.impersonation-bar{display:flex;align-items:center;gap:12px;padding:10px 18px;background:#fff4d6;border-bottom:1px solid #e7c66f;color:#4e3b08;position:relative;z-index:25}
.impersonation-bar>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#ffe4a0;color:#775800;flex:0 0 auto}
.impersonation-bar>div{display:grid;gap:2px;min-width:0;flex:1}.impersonation-bar strong,.impersonation-bar small{display:block}.impersonation-bar small{color:#705d26}
.impersonation-bar .button{flex:0 0 auto}
@media(max-width:720px){.impersonation-bar{align-items:flex-start;flex-wrap:wrap}.impersonation-bar>div{width:calc(100% - 48px);flex:none}.impersonation-bar .button{width:100%;justify-content:center}}
[data-resource="agents"] .placement-grid .checkbox-field>span{display:flex;flex-direction:column;gap:5px;min-width:0}
[data-resource="agents"] .placement-grid .checkbox-field small{display:block;line-height:1.45}

.agent-access-note{display:inline-block;max-width:220px;white-space:normal;overflow-wrap:anywhere;font-size:12px;line-height:1.4;color:var(--text-muted,#5c6d77)}

/* Logo ufficiale leggibile sul fondo verde della pagina di accesso. */
.login-brand-panel .login-logo.login-logo-readable{display:block;background:#fff!important;padding:12px 16px!important;border-radius:12px;box-sizing:border-box;opacity:1}
.login-brand-panel .login-logo.login-logo-readable img{display:block;opacity:1;filter:none!important;mix-blend-mode:normal}

/* Dashboard agenzia: riquadri distribuiti per righe, senza colonne indipendenti. */
.dashboard-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:stretch;min-width:0}
.dashboard-overview-grid>.panel{display:flex;flex-direction:column;min-width:0;min-height:0;height:390px;margin:0;overflow:hidden}
.dashboard-overview-grid>.panel>.panel-header,.dashboard-overview-grid>.panel>.panel-footer,.dashboard-overview-grid>.panel>.dashboard-map-footer{flex:0 0 auto;min-width:0}
.dashboard-overview-grid>.panel>.panel-header{flex-wrap:wrap;gap:10px}
.dashboard-overview-grid .panel-title{min-width:0}
.dashboard-overview-grid .panel-title h2,.dashboard-overview-grid .panel-title small{overflow-wrap:anywhere}
.dashboard-overview-grid>.panel>.panel-body,.dashboard-overview-grid>.panel>.data-table-wrap{flex:1 1 auto;min-height:0;min-width:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.dashboard-overview-grid>.panel>.panel-body:focus-visible,.dashboard-overview-grid>.panel>.data-table-wrap:focus-visible{outline:2px solid var(--green);outline-offset:-3px}
.dashboard-overview-grid .dashboard-property-map{flex:1 1 auto;min-height:0;height:auto}
.dashboard-overview-grid .dashboard-map-footer{flex-wrap:wrap}
.dashboard-overview-grid .dashboard-map-footer strong{white-space:normal}
.dashboard-overview-grid .drawer-notifications{max-height:none;overflow:visible}
@media(max-width:900px){.dashboard-overview-grid{grid-template-columns:minmax(0,1fr)}.dashboard-overview-grid>.panel{height:360px}}
@media(max-width:480px){.dashboard-overview-grid{gap:14px}.dashboard-overview-grid>.panel{height:340px}.dashboard-overview-grid .panel-header{padding:14px}}

/* Existing Agenda: separate date creation from opening saved events. */
.calendar-day .calendar-day-add{display:block;text-align:left;width:100%;padding:0 0 6px;background:none;border:0;color:inherit;cursor:pointer}
.calendar-day .calendar-event-open{display:block;width:100%;text-align:left;border:0;cursor:pointer;font:inherit;font-size:11px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-day .calendar-day-more{border:0;background:none;color:var(--green,#087846);padding:4px 0;text-align:left;font:inherit;font-size:11px;cursor:pointer}
.open-house-booking-filter{display:flex;align-items:end;flex-wrap:wrap;gap:10px}.open-house-booking-filter .field{flex:1;min-width:180px}
.open-house-booking-list{display:grid;gap:10px;max-height:420px;overflow:auto}
.open-house-booking{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;border:1px solid #dce6e2;padding:14px;border-radius:10px}
.open-house-booking>div{display:grid;gap:5px;min-width:0;overflow-wrap:anywhere}.open-house-booking small{color:#61726b}

.calendar-day .calendar-day-add>strong{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;font-size:11px}.calendar-day.today .calendar-day-add>strong{color:#fff;background:var(--green)}

/* Agenda operativa: calendario leggibile, filtri e liste con scorrimento interno. */
.agenda-workspace{display:grid;gap:16px;min-width:0}
.agenda-toolbar{margin-bottom:0}
.calendar-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.calendar-summary-grid article{display:flex;align-items:center;gap:12px;min-width:0;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm)}
.calendar-summary-grid article>span{display:grid;width:42px;height:42px;flex:0 0 42px;place-items:center;border-radius:12px;background:var(--green-soft);color:var(--green-dark)}
.calendar-summary-grid article>span svg{width:20px;height:20px}
.calendar-summary-grid article>div{display:grid;min-width:0;grid-template-columns:auto 1fr;align-items:baseline;gap:0 6px}
.calendar-summary-grid small{grid-column:1/-1;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.calendar-summary-grid strong{font-size:24px;line-height:1.1;color:var(--ink)}
.calendar-summary-grid em{color:var(--muted);font-size:11px;font-style:normal}
.calendar-summary-grid .is-warning>span{background:#fff3df;color:#a86400}
.calendar-filterbar{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm)}
.calendar-filterbar>label{display:flex;align-items:center;gap:9px;min-width:240px;flex:1;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#f9fbfa}
.calendar-filterbar>label svg{flex:0 0 auto;color:var(--muted)}
.calendar-filterbar input{width:100%;min-height:42px;padding:0;border:0;outline:0;background:transparent;font:inherit}
.calendar-filterbar select{min-height:44px;min-width:205px;padding:0 38px 0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-weight:700}
.calendar-filterbar>span{margin-left:auto;color:var(--muted);font-size:11px;white-space:nowrap}
.agenda-workspace .calendar-layout{grid-template-columns:minmax(620px,1fr) minmax(340px,390px);gap:16px;align-items:start;min-width:0}
.agenda-workspace .calendar-card{min-width:0}
.agenda-workspace .calendar-header{min-height:74px;padding:14px 18px}
.agenda-workspace .calendar-header>div:first-child{display:grid;gap:3px}
.agenda-workspace .calendar-header small{color:var(--green-dark);font-size:9px;font-weight:850;letter-spacing:.1em}
.agenda-workspace .calendar-header h2{font-size:21px}
.calendar-next{transform:rotate(180deg)}
.calendar-grid-scroll{overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-gutter:stable}
.agenda-workspace .calendar-grid{min-width:700px}
.agenda-workspace .calendar-weekday{padding:11px 8px;font-size:10px;letter-spacing:.05em}
.agenda-workspace .calendar-day{min-height:112px;padding:7px;cursor:default}
.agenda-workspace .calendar-day.outside{opacity:.62}
.agenda-workspace .calendar-day .calendar-day-add{display:flex;align-items:center;justify-content:space-between;gap:5px;padding:0 0 5px}
.agenda-workspace .calendar-day .calendar-day-add>strong{font-size:11px}
.agenda-workspace .calendar-day .calendar-day-add>span{color:var(--green-dark);font-size:8px;font-weight:850;text-transform:uppercase}
.agenda-workspace .calendar-day .calendar-event-open{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:5px;margin-top:4px;padding:5px 6px;font-size:9px;line-height:1.25;border-left-width:3px;border-radius:6px;background:#eef5f8;color:#274c5d}
.agenda-workspace .calendar-event-open time{font-size:8px;font-weight:900}
.agenda-workspace .calendar-event-open span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.agenda-workspace .calendar-event-open.event-appointments{border-color:var(--green);background:var(--green-soft);color:var(--green-dark)}
.agenda-workspace .calendar-event-open.event-open_houses{border-color:#7254c7;background:#f2effc;color:#563da4}
.agenda-workspace .calendar-event-open.event-deadlines{border-color:#dc9719;background:#fff5df;color:#805500}
.agenda-workspace .calendar-day .calendar-day-more{font-size:9px;font-weight:800}
.agenda-workspace .agenda-side{min-width:0}
.agenda-month-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:764px;min-height:0;overflow:hidden}
.agenda-month-panel>.panel-body{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:12px}
.agenda-day-list{gap:8px}
.agenda-event-row{gap:6px}
.agenda-event-row .agenda-item{grid-template-columns:66px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;background:#fff;transition:border-color .16s ease,box-shadow .16s ease}
.agenda-event-row .agenda-item:hover,.agenda-event-row .agenda-item:focus-visible{border-color:#a8d3bb;box-shadow:0 4px 14px rgba(9,77,52,.08);outline:0}
.agenda-date{display:grid;align-content:center;gap:2px;min-height:40px;padding-right:9px;border-right:1px solid var(--line)}
.agenda-date strong{font-size:11px!important;text-transform:capitalize}
.agenda-date time{font-size:12px!important}
.agenda-event-row .agenda-item>div{min-width:0}
.agenda-event-row .agenda-item>div strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.agenda-event-row .agenda-item>div small{overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.agenda-kind{padding:4px 7px;border-radius:999px;background:#eef3f1;color:#52645c;font-size:8px;font-weight:850;white-space:nowrap;text-transform:uppercase}
.agenda-kind.kind-appointments{background:var(--green-soft);color:var(--green-dark)}
.agenda-kind.kind-open_houses{background:#f2effc;color:#563da4}
.agenda-kind.kind-deadlines{background:#fff3dc;color:#8a5d00}
.agenda-event-delete{align-self:stretch;height:auto;min-height:54px}
.agenda-help{padding:11px 14px;border-top:1px solid var(--line);background:#f8faf9;color:var(--muted);font-size:9px;line-height:1.45}
.agenda-day-dialog{max-height:min(62vh,620px);overflow:auto;padding-right:4px}
.appointment-document-actions{justify-content:flex-start;border-top:1px solid var(--line);padding-top:14px}
@media(max-width:1240px){.calendar-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.agenda-workspace .calendar-layout{grid-template-columns:minmax(0,1fr)}.agenda-month-panel{height:min(520px,65vh)}}
@media(max-width:760px){.calendar-summary-grid{grid-template-columns:minmax(0,1fr)}.calendar-filterbar{align-items:stretch;flex-direction:column}.calendar-filterbar>label,.calendar-filterbar select{width:100%;min-width:0}.calendar-filterbar>span{margin-left:0;white-space:normal}.agenda-workspace .calendar-grid{min-width:665px}.agenda-workspace .calendar-day{min-height:104px}.agenda-workspace .calendar-event::before{content:none}.agenda-workspace .calendar-day .calendar-event-open{font-size:9px}.agenda-event-row .agenda-item{grid-template-columns:58px minmax(0,1fr)}.agenda-kind{display:none}.agenda-month-panel{height:min(500px,68vh)}}
