        :root {
            color-scheme: light;
            --primary: #3157dc;
            --primary-soft: #eef2ff;
            --accent: #22c7d5;
            --page: #f5f6f8;
            --surface: #fff;
            --surface-2: #fafbfc;
            --text: #17213d;
            --muted: #78829d;
            --border: #e5e8ef;
            --shadow: 0 10px 30px rgba(25, 36, 65, .07);
            --sidebar: 270px;
            --topbar: 76px;
        }

        [data-theme="dark"] {
            color-scheme: dark;
            --primary: #7890ff;
            --primary-soft: rgba(83, 105, 226, .16);
            --accent: #35d1dc;
            --page: #111318;
            --surface: #191c23;
            --surface-2: #20242d;
            --text: #eef1f7;
            --muted: #949db0;
            --border: #2b303b;
            --shadow: 0 12px 32px rgba(0, 0, 0, .2);
        }

        html[data-template="ocean"] {
            --primary: #087ea4; --primary-soft: #e6f7fb; --accent: #00b8d4;
            --page: #f2f8fa; --surface: #fff; --surface-2: #f6fbfc;
            --text: #12313b; --muted: #68858e; --border: #dbe9ed;
        }
        html[data-theme="dark"][data-template="ocean"] {
            --primary: #45c9e8; --primary-soft: rgba(23, 151, 184, .17); --accent: #20d3e8;
            --page: #0d171b; --surface: #142329; --surface-2: #192b32;
            --text: #ebf8fa; --muted: #8eabb4; --border: #294049;
        }
        html[data-template="emerald"] {
            --primary: #16845b; --primary-soft: #e9f7f1; --accent: #51b98c;
            --page: #f4f8f5; --surface: #fff; --surface-2: #f7fbf8;
            --text: #17382d; --muted: #71877f; --border: #dfeae5;
        }
        html[data-theme="dark"][data-template="emerald"] {
            --primary: #55d6a1; --primary-soft: rgba(47, 175, 123, .16); --accent: #7ce4b6;
            --page: #101814; --surface: #18231e; --surface-2: #1e2c26;
            --text: #eff9f4; --muted: #91a99f; --border: #2c4037;
        }
        html[data-template="sunset"] {
            --primary: #e3602c; --primary-soft: #fff0e9; --accent: #f59e42;
            --page: #faf6f3; --surface: #fff; --surface-2: #fdf9f6;
            --text: #41251c; --muted: #90796f; --border: #eee2dc;
        }
        html[data-theme="dark"][data-template="sunset"] {
            --primary: #ff8a57; --primary-soft: rgba(225, 94, 42, .18); --accent: #ffb45e;
            --page: #19120f; --surface: #261b17; --surface-2: #30211b;
            --text: #fff4ef; --muted: #b19a90; --border: #443028;
        }
        html[data-template="berry"] {
            --primary: #a43b76; --primary-soft: #faeefa; --accent: #d764a6;
            --page: #faf5f8; --surface: #fff; --surface-2: #fdf8fb;
            --text: #3d2032; --muted: #8e7484; --border: #eddee7;
        }
        html[data-theme="dark"][data-template="berry"] {
            --primary: #e57db9; --primary-soft: rgba(190, 65, 137, .18); --accent: #f39bc9;
            --page: #180f15; --surface: #251820; --surface-2: #30202a;
            --text: #fff1f8; --muted: #b19aa8; --border: #432c39;
        }
        html[data-template="royal"] {
            --primary: #6941c6; --primary-soft: #f1edff; --accent: #9270df;
            --page: #f7f5fb; --surface: #fff; --surface-2: #faf9fd;
            --text: #29203f; --muted: #7f7692; --border: #e5e0ef;
        }
        html[data-theme="dark"][data-template="royal"] {
            --primary: #a98bfa; --primary-soft: rgba(122, 86, 217, .2); --accent: #c1a8ff;
            --page: #121017; --surface: #1d1926; --surface-2: #25202f;
            --text: #f5f1ff; --muted: #a49bb7; --border: #352e43;
        }
        html[data-template="graphite"] {
            --primary: #475467; --primary-soft: #eef1f4; --accent: #7b8798;
            --page: #f4f5f6; --surface: #fff; --surface-2: #f8f9fa;
            --text: #202630; --muted: #747e8d; --border: #dfe3e8;
        }
        html[data-theme="dark"][data-template="graphite"] {
            --primary: #b2bccb; --primary-soft: rgba(141, 153, 170, .16); --accent: #d0d6df;
            --page: #101214; --surface: #191c20; --surface-2: #21252a;
            --text: #f1f3f5; --muted: #989fa9; --border: #30353c;
        }
        html[data-template="ruby"] {
            --primary: #bf2f45; --primary-soft: #fff0f2; --accent: #e15b6e;
            --page: #faf5f6; --surface: #fff; --surface-2: #fdf8f9;
            --text: #411f25; --muted: #8e7479; --border: #eddee1;
        }
        html[data-theme="dark"][data-template="ruby"] {
            --primary: #ff7186; --primary-soft: rgba(211, 50, 74, .18); --accent: #ff9baa;
            --page: #190f11; --surface: #26171a; --surface-2: #311e22;
            --text: #fff1f3; --muted: #b29a9e; --border: #452b30;
        }
        html[data-template="amber"] {
            --primary: #b76b00; --primary-soft: #fff6df; --accent: #e9a323;
            --page: #faf8f2; --surface: #fff; --surface-2: #fdfbf6;
            --text: #3c2c15; --muted: #8b7e6a; --border: #ebe4d8;
        }
        html[data-theme="dark"][data-template="amber"] {
            --primary: #f4b63f; --primary-soft: rgba(210, 139, 19, .18); --accent: #ffd071;
            --page: #17140e; --surface: #231e15; --surface-2: #2d271b;
            --text: #fff8e9; --muted: #ada38f; --border: #403727;
        }

        * { box-sizing: border-box; }
        html { background: var(--page); }
        body {
            margin: 0;
            color: var(--text);
            font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
            background: var(--page);
        }
        button, input { font: inherit; }
        button, a { -webkit-tap-highlight-color: transparent; }
        a { color: inherit; text-decoration: none; }

        .sidebar {
            position: fixed;
            inset: 0 auto 0 0;
            z-index: 40;
            width: var(--sidebar);
            display: flex;
            flex-direction: column;
            border-right: 1px solid var(--border);
            background: var(--surface);
            transition: width .25s ease, transform .25s ease, background .2s, border-color .2s;
        }
        html[data-sidebar-theme="light"] .sidebar {
            --surface: #fff;
            --surface-2: #fafbfc;
            --text: #17213d;
            --muted: #78829d;
            --border: #e5e8ef;
            --primary-soft: color-mix(in srgb, var(--primary), #fff 88%);
        }
        html[data-sidebar-theme="dark"] .sidebar {
            --surface: #191c23;
            --surface-2: #20242d;
            --text: #eef1f7;
            --muted: #949db0;
            --border: #2b303b;
            --primary-soft: color-mix(in srgb, var(--primary), transparent 84%);
        }

        .sidebar-head {
            height: var(--topbar);
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 0 22px;
            border-bottom: 1px solid var(--border);
        }
        .sidebar-head img { width: 150px; height: auto; }
        .logo-dark { display: none; }
        [data-theme="dark"] .logo-light { display: none; }
        [data-theme="dark"] .logo-dark { display: block; }
        html[data-sidebar-theme="light"] .sidebar .logo-light { display: block; }
        html[data-sidebar-theme="light"] .sidebar .logo-dark { display: none; }
        html[data-sidebar-theme="dark"] .sidebar .logo-light { display: none; }
        html[data-sidebar-theme="dark"] .sidebar .logo-dark { display: block; }
        .brand-mark { display: none; width: 42px !important; }
        .sidebar-toggle {
            position: absolute;
            top: 27px;
            right: -14px;
            z-index: 3;
            width: 28px;
            height: 28px;
            display: grid;
            place-items: center;
            padding: 0;
            border: 1px solid var(--border);
            border-radius: 8px;
            color: var(--muted);
            background: var(--surface);
            box-shadow: 0 3px 10px rgba(20, 30, 60, .1);
            cursor: pointer;
        }
        .page-favorite-toggle {
            width: 32px;height:32px;display:grid;place-items:center;padding:0;
            border:1px solid var(--border);border-radius:9px;color:var(--muted);background:var(--surface);
            cursor:pointer;transition:color .18s,background .18s,border-color .18s;
        }
        .page-favorite-toggle svg { width:16px;height:16px;fill:transparent;transition:fill .18s,transform .18s; }
        .page-favorite-toggle:hover { color:var(--primary);border-color:var(--primary);background:var(--primary-soft); }
        .page-favorite-toggle:hover svg { transform:scale(1.08); }
        .page-favorite-toggle.active { color:var(--primary);border-color:var(--primary);background:var(--primary-soft); }
        .page-favorite-toggle.active svg { fill:currentColor; }
        .sidebar-toggle:hover { color: var(--primary); }
        .sidebar-toggle svg { width: 16px; height: 16px; transition: rotate .25s; }
        .app { transition: padding-left .25s ease; }
        body.sidebar-collapsed { --sidebar: 84px; }
        body.sidebar-collapsed .sidebar-head { justify-content: center; padding: 0; }
        body.sidebar-collapsed .brand-full,
        body.sidebar-collapsed .nav-label,
        body.sidebar-collapsed .nav-text,
        body.sidebar-collapsed .nav-parent .chevron,
        body.sidebar-collapsed .sidebar-foot,
        body.sidebar-collapsed .submenu { display: none; }
        body.sidebar-collapsed .brand-mark { display: block; }
        body.sidebar-collapsed .nav { padding: 24px 14px; overflow: visible; }
        body.sidebar-collapsed .nav-item,
        body.sidebar-collapsed .nav-parent {
            justify-content: center;
            width: 54px;
            min-height: 48px;
            padding: 0;
        }
        body.sidebar-collapsed .nav-icon { width: 21px; height: 21px; }
        body.sidebar-collapsed .nav-icon.menu-dot,
        body.sidebar-collapsed.sidebar-peek .nav-icon.menu-dot {
            width: 8px;
            height: 8px;
            transform: none;
        }
        body.sidebar-collapsed .sidebar-toggle svg { rotate: 180deg; }
        body.sidebar-collapsed.sidebar-peek .sidebar {
            width: 270px;
            box-shadow: 16px 0 35px rgba(20, 30, 60, .13);
        }
        body.sidebar-collapsed.sidebar-peek .sidebar-head {
            justify-content: space-between;
            padding: 0 22px;
        }
        body.sidebar-collapsed.sidebar-peek .brand-full,
        body.sidebar-collapsed.sidebar-peek .nav-label,
        body.sidebar-collapsed.sidebar-peek .nav-text,
        body.sidebar-collapsed.sidebar-peek .nav-parent .chevron,
        body.sidebar-collapsed.sidebar-peek .sidebar-foot {
            display: block;
        }
        body.sidebar-collapsed.sidebar-peek .brand-mark { display: none; }
        body.sidebar-collapsed.sidebar-peek .logo-dark { display: none; }
        [data-theme="dark"] body.sidebar-collapsed.sidebar-peek .logo-light { display: none; }
        [data-theme="dark"] body.sidebar-collapsed.sidebar-peek .logo-dark { display: block; }
        body.sidebar-collapsed.sidebar-peek .nav {
            padding: 24px 14px;
            overflow-y: auto;
        }
        body.sidebar-collapsed.sidebar-peek .nav-item,
        body.sidebar-collapsed.sidebar-peek .nav-parent {
            justify-content: flex-start;
            width: 100%;
            padding: 0 13px;
        }
        body.sidebar-collapsed.sidebar-peek .submenu.open { display: grid; }
        body.sidebar-collapsed.sidebar-peek .sidebar-toggle svg { rotate: 180deg; }

        .mobile-close, .mobile-menu {
            display: none;
            border: 0;
            color: var(--muted);
            background: transparent;
            cursor: pointer;
        }

        .nav {
            flex: 1;
            display: block;
            align-content: initial;
            align-items: initial;
            flex-wrap: nowrap;
            overflow-y: auto;
            padding: 24px 14px;
        }
        .nav-label {
            padding: 19px 13px 9px;
            color: #a1a8b8;
            font-size: .69rem;
            font-weight: 800;
            letter-spacing: .12em;
            text-transform: uppercase;
        }
        .nav-label:first-child { padding-top: 0; }
        .nav-item, .nav-parent {
            width: 100%;
            min-height: 45px;
            display: flex;
            align-items: center;
            gap: 12px;
            margin: 3px 0;
            padding: 0 13px;
            border: 0;
            border-radius: 10px;
            color: var(--muted);
            font-size: .91rem;
            font-weight: 400;
            text-align: left;
            background: transparent;
            cursor: pointer;
            transition: color .16s, background .16s;
            flex: none;
        }
        .nav > .nav-item,
        .nav > .nav-parent,
        .submenu-inner > .nav-item,
        .submenu-inner > .nav-parent {
            height: auto;
            flex-grow: 0;
            flex-shrink: 0;
        }
        .nav-item:hover, .nav-parent:hover { color: var(--text); background: var(--surface-2); }
        .nav-item.active { color: var(--primary); background: var(--primary-soft); }
        [data-theme="dark"] .nav-item.active > .nav-text { color:#fff; }
        .nav-parent.active-path { color:var(--primary);background:color-mix(in srgb,var(--primary-soft),transparent 18%); }
        .nav-icon {
            width: 19px;
            height: 19px;
            flex: 0 0 auto;
            transform-origin: center;
            transition: transform .24s cubic-bezier(.2, .8, .2, 1), color .18s;
            color: var(--menu-color, currentColor);
        }
        [data-theme="dark"] .nav-icon { color: var(--menu-color-dark, var(--menu-color, currentColor)); }
        .menu-dot { width:8px;height:8px;margin:0;border-radius:50%;background:var(--menu-color,var(--primary)); }
        [data-theme="dark"] .menu-dot { background:var(--menu-color-dark,var(--menu-color,var(--primary))); }
        .menu-svg-icon {
            display:block;
            background-color:var(--menu-color,currentColor);
            -webkit-mask-image:var(--menu-icon);
            mask-image:var(--menu-icon);
            -webkit-mask-repeat:no-repeat;
            mask-repeat:no-repeat;
            -webkit-mask-position:center;
            mask-position:center;
            -webkit-mask-size:contain;
            mask-size:contain;
        }
        [data-theme="dark"] .menu-svg-icon { background-color:var(--menu-color-dark,var(--menu-color,currentColor)); }
        .nav-item:hover > .nav-icon,
        .nav-parent:hover > .nav-icon {
            color: var(--menu-color, var(--primary));
            transform: translateY(-2px) scale(1.12) rotate(-4deg);
        }
        [data-theme="dark"] .nav-item:hover > .nav-icon,
        [data-theme="dark"] .nav-parent:hover > .nav-icon {
            color: var(--menu-color-dark, var(--menu-color, var(--primary)));
        }
        .chevron { width: 15px; height: 15px; margin-left: auto; transition: rotate .2s; }
        .nav-parent[aria-expanded="true"] .chevron { rotate: 90deg; }
        .submenu {
            display: grid;
            grid-template-rows: 0fr;
            transition: grid-template-rows .22s ease;
        }
        .submenu.open { grid-template-rows: 1fr; }
        .submenu-inner { min-height: 0; overflow: hidden; }
        .submenu .nav-item {
            position: relative;
            min-height: 39px;
            padding-left: 45px;
            font-size: .87rem;
        }
        .submenu .nav-item::before {
            content: "";
            position: absolute;
            left: 24px;
            width: 5px;
            height: 5px;
            border-radius: 50%;
            background: #b4bac6;
        }
        .submenu .nav-parent {
            min-height: 39px;
            padding-left: 45px;
            font-size: .87rem;
        }
        .submenu .nav-parent::before {
            content: "";
            position: absolute;
            left: 24px;
            width: 5px;
            height: 5px;
            border-radius: 50%;
            background: #b4bac6;
        }
        .submenu .nav-item.has-menu-visual::before,
        .submenu .nav-parent.has-menu-visual::before {
            display: none;
        }
        .submenu .nav-parent { position: relative; }
        .submenu.level-3 .nav-item {
            min-height: 36px;
            padding-left: 67px;
            font-size: .83rem;
        }
        .submenu.level-3 .nav-item::before {
            left: 48px;
            width: 4px;
            height: 4px;
            background: var(--primary);
        }
        .submenu .nav-item.has-menu-visual,
        .submenu .nav-parent.has-menu-visual {
            padding-left: 24px;
        }
        .submenu.level-3 .nav-item.has-menu-visual,
        .submenu.level-3 .nav-parent.has-menu-visual {
            padding-left: 48px;
        }
        .sidebar-foot {
            margin: 8px 14px 12px;
            padding: 9px 11px;
            border: 1px solid var(--border);
            border-radius: 10px;
            color: var(--muted);
            font-size: .62rem;
            line-height: 1.35;
            background: var(--surface-2);
        }
        .sidebar-foot strong { display: block; margin-bottom: 1px; color: var(--text);font-size:.69rem; }
        .sidebar-foot span { display:block;white-space:nowrap; }

        .app {
            min-height: 100vh;
            display: flex;
            flex-direction: column;
            padding-left: var(--sidebar);
        }
        .topbar {
            position: sticky;
            top: 0;
            z-index: 30;
            height: var(--topbar);
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 0 30px;
            border-bottom: 1px solid var(--border);
            background: color-mix(in srgb, var(--surface) 92%, transparent);
            backdrop-filter: blur(14px);
            flex: 0 0 var(--topbar);
        }
        .topbar-title { display: flex; align-items: center; gap: 15px; }
        .topbar-title h2 { margin: 0; font-size: 1.05rem; }
        .company-context-switcher{display:flex;align-items:center;gap:8px;padding:6px 8px 6px 11px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.company-context-switcher span{color:var(--muted);font-size:.65rem;font-weight:750;white-space:nowrap}.company-context-switcher select{max-width:210px;border:0;outline:0;color:var(--text);background:transparent;font-size:.75rem;font-weight:700}
        .topbar-search{position:absolute;inset:10px 18px 10px 18px;z-index:25;display:flex;align-items:center;gap:12px;padding:0 14px;border:1px solid var(--border);border-radius:13px;background:var(--surface);box-shadow:0 8px 24px rgba(20,32,68,.12)}
        .topbar-search[hidden]{display:none}.topbar-search>svg{width:21px;flex:0 0 auto;color:var(--primary)}
        .topbar-search input{width:100%;height:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:1rem}
        .topbar-search button{width:36px;height:36px;display:grid;place-items:center;flex:0 0 auto;border:0;border-radius:9px;background:var(--surface-2);color:var(--muted)}
        .topbar-search button:hover{color:var(--text);background:var(--primary-soft)}.topbar-search button svg{width:19px}
        .global-search-results{display:grid;gap:10px}
        .global-search-result{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;border:1px solid var(--border);border-radius:13px;background:var(--surface);color:var(--text);text-decoration:none;transition:.18s}
        .global-search-result:hover{border-color:var(--primary);background:var(--primary-soft);transform:translateY(-1px)}
        .global-search-visual{width:46px;height:46px;display:grid;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--search-color,var(--primary)),transparent 86%)}
        .global-search-visual img{width:22px;height:22px}.global-search-visual span{width:16px;height:16px;border-radius:50%;background:var(--search-color,var(--primary));box-shadow:0 0 0 5px color-mix(in srgb,var(--search-color,var(--primary)),transparent 84%)}
        .global-search-copy{display:flex;min-width:0;flex-direction:column;gap:4px}.global-search-copy strong{font-size:.92rem}.global-search-copy small{color:var(--muted);line-height:1.45}
        .global-search-enabled{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;background:#eaf8f1;color:#16845b;font-size:11px;font-weight:800}
        .global-search-enabled:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.global-search-empty{padding:42px;text-align:center;color:var(--muted)}
        @media(max-width:650px){.global-search-result{grid-template-columns:42px minmax(0,1fr)}.global-search-enabled{grid-column:2;justify-self:start}.topbar-search{inset:8px}}
        .breadcrumb { margin-top: 4px; color: var(--muted); font-size: .75rem; }
        .tools { display: flex; align-items: center; gap: 7px; }
        .density-switcher { display:flex;align-items:center;gap:4px;padding:3px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2); }
        .density-button { width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:8px;color:var(--muted);background:transparent;cursor:pointer; }
        .density-button:hover { color:var(--primary);background:var(--primary-soft); }
        .density-button.active { color:#fff;background:var(--primary);box-shadow:0 4px 10px color-mix(in srgb,var(--primary),transparent 72%); }
        .density-button svg { width:18px;height:18px; }
        .tool-button {
            width: 40px;
            height: 40px;
            display: grid;
            place-items: center;
            border: 0;
            border-radius: 10px;
            color: var(--muted);
            background: transparent;
            cursor: pointer;
            transition: color .15s, background .15s;
        }
        .tool-button:hover, .tool-button.active { color: var(--primary); background: var(--primary-soft); }
        .tool-button svg {
            width: 20px;
            height: 20px;
            transform-origin: center;
            transition: transform .24s cubic-bezier(.2, .8, .2, 1);
        }
        .tool-button:hover svg { transform: translateY(-2px) scale(1.1) rotate(4deg); }
        .deadline-notifications .tool-button { position:relative; }
        .tool-notification-badge { position:absolute;top:2px;right:1px;min-width:17px;height:17px;padding:0 4px;display:grid;place-items:center;border:2px solid var(--surface);border-radius:999px;background:#e5484d;color:#fff;font-size:9px;font-weight:900;line-height:1; }
        .deadline-notifications-menu { width:370px;z-index:30; }
        .deadline-notifications-menu .favorites-menu-head > div { display:flex;flex-direction:column;gap:3px; }
        .deadline-read-all { padding:6px 8px;border:0;border-radius:8px;background:var(--primary-soft);color:var(--primary);font-size:10px;font-weight:400;cursor:pointer; }
        .deadline-notification-item { display:grid;grid-template-columns:minmax(0,1fr) 30px;align-items:center;gap:5px;border-radius:10px;background:color-mix(in srgb,var(--primary),transparent 94%); }
        .deadline-notification-item + .deadline-notification-item { margin-top:4px; }
        .deadline-notification-item.is-read { grid-template-columns:minmax(0,1fr);background:transparent;opacity:.68; }
        .deadline-notification-item > a { display:flex;align-items:center;gap:10px;min-width:0;padding:10px 8px;color:var(--text);text-decoration:none; }
        .deadline-notification-item > a:hover strong { color:var(--primary); }
        .deadline-notification-item a > span:last-child { min-width:0; }
        .deadline-notification-item strong,.deadline-notification-item small { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
        .deadline-notification-item strong { font-size:.76rem;font-weight:400; }
        .deadline-notification-item small { margin-top:3px;color:var(--muted);font-size:.64rem; }
        .deadline-notification-icon { width:30px;height:30px;display:grid;place-items:center;flex:0 0 auto;border-radius:9px;background:var(--primary-soft);color:var(--primary); }
        .deadline-notification-icon svg { width:16px;height:16px; }
        .deadline-read-one { width:26px;height:26px;border:0;border-radius:8px;background:var(--surface);color:var(--primary);font-weight:900;cursor:pointer; }
        .deadline-read-one:hover { background:var(--primary);color:#fff; }
        .deadline-notifications-menu .favorites-menu-head strong,
        .deadline-notifications-menu .favorites-menu-head small,
        .deadline-notifications-menu .favorites-menu-footer {
            font-weight:400;
        }
        .divider { width: 1px; height: 26px; margin: 0 6px; background: var(--border); }

        .user, .favorites { position: relative; }
        .favorites-menu {
            position:absolute;top:calc(100% + 13px);right:0;width:330px;padding:10px;
            border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow);
            opacity:0;visibility:hidden;translate:0 -5px;transition:opacity .16s,translate .16s,visibility .16s;
        }
        .favorites-menu.open { opacity:1;visibility:visible;translate:0 0; }
        .favorites-menu-head { display:flex;align-items:center;justify-content:space-between;padding:8px 9px 12px;border-bottom:1px solid var(--border); }
        .favorites-menu-head strong { font-size:.82rem; }
        .favorites-menu-head small { color:var(--muted);font-size:.66rem; }
        .favorites-menu-list { padding-top:6px; }
        .favorite-link { display:flex;align-items:center;gap:10px;padding:10px 9px;border-radius:10px; }
        .favorite-link:hover { background:var(--primary-soft); }
        .favorite-link-icon { width:30px;height:30px;display:grid;place-items:center;flex:0 0 auto;border-radius:9px;color:var(--primary);background:var(--primary-soft); }
        .favorite-link-icon[style] { color:var(--favorite-color,var(--primary));background:color-mix(in srgb,var(--favorite-color,var(--primary)),transparent 86%); }
        [data-theme="dark"] .favorite-link-icon[style] { color:var(--favorite-color-dark,var(--favorite-color,var(--primary)));background:color-mix(in srgb,var(--favorite-color-dark,var(--favorite-color,var(--primary))),transparent 84%); }
        .favorite-link-icon img { width:16px;height:16px;filter:none; }
        .favorite-link-icon.menu-resource-dot i { width:9px;height:9px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor,transparent 82%); }
        .favorite-link > span:last-child { min-width:0; }
        .favorite-link strong,.favorite-link small { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
        .favorite-link strong { font-size:.76rem; }
        .favorite-link small { margin-top:3px;color:var(--muted);font-size:.64rem; }
        .favorites-empty { padding:22px 12px;color:var(--muted);font-size:.76rem;text-align:center; }
        .favorite-link-icon.history { color:var(--accent);background:color-mix(in srgb,var(--accent),transparent 86%);font-size:1rem;font-weight:850; }
        .favorites-menu-footer { display:block;margin-top:6px;padding:10px;border-top:1px solid var(--border);border-radius:8px;color:var(--primary);font-size:.72rem;font-weight:800;text-align:center; }
        .favorites-menu-footer:hover { background:var(--primary-soft); }
        .avatar-button {
            width: 43px;
            height: 43px;
            display: grid;
            place-items: center;
            border: 3px solid color-mix(in srgb, var(--accent) 35%, transparent);
            border-radius: 50%;
            color: #fff;
            font-weight: 800;
            background: linear-gradient(135deg, var(--accent), var(--primary));
            cursor: pointer;
        }
        .avatar-button.has-photo { padding: 0; overflow: hidden; }
        .avatar-button img, .mini-avatar img { width: 100%; height: 100%; display: block; object-fit: cover; }
        .user-menu {
            position: absolute;
            top: calc(100% + 13px);
            right: 0;
            width: 270px;
            padding: 10px;
            border: 1px solid var(--border);
            border-radius: 14px;
            background: var(--surface);
            box-shadow: var(--shadow);
            opacity: 0;
            visibility: hidden;
            translate: 0 -5px;
            transition: opacity .16s, translate .16s, visibility .16s;
        }
        .user-menu.open { opacity: 1; visibility: visible; translate: 0 0; }
        .user-info {
            display: flex;
            align-items: center;
            gap: 11px;
            padding: 9px 10px 14px;
            border-bottom: 1px solid var(--border);
        }
        .mini-avatar {
            width: 40px;
            height: 40px;
            display: grid;
            place-items: center;
            flex: 0 0 auto;
            border-radius: 50%;
            color: white;
            font-weight: 800;
            background: linear-gradient(135deg, var(--accent), var(--primary));
        }
        .mini-avatar.has-photo { overflow: hidden; }
        .user-info strong, .user-info small { display: block; }
        .user-info small { margin-top: 3px; color: var(--muted); }
        .menu-link, .theme-row {
            min-height: 42px;
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 0 10px;
            border-radius: 9px;
            color: var(--muted);
            font-size: .86rem;
            font-weight: 650;
        }
        .menu-link:hover { color: var(--text); background: var(--surface-2); }
        .menu-link svg, .theme-row svg { width: 18px; height: 18px; }
        .theme-row { justify-content: space-between; }
        .theme-label { display: flex; align-items: center; gap: 10px; }
        .switch {
            width: 38px;
            height: 22px;
            position: relative;
            border: 0;
            border-radius: 20px;
            background: #d4d8e1;
            cursor: pointer;
        }
        .switch::after {
            content: "";
            position: absolute;
            width: 16px;
            height: 16px;
            top: 3px;
            left: 3px;
            border-radius: 50%;
            background: #fff;
            box-shadow: 0 1px 4px rgba(0,0,0,.2);
            transition: left .2s;
        }
        [data-theme="dark"] .switch { background: var(--primary); }
        [data-theme="dark"] .switch::after { left: 19px; }
        .menu-style-switch {
            min-width:48px;height:25px;padding:0 9px;border:1px solid var(--border);border-radius:8px;
            color:var(--muted);background:var(--surface-2);font-size:.66rem;font-weight:850;cursor:pointer;
            transition:color .18s,border-color .18s,background .18s,box-shadow .18s;
        }
        .menu-style-switch[aria-pressed="true"] {
            color:#fff;border-color:color-mix(in srgb,var(--primary),#fff 18%);
            background:linear-gradient(145deg,color-mix(in srgb,var(--primary),#fff 18%),color-mix(in srgb,var(--primary),#000 24%));
            box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 3px 7px color-mix(in srgb,var(--primary),transparent 65%);
        }
        .sidebar-theme-select {
            width:88px;height:29px;padding:0 24px 0 8px;border:1px solid var(--border);
            border-radius:8px;color:var(--text);background:var(--surface-2);
            font-size:.68rem;font-weight:750;cursor:pointer;
        }
        .sidebar-theme-select:focus {
            outline:2px solid color-mix(in srgb,var(--primary),transparent 72%);
            border-color:var(--primary);
        }
        .logout { margin-top: 5px; border-top: 1px solid var(--border); padding-top: 5px; color: #e25563; }

        /* Variante menu tridimensionale, persistente e indipendente dal tema colore. */
        [data-menu-style="3d"] .sidebar {
            border-right-color:color-mix(in srgb,var(--border),var(--primary) 18%);
            background:
                linear-gradient(90deg,rgba(255,255,255,.04),transparent 28%),
                linear-gradient(155deg,color-mix(in srgb,var(--surface),var(--primary) 4%),var(--surface));
            box-shadow:8px 0 24px rgba(20,31,55,.13),inset -1px 0 rgba(255,255,255,.35);
        }
        [data-theme="dark"][data-menu-style="3d"] .sidebar {
            box-shadow:10px 0 30px rgba(0,0,0,.38),inset -1px 0 rgba(255,255,255,.06);
        }
        [data-menu-style="3d"] .sidebar-head {
            background:linear-gradient(180deg,color-mix(in srgb,var(--surface),#fff 5%),color-mix(in srgb,var(--surface),var(--primary) 4%));
            box-shadow:0 5px 13px rgba(28,40,70,.07),inset 0 1px rgba(255,255,255,.5);
        }
        [data-menu-style="3d"] .nav-item,
        [data-menu-style="3d"] .nav-parent {
            margin-top:3px;margin-bottom:3px;
            border:1px solid color-mix(in srgb,var(--border),transparent 28%);
            background:linear-gradient(145deg,color-mix(in srgb,var(--surface),#fff 5%),color-mix(in srgb,var(--surface-2),var(--primary) 2%));
            box-shadow:0 3px 7px rgba(24,37,68,.08),inset 0 1px rgba(255,255,255,.62),inset 0 -1px rgba(21,35,65,.04);
            transform:translateZ(0);
            transition:transform .17s,box-shadow .17s,color .17s,background .17s,border-color .17s;
        }
        [data-theme="dark"][data-menu-style="3d"] .nav-item,
        [data-theme="dark"][data-menu-style="3d"] .nav-parent {
            border-color:rgba(255,255,255,.055);
            background:linear-gradient(145deg,color-mix(in srgb,var(--surface),#fff 4%),color-mix(in srgb,var(--surface),#000 12%));
            box-shadow:0 4px 9px rgba(0,0,0,.22),inset 0 1px rgba(255,255,255,.07),inset 0 -1px rgba(0,0,0,.2);
        }
        [data-menu-style="3d"] .nav-item:hover,
        [data-menu-style="3d"] .nav-parent:hover {
            transform:translateY(-1px);
            border-color:color-mix(in srgb,var(--primary),transparent 45%);
            box-shadow:0 7px 14px color-mix(in srgb,var(--primary),transparent 82%),inset 0 1px rgba(255,255,255,.65);
        }
        [data-menu-style="3d"] .nav-item:active,
        [data-menu-style="3d"] .nav-parent:active {
            transform:translateY(1px);
            box-shadow:inset 0 2px 5px rgba(20,32,60,.16);
        }
        [data-menu-style="3d"] .nav-item.active {
            color:#fff;border-color:color-mix(in srgb,var(--primary),#fff 18%);
            background:linear-gradient(145deg,color-mix(in srgb,var(--primary),#fff 16%),color-mix(in srgb,var(--primary),#000 23%));
            box-shadow:0 7px 15px color-mix(in srgb,var(--primary),transparent 67%),inset 0 1px rgba(255,255,255,.3),inset 0 -2px rgba(0,0,0,.12);
        }
        [data-menu-style="3d"] .nav-parent.active-path {
            color:var(--primary);border-color:color-mix(in srgb,var(--primary),transparent 56%);
            background:linear-gradient(145deg,color-mix(in srgb,var(--primary-soft),#fff 10%),color-mix(in srgb,var(--primary-soft),var(--primary) 8%));
            box-shadow:0 5px 11px color-mix(in srgb,var(--primary),transparent 82%),inset 0 1px rgba(255,255,255,.45);
        }
        [data-menu-style="3d"] .nav-item.active .nav-icon { color:#fff; }

        /* Contrasto completo quando il colore della barra è forzato. */
        html[data-sidebar-theme="dark"] .sidebar {
            --sidebar-primary: color-mix(in srgb, var(--primary), #fff 38%);
            color:var(--text);
        }
        html[data-sidebar-theme="dark"] .sidebar .nav-label { color:#aeb7ca; }
        html[data-sidebar-theme="dark"] .sidebar .nav-item,
        html[data-sidebar-theme="dark"] .sidebar .nav-parent { color:#aeb7ca; }
        html[data-sidebar-theme="dark"] .sidebar .nav-item:hover,
        html[data-sidebar-theme="dark"] .sidebar .nav-parent:hover {
            color:#fff;background:#252a34;
        }
        html[data-sidebar-theme="dark"] .sidebar .nav-item.active {
            color:#fff;background:color-mix(in srgb,var(--sidebar-primary),transparent 72%);
        }
        html[data-sidebar-theme="dark"] .sidebar .nav-item.active > .nav-text,
        html[data-sidebar-theme="dark"] .sidebar .nav-item.active .nav-text {
            color:#fff !important;
        }
        html[data-sidebar-theme="dark"] .sidebar .nav-parent.active-path {
            color:#fff;background:color-mix(in srgb,var(--sidebar-primary),transparent 78%);
        }
        html[data-sidebar-theme="dark"] .sidebar .nav-parent.active-path > .nav-text {
            color:#fff !important;
        }
        html[data-sidebar-theme="dark"] .sidebar .nav-item.active > .nav-icon,
        html[data-sidebar-theme="dark"] .sidebar .nav-parent.active-path > .nav-icon {
            color:#fff !important;
        }
        html[data-sidebar-theme="dark"] .sidebar .nav-item.active > .menu-svg-icon,
        html[data-sidebar-theme="dark"] .sidebar .nav-parent.active-path > .menu-svg-icon {
            background-color:#fff !important;
        }
        html[data-sidebar-theme="dark"] .sidebar .nav-icon {
            color:var(--menu-color-dark,var(--sidebar-primary));
        }
        html[data-sidebar-theme="dark"] .sidebar .menu-svg-icon {
            background-color:var(--menu-color-dark,var(--sidebar-primary));
        }
        html[data-sidebar-theme="dark"] .sidebar .menu-dot {
            background:var(--menu-color-dark,var(--sidebar-primary));
        }
        html[data-sidebar-theme="dark"] .sidebar .submenu .nav-item::before,
        html[data-sidebar-theme="dark"] .sidebar .submenu .nav-parent::before { background:#697386; }
        html[data-sidebar-theme="dark"] .sidebar .submenu.level-3 .nav-item::before {
            background:var(--sidebar-primary);
        }
        html[data-sidebar-theme="dark"] .sidebar .sidebar-toggle {
            color:#c3cada;background:#252a34;border-color:#39404e;
        }
        html[data-sidebar-theme="dark"][data-menu-style="3d"] .sidebar {
            box-shadow:10px 0 30px rgba(0,0,0,.38),inset -1px 0 rgba(255,255,255,.06);
        }
        html[data-sidebar-theme="dark"][data-menu-style="3d"] .sidebar .nav-item,
        html[data-sidebar-theme="dark"][data-menu-style="3d"] .sidebar .nav-parent {
            border-color:rgba(255,255,255,.07);
            background:linear-gradient(145deg,#232730,#171a20);
            box-shadow:0 4px 9px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.07);
        }
        html[data-sidebar-theme="dark"][data-menu-style="3d"] .sidebar .nav-item.active {
            color:#fff;border-color:var(--sidebar-primary);
            background:linear-gradient(145deg,var(--sidebar-primary),color-mix(in srgb,var(--sidebar-primary),#000 32%));
        }
        html[data-sidebar-theme="dark"][data-menu-style="3d"] .sidebar .nav-item.active > .nav-text { color:#fff; }

        html[data-sidebar-theme="light"] .sidebar .nav-icon {
            color:var(--menu-color,currentColor);
        }
        html[data-sidebar-theme="light"] .sidebar .menu-svg-icon {
            background-color:var(--menu-color,currentColor);
        }
        html[data-sidebar-theme="light"] .sidebar .menu-dot {
            background:var(--menu-color,var(--primary));
        }
        html[data-sidebar-theme="light"] .sidebar .nav-item.active > .nav-text { color:var(--primary); }
        html[data-sidebar-theme="light"] body.sidebar-collapsed.sidebar-peek .sidebar .logo-light { display:block; }
        html[data-sidebar-theme="light"] body.sidebar-collapsed.sidebar-peek .sidebar .logo-dark { display:none; }
        html[data-sidebar-theme="dark"] body.sidebar-collapsed.sidebar-peek .sidebar .logo-light { display:none; }
        html[data-sidebar-theme="dark"] body.sidebar-collapsed.sidebar-peek .sidebar .logo-dark { display:block; }
        @media (min-width: 761px) {
            html[data-sidebar-theme="light"] body.sidebar-collapsed:not(.sidebar-peek) .sidebar .brand-full,
            html[data-sidebar-theme="dark"] body.sidebar-collapsed:not(.sidebar-peek) .sidebar .brand-full {
                display:none;
            }
            html[data-sidebar-theme="light"] body.sidebar-collapsed:not(.sidebar-peek) .sidebar .brand-mark,
            html[data-sidebar-theme="dark"] body.sidebar-collapsed:not(.sidebar-peek) .sidebar .brand-mark {
                display:block;
            }
        }
        [data-menu-style="3d"] .submenu {
            margin:2px 3px 5px;padding:1px 3px;border-radius:10px;
            background:color-mix(in srgb,var(--surface-2),var(--primary) 2%);
            box-shadow:inset 2px 0 5px rgba(24,37,68,.06);
        }
        [data-menu-style="3d"] .menu-svg-icon,
        [data-menu-style="3d"] .menu-dot {
            filter:drop-shadow(0 2px 2px color-mix(in srgb,currentColor,transparent 62%));
        }

        main {
            flex: 1 0 auto;
            padding: 32px 30px 48px;
        }
        .page-head { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 25px; }
        .page-head h1 { margin: 0 0 8px; font-size: 1.65rem; letter-spacing: -.035em; }
        .page-head p { margin: 0; color: var(--muted); font-size: .9rem; }
        .date-chip {
            align-self: center;
            padding: 9px 13px;
            border: 1px solid var(--border);
            border-radius: 9px;
            color: var(--muted);
            font-size: .78rem;
            font-weight: 650;
            background: var(--surface);
        }
        .stats {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 18px;
            margin-bottom: 18px;
        }
        .card {
            border: 1px solid var(--border);
            border-radius: 14px;
            background: var(--surface);
            box-shadow: 0 2px 4px rgba(25, 36, 65, .02);
        }
        .stat-card { padding: 22px; }
        .stat-head { display: flex; align-items: center; justify-content: space-between; }
        .stat-icon {
            width: 42px;
            height: 42px;
            display: grid;
            place-items: center;
            border-radius: 11px;
            color: var(--primary);
            background: var(--primary-soft);
        }
        .stat-icon svg { width: 21px; height: 21px; }
        .stat-label { margin-top: 18px; color: var(--muted); font-size: .82rem; font-weight: 650; }
        .stat-value { margin-top: 5px; font-size: 1.7rem; font-weight: 800; letter-spacing: -.04em; }
        .badge {
            padding: 5px 8px;
            border-radius: 7px;
            color: #15956e;
            font-size: .7rem;
            font-weight: 800;
            background: rgba(32, 201, 151, .11);
        }
        .content-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .7fr); gap: 18px; }
        .welcome {
            min-height: 300px;
            display: flex;
            align-items: center;
            padding: 36px;
            overflow: hidden;
            background:
                radial-gradient(circle at 90% 20%, rgba(37, 207, 215, .17), transparent 30%),
                radial-gradient(circle at 75% 100%, rgba(49, 87, 220, .15), transparent 34%),
                var(--surface);
        }
        .welcome-copy { max-width: 510px; }
        .welcome h3 { margin: 0 0 13px; font-size: 1.4rem; }
        .welcome p { margin: 0; color: var(--muted); font-size: .91rem; line-height: 1.7; }
        .quick { padding: 24px; }
        .quick h3 { margin: 0; font-size: 1rem; }
        .quick-head { display:flex;align-items:center;justify-content:space-between;margin-bottom:8px; }
        .quick-head span { color:var(--muted);font-size:.67rem;font-weight:700; }
        .dashboard-favorites-list .favorite-link { padding:10px 4px;border-bottom:1px solid var(--border);border-radius:0; }
        .dashboard-favorites-list .favorite-link:last-child { border-bottom:0; }
        .dashboard-favorites-list .favorite-link:hover { padding-left:8px;border-radius:9px; }
        .dashboard-favorites-list .favorites-empty { padding:30px 10px; }
        .dashboard-favorites-footer { display:flex;align-items:center;justify-content:center;gap:7px;margin:10px -4px -5px;padding:10px;border-top:1px solid var(--border);border-radius:9px;color:var(--primary);font-size:.72rem;font-weight:800; }
        .dashboard-favorites-footer:hover { background:var(--primary-soft); }
        .dashboard-favorites-footer img { width:14px; }
        .quick-link {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 12px 0;
            border-bottom: 1px solid var(--border);
            color: var(--muted);
            font-size: .86rem;
            font-weight: 650;
        }
        .quick-link:last-child { border: 0; }
        .quick-link:hover { color: var(--primary); }
        .quick-link svg { width: 18px; height: 18px; }
        .template-intro { display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px; }
        .template-intro h1 { margin: 0 0 8px; font-size: 1.65rem; letter-spacing: -.035em; }
        .template-intro p { margin: 0; color: var(--muted); line-height: 1.6; }
        .template-return { display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;gap:8px;text-decoration:none; }
        .template-return img { width:16px;height:16px;filter:var(--menu-icon-filter,none); }
        html[data-density="compact"] .template-intro { margin-bottom:16px; }
        .document-party-summary { display:flex;align-items:center;flex-wrap:wrap;gap:5px;color:var(--muted);line-height:1.45; }
        .document-party-summary strong { color:var(--text);font-weight:800; }
        .sidebar-theme-setting {
            display:flex;align-items:center;justify-content:space-between;gap:20px;
            margin:20px 0 24px;padding:18px 20px;border:1px solid var(--border);
            border-radius:14px;background:var(--surface);
        }
        .sidebar-theme-setting strong { display:block;font-size:.88rem; }
        .sidebar-theme-setting small { display:block;margin-top:4px;color:var(--muted); }
        .sidebar-theme-options { display:flex;gap:6px;padding:4px;border-radius:10px;background:var(--surface-2); }
        .sidebar-theme-option {
            padding:8px 13px;border:1px solid transparent;border-radius:8px;
            color:var(--muted);background:transparent;font-size:.76rem;font-weight:800;cursor:pointer;
        }
        .sidebar-theme-option.active {
            color:#fff;border-color:var(--primary);background:var(--primary);
            box-shadow:0 4px 10px color-mix(in srgb,var(--primary),transparent 72%);
        }
        .template-grid {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 18px;
        }
        .template-card {
            --preview-page: var(--preview-page-light);
            --preview-surface: var(--preview-surface-light);
            --preview-primary: var(--preview-primary-light);
            padding: 0;
            overflow: hidden;
            border: 2px solid var(--border);
            color: var(--text);
            text-align: left;
            cursor: pointer;
            transition: border-color .18s, transform .18s, box-shadow .18s;
        }
        [data-theme="dark"] .template-card {
            --preview-page: var(--preview-page-dark);
            --preview-surface: var(--preview-surface-dark);
            --preview-primary: var(--preview-primary-dark);
            border-color: var(--border);
            color: var(--text);
            background: var(--surface);
        }
        .template-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
        .template-card.active,
        [data-theme="dark"] .template-card.active { border-color: var(--primary); }
        .template-preview {
            height: 132px;
            display: grid;
            grid-template-columns: 31% 1fr;
            padding: 14px;
            gap: 10px;
            background: var(--preview-page);
        }
        .preview-sidebar { border-radius: 8px; background: var(--preview-surface); }
        .preview-main { display: flex; flex-direction: column; gap: 8px; }
        .preview-top { height: 24px; border-radius: 7px; background: var(--preview-surface); }
        .preview-content { flex: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
        .preview-content i { border-radius: 7px; background: var(--preview-surface); }
        .preview-content i:first-child { box-shadow: inset 0 4px 0 var(--preview-primary); }
        .template-info {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 17px;
            color: var(--text);
            background: var(--surface);
        }
        .template-info strong { display: block; color: var(--text); font-size: .92rem; }
        .template-info small { display: block; margin-top: 4px; color: var(--muted); }
        [data-theme="dark"] .template-info {
            color: var(--text);
            background: var(--surface);
        }
        [data-theme="dark"] .template-info strong { color: var(--text); }
        [data-theme="dark"] .template-info small { color: var(--muted); }
        .palette-dots { display: flex; gap: 5px; }
        .palette-dots i { width: 13px; height: 13px; border-radius: 50%; }
        .profile-hero {
            position:relative;
            display: grid;
            grid-template-columns:minmax(190px,28%) 1fr;
            align-items: center;
            gap: 0;
            margin-bottom: 20px;
            min-height:172px;
            overflow:hidden;
            padding:0;
            border:0;
            background:
                radial-gradient(circle at 84% 5%, color-mix(in srgb,var(--accent),transparent 35%),transparent 35%),
                linear-gradient(118deg,color-mix(in srgb,var(--primary),#101c47 16%),color-mix(in srgb,var(--primary),var(--accent) 44%));
            box-shadow:0 18px 38px color-mix(in srgb,var(--primary),transparent 78%);
        }
        .profile-hero::after {
            content:"";position:absolute;width:280px;height:280px;right:-70px;bottom:-205px;
            border:42px solid rgba(255,255,255,.1);border-radius:50%;
        }
        .profile-hero-media {
            position:relative;z-index:1;align-self:stretch;display:grid;place-items:center;
            min-height:172px;padding:28px;
            border-right:1px solid rgba(255,255,255,.2);
            background:linear-gradient(145deg,rgba(255,255,255,.16),rgba(255,255,255,.035));
        }
        .profile-hero-media::after {
            content:"";position:absolute;right:-1px;top:20%;height:60%;width:3px;
            border-radius:4px;background:rgba(255,255,255,.42);
        }
        .profile-photo {
            position:relative;z-index:1;
            width: 104px; height: 104px; flex: 0 0 auto; display: grid; place-items: center;
            overflow: hidden; border: 4px solid rgba(255,255,255,.92); border-radius: 50%; color: #fff;
            font-size: 1.8rem; font-weight: 800; background: linear-gradient(135deg,var(--accent),var(--primary));
            box-shadow: 0 0 0 7px rgba(255,255,255,.14), 0 14px 30px rgba(8,16,45,.28);
        }
        .profile-photo img { width:100%;height:100%;object-fit:cover; }
        .profile-identity { position:relative;z-index:1;padding:34px 42px; }
        .profile-identity h1 { margin:0 0 7px;color:#fff;font-size:1.55rem;letter-spacing:-.025em; }
        .profile-identity p { margin:0 0 12px;color:rgba(255,255,255,.78); }
        .role-pill { display:inline-block;padding:6px 10px;border:1px solid rgba(255,255,255,.22);border-radius:8px;color:#fff;font-size:.72rem;font-weight:800;background:rgba(255,255,255,.14);backdrop-filter:blur(8px); }
        .profile-tabs {
            display:flex;gap:6px;margin:0 0 20px;padding:6px;overflow-x:auto;
            border:1px solid var(--border);border-radius:14px;background:var(--surface);
            box-shadow:0 6px 18px rgba(25,36,65,.04);
        }
        .profile-tab {
            min-width:max-content;display:flex;align-items:center;gap:8px;padding:11px 15px;
            border:0;border-radius:10px;color:var(--muted);background:transparent;
            font-size:.8rem;font-weight:800;cursor:pointer;
        }
        .profile-tab svg { width:17px;height:17px; }
        .profile-tab:hover { color:var(--primary);background:var(--primary-soft); }
        .profile-tab.active { color:#fff;background:var(--primary);box-shadow:0 6px 14px color-mix(in srgb,var(--primary),transparent 72%); }
        .profile-panel { display:none; }
        .profile-panel.active { display:block;animation:profilePanelIn .2s ease; }
        .profile-panels,
        .profile-panel,
        .profile-panel .profile-card { width:100%; }
        .profile-panel .profile-card { max-width:none; }
        .profile-panel .photo-drop { width:100%; }
        @keyframes profilePanelIn { from { opacity:0;transform:translateY(4px); } to { opacity:1;transform:none; } }
        .profile-card { padding:25px; }
        .profile-card h2 { margin:0 0 5px;font-size:1.05rem; }
        .profile-card > p { margin:0 0 22px;color:var(--muted);font-size:.82rem;line-height:1.55; }
        .profile-form-grid { display:grid;grid-template-columns:1fr 1fr;gap:17px; }
        .profile-field.wide { grid-column:1/-1; }
        .profile-field label { display:block;margin-bottom:8px;font-size:.78rem;font-weight:750; }
        .profile-field input {
            width:100%;height:47px;padding:0 13px;border:1px solid var(--border);border-radius:10px;
            color:var(--text);font:inherit;background:var(--surface);outline:none;
        }
        .profile-field input:focus { border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 12%,transparent); }
        .profile-submit { height:45px;padding:0 18px;border:0;border-radius:10px;color:#fff;font-weight:800;background:var(--primary);cursor:pointer; }
        .profile-danger-button {
            height:45px;padding:0 18px;border:1px solid color-mix(in srgb,#dc3545,var(--border) 28%);
            border-radius:10px;color:#dc3545;font-weight:800;
            background:color-mix(in srgb,#dc3545,transparent 92%);cursor:pointer;
            transition:color .18s,background .18s,border-color .18s,transform .18s;
        }
        .profile-danger-button:hover {
            color:#fff;border-color:#dc3545;background:#dc3545;transform:translateY(-1px);
        }
        .profile-security-grid { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px; }
        .profile-security-grid .profile-card { height:100%; }
        .photo-drop { padding:24px;border:1px dashed var(--border);border-radius:14px;text-align:center;background:var(--surface-2); }
        .photo-uploader { position:relative;width:126px;height:126px;margin:0 auto 18px; }
        .photo-preview {
            width:126px;height:126px;display:grid;place-items:center;overflow:hidden;
            border:4px solid var(--surface);border-radius:50%;color:#fff;font-size:1.8rem;font-weight:800;
            background:linear-gradient(135deg,var(--accent),var(--primary));
            box-shadow:0 0 0 1px var(--border),0 12px 26px rgba(20,30,60,.16);
        }
        .photo-preview img { width:100%;height:100%;display:block;object-fit:cover; }
        .camera-button {
            position:absolute;right:-2px;bottom:5px;width:39px;height:39px;display:grid;place-items:center;
            border:3px solid var(--surface);border-radius:50%;color:#fff;background:var(--primary);
            box-shadow:0 5px 13px rgba(20,30,60,.22);cursor:pointer;transition:transform .18s,background .18s;
        }
        .camera-button:hover { transform:scale(1.08);background:var(--accent); }
        .camera-button svg { width:18px;height:18px; }
        .photo-input { position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none; }
        .photo-status { min-height:20px;margin:0 0 15px;color:var(--muted);font-size:.78rem;line-height:1.5; }
        .photo-status.processing { color:var(--primary); }
        .photo-status.error { color:#cf4452; }
        .photo-drop .profile-submit:disabled { opacity:.5;cursor:not-allowed; }
        .profile-alert { margin-bottom:20px;padding:13px 15px;border-radius:10px;font-size:.84rem; }
        .profile-alert.success { color:#12805c;background:rgba(32,201,151,.12); }
        .profile-alert.error { color:#cf4452;background:rgba(220,53,69,.11); }
        .admin-heading { display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px; }
        .admin-heading h1 { margin:0 0 7px;font-size:1.65rem;letter-spacing:-.035em; }
        .admin-heading p { margin:0;color:var(--muted);font-size:.88rem; }
        .admin-new { padding:10px 14px;border-radius:9px;color:#fff;font-size:.82rem;font-weight:800;background:var(--primary); }
        .admin-layout { display:grid;grid-template-columns:minmax(280px,.7fr) minmax(460px,1.3fr);gap:20px;align-items:start; }
        .admin-list { overflow:hidden; }
        .admin-list-head { display:flex;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--border);font-size:.86rem;font-weight:800; }
        .admin-list-head span { color:var(--muted); }
        .admin-list-item { display:flex;align-items:center;gap:12px;padding:14px 17px;border-bottom:1px solid var(--border);transition:background .15s; }
        .admin-list-item:hover,.admin-list-item.active { background:var(--primary-soft); }
        .admin-avatar { width:39px;height:39px;display:grid;place-items:center;flex:0 0 auto;border-radius:10px;color:var(--primary);font-size:.75rem;font-weight:850;background:var(--primary-soft); }
        .role-icon { font-size:1.3rem; }
        .admin-list-item > span:nth-child(2) { min-width:0;flex:1; }
        .admin-list-item strong,.admin-list-item small,.admin-list-item em { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
        .admin-list-item strong { font-size:.84rem; }
        .admin-list-item small { margin-top:3px;color:var(--muted);font-size:.72rem; }
        .admin-list-item em { margin-top:5px;color:var(--primary);font-size:.67rem;font-style:normal; }
        .status-dot { width:8px;height:8px;border-radius:50%;background:#c5cad3; }.status-dot.online{background:#24b47e}
        .system-badge { padding:4px 6px;border-radius:5px;color:var(--muted);font-size:.58rem;background:var(--surface-2); }
        .admin-editor { padding:25px; }.admin-editor h2{margin:0 0 5px;font-size:1.08rem}.admin-editor>p{margin:0 0 22px;color:var(--muted);font-size:.8rem}
        .profile-field select { width:100%;height:47px;padding:0 12px;border:1px solid var(--border);border-radius:10px;color:var(--text);font:inherit;background:var(--surface);outline:none; }
        .profile-field select.color-select { font-weight:750; }
        .profile-field select.color-select option { padding:8px;font-weight:750; }
        .resource-picker { width:100%; }
        .resource-picker-toggle {
            width:100%;height:47px;display:flex;align-items:center;gap:11px;padding:0 38px 0 12px;
            border:1px solid var(--border);border-radius:10px;color:var(--text);font:inherit;text-align:left;
            background:var(--surface);box-shadow:none;
        }
        .resource-picker-toggle:hover,.resource-picker-toggle:focus,.resource-picker-toggle.show {
            border-color:var(--primary);color:var(--text);background:var(--surface);
            box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 12%,transparent);
        }
        .resource-picker-toggle::after { position:absolute;right:14px;top:50%;translate:0 -50%; }
        .resource-picker-menu {
            width:100%;max-height:310px;overflow-y:auto;padding:7px;
            border:1px solid var(--border);border-radius:11px;color:var(--text);
            background:var(--surface);box-shadow:var(--shadow);
        }
        .resource-option {
            min-height:40px;display:flex;align-items:center;gap:12px;padding:8px 10px;
            border-radius:8px;color:var(--text);font-size:.82rem;font-weight:650;background:transparent;
        }
        .resource-option:hover,.resource-option:focus,.resource-option.active {
            color:var(--primary);background:var(--primary-soft);
        }
        .picker-swatch {
            width:19px;height:19px;display:block;flex:0 0 19px;
            border:2px solid color-mix(in srgb,var(--surface) 75%,transparent);border-radius:50%;
            box-shadow:0 0 0 1px var(--border);
        }
        .picker-swatch.system { background:conic-gradient(var(--primary),var(--accent),#e3602c,var(--primary)); }
        .picker-icon { width:20px;height:20px;display:block;flex:0 0 20px;object-fit:contain; }
        [data-theme="dark"] .picker-icon { filter:invert(1) brightness(1.7); }
        [data-theme="dark"] .resource-option.active .picker-icon,
        [data-theme="dark"] .resource-option:hover .picker-icon { filter:none;opacity:.8; }
        .picker-label { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
        .tree-panel { margin:22px 0;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2); }
        .tree-title { display:flex;justify-content:space-between;align-items:center;margin-bottom:10px; }.tree-title strong{font-size:.84rem}.tree-title small{color:var(--muted);font-size:.68rem}
        .tree-panel details { border-top:1px solid var(--border); }.tree-panel summary{display:flex;justify-content:space-between;padding:11px 3px;color:var(--text);font-size:.78rem;font-weight:800;cursor:pointer}.tree-panel summary small{color:var(--muted)}
        .tree-children { position:relative;display:grid;gap:6px;padding:0 0 10px 19px; }.tree-children::before{content:"";position:absolute;left:7px;top:0;bottom:14px;border-left:1px solid var(--border)}
        .tree-check { display:flex;align-items:center;gap:9px;padding:8px;border-radius:8px;cursor:pointer; }.tree-check:hover{background:var(--surface)}.tree-check input{accent-color:var(--primary)}
        .tree-check span{font-size:.77rem;font-weight:700}.tree-check small{display:block;margin-top:2px;color:var(--muted);font-size:.62rem}.tree-empty{color:var(--muted);font-size:.72rem}
        .admin-switch { display:flex;align-items:center;gap:9px;margin:0 0 18px;font-size:.78rem;font-weight:700;cursor:pointer; }.admin-switch input{accent-color:var(--primary)}
        .menu-admin-grid { display:grid;grid-template-columns:minmax(520px,1.2fr) minmax(420px,.8fr);gap:20px;align-items:start; }
        .menu-table-wrap { overflow:auto; }.admin-table{width:100%;border-collapse:collapse;font-size:.75rem}.admin-table th{padding:13px 15px;color:var(--muted);font-size:.65rem;text-align:left;text-transform:uppercase;background:var(--surface-2)}.admin-table td{padding:13px 15px;border-top:1px solid var(--border)}.admin-table tbody tr{cursor:pointer}.admin-table tbody tr:hover,.admin-table tr.selected{background:var(--primary-soft)}
        .menu-row-title{display:flex;align-items:center;gap:9px}.menu-row-title>i{color:var(--item-color,var(--primary));font-size:1.2rem;font-style:normal}.menu-row-title strong,.menu-row-title small{display:block}.menu-row-title small{margin-top:3px;color:var(--muted);font-size:.62rem}
        .table-status{padding:4px 7px;border-radius:6px;color:var(--muted);background:var(--surface-2)}.table-status.active{color:#12805c;background:rgba(32,201,151,.12)}
        .menu-editor{position:sticky;top:96px}.compact-tree{max-height:230px;overflow:auto}.roles-grid{grid-template-columns:1fr 1fr}
        .portal-footer {
            display: flex;
            justify-content: space-between;
            gap: 20px;
            padding: 20px 30px;
            border-top: 1px solid var(--border);
            color: var(--muted);
            font-size: .76rem;
            background: var(--surface);
            flex: 0 0 auto;
        }
        .portal-footer a:hover { color: var(--primary); }
        .overlay { display: none; }

        @media (max-width: 980px) {
            :root { --sidebar: 245px; }
            .stats { grid-template-columns: 1fr 1fr; }
            .stats .card:last-child { grid-column: 1 / -1; }
            .content-grid { grid-template-columns: 1fr; }
            .template-grid { grid-template-columns: 1fr 1fr; }
            .profile-layout { grid-template-columns:1fr; }
            .admin-layout,.menu-admin-grid { grid-template-columns:1fr; }
            .menu-editor { position:static; }
        }
        @media (max-width: 760px) {
            .template-intro { align-items:stretch;flex-direction:column; }
            .template-return { width:100%; }
            body.sidebar-collapsed { --sidebar: 275px; }
            .sidebar { transform: translateX(-100%); width: 275px; }
            .sidebar.open { transform: translateX(0); }
            .mobile-close, .mobile-menu { display: grid; place-items: center; }
            .sidebar-toggle { display: none; }
            body.sidebar-collapsed .brand-full { display: block; }
            body.sidebar-collapsed .brand-mark { display: none; }
            body.sidebar-collapsed .nav-label { display: block; }
            body.sidebar-collapsed .nav-text { display: inline; }
            body.sidebar-collapsed .nav-parent .chevron { display: block; }
            body.sidebar-collapsed .submenu { display: grid; }
            body.sidebar-collapsed .sidebar-foot { display: block; }
            body.sidebar-collapsed .sidebar-head { justify-content: space-between; padding: 0 22px; }
            body.sidebar-collapsed .nav { overflow-y: auto; }
            body.sidebar-collapsed .nav-item,
            body.sidebar-collapsed .nav-parent { justify-content: flex-start; width: 100%; padding: 0 13px; }
            .app { padding-left: 0; }
            .topbar { padding: 0 18px; }
            .topbar-title h2, .breadcrumb { display: none; }
            .company-context-switcher span{display:none}.company-context-switcher select{max-width:145px}
            .tool-button:nth-of-type(1), .tool-button:nth-of-type(2) { display: none; }
            main { padding: 25px 18px 36px; }
            .overlay {
                position: fixed;
                inset: 0;
                z-index: 35;
                background: rgba(15, 20, 32, .45);
            }
            .overlay.open { display: block; }
        }

        /* Menu flat: contesto, area e pagina corrente devono avere pesi distinti. */
        html[data-menu-style="flat"] .sidebar #sidebarNav > .nav-parent.active-path {
            color:var(--primary);
            background:color-mix(in srgb,var(--primary-soft),transparent 58%);
            box-shadow:inset 2px 0 color-mix(in srgb,var(--primary),transparent 38%);
            font-weight:650;
        }
        html[data-menu-style="flat"] .sidebar #sidebarNav > .submenu > .submenu-inner > .nav-parent.active-path {
            color:var(--primary);
            background:color-mix(in srgb,var(--primary-soft),transparent 24%);
            box-shadow:inset 3px 0 var(--primary);
            font-weight:650;
        }
        html[data-menu-style="flat"] .sidebar .nav-item.active {
            color:#fff !important;
            background:var(--sidebar-primary,var(--primary));
            box-shadow:0 4px 10px color-mix(in srgb,var(--primary),transparent 72%);
            font-weight:750;
        }
        html[data-menu-style="flat"] .sidebar .nav-item.active > .nav-text {
            color:#fff !important;
        }
        html[data-menu-style="flat"] .sidebar .nav-item.active > .menu-bootstrap-icon {
            filter:brightness(0) invert(1) !important;
        }
        html[data-menu-style="flat"] .sidebar .nav-item.active > .menu-svg-icon {
            background-color:#fff !important;
        }
        html[data-menu-style="flat"] .sidebar #sidebarNav > .submenu > .submenu-inner > .nav-item,
        html[data-menu-style="flat"] .sidebar #sidebarNav > .submenu > .submenu-inner > .nav-parent {
            width:calc(100% - 11px);
            margin-left:11px;
            margin-right:0;
            padding-left:13px;
            box-sizing:border-box;
        }
        html[data-menu-style="flat"] .sidebar #sidebarNav > .submenu > .submenu-inner > .submenu.level-3 > .submenu-inner > .nav-item,
        html[data-menu-style="flat"] .sidebar #sidebarNav > .submenu > .submenu-inner > .submenu.level-3 > .submenu-inner > .nav-parent {
            width:calc(100% - 23px);
            margin-left:23px;
            margin-right:0;
            padding-left:13px;
            box-sizing:border-box;
        }
        html[data-menu-style="3d"] .sidebar #sidebarNav > .submenu > .submenu-inner > .nav-item,
        html[data-menu-style="3d"] .sidebar #sidebarNav > .submenu > .submenu-inner > .nav-parent {
            width:calc(100% - 11px);
            margin-left:11px;
            margin-right:0;
            padding-left:13px;
            box-sizing:border-box;
        }
        html[data-menu-style="3d"] .sidebar #sidebarNav > .submenu > .submenu-inner > .submenu.level-3 > .submenu-inner > .nav-item,
        html[data-menu-style="3d"] .sidebar #sidebarNav > .submenu > .submenu-inner > .submenu.level-3 > .submenu-inner > .nav-parent {
            width:calc(100% - 23px);
            margin-left:23px;
            margin-right:0;
            padding-left:13px;
            box-sizing:border-box;
        }
        @media (max-width: 520px) {
            .stats { grid-template-columns: 1fr; }
            .stats .card:last-child { grid-column: auto; }
            .page-head { display: block; }
            .date-chip { display: inline-block; margin-top: 16px; }
            .welcome { padding: 26px; }
            .divider { margin: 0 2px; }
            .portal-footer { flex-direction: column; padding: 18px; }
            .template-grid { grid-template-columns: 1fr; }
            .profile-hero { grid-template-columns:1fr; }
            .profile-hero-media { min-height:130px;padding:22px;border-right:0;border-bottom:1px solid rgba(255,255,255,.2); }
            .profile-hero-media::after { top:auto;right:20%;bottom:-1px;width:60%;height:3px; }
            .profile-identity { padding:24px;text-align:center; }
            .profile-photo { width:78px;height:78px; }
            .profile-form-grid { grid-template-columns:1fr; }
            .profile-security-grid { grid-template-columns:1fr; }
            .profile-field.wide { grid-column:auto; }
            .admin-heading { align-items:flex-start; }.admin-heading p{max-width:230px}.roles-grid{grid-template-columns:1fr}
        }
        /* Paginazione condivisa per registri e tabelle applicative. */
        .portal-record-pagination {
            box-sizing:border-box;
            min-height:62px;
            display:flex;
            align-items:center;
            justify-content:flex-end;
            gap:8px;
            padding:12px 16px;
            border-top:1px solid var(--border);
            background:var(--surface);
        }
        .portal-record-pagination > .report-pagination-summary { margin-right:auto; }
        .portal-record-pagination .report-pagination-summary {
            min-width:0;
            color:var(--muted);
            font-size:.73rem;
            line-height:1.35;
        }
        .portal-record-pagination .report-pagination-summary strong { color:var(--text); }
        .portal-record-pagination .report-pagination-controls {
            display:flex;
            align-items:center;
            justify-content:flex-end;
            gap:5px;
            flex-wrap:wrap;
        }
        .portal-record-pagination .report-page-button {
            box-sizing:border-box;
            width:36px;
            height:36px;
            display:inline-flex;
            align-items:center;
            justify-content:center;
            flex:0 0 auto;
            padding:0;
            border:1px solid var(--border);
            border-radius:9px;
            color:var(--text);
            background:var(--surface-2);
            font-size:.72rem;
            font-weight:800;
            text-decoration:none;
        }
        .portal-record-pagination .report-page-button:hover,
        .portal-record-pagination .report-page-button:focus-visible,
        .portal-record-pagination .report-page-button.active {
            border-color:var(--primary);
            color:var(--primary);
            background:var(--primary-soft);
        }
        .portal-record-pagination .report-page-button:focus-visible { outline:2px solid var(--primary);outline-offset:2px; }
        .portal-record-pagination .report-page-button.active { box-shadow:inset 0 0 0 1px var(--primary); }
        .portal-record-pagination .report-page-button img { width:15px;height:15px;filter:var(--menu-icon-filter,none); }
        html[data-density="compact"] .portal-record-pagination { min-height:48px;padding:7px 10px; }
        html[data-density="compact"] .portal-record-pagination .report-page-button { width:32px;height:32px; }
        @media (max-width:620px) {
            .portal-record-pagination { align-items:stretch;flex-direction:column; }
            .portal-record-pagination > .report-pagination-summary { margin-right:0;padding:0 2px; }
            .portal-record-pagination .report-pagination-controls { justify-content:flex-start; }
        }
        @media (prefers-reduced-motion: reduce) {
            .nav-icon,
            .tool-button svg { transition: none; }
            .nav-item:hover > .nav-icon,
            .nav-parent:hover > .nav-icon,
            .tool-button:hover svg { transform: none; }
        }
