/* REI-ATMAQ visual system - shared across public and administrative areas. */
:root {
  --red: #c41532;
  --red-deep: #8f0f26;
  --red-pale: #fff1f3;
  --violet: #672b87;
  --violet-deep: #421957;
  --violet-pale: #f5eff8;
  --ink: #211c26;
  --muted: #6e6673;
  --line: #e6dfe9;
  --canvas: #fbfafc;
  --paper: #fff;
  --surface-soft: #fcfbfd;
  --success: #087d57;
  --warning: #9c6500;
  --radius-sm: 8px;
  --radius: 14px;
  --radius-lg: 22px;
  --shadow: 0 16px 42px rgba(35, 22, 48, .09);
  --shadow-sm: 0 5px 18px rgba(35, 22, 48, .06);
}

body { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: var(--canvas); letter-spacing: 0; }
body > main { background: var(--canvas); }
h1, h2, h3 { letter-spacing: 0; }
h1 { font-weight: 760; }
h2 { font-weight: 730; }
h3 { font-weight: 700; }

.site-header { min-height: 72px; padding: 11px clamp(20px, 5vw, 76px); background: rgba(255,255,255,.88); border-color: rgba(62,25,92,.11); box-shadow: 0 1px 0 rgba(30,20,40,.02); }
.brand { gap: 11px; }
.brand-mark { width: 43px; height: 43px; border-radius: 12px; box-shadow: 0 8px 18px rgba(93,45,130,.2), inset 0 0 0 1px rgba(255,255,255,.35); }
.brand-copy strong { font-size: 15px; letter-spacing: .07em; }
.brand-copy small { color: #817988; font-size: 10.5px; }
.site-header { position: sticky; top: 0; z-index: 30; background: rgba(255,255,255,.94); box-shadow: 0 1px 0 rgba(55,28,70,.08), 0 7px 18px rgba(45,22,58,.045); backdrop-filter: blur(14px); }
.brand { flex: 0 0 auto; }
.brand-copy { min-width: 285px; }
.site-nav { gap: 8px; }
.site-nav a { padding: 8px 10px; border-radius: 7px; }
.site-nav a:not(.nav-login)::after { display: none; }
.site-nav a:not(.nav-login):hover { color: var(--violet-deep); background: var(--violet-pale); }
.nav-login { padding: 9px 13px; border-radius: 8px; box-shadow: none; }

.section { padding: clamp(50px, 6vw, 88px) clamp(20px, 5vw, 76px); }
.eyebrow { display: flex; align-items: center; gap: 7px; margin-bottom: 12px; font-size: 10px; letter-spacing: .13em; }
.eyebrow::before { width: 18px; height: 2px; background: currentColor; content: ""; }
.button { min-height: 43px; padding: 10px 15px; border-radius: 8px; font-size: 13px; box-shadow: none; }
.button:hover { box-shadow: 0 8px 18px rgba(40,24,55,.12); transform: translateY(-1px); }
.button-violet { background: linear-gradient(135deg, var(--violet), #71389b); }
.button-red { background: linear-gradient(135deg, var(--red), #d62b4b); }
.button-outline { border-color: #d9cfe1; background: var(--paper); }
input, select { min-height: 44px; border-color: #d8d1df; border-radius: 8px; box-shadow: 0 1px 1px rgba(25,12,36,.02); }
input:focus, select:focus { border-color: var(--violet); box-shadow: 0 0 0 4px rgba(93,45,130,.11); outline: 0; }
label { color: #5d5665; font-size: 12px; }

.hero { min-height: 590px; background: radial-gradient(circle at 84% 20%, rgba(103,43,135,.13), transparent 30%), radial-gradient(circle at 5% 85%, rgba(189,23,54,.10), transparent 26%), var(--paper); }
.hero-about { border-color: var(--red); }
.fire-board { border-radius: var(--radius); box-shadow: 20px 20px 0 rgba(93,45,130,.08), var(--shadow); overflow: hidden; }
.search-zone, .registry-page, .news-section, .standalone-page { background: var(--canvas); }
.search-panel, .registry-filter, .signup-form, .login-box, .benefit, .news-grid article { border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.benefit, .news-grid article { background: var(--paper); }
.enrollment-band { border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.page-hero { background: radial-gradient(circle at 88% 10%, rgba(189,23,54,.10), transparent 27%), var(--paper); }
.page-hero.company { background: radial-gradient(circle at 88% 10%, rgba(93,45,130,.13), transparent 28%), var(--paper); }
.registry-list { border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.registry-card { transition: background .18s ease; }
.registry-card:hover { background: var(--surface-soft); }
.registry-badge { padding: 6px 9px; }
.registry-card-actions { margin-top: 13px; }
.registry-card-actions .button { min-height: 36px; padding: 8px 11px; font-size: 12px; }
.public-profile-dialog { width: min(92vw, 720px); padding: 0; color: var(--ink); background: linear-gradient(145deg,#fff,#faf7fc); border: 1px solid rgba(78,40,100,.14); border-radius: var(--radius-lg); box-shadow: 0 32px 90px rgba(22,12,32,.34), inset 0 1px 0 #fff; }
.public-profile-dialog::backdrop { background: rgba(28,17,35,.55); backdrop-filter: blur(4px); }
.public-profile-dialog-shell { position: relative; padding: clamp(26px,5vw,44px); }
.public-profile-close { position: absolute; top: 13px; right: 16px; width: 34px; height: 34px; color: var(--muted); background: transparent; border: 0; border-radius: 50%; font-size: 25px; line-height: 1; cursor: pointer; }
.public-profile-close:hover { color: var(--violet-deep); background: var(--violet-pale); }
.public-profile-dialog h2 { margin-bottom: 7px; font-size: 30px; }
.public-profile-meta { color: var(--muted); }
.public-profile-links { margin: 22px 0; padding: 16px; background: #faf8fc; border: 1px solid var(--line); border-radius: 10px; }
.public-profile-links h3 { margin-bottom: 8px; font-size: 15px; }
.public-profile-links ul { margin: 0; padding-left: 18px; color: var(--muted); font-size: 13px; }
.public-profile-empty { margin: 0; color: var(--muted); font-size: 13px; }
.public-profile-contact-target { display: grid; gap: 4px; margin: 14px 0 16px; padding: 14px 16px; background: #faf8fc; border: 1px solid var(--line); border-radius: 10px; }
.public-profile-contact-target .eyebrow { margin: 0; }
.public-profile-contact-target strong { font-size: 18px; line-height: 1.25; }
.public-profile-contact-target span { color: var(--muted); font-size: 13px; font-weight: 700; }
.public-profile-dialog textarea { width: 100%; padding: 10px 11px; color: var(--ink); background: white; border: 1px solid #d5cbd9; border-radius: 4px; resize: vertical; }
.public-profile-contact-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin-top: 5px; }
.signup-page { position: relative; overflow: hidden; background: radial-gradient(circle at 94% 5%, rgba(93,45,130,.17), transparent 28%), radial-gradient(circle at 5% 92%, rgba(189,23,54,.10), transparent 25%), #f8f6fa; }
.signup-page .section { position: relative; z-index: 1; min-height: calc(100vh - 72px); display: grid; align-items: start; padding-top: clamp(34px,3vw,52px); padding-bottom: clamp(42px,4vw,62px); }
.signup-layout { grid-template-columns: minmax(350px,.84fr) minmax(500px,1.16fr); align-items: start; gap: 28px; max-width: 1280px; width: 100%; }
.signup-summary { position: sticky; top: 38px; align-self: start; min-height: 580px; padding: clamp(32px,4vw,56px); overflow: hidden; color: white; background: linear-gradient(145deg,#35164f 0%,#64267d 54%,#a31d45 136%); border: 1px solid rgba(255,255,255,.17); border-radius: var(--radius-lg); box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 26px 58px rgba(56,20,73,.23); }
.signup-summary::before, .signup-summary::after { position: absolute; border-radius: 50%; content: ""; pointer-events: none; }
.signup-summary::before { width: 310px; height: 310px; top: -120px; right: -130px; background: radial-gradient(circle at 30% 30%,rgba(255,255,255,.3),rgba(255,255,255,0) 63%); animation: signup-orbit 13s ease-in-out infinite alternate; }
.signup-summary::after { width: 230px; height: 230px; bottom: -110px; left: -70px; background: radial-gradient(circle,rgba(238,76,109,.74),rgba(238,76,109,0) 68%); filter: blur(2px); animation: signup-orbit 10s ease-in-out infinite alternate-reverse; }
.company-form .signup-summary { background: linear-gradient(145deg,#31134e 0%,#57227c 54%,#8c244f 136%); }
.signup-summary > * { position: relative; z-index: 1; }
.signup-summary .eyebrow { color: #f7c7d1; }
.signup-summary h1 { max-width: 520px; margin: 0; color: white; font-size: 39px; line-height: 1.01; text-wrap: balance; }
.signup-summary p { max-width: 510px; color: rgba(255,255,255,.78); font-size: 14px; line-height: 1.58; }
.signup-summary .price-box { margin: 30px 0 24px; padding: 20px 22px; background: linear-gradient(145deg,rgba(255,255,255,.17),rgba(255,255,255,.08)); border: 1px solid rgba(255,255,255,.22); border-left: 4px solid #f15170; border-radius: 14px; box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 12px 25px rgba(18,4,26,.16); backdrop-filter: blur(14px); }
.company-form .price-box { border-left-color: #bd84d7; }
.signup-summary .price-box strong { color: white; font-size: 27px; letter-spacing: 0; }
.signup-summary .price-box small { display: block; margin-top: 6px; color: rgba(255,255,255,.74); font-size: 13px; }
.signup-form { padding: clamp(26px,3vw,40px); background: linear-gradient(145deg,#fff,#fdfbfe); border: 1px solid rgba(78,40,100,.15); border-radius: var(--radius-lg); box-shadow: inset 0 1px 0 #fff, 0 18px 42px rgba(43,20,57,.09), 0 42px 84px rgba(53,24,70,.055); }
.signup-form h2 { margin: 0 0 23px; color: var(--ink); font-size: 29px; }
.signup-form form { gap: 17px; }
.signup-form label { gap: 7px; color: #50475b; font-size: 12px; font-weight: 800; letter-spacing: .005em; }
.signup-form input, .signup-form select { min-height: 48px; padding: 11px 13px; color: #291c35; background: linear-gradient(145deg,#fff,#fbf8fc); border: 1px solid #d9d0e0; border-radius: 10px; font-size: 14px; font-weight: 650; box-shadow: inset 0 1px 2px rgba(52,28,65,.025); }
.signup-form input:focus, .signup-form select:focus { background: #fff; border-color: var(--violet); box-shadow: 0 0 0 4px rgba(93,45,130,.12), inset 0 1px 2px rgba(52,28,65,.025); }
.signup-form input:disabled, .signup-form select:disabled { color: #92899a; background: #f3eff5; border-color: #e5dfe9; }
.signup-form .form-grid { gap: 15px; }
.signup-form fieldset { gap: 12px; padding: 18px; background: linear-gradient(145deg,#fbf9fc,#f7f3f9); border: 1px solid #e0d8e5; border-radius: 13px; }
.signup-form legend { color: var(--violet-deep); font-size: 13px; letter-spacing: 0; }
.company-form .signup-form legend { color: var(--violet-deep); }
.signup-form .form-hint { margin: -2px 0 4px; color: #756b7c; font-size: 12px; }
.signup-form .presidia-checklist { gap: 12px 30px; }
.signup-form .presidia-checklist label { padding: 5px 3px; color: #5b5263; font-size: 12px; font-weight: 700; line-height: 1.4; }
.signup-form .presidia-checklist input { accent-color: var(--red); }
.company-form .signup-form .presidia-checklist input { accent-color: var(--violet); }
.signup-form .checkline { color: #665d6d; font-size: 12px; line-height: 1.45; }
.signup-form .button-full { min-height: 51px; margin-top: 4px; border-radius: 10px; font-size: 14px; box-shadow: 0 10px 20px rgba(81,29,102,.17); }
.signup-form .button-full:hover { box-shadow: 0 14px 28px rgba(81,29,102,.24); transform: translateY(-2px); }
.signup-form [data-requested-technician] { gap: 11px; padding: 14px 0; }
.signup-form [data-requested-technician] .button { min-height: 38px; font-size: 12px; }
@keyframes signup-orbit { from { transform: translate3d(0,0,0) scale(1); } to { transform: translate3d(-24px,30px,0) scale(1.12); } }

/* Authentication and private profile: calm, concise, Italian-first messaging. */
.login-section { min-height: calc(100vh - 72px); padding-top: 64px; padding-bottom: 64px; }
.login-box { position: relative; width: min(100%, 500px); padding: 38px; overflow: hidden; background: linear-gradient(145deg,#fff,#fbf8fc); border: 1px solid rgba(78,40,100,.15); border-radius: var(--radius-lg); box-shadow: inset 0 1px 0 #fff, 0 20px 44px rgba(43,20,57,.1), 0 42px 84px rgba(53,24,70,.055); }
.login-box::before { position: absolute; top: -120px; right: -100px; width: 260px; height: 260px; background: radial-gradient(circle,rgba(119,55,157,.17),rgba(119,55,157,0) 69%); border-radius: 50%; content: ""; animation: signup-orbit 12s ease-in-out infinite alternate; }
.login-box > * { position: relative; z-index: 1; }
.login-box h1 { margin: 0 0 8px; font-size: 34px; }
.login-box > p:not(.eyebrow):not(.form-feedback) { margin: 0 0 22px; color: var(--muted); font-size: 14px; line-height: 1.55; }
.login-box form { gap: 15px; }
.login-box form[hidden] { display: none !important; }
.login-box label { gap: 7px; color: #50475b; font-size: 11px; font-weight: 850; }
.login-box input { min-height: 48px; padding: 11px 13px; border-radius: 10px; font-size: 14px; }
.login-box .button-full { min-height: 49px; border-radius: 10px; font-size: 14px; }

[data-private-area] .private-section { display: grid; min-height: calc(100vh - 72px); place-items: start stretch; }
.private-shell { display: grid; grid-template-columns: minmax(330px,.82fr) minmax(480px,1.18fr); align-items: stretch; max-width: 1180px; width: 100%; overflow: visible; border: 1px solid rgba(78,40,100,.14); border-radius: var(--radius-lg); box-shadow: inset 0 1px 0 #fff, 0 24px 54px rgba(43,20,57,.12), 0 54px 100px rgba(53,24,70,.07); }
.private-intro { position: relative; isolation: isolate; min-height: 0; padding: clamp(36px,5vw,62px); overflow: visible; color: white; background: #1c171f; }
.private-intro::before, .private-intro::after { display: none; content: none; }
.private-intro > * { position: relative; z-index: 1; }
.private-intro .eyebrow { color: #f8c8d3; }
.private-kicker { margin: 0 0 17px; color: rgba(255,255,255,.65); font-size: 12px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.private-intro h1 { margin: 0; color: #fff; font-size: 44px; line-height: 1; text-wrap: balance; }
.private-intro h1 + p { max-width: 380px; margin-top: 25px; color: rgba(255,255,255,.77); font-size: 15px; line-height: 1.65; }
.private-panel { padding: clamp(32px,4vw,54px); background: linear-gradient(145deg,#fff,#faf7fc); }
.private-panel-head { display: flex; justify-content: space-between; align-items: start; gap: 24px; padding-bottom: 25px; border-bottom: 1px solid #e8e0ed; }
.private-panel-head .eyebrow { color: var(--violet); }
.private-panel-head h2 { margin: 0; font-size: 32px; }
.private-panel-head p:not(.eyebrow) { max-width: 480px; margin: 9px 0 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.private-status { display: inline-flex; flex: 0 0 auto; align-items: center; min-height: 31px; padding: 7px 10px; color: var(--violet-deep); background: linear-gradient(145deg,#f1e6f7,#e9dbf2); border: 1px solid rgba(93,45,130,.11); border-radius: 999px; box-shadow: inset 0 1px 0 #fff, 0 4px 10px rgba(75,31,101,.08); font-size: 11px; font-weight: 850; text-align: right; }
.private-steps { display: grid; gap: 0; margin: 26px 0; }
.private-steps article { position: relative; display: grid; grid-template-columns: 42px 1fr; gap: 14px; align-items: center; min-height: 72px; padding: 11px 0; color: #8d8494; }
.private-steps article:not(:last-child)::after { position: absolute; top: 56px; bottom: -6px; left: 20px; width: 2px; background: #e6dfe9; content: ""; }
.private-steps article > span { display: grid; width: 42px; height: 42px; place-items: center; color: #8e8296; background: #f0ebf2; border: 1px solid #e0d8e4; border-radius: 50%; font-size: 11px; font-weight: 850; }
.private-steps strong { display: block; color: #615767; font-size: 14px; }
.private-steps p { margin: 3px 0 0; font-size: 12px; line-height: 1.4; }
.private-steps .is-complete > span { color: #fff; background: linear-gradient(135deg,#663181,#8a458f); border-color: transparent; box-shadow: 0 6px 13px rgba(88,39,113,.18); }
.private-steps .is-complete strong { color: var(--ink); }
.private-steps .is-complete:not(:last-child)::after { background: linear-gradient(var(--violet),#a44470); }
.private-steps .is-current { color: var(--ink); }
.private-steps .is-current > span { color: #fff; background: linear-gradient(135deg,var(--red),#a33075); border-color: transparent; box-shadow: 0 7px 16px rgba(169,29,68,.23); }
.private-steps .is-current strong { color: var(--ink); }
.private-registry-code { margin: 22px 0; padding: 18px 20px; color: #3d234c; background: linear-gradient(135deg,#fbf5fd,#f4e8f8); border: 1px solid #e4d2ea; border-radius: 14px; }
.private-registry-code .eyebrow { margin: 0 0 5px; color: var(--violet-deep); }
.private-registry-code strong { display: block; color: var(--violet-deep); font-family: ui-monospace,SFMono-Regular,Consolas,monospace; font-size: 23px; letter-spacing: .08em; }
.private-registry-code p:last-child { margin: 9px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.private-account { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 18px; padding-top: 21px; border-top: 1px solid #e8e0ed; color: var(--muted); font-size: 12px; }
.private-account > span:first-child { color: var(--violet-deep); font-weight: 850; }
.private-account .button { margin-left: auto; min-height: 38px; padding: 7px 11px; font-size: 12px; }

.site-footer { background: linear-gradient(130deg, #17111d, #25142e); }

/* Administration: information hierarchy and unambiguous control roles. */
.admin-page { background: radial-gradient(circle at 88% 2%, rgba(189,23,54,.055), transparent 25%), radial-gradient(circle at 8% 34%, rgba(93,45,130,.07), transparent 30%), #f7f6fa; }
.admin-page .section { max-width: 1320px; margin: 0 auto; }
.admin-topline { display: flex; align-items: end; justify-content: space-between; gap: 24px; padding-bottom: 23px; border-bottom: 1px solid var(--line); }
.admin-topline h1 { margin: 0; font-size: 34px; }
.admin-topline p:not(.eyebrow) { max-width: 560px; margin: 9px 0 0; color: var(--muted); font-size: 15px; line-height: 1.55; }
.admin-summary.admin-status-summary { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 10px; margin: 20px 0; }
.admin-status-card { position: relative; min-height: 112px; padding: 18px 16px; overflow: hidden; color: var(--ink); text-align: left; background: linear-gradient(145deg,#fff 0%,#fbf9fc 100%); border: 1px solid rgba(83,54,100,.13); border-radius: var(--radius); box-shadow: inset 0 1px 0 #fff, 0 5px 12px rgba(44,24,56,.06), 0 16px 32px rgba(58,28,76,.055); cursor: pointer; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.admin-status-card::before { position: absolute; top: 0; right: 0; left: 0; height: 4px; background: linear-gradient(90deg,var(--violet),#8c4eb2); content: ""; }
.admin-status-card[data-admin-status="to_review"]::before, .admin-status-card[data-admin-status="suspended"]::before { background: linear-gradient(90deg,var(--red),#dc4a64); }
.admin-status-card[data-admin-status="payment_received"]::before, .admin-status-card[data-admin-status="verified_published"]::before { background: linear-gradient(90deg,var(--violet),var(--red)); }
.admin-status-card::after { position: absolute; right: -25px; bottom: -33px; width: 82px; height: 82px; border-radius: 50%; background: linear-gradient(145deg,rgba(93,45,130,.03),rgba(189,23,54,.09)); content: ""; }
.admin-status-card:hover { border-color: rgba(93,45,130,.35); box-shadow: inset 0 1px 0 #fff, 0 9px 18px rgba(44,24,56,.08), 0 22px 40px rgba(58,28,76,.09); transform: translateY(-3px); }
.admin-status-card.active { color: white; background: linear-gradient(135deg, #451d65 0%, #6e3294 58%, #a81f48 130%); border-color: transparent; box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 9px 18px rgba(73,31,105,.18), 0 22px 42px rgba(73,31,105,.18); }
.admin-status-card.active::before { background: linear-gradient(90deg,#d54765,#a871c6); }
.admin-status-card.active::after { background: rgba(255,255,255,.12); }
.admin-status-card strong { position: relative; z-index: 1; color: inherit; font-size: 30px; letter-spacing: 0; text-shadow: 0 1px 0 rgba(255,255,255,.25); }
.admin-status-card span { position: relative; z-index: 1; max-width: 118px; margin-top: 10px; color: inherit; font-size: 12px; font-weight: 750; line-height: 1.28; }
.admin-analytics { display: grid; grid-template-columns: 1.2fr .8fr; gap: 14px; margin-bottom: 16px; }
.admin-chart-card, .admin-insight-card { min-height: 164px; padding: 20px; background: linear-gradient(145deg,#fff 0%,#faf7fc 100%); border: 1px solid rgba(83,54,100,.13); border-radius: var(--radius); box-shadow: inset 0 1px 0 #fff, 0 7px 17px rgba(43,22,55,.07), 0 22px 45px rgba(55,27,70,.055); }
.admin-chart-card h2, .admin-insight-card h2 { margin: 0; font-size: 18px; }
.admin-chart-card p, .admin-insight-card p { margin: 6px 0 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.admin-bars { display: flex; align-items: end; gap: 8px; height: 70px; margin-top: 13px; }
.admin-bar { position: relative; flex: 1; min-width: 0; height: 100%; border-radius: 7px 7px 3px 3px; background: #eee9f2; overflow: hidden; }
.admin-bar i { position: absolute; right: 0; bottom: 0; left: 0; display: block; min-height: 4px; border-radius: inherit; background: linear-gradient(180deg, #9b62bd, var(--violet-deep)); box-shadow: inset 0 1px 0 rgba(255,255,255,.35); transition: height .35s ease; }
.admin-bar:nth-child(1) i, .admin-bar:nth-child(5) i { background: linear-gradient(180deg,#e25470,var(--red)); }
.admin-bar:nth-child(3) i { background: linear-gradient(180deg,#a457a4,#8e275f); }
.admin-bar span { position: absolute; right: 4px; bottom: 5px; left: 4px; z-index: 1; color: #fff; font-size: 11px; font-style: normal; font-weight: 850; text-align: center; text-shadow: 0 1px 2px rgba(30,10,40,.28); }
.admin-bar-labels { display: grid; grid-template-columns: repeat(5,1fr); gap: 8px; margin-top: 8px; color: var(--muted); font-size: 11px; font-weight: 650; text-align: center; }
.admin-insight-card { display: grid; grid-template-columns: 98px 1fr; align-items: center; gap: 16px; }
.admin-donut { position: relative; display: grid; width: 100px; height: 100px; place-items: center; border-radius: 50%; background: conic-gradient(var(--violet) 0deg, var(--violet) 0deg, #ebe5f0 0deg); box-shadow: inset 0 0 0 1px rgba(77,37,102,.08), 0 10px 22px rgba(76,35,100,.16); }
.admin-donut::before { position: absolute; width: 71px; height: 71px; background: linear-gradient(145deg,#fff,#f6f1f8); border-radius: 50%; box-shadow: inset 0 2px 5px rgba(52,24,66,.08), 0 1px 0 #fff; content: ""; }
.admin-donut strong { position: relative; z-index: 1; color: var(--violet-deep); font-size: 21px; letter-spacing: 0; }
.admin-donut span { position: relative; z-index: 1; margin-top: -17px; color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.admin-controls { grid-template-columns: auto minmax(250px,1fr) auto; gap: 12px; padding: 13px; background: linear-gradient(145deg,#fff,#faf7fc); border: 1px solid rgba(83,54,100,.13); border-radius: var(--radius); box-shadow: inset 0 1px 0 #fff, 0 8px 20px rgba(52,27,66,.07); }
.admin-role-tab { border-radius: 7px; color: #61596b; }
.admin-role-tab.active { background: linear-gradient(135deg,var(--violet-deep),var(--violet) 62%,#8f2a63 140%); box-shadow: 0 5px 12px rgba(75,31,101,.2); }
.admin-search { color: #736b7b; }
.admin-results { margin: 18px 0 10px; color: #5f5669; }
.admin-list { grid-template-columns: repeat(auto-fill, minmax(380px,1fr)); gap: 13px; }
.admin-request { position: relative; min-height: 0; padding: 20px; overflow: hidden; background: linear-gradient(145deg,#fff 0%,#fcfafc 100%); border-color: rgba(83,54,100,.13); border-radius: var(--radius); box-shadow: inset 0 1px 0 #fff, 0 6px 16px rgba(43,22,55,.065), 0 20px 38px rgba(55,27,70,.045); transition: transform .18s ease, box-shadow .18s ease; }
.admin-request::before { position: absolute; top: 0; bottom: 0; left: 0; width: 4px; background: linear-gradient(180deg,var(--violet),#8a4eac); content: ""; }
.admin-request--technician::before { background: linear-gradient(180deg,var(--red),#8e2c72); }
.admin-request:hover { box-shadow: inset 0 1px 0 #fff, 0 10px 24px rgba(43,22,55,.08), 0 24px 45px rgba(55,27,70,.07); transform: translateY(-2px); }
.admin-request { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: start; }
.admin-request > :nth-child(n+3) { grid-column: 1 / -1; }
.admin-request-heading h3 { margin: 0; }
.admin-request-heading p { margin: 5px 0 0; }
.admin-state { display: inline-flex; align-items: center; min-height: 27px; padding: 5px 9px; color: var(--violet-deep); background: var(--violet-pale); border: 1px solid rgba(77,35,102,.06); border-radius: 999px; font-size: 11px; font-weight: 800; line-height: 1; text-align: right; white-space: nowrap; }
.admin-state--to_review { color: #815200; background: #fff4d9; }
.admin-state--awaiting_payment { color: #8b4210; background: #fff0e6; }
.admin-state--payment_received { color: #0d6853; background: #e8f8f1; }
.admin-state--verified_published { color: #135b47; background: #e7f7ef; }
.admin-state--suspended { color: #6d6171; background: #eeeaf0; }
.admin-request h3 { font-size: 20px; }
.admin-request-heading p { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 13px; }
.admin-request-heading p::before { padding: 4px 7px; color: var(--violet-deep); background: var(--violet-pale); border-radius: 99px; content: "profilo"; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.admin-request .admin-meta { font-size: 13px; font-weight: 650; line-height: 1.45; }
.admin-request > .admin-meta { padding: 9px 0; border-top: 1px solid var(--line); }
.admin-request .admin-presidia .button { min-height: 32px; padding: 6px 9px; color: var(--violet-deep); background: linear-gradient(145deg,#f4ecf8,#ebe0f2); border-color: transparent; border-radius: 999px; font-size: 12px; box-shadow: inset 0 1px 0 #fff, 0 3px 8px rgba(72,31,93,.08); }
.admin-request .admin-presidia .button:disabled { color: #496f63; background: #edf8f3; opacity: 1; }
.admin-request .admin-document-actions .button { min-height: 36px; padding: 8px 10px; color: #4d4655; background: linear-gradient(145deg,#fff,#f7f3f8); border-color: #ddd7e2; font-size: 12px; box-shadow: 0 4px 10px rgba(51,25,64,.07); }
.admin-document-item { display: flex; flex-wrap: wrap; align-items: end; gap: 9px; }
.admin-document-expiry { min-width: 190px; color: var(--muted); font-size: 10px; font-weight: 800; }
.admin-document-expiry input { min-height: 36px; padding: 7px 9px; font-size: 12px; }
.admin-presidium-item { display: grid; grid-template-columns: minmax(0, 1fr) minmax(155px, .7fr) auto auto; align-items: end; gap: 9px; width: 100%; padding: 9px 0; border-bottom: 1px solid var(--line); }
.admin-presidium-item:last-child { border-bottom: 0; }
.admin-presidium-info { display: grid; gap: 3px; min-width: 0; }
.admin-presidium-info strong { color: var(--violet-deep); font-size: 13px; }
.admin-presidium-info span { color: var(--muted); font-size: 12px; line-height: 1.35; }
.admin-presidium-expiry { display: grid; gap: 4px; min-width: 155px; color: var(--muted); font-size: 10px; font-weight: 800; }
.admin-presidium-expiry input { min-height: 36px; padding: 7px 9px; font-size: 12px; }
.admin-request .admin-document-actions .button::before { content: "\\2197"; font-size: 14px; }
.admin-request .admin-document-actions::before { flex-basis: 100%; color: var(--muted); content: "Documenti privati"; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.admin-request .admin-presidia::before { flex-basis: 100%; color: var(--muted); content: "Presidi dichiarati"; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.admin-association { padding: 10px; background: #faf8fc; border: 1px solid #ebe4f0; border-radius: 10px; }
.admin-association select { min-height: 38px; font-size: 12px; }
.admin-actions { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 11px; border-top: 1px solid var(--line); }
.admin-actions .button:first-child { color: #735400; background: #fff9e8; border-color: #f0dfaa; }
.admin-actions .button:last-child { background: linear-gradient(135deg, var(--violet-deep), var(--violet) 62%, var(--red) 145%); box-shadow: 0 7px 16px rgba(75,31,101,.18); }
.admin-history { background: linear-gradient(145deg,#fff,#faf8fb); border-color: rgba(83,54,100,.13); border-radius: var(--radius); box-shadow: inset 0 1px 0 #fff, 0 8px 22px rgba(48,24,61,.07); }
.admin-history-item { padding: 15px 0; }
.admin-history-item time { color: var(--violet-deep); font-size: 13px; font-weight: 800; }
.admin-contacts { margin-top: 16px; padding: 20px; background: linear-gradient(145deg,#fff,#faf8fb); border: 1px solid rgba(83,54,100,.13); border-radius: var(--radius); box-shadow: inset 0 1px 0 #fff, 0 8px 22px rgba(48,24,61,.07); }
.admin-contact-item { padding: 14px 0; border-top: 1px solid var(--line); }
.admin-contact-item:first-child { border-top: 0; }
.admin-contact-item h3 { margin: 0; font-size: 15px; }
.admin-contact-item p { margin: 4px 0 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.admin-confirm { background: linear-gradient(145deg,#fff,#faf7fc); border: 1px solid rgba(255,255,255,.65); border-radius: var(--radius-lg); box-shadow: 0 32px 90px rgba(22,12,32,.34), inset 0 1px 0 #fff; }
.admin-confirm form { padding: 30px; }
.admin-confirm h2 { font-size: 28px; }
.admin-confirm-actions { margin-top: 26px; }
.registration-review { width: min(92vw, 660px); padding: 0; color: var(--ink); background: linear-gradient(145deg,#fff,#faf7fc); border: 1px solid rgba(78,40,100,.14); border-radius: var(--radius-lg); box-shadow: 0 32px 90px rgba(22,12,32,.34), inset 0 1px 0 #fff; }
.registration-review::backdrop { background: rgba(28,17,35,.55); backdrop-filter: blur(4px); }
.registration-review form { padding: clamp(24px,4vw,36px); }
.registration-review h2 { margin-bottom: 8px; font-size: 27px; }
.registration-review dl { display: grid; grid-template-columns: max-content minmax(0,1fr); gap: 0; margin: 22px 0; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.registration-review dl > div { display: contents; }
.registration-review dt, .registration-review dd { margin: 0; padding: 10px 12px; border-bottom: 1px solid var(--line); font-size: 13px; }
.registration-review dt { color: var(--muted); background: #faf8fc; font-weight: 800; white-space: nowrap; }
.registration-review dd { word-break: break-word; }
.registration-review dl > div:last-child dt, .registration-review dl > div:last-child dd { border-bottom: 0; }
.registration-review-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.admin-logout { border-radius: 8px; }

@media (max-width: 1050px) { .admin-summary.admin-status-summary { grid-template-columns: repeat(3,minmax(0,1fr)); }.admin-analytics { grid-template-columns: 1fr; }.admin-list { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 1050px) { .signup-layout, .private-shell { grid-template-columns: 1fr; max-width: 720px; }.signup-summary { position: relative; top: auto; min-height: 0; }.signup-summary h1 { font-size: 39px; }.private-intro { min-height: 0; }.private-intro h1 { font-size: 44px; } }
@media (max-width: 700px) { .brand-copy { min-width: 0; }.signup-summary { padding: 30px 25px; border-radius: 17px; }.signup-summary h1 { font-size: 38px; }.signup-form { padding: 24px 18px; border-radius: 17px; }.login-box { padding: 29px 21px; border-radius: 17px; }.private-section { padding-right: 18px; padding-left: 18px; }.private-shell { border-radius: 17px; }.private-intro, .private-panel { padding: 30px 23px; }.private-panel-head { display: grid; gap: 14px; }.private-status { justify-self: start; }.private-account .button { width: 100%; margin-left: 0; }.admin-summary.admin-status-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }.admin-list { grid-template-columns: 1fr; }.admin-insight-card { grid-template-columns: 80px 1fr; }.admin-donut { width: 80px; height: 80px; }.admin-donut::before { width: 58px; height: 58px; }.admin-controls { grid-template-columns: 1fr; }.admin-controls > .button { justify-self: start; }.admin-presidium-item { grid-template-columns: 1fr; align-items: stretch; }.admin-presidium-expiry { min-width: 0; }.admin-presidium-item .button, .admin-presidium-unavailable { justify-self: start; } }
