/* Menu e account: stessi controlli operativi, una navigazione più leggibile. */
:root { --canvas:#f3f6f8; --radius:18px; --menu-shadow:0 8px 28px #193b4b0a, 0 2px 5px #193b4b04; }
.brand-link { color:inherit; text-decoration:none; }
.brand small { font-size:.65rem; letter-spacing:.14em; margin-left:3px; color:var(--accent); }
.brand-mark { box-shadow:0 5px 14px #106e6520; }
.site-navbar { position:sticky; top:0; z-index:20; min-height:88px; padding:16px 36px; background:#fff; box-shadow:0 3px 20px #193b4b05; }
.navbar-start, .navbar-actions { display:flex; align-items:center; gap:22px; min-width:0; }
.site-navbar .brand { font-size:1.5rem; white-space:nowrap; }
.home-link { display:inline-flex; align-items:center; gap:9px; text-decoration:none; font-size:.86rem; color:var(--muted); min-height:46px; padding:8px; border-radius:10px; }
.home-link:hover { color:var(--accent); background:var(--accent-soft); }
.site-navbar .menu-toggle { display:inline-flex; border-radius:12px; }
.menu-shell { display:block; min-height:calc(100dvh - 88px); }
.menu-shell .content { max-width:1280px; padding:40px; }
.menu-shell .sidebar { position:fixed; top:0; left:0; z-index:40; width:min(310px,88vw); transform:translateX(-100%); visibility:hidden; overflow-y:auto; transition:transform .18s ease, visibility .18s; }
.menu-shell .sidebar[data-open="true"] { transform:translateX(0); visibility:visible; }
.menu-shell .menu-backdrop { z-index:35; }
.menu-is-open { overflow:hidden; }
.card { box-shadow:var(--menu-shadow); }
.avatar { position:relative; display:inline-grid; place-items:center; flex:0 0 46px; width:46px; height:46px; border:3px solid white; outline:1px solid #d5e7e1; border-radius:50%; background:#e0eeea; color:var(--accent-dark); overflow:hidden; font-size:.95rem; font-weight:750; }
.avatar img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.avatar-large { width:92px; height:92px; flex-basis:92px; font-size:1.7rem; border-width:5px; }
.account-menu { position:relative; }
.account-menu summary { display:flex; align-items:center; gap:12px; cursor:pointer; list-style:none; border-radius:14px; padding:3px; }
.account-menu summary::-webkit-details-marker { display:none; }
.account-name { display:grid; text-align:left; max-width:180px; }
.account-name strong { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:.86rem; }
.account-name small { font-size:.72rem; color:var(--muted); }
.account-chevron { width:16px; height:16px; color:var(--muted); }
.account-menu[open] .account-chevron { transform:rotate(180deg); }
.account-popover { position:absolute; right:0; top:calc(100% + 14px); z-index:25; padding:12px; width:min(290px,calc(100vw - 32px)); background:#fff; border:1px solid var(--line); border-radius:18px; box-shadow:0 16px 50px #193b4b26; }
.account-email { padding:8px 12px 14px; margin:0 0 6px; border-bottom:1px solid var(--line); overflow-wrap:anywhere; color:var(--muted); font-size:.8rem; }
.account-popover a, .account-popover button { display:flex; align-items:center; gap:10px; width:100%; padding:12px; border:0; border-radius:10px; min-height:46px; text-align:left; color:var(--ink); background:white; font:inherit; font-size:.9rem; text-decoration:none; cursor:pointer; }
.account-popover a:hover { background:var(--accent-soft); }
.account-popover button { color:var(--danger); }
.account-popover button:hover { background:#fff0f0; }
.menu-welcome { display:flex; align-items:center; justify-content:space-between; gap:24px; margin:6px 0 32px; }
.menu-welcome h1 { margin:0 0 12px; font-size:clamp(1.9rem,3vw,2.5rem); }
.menu-welcome .eyebrow { margin-bottom:9px; }
.menu-welcome p:last-child { margin-bottom:0; }
.workspace-chip { padding:10px 16px; border-radius:12px; background:white; border:1px solid var(--line); color:var(--muted); font-size:.8rem; max-width:320px; overflow-wrap:anywhere; }
.menu-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.menu-tile { display:flex; flex-direction:column; min-width:0; min-height:218px; padding:26px; border:1px solid #e0e7eb; border-radius:22px; background:white; box-shadow:var(--menu-shadow); text-decoration:none; color:var(--ink); transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.menu-tile:hover { transform:translateY(-3px); box-shadow:0 14px 32px #193b4b12; border-color:#a7cfc1; }
.menu-tile-top { display:flex; align-items:center; gap:12px; margin-bottom:20px; }
.menu-tile-icon { width:50px; height:50px; display:grid; place-items:center; border-radius:15px; background:#e7f2ed; color:#12695e; }
.menu-tile-icon .icon { width:25px; height:25px; }
.menu-tile-pratiche .menu-tile-icon, .menu-tile-report .menu-tile-icon { background:#e9f0fb; color:#35648e; }
.menu-tile-chat .menu-tile-icon, .menu-tile-clienti .menu-tile-icon { background:#f0ecf9; color:#725a97; }
.menu-tile-tickets .menu-tile-icon, .menu-tile-errori .menu-tile-icon { background:#fff0df; color:#946224; }
.tile-arrow { margin-left:auto; color:#8597a1; font-size:1.25rem; }
.menu-tile h2 { font-size:1.12rem; margin:0 0 8px; }
.menu-tile p { font-size:.87rem; color:var(--muted); margin:0 0 20px; line-height:1.55; }
.tile-open { margin-top:auto; color:var(--accent); font-weight:650; font-size:.82rem; display:flex; align-items:center; gap:8px; }
.profile-photo-card { display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:center; padding:28px; margin-bottom:26px; }
.profile-photo-preview { display:flex; align-items:center; gap:22px; }
.profile-photo-preview h2 { font-size:1.15rem; margin-bottom:8px; }
.profile-photo-preview p { font-size:.85rem; margin-bottom:0; }
.avatar-form .field { margin-bottom:12px; }
.avatar-form .button { margin-top:16px; }
.checkbox-label { display:flex; align-items:center; gap:10px; min-height:44px; font-size:.88rem; }
.checkbox-label input { width:20px; height:20px; accent-color:var(--accent); }
.workspace-back { display:inline-block; margin-bottom:24px; text-decoration:none; font-size:.9rem; font-weight:600; }
.menu-login { background:radial-gradient(ellipse at 12% 40%,#e1eee9 0,transparent 55%),#f4f7f8; }
.login-navbar { display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--line); }
.login-access-label { display:flex; align-items:center; gap:14px; color:var(--muted); font-size:.85rem; }
.login-avatar { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:#edf3f0; color:var(--accent); }
.menu-login .login-page { min-height:calc(100dvh - 88px); max-width:1160px; margin:auto; grid-template-columns:1fr 1fr; gap:70px; align-items:center; padding:48px 40px; }
.menu-login .login-intro { color:var(--ink); background:transparent; padding:12px 0; gap:28px; }
.menu-login .login-intro h1 { font-size:clamp(2.3rem,4vw,3.35rem); line-height:1.12; }
.menu-login .login-intro p { color:var(--muted); }
.menu-login .intro-kicker { font-size:.72rem; color:var(--accent); font-weight:700; }
.menu-login .login-note { border-color:#cbdcd5; margin:0; max-width:390px; }
.menu-login .login-panel { padding:0; }
.menu-login .login-form { background:#fff; padding:38px; border-radius:26px; border:1px solid #dde8e3; box-shadow:0 18px 60px #203f4b12; max-width:460px; }
.menu-login .login-form h1 { font-size:1.75rem; }
.menu-login .login-form .button { border-radius:12px; min-height:54px; }
.menu-login .login-illustration { background:#fff; border-color:#d7e6df; box-shadow:var(--menu-shadow); transform:rotate(-2deg); margin:28px 0 0; }
.menu-login .illustration-row { border-color:#e7eeeb; }
.menu-login .illustration-line { background:#abcbbd; }
.menu-login .illustration-row i { background:#ccdbd5; }
.menu-login .illustration-row i+i { background:#e8eeeb; }
@media (max-width:1100px) { .home-link { display:none; } .navbar-start,.navbar-actions { gap:14px; } .account-name { max-width:140px; } }
@media (max-width:900px) { .menu-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .menu-login .login-page { gap:30px; } .menu-login .login-form { padding:28px; } .profile-photo-card { grid-template-columns:1fr; } }
@media (max-width:760px) {
 .site-navbar { padding:14px 20px; gap:12px; flex-wrap:wrap; }
 .navbar-start, .navbar-actions { width:100%; justify-content:space-between; }
 .account-name { display:none; } .account-menu summary { gap:7px; }
 .site-navbar .home-link { display:none; } .site-navbar .brand { font-size:1.35rem; }
 .menu-shell .content { padding:28px 20px; } .menu-shell { min-height:calc(100dvh - 140px); }
 .menu-welcome { align-items:flex-start; flex-direction:column; gap:16px; }
 .menu-tile { padding:22px; min-height:205px; } .menu-grid { gap:16px; }
 .profile-photo-card { padding:22px; } .profile-photo-preview { gap:16px; }
 .menu-login .login-page { grid-template-columns:1fr; min-height:auto; padding:28px 20px 40px; gap:24px; max-width:510px; }
 .menu-login .login-intro { display:none; } .menu-login .login-form { max-width:none; padding:28px 24px; }
 .login-access-label { font-size:.75rem; } .login-navbar { flex-wrap:nowrap; }
 .top-notifications { gap:12px; } .top-notifications a { font-size:.8rem; }
}
@media (max-width:500px) { .menu-grid { grid-template-columns:1fr; } .menu-tile { min-height:190px; } }
@media (prefers-reduced-motion:reduce) { .menu-tile,.menu-shell .sidebar { transition:none; } .menu-tile:hover { transform:none; } }

/* Each case gets a readable card as soon as seven columns no longer fit. */
.practice-table td { overflow-wrap:normal; word-break:normal; }
.practice-table td[data-label="Nome"], .practice-table td[data-label="Cognome"] { min-width:110px; }
.practice-table td[data-label="Codice fiscale"] { min-width:205px; }
.practice-table td[data-label="Interazione"] { min-width:125px; }
.practice-table td .copy-value { width:100%; }
.practice-table td .copy-value > :first-child { flex:0 1 auto; }
.practice-delete-link { display:block; width:max-content; padding:8px 2px; color:var(--danger); font-size:.83rem; }
.practice-table td[data-label="Stato"] .practice-status { white-space:normal; }
@media (max-width:1200px) {
 .practice-table, .practice-table tbody { display:block; width:100%; }
 .practice-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
 .practice-table tbody { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; padding:16px; }
 .practice-table tr { display:grid; grid-template-columns:1fr; width:100%; min-width:0; padding:16px; border:1px solid var(--line); border-radius:14px; background:var(--surface); }
 .practice-table tr:last-child { border-bottom:1px solid var(--line); }
 .practice-table td, .practice-table td:first-child, .practice-table td[data-label] { display:grid; grid-template-columns:105px minmax(0,1fr); min-width:0; gap:8px 12px; border:0; padding:8px 0; }
 .practice-table td::before { content:attr(data-label); color:var(--muted); font-size:.8rem; font-weight:500; }
 .practice-table td > .table-caption { grid-column:2; margin:0; }
 .practice-table td .copy-value { justify-content:flex-start; }
 .practice-table td[data-label="Interazione"] > * { grid-column:2; justify-self:start; }
 .practice-table td[data-label="Interazione"]::before { grid-column:1; grid-row:1; }
 .practice-table .tax-code { white-space:normal; overflow-wrap:anywhere; }
}
@media (max-width:1000px) { .practice-table tbody { grid-template-columns:minmax(0,1fr); } }
@media (max-width:480px) {
 .menu-shell .content { padding:22px 12px; }
 .practice-table tbody { padding:10px; gap:12px; }
 .practice-table tr { padding:12px; }
 .practice-table td, .practice-table td[data-label] { grid-template-columns:85px minmax(0,1fr); gap:8px; }
 .site-navbar { padding-left:12px; padding-right:12px; }
 .page-heading, .card-heading { flex-wrap:wrap; }
 .page-heading .form-actions { width:100%; }
 .form-actions > .button, .form-actions > form { max-width:100%; }
 .practice-data, .account-details { min-width:0; }
}
@media (pointer:coarse) { .copy-button { width:36px; height:36px; flex-basis:36px; } }

.practice-reference { display:flex; align-items:center; gap:8px; min-width:0; flex-wrap:wrap; }
.practice-reference .notification-badge { flex:0 0 auto; }

.practice-reference .copy-value { width:auto; }

#practices-title { scroll-margin-top:155px; }

.practice-table .practice-reference .copy-value { width:auto; }
.practice-table td .practice-status { justify-self:start; max-width:100%; }
