:root{
  --bg:#f6f8fc;--surface:#fff;--surface-soft:#f8faff;--surface-blue:#f2f7ff;
  --text:#14213d;--text-soft:#526078;--muted:#7d8aa2;--line:#e3e8f1;
  --primary:#1769e8;--primary-2:#0f56cc;--primary-soft:#eaf2ff;
  --green:#149b61;--green-soft:#e6f7ef;--orange:#ef8b22;--orange-soft:#fff2df;
  --red:#e74755;--red-soft:#ffeaed;--purple:#7b45e8;--purple-soft:#f0eaff;
  --sidebar-width:250px;--topbar-height:74px;
  --radius-sm:10px;--radius:14px;--radius-lg:19px;
  --shadow-sm:0 2px 8px rgba(15,35,70,.04);--shadow:0 14px 40px rgba(20,41,84,.09);
}
:root.theme-dark{
  --bg:#0d1420;--surface:#111b2a;--surface-soft:#162235;--surface-blue:#12233b;
  --text:#eef4ff;--text-soft:#b7c4d8;--muted:#8190a8;--line:#24344b;
  --primary:#4f8ff7;--primary-2:#73a7fa;--primary-soft:#172f55;
  --green-soft:#123326;--orange-soft:#392817;--red-soft:#3a1d25;--purple-soft:#281d46;
  --shadow-sm:none;--shadow:0 16px 48px rgba(0,0,0,.28);
}
*{box-sizing:border-box}
html{font-size:15px;scroll-behavior:smooth}
body{margin:0;font-family:"Manrope","Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:none}
svg{display:block}
button{color:inherit}

/* App shell */
.app-shell{min-height:100vh;display:flex}
.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:40;transition:width .24s ease,transform .24s ease}
.sidebar-brand{height:var(--topbar-height);display:flex;align-items:center;padding:10px 24px;border-bottom:1px solid var(--line);overflow:hidden}
.sidebar-brand .brand-logo-full{display:block;width:154px;height:52px;object-fit:contain;object-position:left center;transition:opacity .16s ease,transform .2s ease}
.sidebar-brand .brand-logo-compact{display:none;width:42px;height:42px;object-fit:contain;object-position:center;transition:opacity .16s ease,transform .2s ease}
.sidebar-nav{padding:22px 13px;display:flex;flex-direction:column;gap:5px;overflow-y:auto;overflow-x:hidden}
.nav-section-label{padding:0 12px 9px;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.nav-section-label.admin-label{margin-top:19px}
.nav-link{min-height:44px;padding:10px 12px;border-radius:11px;display:flex;align-items:center;gap:13px;color:var(--text-soft);font-weight:600;white-space:nowrap;transition:background .18s,color .18s,transform .18s}
.nav-link:hover{background:var(--surface-soft);color:var(--text);transform:translateX(2px)}
.nav-link.active{background:var(--primary-soft);color:var(--primary);font-weight:800}
.nav-icon{width:21px;height:21px;flex:0 0 21px}
.nav-icon svg,.icon-button svg,.global-search svg,.chevron{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sidebar-footer{margin-top:auto;padding:16px 17px;border-top:1px solid var(--line)}
.sidebar-user-mini{display:flex;align-items:center;gap:10px;min-width:0}
.sidebar-user-copy{min-width:0;display:flex;flex-direction:column}
.sidebar-user-copy strong,.sidebar-user-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-user-copy strong{font-size:.85rem}.sidebar-user-copy span{font-size:.72rem;color:var(--muted)}
.portal-version{font-size:.66rem;color:var(--muted);margin-top:14px}
.app-main{min-height:100vh;width:calc(100% - var(--sidebar-width));margin-left:var(--sidebar-width);display:flex;flex-direction:column;transition:width .24s,margin-left .24s}
.app-topbar{height:var(--topbar-height);position:sticky;top:0;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 25px;z-index:30}
.topbar-left,.topbar-actions{display:flex;align-items:center;gap:14px}
.icon-button{width:42px;height:42px;border:1px solid transparent;border-radius:12px;background:transparent;display:grid;place-items:center;cursor:pointer;color:var(--text-soft);transition:.18s}
.icon-button svg{width:21px;height:21px}
.icon-button:hover{background:var(--surface-soft);border-color:var(--line);color:var(--primary)}
.global-search{height:42px;width:min(410px,38vw);display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:0 12px;box-shadow:var(--shadow-sm);color:var(--muted)}
.global-search svg{width:18px;height:18px;flex:0 0 18px}
.global-search input{border:0;outline:0;background:transparent;color:var(--text);width:100%;min-width:0}
.global-search input::placeholder{color:var(--muted)}
kbd{font-family:inherit;font-size:.68rem;color:var(--muted);background:var(--surface-soft);border:1px solid var(--line);border-radius:6px;padding:2px 6px}
.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#1f76ef,#6ca9ff);color:#fff;font-weight:800;box-shadow:0 5px 14px rgba(23,105,232,.18);flex:0 0 auto}
.avatar-sm{width:34px;height:34px;font-size:.82rem}
.avatar-lg{width:78px;height:78px;font-size:1.75rem}
.topbar-profile-wrap{position:relative}
.topbar-profile{border:0;background:transparent;padding:4px 5px;display:flex;align-items:center;gap:10px;border-radius:12px;cursor:pointer;transition:.18s}
.topbar-profile:hover{background:var(--surface-soft)}
.topbar-profile-copy{display:flex;flex-direction:column;align-items:flex-start;line-height:1.25;max-width:180px}
.topbar-profile-copy strong,.topbar-profile-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.topbar-profile-copy strong{font-size:.82rem}.topbar-profile-copy small{font-size:.68rem;color:var(--muted);margin-top:3px}
.chevron{width:16px;height:16px;color:var(--muted)}
.profile-menu{display:none;position:absolute;right:0;top:calc(100% + 10px);width:180px;background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:7px;box-shadow:var(--shadow)}
.profile-menu.open{display:block;animation:menuIn .17s ease}
.profile-menu a,.profile-menu button{width:100%;display:block;text-align:left;border:0;background:transparent;padding:10px 11px;border-radius:8px;color:var(--text-soft);cursor:pointer;font-weight:600}
.profile-menu a:hover,.profile-menu button:hover{background:var(--surface-soft);color:var(--primary)}
.app-content{width:100%;max-width:1640px;margin:0 auto;padding:28px clamp(18px,2.2vw,36px) 40px;flex:1}
.app-footer{padding:18px 30px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted);font-size:.72rem;background:var(--surface)}
.app-footer span:last-child{display:flex;gap:16px}
.sidebar-overlay{display:none}
.sun-icon{display:none!important}:root.theme-dark .moon-icon{display:none!important}:root.theme-dark .sun-icon{display:block!important}

:root.sidebar-collapsed{--sidebar-width:78px}
:root.sidebar-collapsed .sidebar-brand{padding:10px 12px;justify-content:center}
:root.sidebar-collapsed .sidebar-brand .brand-logo-full{display:none}
:root.sidebar-collapsed .sidebar-brand .brand-logo-compact{display:block;width:42px;height:42px;transform:scale(.92)}
:root.sidebar-collapsed .nav-text,:root.sidebar-collapsed .nav-section-label,:root.sidebar-collapsed .sidebar-user-copy,:root.sidebar-collapsed .portal-version{display:none}
:root.sidebar-collapsed .nav-link{justify-content:center;padding:10px}
:root.sidebar-collapsed .sidebar-footer{padding:16px 21px}

/* General page components */
.page{width:100%}
.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}
.page-heading h1{font-size:clamp(1.55rem,2vw,2rem);line-height:1.15;margin:0;color:var(--text);letter-spacing:-.035em}
.page-heading p{margin:7px 0 0;color:var(--muted);font-size:.9rem}
.page-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}
.card:hover{transform:none}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}
.panel-header{padding:17px 19px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}
.panel-header h2,.panel-header h3{margin:0;font-size:.95rem}
.btn{position:relative;overflow:hidden;min-height:41px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 15px;border-radius:10px;background:var(--primary);border:1px solid var(--primary);color:#fff;font-weight:800;font-size:.8rem;cursor:pointer;transition:background .18s,transform .12s,border-color .18s,box-shadow .18s;white-space:nowrap}
.btn:hover{background:var(--primary-2);border-color:var(--primary-2);box-shadow:0 8px 18px rgba(23,105,232,.18)}
.btn:active{transform:translateY(1px)}
.btn.secondary,.btn.ghost{background:var(--surface);border-color:var(--line);color:var(--text-soft);box-shadow:none}
.btn.secondary:hover,.btn.ghost:hover{background:var(--surface-soft);border-color:#cdd7e7;color:var(--primary)}
.btn.danger{background:var(--surface);border-color:#ffb7c0;color:var(--red)}
.btn.danger:hover{background:var(--red-soft);border-color:var(--red)}
.btn.success{background:var(--green);border-color:var(--green)}
.btn.small{min-height:34px;padding:6px 10px;font-size:.72rem;border-radius:8px}
.btn svg,.button-icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.input,.select,textarea{width:100%;min-height:41px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);outline:0;transition:border-color .18s,box-shadow .18s}
.input:focus,.select:focus,textarea:focus{border-color:#72a9fa;box-shadow:0 0 0 3px rgba(23,105,232,.11)}
.input::placeholder{color:var(--muted)}
label{color:var(--text-soft);font-size:.78rem;font-weight:700}
.field{display:flex;flex-direction:column;gap:7px}
.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.badge,.status-badge,.type-badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 9px;font-size:.68rem;font-weight:800;white-space:nowrap}
.badge{background:var(--primary-soft);color:var(--primary);border:0}
.status-active{background:var(--green-soft);color:var(--green)}
.status-pending{background:var(--orange-soft);color:var(--orange)}
.status-blocked{background:var(--red-soft);color:var(--red)}
.role-admin{background:var(--purple-soft);color:var(--purple)}
.role-user{background:var(--surface-soft);color:var(--text-soft)}
.progress{height:7px;background:var(--line);border-radius:999px;overflow:hidden}
.progress>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),#69a6ff);transition:width .5s ease}
.empty-state{padding:42px;text-align:center;color:var(--muted)}
.muted{color:var(--muted)}
.text-danger{color:var(--red)}

/* Statistics */
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}
.stat-card{padding:17px;display:flex;align-items:center;gap:14px;min-width:0}
.stat-icon{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;flex:0 0 auto}
.stat-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.stat-icon.blue{background:var(--primary-soft);color:var(--primary)}
.stat-icon.orange{background:var(--orange-soft);color:var(--orange)}
.stat-icon.purple{background:var(--purple-soft);color:var(--purple)}
.stat-icon.red{background:var(--red-soft);color:var(--red)}
.stat-copy{min-width:0}.stat-copy span{display:block;color:var(--muted);font-size:.72rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-copy strong{display:block;margin-top:2px;font-size:1.32rem;letter-spacing:-.03em}

/* Tables */
.table-wrap{width:100%;overflow:auto}
.table{width:100%;border-collapse:separate;border-spacing:0;font-size:.78rem}
.table th,.table td{padding:13px 15px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.table th{height:46px;background:var(--surface-soft);color:var(--text-soft);font-size:.68rem;font-weight:800;text-transform:none;white-space:nowrap}
.table tbody tr{transition:background .15s}.table tbody tr:hover{background:var(--surface-blue)}
.table tbody tr:last-child td{border-bottom:0}
.table .sortable{cursor:pointer;user-select:none}
.table .sortable:hover{color:var(--primary)}
.table-actions{display:flex;justify-content:flex-end;gap:6px}
.row-action{width:34px;height:34px;border:0;border-radius:9px;background:transparent;color:var(--text-soft);display:grid;place-items:center;cursor:pointer}
.row-action:hover{background:var(--primary-soft);color:var(--primary)}
.row-action svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.person-cell{display:flex;align-items:center;gap:10px;min-width:160px}.person-copy{display:flex;flex-direction:column;min-width:0}.person-copy strong,.person-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-copy strong{font-size:.78rem}.person-copy small{color:var(--muted);font-size:.66rem;margin-top:2px}
.table-footer{min-height:57px;padding:11px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);font-size:.72rem;color:var(--muted)}
.pagination{display:flex;gap:5px;align-items:center}.page-btn{min-width:33px;height:33px;border:1px solid transparent;background:transparent;color:var(--text-soft);border-radius:8px;cursor:pointer}.page-btn:hover,.page-btn.active{background:var(--primary-soft);color:var(--primary);border-color:#d7e6ff}

/* Admin users */
.users-toolbar{padding:15px 17px;display:grid;grid-template-columns:minmax(240px,1fr) 170px 170px auto;gap:10px;border-bottom:1px solid var(--line)}
.search-control{position:relative}.search-control svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:17px;height:17px;fill:none;stroke:var(--muted);stroke-width:1.8}.search-control .input{padding-left:38px}
.user-table-layout{display:grid;grid-template-columns:minmax(0,1fr);position:relative}
.users-table .quota-cell{min-width:125px}.quota-copy{display:flex;justify-content:space-between;gap:8px;font-size:.65rem;color:var(--muted);margin-bottom:6px}
.user-drawer{position:fixed;top:var(--topbar-height);right:0;bottom:0;width:min(370px,92vw);background:var(--surface);border-left:1px solid var(--line);box-shadow:-18px 0 45px rgba(21,42,85,.13);z-index:60;transform:translateX(104%);transition:transform .24s ease;overflow-y:auto}
.user-drawer.open{transform:translateX(0)}
.drawer-header{height:62px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.drawer-header h3{margin:0;font-size:.9rem}.drawer-close{width:34px;height:34px;border:0;background:transparent;border-radius:9px;cursor:pointer;color:var(--muted);font-size:1.25rem}.drawer-close:hover{background:var(--surface-soft);color:var(--text)}
.drawer-profile{padding:24px 22px;text-align:center;border-bottom:1px solid var(--line)}
.drawer-profile .avatar{margin:0 auto 13px}.drawer-profile h2{font-size:1.15rem;margin:0}.drawer-profile .company{color:var(--primary);font-weight:800;margin:5px 0 2px}.drawer-profile .email{color:var(--muted);font-size:.76rem;word-break:break-all}
.drawer-badges{display:flex;justify-content:center;gap:7px;margin-top:12px}
.drawer-info{padding:17px 22px;border-bottom:1px solid var(--line)}
.info-row{display:flex;justify-content:space-between;gap:16px;padding:8px 0;font-size:.74rem}.info-row span:first-child{color:var(--muted)}.info-row strong{text-align:right}
.drawer-actions{padding:18px 22px}.drawer-actions h4{margin:0 0 12px;font-size:.75rem}.drawer-actions .btn{width:100%;margin-top:8px}.inline-action{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:8px}.inline-action .btn{margin:0}
.drawer-upload{padding:18px 22px;border-top:1px solid var(--line)}
.drawer-upload h4{margin:0 0 12px;font-size:.75rem}.drawer-upload form{display:flex;flex-direction:column;gap:9px}.file-input{font-size:.72rem;color:var(--muted)}
.drawer-overlay{position:fixed;inset:0;background:rgba(10,20,38,.25);z-index:55;opacity:0;visibility:hidden;transition:.2s}.drawer-overlay.open{opacity:1;visibility:visible}

/* Dialogs */
.modal-backdrop{position:fixed;inset:0;background:rgba(10,20,38,.35);display:grid;place-items:center;padding:20px;z-index:80;opacity:0;visibility:hidden;transition:.2s}
.modal-backdrop.open{opacity:1;visibility:visible}
.modal{width:min(650px,100%);max-height:calc(100vh - 40px);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);transform:translateY(10px) scale(.99);transition:.2s}
.modal-backdrop.open .modal{transform:none}.modal-header{padding:18px 21px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-header h2{font-size:1rem;margin:0}.modal-body{padding:20px}.modal-footer{padding:15px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .full{grid-column:1/-1}.checkbox-field{display:flex;align-items:center;gap:8px;padding-top:25px}

/* Dashboard / file explorer */
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px;align-items:start}
.document-panel{min-width:0}
.document-toolbar{padding:15px 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.document-toolbar #crumbs{display:flex;align-items:center;gap:6px;font-size:.75rem;min-width:160px;flex:1}.document-toolbar #crumbs a{color:var(--text-soft);font-weight:700}.document-toolbar #crumbs a:last-child{color:var(--primary)}
.filter-row{padding:12px 16px;background:var(--surface-soft);border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(180px,1fr) repeat(5,minmax(110px,150px));gap:8px}
.file-name-cell{display:flex;align-items:center;gap:11px;min-width:250px}.file-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex:0 0 auto;font-weight:800;font-size:.64rem}.file-icon.folder{background:#fff1c9;color:#c37c08}.file-icon.pdf{background:var(--red-soft);color:var(--red)}.file-icon.doc,.file-icon.docx{background:var(--primary-soft);color:var(--primary)}.file-icon.xls,.file-icon.xlsx,.file-icon.csv{background:var(--green-soft);color:var(--green)}.file-icon.image{background:var(--purple-soft);color:var(--purple)}.file-icon.other{background:var(--surface-soft);color:var(--text-soft)}
.file-name-cell a{color:var(--text);font-weight:700}.file-name-cell a:hover{color:var(--primary)}
.file-type{color:var(--text-soft);font-weight:700;text-transform:uppercase;font-size:.68rem}
.selection-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.selection-bar .selection-count{color:var(--muted);font-size:.72rem;margin-right:auto}
.dashboard-side{display:flex;flex-direction:column;gap:16px}.storage-card{padding:18px}.storage-card h3,.activity-card h3{font-size:.86rem;margin:0}.storage-number{font-size:1.4rem;font-weight:800;letter-spacing:-.04em;margin:12px 0 3px}.storage-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:.68rem;margin:8px 0 9px}.storage-note{color:var(--muted);font-size:.7rem;margin-top:12px}.activity-card{overflow:hidden}.activity-card .panel-header a{font-size:.68rem}.activity-list{list-style:none;margin:0;padding:0}.activity-item{padding:13px 17px;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:flex-start}.activity-item:last-child{border-bottom:0}.activity-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);margin-top:6px;flex:0 0 auto}.activity-copy{min-width:0}.activity-copy strong{display:block;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-copy span{display:block;font-size:.64rem;color:var(--muted);margin-top:3px}

/* Profile / forms */
.profile-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:18px}.profile-card{padding:25px;text-align:center}.profile-card .avatar{margin:0 auto 14px}.profile-card h2{margin:0;font-size:1.15rem}.profile-card p{color:var(--muted);font-size:.76rem;margin:5px 0}.profile-card .btn{margin-top:16px}.profile-details{padding:21px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.detail-box{padding:15px;border:1px solid var(--line);background:var(--surface-soft);border-radius:12px}.detail-box span{font-size:.68rem;color:var(--muted);display:block}.detail-box strong{font-size:.82rem;display:block;margin-top:4px}.profile-storage{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.form-card{max-width:820px;padding:22px}.form-card .form-grid{margin-bottom:18px}
.alert{padding:11px 14px;border-radius:10px;margin-bottom:14px;font-size:.78rem;font-weight:700}.alert.info{background:var(--primary-soft);color:var(--primary)}.alert.warning{background:var(--orange-soft);color:var(--orange)}

/* Public/auth */
.public-shell{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(circle at 80% 10%,#e9f2ff 0,transparent 36%),linear-gradient(135deg,#f9fbff,#f3f7fd)}
:root.theme-dark .public-shell{background:radial-gradient(circle at 80% 10%,#172b49 0,transparent 38%),var(--bg)}
.public-topbar{height:82px;display:flex;align-items:center;justify-content:space-between;padding:10px clamp(20px,6vw,80px);border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.public-brand img{width:168px;height:60px;object-fit:contain}.public-topbar nav{display:flex;gap:22px}.public-topbar nav a{color:var(--text-soft);font-weight:700;font-size:.8rem}
.public-content{flex:1;display:grid;place-items:center;padding:35px 20px}.public-content>.container{width:min(520px,100%);background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:30px;box-shadow:var(--shadow)}
.public-content>.container h2{font-size:1.55rem;letter-spacing:-.035em;margin:0 0 20px}.public-content>.container form{display:flex;flex-direction:column;gap:13px}.public-content>.container br{display:none}.public-content>.container p{font-size:.78rem;color:var(--muted)}
.public-footer{text-align:center;padding:20px;color:var(--muted);font-size:.7rem}
.header{width:min(1120px,100%);text-align:center;padding:65px 30px;background:transparent;border:0}.brand img{height:145px;max-width:420px;object-fit:contain}.brand h1{font-size:clamp(2rem,4vw,3.4rem);margin:10px 0 0;letter-spacing:-.05em}.header>p{color:var(--muted);font-size:1rem}.header .btn{margin-top:10px}

/* Logs */
.log-filter{padding:15px 17px;display:grid;grid-template-columns:minmax(240px,1fr) 160px auto;gap:10px;border-bottom:1px solid var(--line)}
.ua-cell{max-width:430px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}

/* Responsive */
@media(max-width:1180px){
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.dashboard-side{display:grid;grid-template-columns:1fr 1fr}.filter-row{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  :root{--sidebar-width:250px}.app-sidebar{transform:translateX(-102%);box-shadow:var(--shadow)}.app-sidebar.mobile-open{transform:translateX(0)}.app-main{margin-left:0;width:100%}.sidebar-overlay{display:block;position:fixed;inset:0;background:rgba(10,20,38,.3);z-index:35;opacity:0;visibility:hidden;transition:.2s}.sidebar-overlay.open{opacity:1;visibility:visible}.global-search{width:min(380px,48vw)}.users-toolbar{grid-template-columns:1fr 1fr}.users-toolbar .search-control{grid-column:1/-1}.profile-layout{grid-template-columns:1fr}.user-drawer{top:0}.dashboard-side{grid-template-columns:1fr 1fr}
}
@media(max-width:680px){
  html{font-size:14px}.app-topbar{padding:0 12px}.topbar-profile-copy,.topbar-profile .chevron,kbd{display:none}.global-search{width:calc(100vw - 165px)}.app-content{padding:20px 12px 30px}.page-heading{flex-direction:column}.page-actions{justify-content:flex-start}.stats-grid{grid-template-columns:1fr}.users-toolbar{grid-template-columns:1fr}.users-toolbar .search-control{grid-column:auto}.filter-row{grid-template-columns:1fr 1fr}.dashboard-side{grid-template-columns:1fr}.form-grid,.detail-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.table-footer{align-items:flex-start;flex-direction:column}.app-footer{flex-direction:column;gap:8px}.public-topbar nav{display:none}.public-content>.container{padding:23px}.document-toolbar{align-items:flex-start}.document-toolbar #crumbs{flex-basis:100%}.selection-bar{width:100%}.log-filter{grid-template-columns:1fr}
}
@media(max-width:440px){.filter-row{grid-template-columns:1fr}.topbar-actions{gap:4px}.global-search{width:calc(100vw - 145px)}.page-actions .btn{flex:1}.stat-card{padding:14px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@keyframes menuIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.upload-status{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:.68rem;margin-top:4px}.upload-status .progress{width:100%}

/* =========================================================
   Vanni Group Portal v8.5.0 - Public authentication area
   ========================================================= */
.auth-shell{
  position:relative;
  isolation:isolate;
  min-height:100vh;
  overflow:hidden;
  background:
    radial-gradient(circle at 83% 28%,rgba(74,139,245,.14),transparent 24%),
    radial-gradient(circle at 12% 88%,rgba(56,125,236,.08),transparent 25%),
    linear-gradient(135deg,#fbfdff 0%,#f6f9fe 55%,#edf4ff 100%);
}
.auth-shell::before,
.auth-shell::after{
  content:"";
  position:fixed;
  z-index:-1;
  pointer-events:none;
  border:1px solid rgba(76,139,238,.16);
  border-radius:50%;
}
.auth-shell::before{width:640px;height:640px;left:-370px;bottom:-350px;box-shadow:0 0 0 78px rgba(89,148,241,.035),0 0 0 156px rgba(89,148,241,.025)}
.auth-shell::after{width:350px;height:350px;right:-170px;top:110px;box-shadow:0 0 0 60px rgba(89,148,241,.035)}
:root.theme-dark .auth-shell{background:radial-gradient(circle at 82% 20%,#17345d 0,transparent 32%),linear-gradient(135deg,#0f1725,#111d30)}
.auth-topbar{
  height:112px;
  border:0;
  padding:22px clamp(28px,5vw,78px);
  background:transparent;
}
.auth-topbar .public-brand{display:inline-flex;align-items:center;justify-content:center}
.auth-topbar .public-brand img{width:184px;height:68px;object-fit:contain;display:block}
.public-security-note{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.72rem;font-weight:700}
.public-security-note svg{width:18px;height:18px;fill:none;stroke:var(--primary);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.auth-public-content{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:22px 22px 44px;
}
.auth-public-content::before{
  content:"";
  position:absolute;
  right:4.5%;
  top:50%;
  width:min(31vw,470px);
  aspect-ratio:1/.92;
  transform:translateY(-48%);
  opacity:.62;
  pointer-events:none;
  background:
    linear-gradient(145deg,rgba(255,255,255,.75),rgba(212,228,252,.42));
  border:1px solid rgba(113,159,232,.18);
  border-radius:34px;
  box-shadow:0 35px 80px rgba(67,111,177,.12);
  clip-path:polygon(10% 0,100% 8%,92% 100%,0 91%);
}
.auth-public-content::after{
  content:"";
  position:absolute;
  right:8%;
  top:52%;
  width:min(23vw,350px);
  aspect-ratio:1/.72;
  transform:translateY(-10%);
  pointer-events:none;
  border-radius:26px;
  background:linear-gradient(145deg,rgba(238,245,255,.78),rgba(190,214,250,.34));
  border:1px solid rgba(113,159,232,.16);
  box-shadow:0 30px 70px rgba(67,111,177,.11);
}
.auth-card{
  position:relative;
  z-index:2;
  width:min(590px,100%);
  padding:38px 48px 34px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(202,214,232,.92);
  border-radius:24px;
  box-shadow:0 24px 70px rgba(31,60,104,.13);
  backdrop-filter:blur(18px);
}
:root.theme-dark .auth-card{background:rgba(18,31,50,.94);border-color:#2a3a52}
.auth-card-login{width:min(590px,100%)}
.auth-card-wide{width:min(760px,100%)}
.auth-symbol{
  width:66px;height:66px;margin:0 auto 20px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(145deg,#f5f9ff,#e7f0ff);
  border:1px solid #dce8fa;
  box-shadow:0 10px 25px rgba(65,119,204,.08);
}
.auth-symbol svg{width:30px;height:30px;fill:none;stroke:var(--primary);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.auth-symbol.success{background:#eefbf5;border-color:#cdeedf}.auth-symbol.success svg{stroke:var(--green)}
.auth-symbol.warning{background:#fff7eb;border-color:#ffe1b7}.auth-symbol.warning svg{stroke:#ef8d1a}
.auth-heading{text-align:center;margin-bottom:26px}
.auth-heading h1{margin:0;color:var(--text);font-size:2rem;line-height:1.12;letter-spacing:-.055em;font-weight:800}
.auth-heading p{max-width:470px;margin:10px auto 0;color:var(--muted);font-size:.9rem;line-height:1.65}
.auth-form{display:flex;flex-direction:column;gap:17px}
.auth-field{gap:8px}
.auth-field>span:first-child{font-size:.78rem;font-weight:800;color:var(--text)}
.auth-input-wrap{position:relative;display:block}
.auth-input-wrap>svg{position:absolute;left:16px;top:50%;z-index:1;width:21px;height:21px;transform:translateY(-50%);fill:none;stroke:#6f829f;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.auth-input-wrap>svg+.input{padding-left:50px}
.auth-input-wrap .input{
  min-height:56px;
  padding-top:13px;padding-bottom:13px;
  border-radius:11px;
  border-color:#cfd9e7;
  background:rgba(255,255,255,.78);
  font-size:.88rem;
  box-shadow:0 1px 2px rgba(20,42,75,.02);
}
:root.theme-dark .auth-input-wrap .input{background:#132138}
.auth-input-wrap .input:focus{background:var(--surface);border-color:#70a8f8;box-shadow:0 0 0 4px rgba(23,105,232,.1)}
.auth-options{min-height:20px;display:flex;align-items:center;justify-content:space-between;margin-top:-2px}
.auth-options a,.auth-switch a{color:var(--primary);font-weight:800}
.auth-options a{font-size:.76rem}
.auth-submit{width:100%;min-height:55px;border-radius:10px;font-size:.92rem;box-shadow:0 12px 24px rgba(23,105,232,.2)}
.auth-submit.secondary{box-shadow:none}
.auth-divider{display:flex;align-items:center;gap:16px;margin:25px 0 17px;color:var(--muted);font-size:.72rem}
.auth-divider::before,.auth-divider::after{content:"";height:1px;flex:1;background:var(--line)}
.auth-switch{text-align:center!important;margin:0!important;color:var(--muted)!important;font-size:.82rem!important}
.auth-trust{display:flex;align-items:center;justify-content:center;gap:19px;flex-wrap:wrap;padding-top:25px;margin-top:26px;border-top:1px solid var(--line);color:var(--muted);font-size:.68rem;font-weight:600}
.auth-trust span{position:relative;display:flex;align-items:center;gap:7px}
.auth-trust span+span::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--primary);position:absolute;left:-12px}
.auth-trust svg{width:18px;height:18px;fill:none;stroke:var(--primary);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.auth-alert{margin:0 0 18px}
.auth-register-grid{gap:16px 18px;margin-bottom:2px}
.auth-card-wide .auth-submit{margin-top:4px}
.auth-result{display:flex;flex-direction:column;gap:15px}
.auth-status-card{text-align:center}.auth-status-card .auth-submit{display:flex;margin-top:18px}
.auth-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px clamp(28px,5vw,78px);background:transparent}
.auth-footer>span:last-child{display:flex;gap:18px}
.auth-footer a{color:var(--muted)}

/* Avoid the old generic public card styling on the new auth components. */
.public-content>.auth-card{width:min(590px,100%);padding:38px 48px 34px}
.public-content>.auth-card-wide{width:min(760px,100%)}
.public-content>.auth-card h2{margin:0}
.public-content>.auth-card p{font-size:inherit}
.public-content>.auth-card form{gap:17px}

@media(max-width:1100px){
  .auth-public-content::before,.auth-public-content::after{opacity:.28;right:-8%}
}
@media(max-width:760px){
  .auth-topbar{height:92px;padding:14px 20px}.auth-topbar .public-brand img{width:156px;height:58px}.public-security-note{display:none}
  .auth-public-content{align-items:flex-start;padding:18px 14px 30px}.auth-public-content::before,.auth-public-content::after{display:none}
  .auth-card,.public-content>.auth-card{padding:29px 22px 25px;border-radius:19px}
  .auth-heading h1{font-size:1.65rem}.auth-heading p{font-size:.82rem}.auth-symbol{width:58px;height:58px;margin-bottom:17px}
  .auth-register-grid{grid-template-columns:1fr}.auth-register-grid .full{grid-column:auto}
  .auth-footer{flex-direction:column;padding:18px 20px;gap:10px}.auth-footer>span:last-child{gap:14px}
  .auth-trust{gap:14px}.auth-trust span+span::before{display:none}
}
@media(max-width:420px){
  .auth-card,.public-content>.auth-card{padding:25px 17px 22px}.auth-heading h1{font-size:1.48rem}.auth-input-wrap .input{min-height:52px}.auth-submit{min-height:52px}.auth-trust{display:none}
}

/* V8.6 - gestione documentale avanzata */
.heading-with-avatar{display:flex;align-items:center;gap:16px}.back-link{display:inline-flex;margin-bottom:5px;color:var(--primary);font-size:.72rem;font-weight:800}.document-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-copy small{display:block;color:var(--muted);font-size:.68rem;margin-top:3px}.admin-documents-grid{grid-template-columns:minmax(0,1fr) 315px}.resumable-upload-card{padding:20px}.resumable-upload-card .panel-header{padding:0 0 16px;border:0}.resumable-upload-card .panel-header p{margin:4px 0 0;color:var(--muted);font-size:.73rem}.resumable-upload-card form{display:flex;flex-direction:column;gap:14px}.upload-dropzone{position:relative;display:flex;min-height:160px;padding:22px;border:1.5px dashed #9db9e6;border-radius:14px;background:linear-gradient(180deg,#fbfdff,#f5f9ff);align-items:center;justify-content:center;flex-direction:column;text-align:center;cursor:pointer}.upload-dropzone:hover{border-color:var(--primary);background:#f2f7ff}.upload-dropzone .file-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-drop-icon{display:grid;place-items:center;width:45px;height:45px;border-radius:50%;margin-bottom:9px;background:#e7f0ff;color:var(--primary);font-size:1.55rem;font-weight:700}.upload-dropzone strong{font-size:.82rem}.upload-dropzone small{margin-top:5px;color:var(--muted);font-size:.68rem}.upload-status-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.upload-status-text{font-size:.7rem;color:var(--muted);line-height:1.5}.upload-controls{display:flex;gap:6px;flex:0 0 auto}.drawer-primary-action{width:100%;margin-bottom:8px}.file-row-actions{justify-content:flex-end;gap:3px}.file-row-actions .row-action{width:32px;height:32px}.file-icon.media{background:#efe9ff;color:#7448d8}.file-modal{z-index:160}.file-preview-dialog{width:min(1080px,94vw);height:min(800px,90vh);display:flex;flex-direction:column}.file-preview-body{flex:1;min-height:0;background:#eef2f7}.file-preview-body iframe{display:block;width:100%;height:100%;border:0;background:white}.versions-dialog{width:min(680px,94vw)}.version-item{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 0;border-bottom:1px solid var(--line)}.version-item:last-child{border-bottom:0}.version-copy{display:flex;flex-direction:column;gap:4px}.version-copy strong{font-size:.78rem}.version-copy span{font-size:.68rem;color:var(--muted)}.version-actions{display:flex;align-items:center;gap:7px}.trash-table td{vertical-align:middle}.trash-table .file-name-cell strong{font-size:.77rem}.trash-page .table-actions{min-width:170px}.storage-note{line-height:1.55}
:root.theme-dark .upload-dropzone{background:linear-gradient(180deg,#15243a,#111e31);border-color:#38577e}.modal.file-preview-dialog{background:var(--surface)}
@media(max-width:1200px){.admin-documents-grid{grid-template-columns:1fr}.admin-documents-grid .dashboard-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.document-stats-grid{grid-template-columns:repeat(3,minmax(180px,1fr))}}
@media(max-width:850px){.document-stats-grid{grid-template-columns:1fr}.admin-documents-grid .dashboard-side{grid-template-columns:1fr}.heading-with-avatar{align-items:flex-start}.version-item{align-items:flex-start;flex-direction:column}.version-actions{width:100%;flex-wrap:wrap}.file-preview-dialog{height:94vh}.trash-table{min-width:900px}}

/* ===== V8.7 - NOTIFICHE, RICHIESTE, CATEGORIE ===== */
.nav-badge{margin-left:auto;min-width:22px;height:22px;padding:0 6px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#dbeafe;color:#1d4ed8;font-size:11px;font-weight:800}.sidebar-collapsed .nav-badge{position:absolute;right:5px;top:4px;min-width:17px;height:17px;padding:0 4px;font-size:9px}.nav-link{position:relative}
.notification-wrap{position:relative}.notification-toggle{position:relative}.notification-badge{position:absolute;right:1px;top:1px;min-width:17px;height:17px;padding:0 4px;border:2px solid var(--surface,#fff);border-radius:999px;background:#ef4444;color:#fff;font-size:9px;font-weight:800;display:flex;align-items:center;justify-content:center}.notification-menu{position:absolute;right:0;top:calc(100% + 12px);width:min(420px,calc(100vw - 28px));background:var(--surface,#fff);border:1px solid var(--border,#e5e7eb);border-radius:18px;box-shadow:0 22px 60px rgba(15,23,42,.18);overflow:hidden;opacity:0;visibility:hidden;transform:translateY(-6px);transition:.18s ease;z-index:80}.notification-menu.open{opacity:1;visibility:visible;transform:translateY(0)}.notification-menu-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border,#e5e7eb)}.notification-menu-head>div{display:flex;flex-direction:column}.notification-menu-head strong{font-size:15px}.notification-menu-head span{font-size:11px;color:var(--muted,#64748b)}.notification-menu-head a{font-size:12px;font-weight:700;color:var(--primary,#2563eb)}.notification-menu-list{max-height:430px;overflow:auto}.notification-entry{margin:0}.notification-entry button{width:100%;border:0;background:transparent;padding:13px 16px;display:grid;grid-template-columns:34px 1fr;gap:11px;text-align:left;color:inherit;cursor:pointer;border-bottom:1px solid var(--border,#eef2f7)}.notification-entry.unread button{background:#f4f8ff}.notification-entry button:hover{background:#f8fafc}.notification-entry button>span:last-child{min-width:0;display:flex;flex-direction:column;gap:3px}.notification-entry strong{font-size:13px}.notification-entry small{font-size:11px;color:var(--muted,#64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-entry time{font-size:10px;color:#94a3b8}.notification-entry-icon{width:30px;height:30px;border-radius:10px;background:#e2e8f0;display:inline-block;position:relative}.notification-entry-icon:after{content:"";position:absolute;inset:8px;border-radius:3px;border:2px solid #64748b}.notification-entry-icon.request{background:#ede9fe}.notification-entry-icon.request:after{border-color:#7c3aed}.notification-entry-icon.document{background:#dbeafe}.notification-entry-icon.document:after{border-color:#2563eb}.notification-entry-icon.security{background:#fee2e2}.notification-entry-icon.security:after{border-color:#dc2626}.notification-read-all{padding:10px 16px;background:#f8fafc;text-align:center}.notification-read-all button{border:0;background:transparent;color:var(--primary,#2563eb);font-weight:700;font-size:12px;cursor:pointer}.notification-empty{padding:30px;text-align:center;color:var(--muted,#64748b);font-size:13px}
.notification-center{overflow:hidden}.notification-row{display:grid;grid-template-columns:42px 1fr;gap:14px;padding:18px 20px;border-bottom:1px solid var(--border,#e5e7eb)}.notification-row:last-child{border-bottom:0}.notification-row.unread{background:#f7faff}.notification-row-copy h3{margin:7px 0 5px;font-size:16px}.notification-row-copy p{margin:0;color:var(--muted,#64748b);font-size:13px}.notification-row-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.notification-row-top time{font-size:11px;color:#94a3b8}.notification-row-actions{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}.notification-row-actions form{margin:0}.spacious{padding:54px 20px!important}
.request-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px}.request-summary{padding:18px 20px}.request-summary span{display:block;color:var(--muted,#64748b);font-size:12px;font-weight:700}.request-summary strong{display:block;margin-top:6px;font-size:28px}.request-list{display:grid;gap:16px}.request-card{padding:20px}.request-card-head{display:flex;justify-content:space-between;gap:14px}.request-card h2{font-size:18px;margin:8px 0 3px}.request-card-head p{margin:0;color:var(--muted,#64748b);font-size:12px}.request-kicker{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.request-description{margin:16px 0;padding:14px 16px;border-radius:12px;background:#f8fafc;color:#334155;font-size:13px;white-space:pre-line}.request-note{margin-top:12px;padding:12px 14px;border-left:3px solid #94a3b8;background:#f8fafc;border-radius:8px;display:flex;flex-direction:column;gap:3px;font-size:12px}.request-note.admin{border-left-color:#2563eb;background:#eff6ff}.submitted-document{margin-top:14px;padding:13px 14px;border:1px solid var(--border,#e5e7eb);border-radius:12px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.submitted-document span{font-size:11px;color:var(--muted,#64748b)}.submitted-document strong{font-size:13px;flex:1;min-width:180px}.request-upload-form{margin-top:16px;padding-top:16px;border-top:1px solid var(--border,#e5e7eb);display:grid;grid-template-columns:minmax(260px,1fr) minmax(220px,.8fr) auto;gap:14px;align-items:end}.upload-dropzone.compact{min-height:118px;padding:14px}.request-upload-form .field{margin:0}.textarea{width:100%;border:1px solid var(--border,#dbe3ee);background:var(--surface,#fff);color:inherit;border-radius:10px;padding:11px 12px;resize:vertical;font:inherit;box-sizing:border-box}.textarea:focus{outline:0;border-color:#60a5fa;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.status-chip{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:3px 9px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.02em}.status-chip.warning{background:#fef3c7;color:#92400e}.status-chip.info{background:#dbeafe;color:#1d4ed8}.status-chip.success{background:#dcfce7;color:#166534}.status-chip.danger{background:#fee2e2;color:#b91c1c}.status-chip.neutral{background:#e2e8f0;color:#475569}.category-badge{display:inline-flex;align-items:center;max-width:150px;padding:4px 9px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:10px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.file-tags span{padding:2px 6px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:9px}.metadata-dialog{width:min(500px,calc(100vw - 28px))}
.request-admin-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.request-filter-row{grid-template-columns:minmax(260px,1fr) 220px}.admin-request-list{display:grid}.admin-request-row{display:grid;grid-template-columns:42px minmax(0,1fr) minmax(240px,auto);gap:14px;padding:18px 20px;border-top:1px solid var(--border,#e5e7eb);align-items:start}.admin-request-row:first-child{border-top:0}.admin-request-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-request-main p{margin:5px 0;color:var(--muted,#64748b);font-size:12px}.admin-request-main>small{display:block;color:#475569;line-height:1.5}.admin-request-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.admin-request-actions form{display:flex;gap:6px;align-items:center;justify-content:flex-end;margin:0}.small-input{width:170px!important;padding:8px 9px!important;font-size:11px!important}.request-create-dialog{width:min(620px,calc(100vw - 28px))}
.theme-dark .notification-entry.unread button,.theme-dark .notification-row.unread{background:rgba(37,99,235,.12)}.theme-dark .notification-entry button:hover,.theme-dark .request-description,.theme-dark .request-note{background:rgba(148,163,184,.08)}.theme-dark .request-note.admin{background:rgba(37,99,235,.12)}.theme-dark .category-badge{background:rgba(99,102,241,.18);color:#c7d2fe}.theme-dark .file-tags span{background:rgba(148,163,184,.12);color:#cbd5e1}
@media(max-width:1050px){.request-upload-form{grid-template-columns:1fr}.admin-request-row{grid-template-columns:42px 1fr}.admin-request-actions{grid-column:2;align-items:flex-start}.admin-request-actions form{justify-content:flex-start}.request-admin-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.request-summary-grid,.request-admin-stats{grid-template-columns:1fr}.notification-menu{position:fixed;right:12px;left:12px;top:66px;width:auto}.notification-row{grid-template-columns:32px 1fr;padding:15px}.request-card{padding:16px}.admin-request-row{grid-template-columns:1fr}.admin-request-row>.avatar{display:none}.admin-request-actions{grid-column:1;align-items:stretch}.admin-request-actions form{flex-direction:column;align-items:stretch}.small-input{width:100%!important}.request-filter-row{grid-template-columns:1fr}.files-table{min-width:970px}}

/* ===== V8.8: overview, roles, shares and integrity ===== */
.role-super_admin{background:var(--purple-soft);color:var(--purple)}
.role-document_manager{background:var(--primary-soft);color:var(--primary)}
.role-read_only{background:var(--orange-soft);color:var(--orange)}
.role-user{background:var(--surface-soft);color:var(--text-soft)}
.overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.overview-stat{padding:18px;display:flex;gap:13px;align-items:center}.overview-stat .stat-icon{flex:0 0 auto}.overview-stat strong{display:block;font-size:1.35rem;letter-spacing:-.04em}.overview-stat span{display:block;color:var(--muted);font-size:.7rem;margin-top:2px}
.overview-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:18px;align-items:start}.overview-stack{display:flex;flex-direction:column;gap:18px}.metric-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.metric-row:last-child{border-bottom:0}.metric-row .metric-label{min-width:145px;font-size:.73rem;font-weight:700}.metric-row .progress{flex:1}.metric-row strong{min-width:70px;text-align:right;font-size:.72rem}
.role-distribution{padding:5px 18px 18px}.role-line{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.role-line:last-child{border-bottom:0}.role-line span{font-size:.73rem}.role-line strong{font-size:.86rem}
.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:18px}.quick-actions .btn{justify-content:flex-start}
.share-create-card{padding:20px;margin-bottom:18px}.share-create-grid{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(220px,1.5fr) 130px 130px;gap:12px}.share-create-grid .full{grid-column:1/-1}.share-result{margin-top:14px;padding:14px;border-radius:12px;background:var(--green-soft);border:1px solid color-mix(in srgb,var(--green) 25%,var(--line));display:none}.share-result.show{display:block}.share-result-row{display:flex;gap:8px}.share-result input{flex:1}
.share-status{display:inline-flex;align-items:center;gap:6px}.share-status i{width:7px;height:7px;border-radius:50%;background:var(--green)}.share-status.expired i,.share-status.revoked i{background:var(--red)}
.security-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.security-card{padding:18px}.security-card strong{display:block;font-size:1.35rem}.security-card span{font-size:.7rem;color:var(--muted)}
.security-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.65fr);gap:18px;align-items:start}.scan-form{padding:18px;display:flex;flex-direction:column;gap:10px}.warning-cell{max-width:360px;color:var(--orange);font-size:.7rem}.checksum{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.65rem;color:var(--muted)}
.public-share-shell{min-height:100vh;background:radial-gradient(circle at 80% 10%,#e9f2ff 0,transparent 36%),linear-gradient(135deg,#f9fbff,#f3f7fd);display:grid;place-items:center;padding:24px}.public-share-card{width:min(560px,100%);background:#fff;border:1px solid #dce5f1;border-radius:24px;box-shadow:0 24px 70px rgba(31,54,87,.13);padding:32px;text-align:center;font-family:Manrope,"Segoe UI",Arial,sans-serif;color:#172033}.public-share-logo{width:180px;height:64px;object-fit:contain;margin-bottom:22px}.public-share-icon{width:64px;height:64px;border-radius:18px;background:#eaf2ff;color:#2465d1;display:grid;place-items:center;margin:0 auto 16px}.public-share-icon svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.8}.public-share-card h1{font-size:1.45rem;margin:0 0 8px}.public-share-card p{color:#66758a;font-size:.82rem}.public-share-meta{margin:20px 0;text-align:left;background:#f7f9fc;border:1px solid #e3e9f2;border-radius:14px;padding:14px}.public-share-meta div{display:flex;justify-content:space-between;gap:20px;padding:7px 0;font-size:.75rem}.public-share-meta span{color:#738196}.public-share-card .btn{width:100%;justify-content:center}.public-share-error{padding:12px;border-radius:10px;background:#fff0f0;color:#c03636;font-size:.78rem;margin:14px 0}.public-share-password{display:flex;flex-direction:column;gap:10px;margin-top:16px}
@media(max-width:1180px){.overview-grid{grid-template-columns:repeat(2,1fr)}.share-create-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.overview-layout,.security-layout{grid-template-columns:1fr}.security-summary{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.overview-grid,.security-summary,.share-create-grid{grid-template-columns:1fr}.quick-actions{grid-template-columns:1fr}.share-result-row{flex-direction:column}.overview-stat{padding:14px}}


/* ===== V8.8.2: flusso richieste DDT utente -> amministrazione ===== */
.ddt-request-create{padding:20px;margin-bottom:18px}.ddt-request-create-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.ddt-request-create-grid .full{grid-column:1/-1}.ddt-request-create .field{margin:0}.ddt-request-help{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;border-radius:12px;background:var(--primary-soft);color:var(--text-soft);font-size:.74rem;line-height:1.55}.ddt-request-help svg{width:19px;height:19px;flex:0 0 auto;fill:none;stroke:var(--primary);stroke-width:1.8}.ddt-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}.ddt-detail{padding:12px 13px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft)}.ddt-detail span{display:block;color:var(--muted);font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.ddt-detail strong{display:block;margin-top:5px;font-size:.78rem;word-break:break-word}.ddt-response{margin-top:16px;padding:15px 16px;border:1px solid color-mix(in srgb,var(--green) 28%,var(--line));border-radius:13px;background:var(--green-soft);display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ddt-response-icon{width:38px;height:38px;border-radius:11px;background:var(--surface);display:grid;place-items:center;color:var(--green)}.ddt-response-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9}.ddt-response-copy{flex:1;min-width:180px}.ddt-response-copy span{display:block;font-size:.66rem;color:var(--muted)}.ddt-response-copy strong{display:block;font-size:.78rem;margin-top:2px}.request-card-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:15px}.admin-ddt-actions{display:grid;gap:10px;min-width:300px}.admin-ddt-actions form{width:100%}.admin-ddt-upload{padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);display:grid;gap:9px}.admin-ddt-upload .upload-dropzone.compact{min-height:92px}.admin-ddt-upload .field{margin:0}.admin-request-row.ddt-row{grid-template-columns:42px minmax(0,1fr) minmax(320px,420px)}.legacy-request-banner{margin-top:12px;padding:10px 12px;border-radius:10px;background:var(--orange-soft);color:var(--orange);font-size:.7rem}.request-flash{margin-bottom:16px}.status-chip.processing{background:#ede9fe;color:#6d28d9}.status-chip.completed{background:#dcfce7;color:#166534}.status-chip.requested{background:#fef3c7;color:#92400e}.status-chip.cancelled{background:#e2e8f0;color:#475569}.theme-dark .ddt-request-help{background:rgba(37,99,235,.12)}.theme-dark .ddt-detail,.theme-dark .admin-ddt-upload{background:rgba(148,163,184,.07)}.theme-dark .ddt-response{background:rgba(34,197,94,.11)}
@media(max-width:1120px){.admin-request-row.ddt-row{grid-template-columns:42px 1fr}.admin-ddt-actions{grid-column:2;min-width:0}.ddt-details{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.ddt-request-create-grid,.ddt-details{grid-template-columns:1fr}.ddt-request-create-grid .full{grid-column:1}.admin-request-row.ddt-row{grid-template-columns:1fr}.admin-ddt-actions{grid-column:1}.request-card-actions .btn,.request-card-actions form{width:100%}.request-card-actions form .btn{width:100%}}


/* V8.9.0 - Assistenza e comunicazioni */
.service-banner{display:flex;align-items:flex-start;gap:14px;margin-bottom:18px;padding:15px 16px;border:1px solid var(--line);border-left:5px solid var(--primary);border-radius:13px;background:var(--surface);box-shadow:var(--shadow-sm)}
.service-banner.level-warning{border-left-color:var(--orange);background:color-mix(in srgb,var(--orange-soft) 52%,var(--surface))}
.service-banner.level-urgent{border-left-color:var(--red);background:color-mix(in srgb,var(--red-soft) 55%,var(--surface))}
.service-banner.level-maintenance{border-left-color:var(--purple);background:color-mix(in srgb,var(--purple-soft) 55%,var(--surface))}
.service-banner-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);flex:0 0 auto}
.service-banner-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.service-banner-copy{min-width:0;flex:1}.service-banner-copy strong{display:block;font-size:.88rem;color:var(--text)}.service-banner-copy p{margin:4px 0 0;color:var(--text-soft);font-size:.78rem;line-height:1.55;white-space:pre-line}
.service-banner-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.service-banner-actions form{margin:0}

.support-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:18px;align-items:start}
.support-form{padding:19px}.support-form-actions{margin-top:16px;display:flex;justify-content:flex-end}
.field small{color:var(--muted);font-size:.68rem;line-height:1.45}
.ticket-list{display:flex;flex-direction:column}
.ticket-card{display:block;padding:16px 18px;border-bottom:1px solid var(--line);color:var(--text);transition:background .15s}
.ticket-card:last-child{border-bottom:0}.ticket-card:hover{background:var(--surface-soft)}
.ticket-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}
.ticket-card>strong{display:block;font-size:.9rem}.ticket-card>p{margin:5px 0 10px;color:var(--muted);font-size:.76rem}
.ticket-card-meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:.67rem}
.support-status,.support-priority,.announcement-level{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:.65rem;font-weight:800;white-space:nowrap}
.status-open{background:var(--primary-soft);color:var(--primary)}
.status-in_progress{background:var(--purple-soft);color:var(--purple)}
.status-waiting_user{background:var(--orange-soft);color:var(--orange)}
.status-resolved{background:var(--green-soft);color:var(--green)}
.status-closed{background:var(--surface-soft);color:var(--muted)}
.priority-normal{background:var(--surface-soft);color:var(--text-soft)}
.priority-high{background:var(--orange-soft);color:var(--orange)}
.priority-blocking{background:var(--red-soft);color:var(--red)}
.back-link{display:inline-flex;margin-bottom:8px;color:var(--primary);font-size:.75rem;font-weight:800}
.ticket-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.support-thread{padding:18px;display:flex;flex-direction:column;gap:14px;max-height:680px;overflow:auto;background:var(--surface-soft)}
.support-message{max-width:84%;padding:14px 15px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-sm)}
.support-message.from-user{align-self:flex-end;border-bottom-right-radius:4px;background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 25%,var(--line))}
.support-message.from-admin{align-self:flex-start;border-bottom-left-radius:4px}
.support-message.internal-note{align-self:stretch;max-width:none;background:var(--orange-soft);border-color:color-mix(in srgb,var(--orange) 28%,var(--line))}
.support-message-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.support-message-head strong{font-size:.75rem}.support-message-head time{color:var(--muted);font-size:.62rem}
.support-message p{margin:0;color:var(--text-soft);font-size:.78rem;line-height:1.6;white-space:pre-wrap;word-break:break-word}
.support-attachments{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}.support-attachments a{padding:6px 9px;border-radius:8px;background:var(--surface);border:1px solid var(--line);color:var(--primary);font-size:.67rem;font-weight:750}
.support-reply-form{padding:18px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:13px}
.ticket-sidebar{position:sticky;top:90px}.ticket-details{margin:0;padding:8px 18px 18px}.ticket-details>div{padding:12px 0;border-bottom:1px solid var(--line)}.ticket-details>div:last-child{border-bottom:0}.ticket-details dt{color:var(--muted);font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.ticket-details dd{margin:5px 0 0;color:var(--text);font-size:.76rem;line-height:1.5;white-space:pre-wrap}.ticket-close-form,.ticket-admin-form{padding:18px;display:flex;flex-direction:column;gap:13px;border-bottom:1px solid var(--line)}
.support-checkbox{display:flex;align-items:flex-start;gap:9px;color:var(--text-soft);font-size:.75rem;font-weight:700}.support-checkbox input{margin-top:2px}
.support-filter-bar{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(145px,.8fr)) auto;gap:9px;padding:14px;border-bottom:1px solid var(--line)}
.table-primary-link{display:flex;flex-direction:column;gap:3px;color:var(--text)}.table-primary-link small,.table-subline{display:block;color:var(--muted);font-size:.65rem;margin-top:3px}.break-word{word-break:break-word}

.announcement-list{display:flex;flex-direction:column;gap:14px}.announcement-card{position:relative;display:flex;overflow:hidden}.announcement-accent{width:6px;background:var(--primary);flex:0 0 auto}.announcement-card.level-warning .announcement-accent{background:var(--orange)}.announcement-card.level-urgent .announcement-accent{background:var(--red)}.announcement-card.level-maintenance .announcement-accent{background:var(--purple)}
.announcement-body{padding:19px 21px;flex:1}.announcement-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.announcement-head time{color:var(--muted);font-size:.67rem}.announcement-body h2{margin:13px 0 8px;font-size:1rem}.announcement-body>p{margin:0;color:var(--text-soft);font-size:.78rem;line-height:1.65;white-space:pre-wrap}.announcement-actions{margin-top:15px;display:flex;align-items:center;gap:9px}
.announcement-level{background:var(--primary-soft);color:var(--primary)}.announcement-level.level-warning,.level-warning .announcement-level{background:var(--orange-soft);color:var(--orange)}.announcement-level.level-urgent,.level-urgent .announcement-level{background:var(--red-soft);color:var(--red)}.announcement-level.level-maintenance,.level-maintenance .announcement-level{background:var(--purple-soft);color:var(--purple)}
.announcement-card.is-read{opacity:.82}
.announcement-admin-layout{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:18px;align-items:start}.announcement-admin-list{display:flex;flex-direction:column}.announcement-admin-item{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:16px 18px;border-bottom:1px solid var(--line)}.announcement-admin-item:last-child{border-bottom:0}.announcement-admin-item h3{margin:9px 0 5px;font-size:.86rem}.announcement-admin-item p{margin:0 0 8px;color:var(--text-soft);font-size:.72rem;line-height:1.55;white-space:pre-wrap}.announcement-admin-item small{color:var(--muted);font-size:.64rem}
.announcement-recipient-picker{padding:13px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft)}.announcement-recipient-picker>strong{display:block;margin-bottom:10px;font-size:.76rem}.recipient-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:240px;overflow:auto}.recipient-grid label{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:8px;background:var(--surface);border:1px solid var(--line);font-size:.7rem}.recipient-grid span{display:flex;flex-direction:column}.recipient-grid small{color:var(--muted);font-size:.62rem;margin-top:2px}

@media(max-width:1100px){
  .support-layout,.announcement-admin-layout{grid-template-columns:1fr}
  .ticket-detail-grid{grid-template-columns:1fr}.ticket-sidebar{position:static}
  .support-filter-bar{grid-template-columns:1fr 1fr}
}
@media(max-width:700px){
  .service-banner{flex-wrap:wrap}.service-banner-actions{width:100%;justify-content:flex-end}
  .support-filter-bar,.form-grid,.recipient-grid{grid-template-columns:1fr}
  .support-message{max-width:96%}
  .announcement-admin-item{flex-direction:column}
}

/* v8.10.0 - Richieste DDT compatte */
.request-list-panel{padding:0;overflow:hidden}.request-filter-row{padding:12px 14px;border-bottom:1px solid var(--border,#e5eaf2)}
.request-table-head,.request-compact-summary{display:grid;grid-template-columns:minmax(180px,1.15fr) minmax(190px,1.15fr) minmax(120px,.7fr) minmax(180px,1fr) minmax(150px,.8fr) 32px;gap:14px;align-items:center}
.request-table-head{padding:10px 18px;background:#f7f9fc;border-bottom:1px solid #e5eaf2;color:#74819a;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.request-compact-row{border-bottom:1px solid #e7ecf3;background:#fff}.request-compact-row:last-child{border-bottom:0}.request-compact-row[open]{background:#fbfcfe;box-shadow:inset 3px 0 0 #2f7cf6}
.request-compact-summary{list-style:none;cursor:pointer;padding:12px 18px;min-height:66px}.request-compact-summary::-webkit-details-marker{display:none}.request-compact-summary:hover{background:#f8fbff}
.request-compact-summary strong{display:block;color:#17233d;font-size:13px}.request-compact-summary small{display:block;color:#8290a7;margin-top:4px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.request-id-cell{display:flex;align-items:center;gap:10px;min-width:0}.avatar.mini{width:34px;height:34px;min-width:34px;font-size:12px}.request-person-cell{min-width:0}.request-chevron{font-size:20px;color:#7c899f;transition:transform .2s ease}.request-compact-row[open] .request-chevron{transform:rotate(180deg)}
.request-expanded-body{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;padding:16px 18px 18px;border-top:1px solid #edf1f6}.compact-details{margin-top:0}.compact-actions{display:flex;flex-direction:column;gap:10px}.request-action-box{padding:12px;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.request-action-box .field{margin-bottom:9px}.danger-box{border-color:#ffd7d7;background:#fffafa}
.request-timeline{margin-top:14px;padding:13px;border:1px solid #e5eaf2;border-radius:12px;background:#fff}.request-timeline h4{margin:0 0 10px;font-size:12px}.timeline-list{display:flex;flex-direction:column;gap:9px}.timeline-item{display:grid;grid-template-columns:12px 1fr;gap:9px;align-items:start}.timeline-dot{width:9px;height:9px;border-radius:50%;margin-top:4px;background:#94a3b8}.timeline-dot.requested{background:#3b82f6}.timeline-dot.processing{background:#f59e0b}.timeline-dot.completed{background:#22c55e}.timeline-dot.cancelled{background:#ef4444}.timeline-item strong{font-size:12px}.timeline-item small{display:block;color:#8390a5;font-size:10px;margin-top:2px}.timeline-item p{margin:3px 0 0;font-size:11px;color:#57657c}
@media(max-width:1100px){.request-table-head{display:none}.request-compact-summary{grid-template-columns:1.2fr 1fr 150px 32px}.request-compact-summary>div:nth-child(3),.request-compact-summary>div:nth-child(4){display:none}.request-expanded-body{grid-template-columns:1fr}}
@media(max-width:700px){.request-compact-summary{grid-template-columns:1fr auto 26px;padding:11px}.request-compact-summary>div:nth-child(2),.request-compact-summary>div:nth-child(3),.request-compact-summary>div:nth-child(4){display:none}.request-expanded-body{padding:12px}.request-admin-stats{grid-template-columns:1fr 1fr}.ddt-details.compact-details{grid-template-columns:1fr 1fr}}

/* v8.10.0 - Esplora documenti upload */
.destination-picker{display:grid;grid-template-columns:1fr auto;gap:8px}.upload-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.upload-selection-note{font-size:11px;color:#74819a;margin:8px 0 10px}.destination-explorer-dialog{width:min(760px,94vw);max-width:760px}.destination-toolbar{display:flex;align-items:center;gap:9px;padding:11px 16px;border-bottom:1px solid #e5eaf2}.destination-crumbs{flex:1;min-width:0;white-space:nowrap;overflow:auto;color:#66748a}.destination-crumbs button{border:0;background:none;color:#2769d8;font-weight:600;cursor:pointer;padding:4px}.destination-list{height:390px;overflow:auto;padding:8px;background:#f8fafc}.destination-folder-row{width:100%;display:grid;grid-template-columns:38px 1fr 24px;gap:8px;align-items:center;text-align:left;padding:10px 12px;border:1px solid transparent;border-radius:9px;background:transparent;cursor:pointer}.destination-folder-row:hover{background:#fff;border-color:#e1e8f2}.destination-folder-row.selected{background:#eaf2ff;border-color:#9ac0ff}.destination-folder-row strong{display:block;color:#17233d}.destination-folder-row small{display:block;color:#8a97aa;margin-top:2px}.folder-icon{font-size:21px}.folder-open{font-size:20px;color:#7d8aa0}.destination-actions-left{margin-right:auto;display:flex;gap:7px}.modal-backdrop.open{display:flex}
@media(max-width:650px){.upload-choice-grid{grid-template-columns:1fr}.destination-toolbar{flex-wrap:wrap}.destination-crumbs{order:3;width:100%;flex-basis:100%}}

/* ===== v8.11.0 · Aziende, utenti e quota condivisa ===== */
.company-groups{display:grid;gap:10px;padding:4px 0}.company-group{border:1px solid var(--border);border-radius:16px;background:var(--card);overflow:hidden}.company-group-head{display:grid;grid-template-columns:34px minmax(220px,1.4fr) minmax(150px,.7fr) minmax(190px,.9fr) auto;align-items:center;gap:14px;padding:14px 16px}.company-expand{width:30px;height:30px;border:0;border-radius:9px;background:var(--soft);color:var(--text);font-size:1.35rem;cursor:pointer}.company-identity{display:grid;gap:3px}.company-identity strong{font-size:.9rem}.company-identity small{color:var(--muted);font-size:.72rem}.company-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:.76rem}.company-quota-mini>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:.72rem;color:var(--muted);margin-bottom:6px}.company-group-actions{display:flex;gap:8px;justify-content:flex-end}.company-users-wrap{border-top:1px solid var(--border);background:color-mix(in srgb,var(--card) 94%,var(--soft));padding:14px 16px 16px}.company-users-title{font-weight:700;font-size:.78rem;margin:0 0 10px}.compact-table td,.compact-table th{padding-top:9px!important;padding-bottom:9px!important}.compact-alert{margin:0 0 12px!important;padding:9px 12px!important}.company-detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:18px;margin-bottom:18px}.company-detail-page>.panel{margin-bottom:18px}.company-quota-form{margin-top:16px;display:grid;grid-template-columns:minmax(90px,140px) auto;gap:10px}.user-admin-details{position:relative}.user-admin-details summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;padding:7px 10px;border:1px solid var(--border);border-radius:9px;background:var(--soft);font-size:.72rem;font-weight:700}.user-admin-details summary::-webkit-details-marker{display:none}.user-admin-actions{position:absolute;right:0;z-index:20;width:min(370px,80vw);display:grid;gap:9px;padding:12px;margin-top:8px;border:1px solid var(--border);border-radius:14px;background:var(--card);box-shadow:0 18px 45px rgba(15,23,42,.16)}.user-admin-actions form{display:grid;gap:7px}.user-admin-actions form:has(.select){grid-template-columns:1fr auto;align-items:center}.user-admin-actions form:has(input[type=password]){grid-template-columns:1fr auto}.user-admin-actions .check-line{grid-column:1/-1}.check-line{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.7rem}.company-duplicate-alert{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.company-duplicate-alert form{margin:0}.vat-verification-row{background:var(--soft);border:1px solid var(--border);border-radius:12px;padding:12px}.vat-result{font-size:.75rem;line-height:1.45}.vat-good{color:#087f5b}.vat-bad{color:#c92a2a}.vat-neutral{color:var(--muted)}.auth-inline-link{font-size:.72rem;font-weight:700;margin-top:4px;display:inline-block}.company-registration-conflict{line-height:1.55}.company-registration-conflict strong{font-weight:800}
@media(max-width:1100px){.company-group-head{grid-template-columns:34px 1fr auto}.company-summary,.company-quota-mini{grid-column:2/4}.company-group-actions{grid-column:2/4;justify-content:flex-start}.company-detail-grid{grid-template-columns:1fr}}
@media(max-width:700px){.company-group-head{grid-template-columns:30px 1fr;padding:12px}.company-summary,.company-quota-mini,.company-group-actions{grid-column:1/-1}.company-group-actions{flex-wrap:wrap}.company-users-wrap{padding:10px}.user-admin-actions{position:fixed;left:12px;right:12px;bottom:12px;width:auto;max-height:70vh;overflow:auto}.company-quota-form{grid-template-columns:1fr}}

/* ===== v8.11.1 · Gestione aziende/utenti + notifiche web live ===== */
.company-page-heading{margin-bottom:18px}.company-page-heading .page-actions{padding-top:20px}
.company-quick-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.company-quick-stats>div{padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-sm);min-width:0}.company-quick-stats span{display:block;color:var(--muted);font-size:.67rem;font-weight:700;margin-bottom:5px}.company-quick-stats strong{display:block;font-size:.85rem;overflow:hidden;text-overflow:ellipsis}.company-quick-stats small{display:block;color:var(--muted);font-size:.65rem;margin-top:4px}
.company-settings-card,.company-storage-card{min-width:0}.company-panel-body{padding:19px 20px 20px}.company-panel-body .form-grid{gap:15px 16px}.company-panel-body .field>span{font-size:.69rem;font-weight:700;color:var(--text-soft)}.company-panel-body .input,.company-panel-body .select{min-height:42px}.company-panel-body .field-button{min-height:42px;display:flex;align-items:center;justify-content:center}.company-vat-result{margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}.company-form-actions{margin-top:15px;padding-top:14px;border-top:1px solid var(--line)}
.company-storage-card .storage-number{font-size:1.65rem;margin-top:0}.company-storage-card .storage-meta{margin:8px 0 10px}.company-quota-form{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);grid-template-columns:minmax(140px,1fr) auto;align-items:end}.company-quota-form .btn{min-height:42px}
.company-users-panel{margin-bottom:18px}.company-users-header{align-items:flex-start}.company-users-header p{margin:5px 0 0;color:var(--muted);font-size:.72rem}.company-users-head-stats{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.company-users-head-stats span{padding:7px 9px;border-radius:9px;background:var(--surface-soft);border:1px solid var(--line);font-size:.66rem;color:var(--muted)}.company-users-head-stats strong{color:var(--text);font-size:.72rem}.company-users-head-stats .pending{background:#fff8e8;color:#9a6700;border-color:#f4dfae}.company-users-table-wrap{overflow-x:auto;overflow-y:visible}.company-users-table{min-width:900px}.company-users-table th,.company-users-table td{padding:13px 14px}.company-users-table .management-column{text-align:right}.company-user-row:has(+ .user-management-row:not([hidden])){background:var(--surface-blue)}.user-name-cell{display:flex;align-items:center;gap:9px;min-width:170px}.avatar.avatar-xs{width:30px;height:30px;min-width:30px;font-size:.68rem}.user-email-cell{word-break:break-word;max-width:260px}
.user-management-row td{padding:0!important;background:var(--surface-soft);border-bottom:1px solid var(--line)!important}.user-management-panel{padding:18px 20px 20px;border-top:1px solid var(--line);box-shadow:inset 0 8px 18px rgba(15,23,42,.025)}.user-management-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:15px}.user-management-heading>div{display:flex;flex-direction:column;gap:3px}.user-management-heading strong{font-size:.84rem}.user-management-heading span{font-size:.68rem;color:var(--muted)}.user-management-close{width:31px;height:31px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--muted);font-size:1.2rem;cursor:pointer}.user-management-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.user-management-section{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);min-width:0}.user-management-section h4{font-size:.75rem;margin:0 0 4px}.user-management-section p{font-size:.64rem;line-height:1.5;color:var(--muted);margin:0 0 12px}.user-management-section .field>span{font-size:.64rem}.user-management-section .input,.user-management-section .select{min-height:38px;font-size:.7rem}.user-action-stack,.stack-form{display:grid;gap:8px}.user-action-stack .btn,.stack-form .btn{width:100%}.user-delete-form{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.user-delete-form .btn{width:100%}.company-empty-row{padding:24px!important;text-align:center}.company-bottom-grid{margin-top:0}
.company-detail-page .panel-header{padding:18px 20px}.company-detail-page .panel-header h3{font-size:.88rem}.company-detail-page .panel-header p{margin:5px 0 0;color:var(--muted);font-size:.7rem;line-height:1.5}.company-detail-page .company-duplicate-alert{padding:14px 16px}.company-detail-page .company-duplicate-alert>div{display:flex;flex-direction:column;gap:3px;font-size:.72rem;line-height:1.45}
.companies-page>.panel{overflow:visible}.companies-page .users-toolbar{padding:14px 16px}.companies-page .company-groups{padding:10px 12px 12px}.companies-page .company-group{box-shadow:0 1px 2px rgba(15,23,42,.03)}.companies-page .company-users-wrap{padding:16px}.companies-page .company-users-title{margin-bottom:12px;font-size:.75rem}.companies-page .company-group-head{padding:15px 16px}.companies-page .company-identity strong{line-height:1.35}.companies-page .company-summary strong{color:var(--text)}

.notification-desktop-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-top:1px solid var(--line);background:var(--surface-soft)}.notification-desktop-row>div{display:flex;flex-direction:column;gap:2px;min-width:0}.notification-desktop-row strong{font-size:.69rem}.notification-desktop-row span{font-size:.61rem;color:var(--muted);line-height:1.4}.notification-desktop-row .btn{flex:0 0 auto}.notification-entry-icon.account,.notification-entry-icon.company{background:#e8f1ff}.notification-entry-icon.account:after,.notification-entry-icon.company:after{border-color:#2563eb;border-radius:50%}.notification-entry-icon.announcement{background:#f3e8ff}.notification-entry-icon.announcement:after{border-color:#9333ea}.notification-entry-icon.info:after{border-color:#64748b}
.web-toast-stack{position:fixed;top:82px;right:18px;z-index:220;width:min(390px,calc(100vw - 28px));display:flex;flex-direction:column;gap:10px;pointer-events:none}.web-notification-toast{pointer-events:auto;display:grid;grid-template-columns:34px minmax(0,1fr) 28px;align-items:start;gap:11px;padding:13px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 18px 45px rgba(15,23,42,.18);opacity:0;transform:translateX(18px);transition:opacity .2s ease,transform .2s ease;cursor:pointer}.web-notification-toast.visible{opacity:1;transform:none}.web-notification-toast.leaving{opacity:0;transform:translateX(18px)}.web-notification-toast>div{min-width:0}.web-notification-toast strong{display:block;font-size:.76rem;line-height:1.35}.web-notification-toast p{margin:4px 0 5px;font-size:.67rem;line-height:1.45;color:var(--text-soft)}.web-notification-toast small{font-size:.59rem;color:var(--muted)}.web-notification-toast-close{width:27px;height:27px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:1.15rem;cursor:pointer}.web-notification-toast-close:hover{background:var(--surface-soft);color:var(--text)}
.notification-overview-grid{display:grid;grid-template-columns:minmax(180px,.4fr) minmax(0,1.6fr);gap:14px;margin-bottom:16px}.notification-overview-card{padding:16px 18px}.notification-overview-card>span,.desktop-notification-card>div>span{display:block;color:var(--muted);font-size:.68rem;font-weight:700}.notification-overview-card>strong{display:block;font-size:1.55rem;margin:4px 0 2px}.notification-overview-card>small,.desktop-notification-card small{display:block;color:var(--muted);font-size:.63rem;line-height:1.45}.desktop-notification-card{display:flex;align-items:center;justify-content:space-between;gap:16px}.desktop-notification-card>div>strong{display:block;font-size:.78rem;margin:5px 0 3px}.notification-center-head p{margin:4px 0 0;color:var(--muted);font-size:.68rem}

.theme-dark .company-users-head-stats .pending{background:rgba(245,158,11,.1);color:#fbbf24;border-color:rgba(245,158,11,.25)}.theme-dark .user-management-panel{box-shadow:none}.theme-dark .web-notification-toast{box-shadow:0 18px 45px rgba(0,0,0,.32)}

@media(max-width:1250px){.user-management-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.company-quick-stats{grid-template-columns:1fr}.company-page-heading .page-actions{padding-top:0}.company-users-head-stats{justify-content:flex-start}.notification-overview-grid{grid-template-columns:1fr}.desktop-notification-card{align-items:flex-start}}
@media(max-width:700px){.company-panel-body{padding:15px}.company-detail-page .panel-header{padding:15px}.company-quota-form{grid-template-columns:1fr}.user-management-grid{grid-template-columns:1fr}.user-management-panel{padding:14px}.company-users-table{min-width:760px}.web-toast-stack{top:70px;right:10px;width:calc(100vw - 20px)}.desktop-notification-card{flex-direction:column}.desktop-notification-card .btn{width:100%}}
