:root{
    --sp-blue:#3f7a45;
    --sp-blue-dark:#2f5d35;
    --sp-blue-soft:#eef7ef;
    --sp-bg:#f4f7f2;
    --sp-sidebar:#e5ede2;
    --sp-border:#cfdcca;
    --sp-text:#223026;
    --sp-muted:#627063;
    --sp-green:#5f8e47;
    --sp-red:#b93d3d;
    --sp-white:#ffffff;
    --sp-gold:#8aa05d;
    --sp-cream:#f8fbf6;
    --sp-shadow:0 1px 2px rgba(0,0,0,.06);
    --sp-radius:6px;
    --sp-font:"Segoe UI",Tahoma,Arial,sans-serif;
}
body[data-theme="verde"]{
    --sp-blue:#3f7a45;
    --sp-blue-dark:#2f5d35;
    --sp-blue-soft:#eef7ef;
    --sp-bg:#f4f7f2;
    --sp-sidebar:#e5ede2;
    --sp-border:#cfdcca;
    --sp-text:#223026;
    --sp-muted:#627063;
    --sp-green:#5f8e47;
    --sp-gold:#8aa05d;
    --sp-cream:#f8fbf6;
}
body[data-theme="blu-scuro"]{
    --sp-blue:#25476a;
    --sp-blue-dark:#18324e;
    --sp-blue-soft:#edf3f9;
    --sp-bg:#f2f6fa;
    --sp-sidebar:#dfe8f2;
    --sp-border:#c7d4e2;
    --sp-text:#1f2b38;
    --sp-muted:#5d6b78;
    --sp-green:#2f6ea0;
    --sp-gold:#6f8fb0;
    --sp-cream:#f7fbfe;
}
body[data-theme="ardesia"]{
    --sp-blue:#4e5968;
    --sp-blue-dark:#38414d;
    --sp-blue-soft:#eff2f5;
    --sp-bg:#f3f5f7;
    --sp-sidebar:#e3e8ec;
    --sp-border:#cfd7df;
    --sp-text:#242c34;
    --sp-muted:#66717c;
    --sp-green:#60758d;
    --sp-gold:#8796a6;
    --sp-cream:#f8fafb;
}
body[data-theme="terra"]{
    --sp-blue:#8a5a3c;
    --sp-blue-dark:#6b432b;
    --sp-blue-soft:#faf1ea;
    --sp-bg:#f8f3ef;
    --sp-sidebar:#eee2d8;
    --sp-border:#decbbb;
    --sp-text:#352922;
    --sp-muted:#78665a;
    --sp-green:#a16a46;
    --sp-gold:#bb8b63;
    --sp-cream:#fdf8f4;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:var(--sp-font);background:var(--sp-bg);color:var(--sp-text)}
a{color:var(--sp-blue-dark);text-decoration:none}
a:hover{text-decoration:underline}
.sp-app{min-height:100vh;background:var(--sp-bg)}
.sp-topbar{height:56px;background:linear-gradient(90deg,var(--sp-blue-dark),var(--sp-blue));color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid rgba(255,255,255,.12);position:sticky;top:0;z-index:100}
.sp-topbar-left,.sp-topbar-right{display:flex;align-items:center;gap:14px}
.sp-sidebar-toggle{display:none;width:40px;height:40px;border:1px solid rgba(255,255,255,.28);border-radius:8px;background:rgba(255,255,255,.08);align-items:center;justify-content:center;gap:4px;flex-direction:column;cursor:pointer}
.sp-sidebar-toggle span{display:block;width:18px;height:2px;border-radius:2px;background:#fff}
.sp-sidebar-backdrop{display:none;position:fixed;inset:56px 0 0;background:rgba(4,18,33,.45);z-index:180}
.sp-brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:700;letter-spacing:-.3px}
.sp-brand-badge{width:28px;height:28px;border-radius:4px;background:#f8fbf5;color:var(--sp-blue-dark);display:grid;place-items:center;font-size:14px;font-weight:700}
.sp-brand-context{font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;opacity:.72;line-height:1.1;margin-top:1px}
.sp-select,.sp-topbtn{height:34px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.10);color:#fff;border-radius:8px;padding:0 12px;min-width:96px;font-weight:700}
.sp-topbtn{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.sp-topbtn:hover,.sp-select:hover,.sp-iconbtn:hover{background:rgba(255,255,255,.16);text-decoration:none}
.sp-topbtn-logout{min-width:74px;background:#fff;color:var(--sp-blue-dark);border-color:#fff}
.sp-iconbtn{width:36px;height:36px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.10);border-radius:10px;display:grid;place-items:center;color:#fff;position:relative;font-size:0;line-height:1}
.sp-iconbtn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.sp-iconbtn-bell::before,.sp-topbar-right>a.sp-iconbtn:not(.sp-iconbtn-bell)::before{content:"";width:18px;height:18px;background:currentColor;display:block}
.sp-iconbtn-bell::before{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9'/%3E%3Cpath d='M10 21h4'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9'/%3E%3Cpath d='M10 21h4'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat}
.sp-topbar-right>a.sp-iconbtn:not(.sp-iconbtn-bell)::before{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 15.5a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Z'/%3E%3Cpath d='M19.4 15a1.7 1.7 0 0 0 .3 1.9l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.9-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1-1.5 1.7 1.7 0 0 0-1.9.3l-.1.1A2 2 0 1 1 4.2 17l.1-.1a1.7 1.7 0 0 0 .3-1.9 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1 1.7 1.7 0 0 0-.3-1.9L4.2 7A2 2 0 1 1 7 4.2l.1.1a1.7 1.7 0 0 0 1.9.3h.1a1.7 1.7 0 0 0 .9-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.9-.3l.1-.1A2 2 0 1 1 19.8 7l-.1.1a1.7 1.7 0 0 0-.3 1.9v.1a1.7 1.7 0 0 0 1.5.9h.1a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1Z'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 15.5a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Z'/%3E%3Cpath d='M19.4 15a1.7 1.7 0 0 0 .3 1.9l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.9-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1-1.5 1.7 1.7 0 0 0-1.9.3l-.1.1A2 2 0 1 1 4.2 17l.1-.1a1.7 1.7 0 0 0 .3-1.9 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1 1.7 1.7 0 0 0-.3-1.9L4.2 7A2 2 0 1 1 7 4.2l.1.1a1.7 1.7 0 0 0 1.9.3h.1a1.7 1.7 0 0 0 .9-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.9-.3l.1-.1A2 2 0 1 1 19.8 7l-.1.1a1.7 1.7 0 0 0-.3 1.9v.1a1.7 1.7 0 0 0 1.5.9h.1a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1Z'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat}
.sp-user-toggle{font-size:14px;font-weight:800;border-radius:999px}
.sp-iconbadge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#e43d30;color:#fff;border:2px solid var(--sp-blue);font-size:11px;line-height:14px;font-weight:900;display:flex;align-items:center;justify-content:center}
.sp-shell{display:grid;grid-template-columns:240px 1fr;align-items:start}
.sp-sidebar{background:linear-gradient(180deg,color-mix(in srgb, var(--sp-sidebar) 86%, #fff 14%) 0%,var(--sp-sidebar) 100%);border-right:1px solid var(--sp-border);padding:14px 10px 16px;display:flex;flex-direction:column;position:sticky;top:56px;height:calc(100vh - 56px);overflow:hidden}
.sp-studio-card{background:#fff;border:1px solid var(--sp-border);padding:14px;border-radius:0 0 10px 10px;margin-bottom:14px;box-shadow:var(--sp-shadow)}
.sp-studio-logo{font-size:22px;font-weight:800;color:var(--sp-blue);line-height:1.1}
.sp-studio-logo span,.sp-studio-logo .sp-logo-d{color:var(--sp-green)}
.sp-studio-sub{font-size:11px;color:#7d6f69;margin-top:6px;text-transform:uppercase;letter-spacing:.3px}
.sp-studio-name{margin-top:10px;font-weight:700;color:var(--sp-blue-dark);font-size:24px;line-height:1.15}
.sp-menu-title{font-size:12px;color:#6f6059;margin:16px 8px 8px;text-transform:uppercase;font-weight:700;flex:0 0 auto}
.sp-menu{list-style:none;margin:0;padding:0;flex:0 0 auto}
.sp-menu li{margin:1px 0}
.sp-menu a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:#3b302b;font-size:15px;border:1px solid transparent}
.sp-menu a.active,.sp-menu a:hover{background:color-mix(in srgb, var(--sp-blue-soft) 75%, #fff 25%);border-color:var(--sp-border);color:var(--sp-blue-dark);text-decoration:none}
.sp-menu-icon{width:22px;height:22px;border:2px solid #08284a;border-radius:50%;display:inline-grid;place-items:center;flex:0 0 22px;color:#1fa64a;background:#fff}
.sp-menu-icon::before{content:"";width:13px;height:13px;background:currentColor;-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat}
.sp-menu-icon-dashboard{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 20h4V10H4v10Zm6 0h4V4h-4v16Zm6 0h4v-7h-4v7Z'/%3E%3C/svg%3E")}
.sp-menu-icon-documents{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 6h7l2 2h9v11H3V6Zm2 4v7h14v-7H5Z'/%3E%3C/svg%3E")}
.sp-menu-icon-billing{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M6 3h12v18l-3-1.5-3 1.5-3-1.5L6 21V3Zm4 5v2h8V8h-8Zm0 4v2h8v-2h-8Zm0 4v2h5v-2h-5Z'/%3E%3C/svg%3E")}
.sp-menu-icon-taxes{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 2h10a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2Zm1 4v3h8V6H8Zm0 6v2h2v-2H8Zm4 0v2h2v-2h-2Zm4 0v2h2v-2h-2Zm-8 4v2h2v-2H8Zm4 0v2h2v-2h-2Zm4 0v2h2v-2h-2Z'/%3E%3C/svg%3E")}
.sp-menu-icon-contact{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 5h18v14H3V5Zm3.4 2 5.6 4.2L17.6 7H6.4ZM5 17h14V9.5l-7 5.3-7-5.3V17Z'/%3E%3C/svg%3E")}
.sp-menu-icon-notifications{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 22a3 3 0 0 0 3-3H9a3 3 0 0 0 3 3Zm8-5-2-3V9a6 6 0 0 0-12 0v5l-2 3v1h16v-1Z'/%3E%3C/svg%3E")}
.sp-menu-icon-profile{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm-9 9a9 9 0 0 1 18 0H3Z'/%3E%3C/svg%3E")}
.sp-menu-icon-settings{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='m19.4 13.5.1-1.5-.1-1.5 2-1.5-2-3.5-2.4 1a8 8 0 0 0-2.6-1.5L14 2h-4l-.4 2.5A8 8 0 0 0 7 6L4.6 5 2.6 8.5l2 1.5-.1 1.5.1 1.5-2 1.5 2 3.5 2.4-1a8 8 0 0 0 2.6 1.5L10 22h4l.4-2.5A8 8 0 0 0 17 18l2.4 1 2-3.5-2-1.5ZM12 15.5a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7Z'/%3E%3C/svg%3E")}
.sp-menu-icon-customers{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm8 1a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7ZM2 21a7 7 0 0 1 14 0H2Zm13.5-1a8.6 8.6 0 0 0-2.2-5.2A6 6 0 0 1 23 20h-7.5Z'/%3E%3C/svg%3E")}
.sp-menu-icon-deadlines{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 2h2v3h6V2h2v3h4v17H3V5h4V2Zm12 8H5v10h14V10Zm-11 3h3v3H8v-3Zm5 0h3v3h-3v-3Z'/%3E%3C/svg%3E")}
.sp-menu-icon-subscription{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 7h5V3l6 6-6 6v-4H7a3 3 0 0 0 0 6h2v4H7A7 7 0 0 1 7 7Zm10 10h-5v4l-6-6 6-6v4h5a3 3 0 0 0 0-6h-2V3h2a7 7 0 0 1 0 14Z'/%3E%3C/svg%3E")}
.sp-menu-icon-payments{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 5h18a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2Zm0 4h18V7H3v2Zm2 5v2h6v-2H5Z'/%3E%3C/svg%3E")}
.sp-menu-icon-stripe{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 10 12 4l9 6v2H3v-2Zm2 4h3v6H5v-6Zm5 0h4v6h-4v-6Zm6 0h3v6h-3v-6ZM3 21h18v1H3v-1Z'/%3E%3C/svg%3E")}
.sp-menu a.active .sp-menu-icon,.sp-menu a:hover .sp-menu-icon{background:#08284a;color:#fff;border-color:#1fa64a}
.sp-content{padding:14px 18px 24px;min-width:0}
.sp-page{background:#fff;border:1px solid var(--sp-border);border-radius:var(--sp-radius);box-shadow:var(--sp-shadow);overflow:hidden}
.sp-page-header{padding:14px 16px;border-bottom:1px solid var(--sp-border);background:var(--sp-cream);display:flex;align-items:center;justify-content:space-between;gap:16px}
.sp-title{font-size:18px;font-weight:700;color:var(--sp-blue-dark)}
.sp-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sp-btn{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px;border:1px solid var(--sp-border);background:#fff;border-radius:6px;color:var(--sp-blue-dark);font-weight:600;font-size:14px;cursor:pointer}
.sp-btn:hover{text-decoration:none;background:var(--sp-blue-soft)}
.sp-btn-primary{background:var(--sp-blue);border-color:var(--sp-blue);color:#fff}
.sp-btn-primary:hover{background:var(--sp-blue-dark)}
.sp-btn-success{background:var(--sp-green);border-color:var(--sp-green);color:#fff}
.sp-btn-danger{background:var(--sp-red);border-color:var(--sp-red);color:#fff}
.sp-alert{margin:12px 16px;padding:10px 12px;border-radius:6px;border:1px solid var(--sp-border);background:var(--sp-blue-soft);color:var(--sp-blue-dark);font-size:14px}
.sp-grid{display:grid;gap:16px}
.sp-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.sp-card{background:#fff;border:1px solid var(--sp-border);border-radius:var(--sp-radius);box-shadow:var(--sp-shadow)}
.sp-card-body{padding:16px}
.sp-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--sp-border);background:color-mix(in srgb, var(--sp-blue-soft) 35%, #fff 65%)}
.sp-card-title{font-size:16px;font-weight:800;color:var(--sp-blue-dark)}
.sp-card-subtitle,.sp-subtitle{font-size:13px;color:var(--sp-muted);margin-top:4px}
.sp-kpi-title{font-size:13px;color:#7b6b64;margin-bottom:6px}
.sp-kpi-value{font-size:34px;font-weight:700;color:var(--sp-blue)}
.sp-kpi-meta{font-size:12px;color:#8a7b75}
.sp-filterbar{background:#fff;border:1px solid var(--sp-border);border-radius:var(--sp-radius);padding:14px 16px;margin-top:16px}
.sp-filter-grid{display:grid;grid-template-columns:160px 240px 1fr 1fr auto;gap:12px;align-items:end}
.sp-field label,.sp-label{display:block;font-size:13px;color:#655851;margin-bottom:6px;font-weight:600}
.sp-input,.sp-select-light,.sp-textarea{width:100%;height:38px;border:1px solid var(--sp-border);border-radius:6px;padding:0 10px;background:#fff;font:inherit;color:var(--sp-text)}
.sp-content .sp-select{width:100%;height:38px;border:1px solid var(--sp-border);border-radius:6px;padding:0 10px;background:#fff;color:var(--sp-text);font:inherit;min-width:0}
.sp-content .sp-select option{background:#fff;color:var(--sp-text)}
.sp-textarea{height:96px;padding:10px;resize:vertical}
.sp-table-wrap{margin-top:16px;background:#fff;border:1px solid var(--sp-border);border-radius:var(--sp-radius);overflow:hidden}
.sp-table-toolbar{padding:12px 14px;border-bottom:1px solid var(--sp-border);display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--sp-cream)}
.sp-search{max-width:240px}
.sp-table{width:100%;border-collapse:collapse;font-size:14px}
.sp-table th{background:var(--sp-blue-soft);border-bottom:1px solid var(--sp-border);border-right:1px solid color-mix(in srgb, var(--sp-border) 70%, #fff 30%);padding:10px 8px;text-align:left;color:var(--sp-blue-dark);font-weight:700}
.sp-table td{padding:10px 8px;border-bottom:1px solid color-mix(in srgb, var(--sp-border) 40%, #fff 60%);border-right:1px solid color-mix(in srgb, var(--sp-border) 25%, #fff 75%);background:#fff}
.sp-table tr:nth-child(even) td{background:color-mix(in srgb, var(--sp-blue-soft) 35%, #fff 65%)}
.sp-pill{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700}
.sp-pill-ok{background:#e7f6ea;color:#256d2f}
.sp-pill-warn{background:#fff5df;color:#8a6512}
.sp-pill-danger{background:#fdeaea;color:#a22626}
.sp-auth-wrap{min-height:calc(100vh - 56px);display:grid;place-items:center;padding:32px}
.sp-auth-card{width:100%;max-width:560px;background:#fff;border:1px solid var(--sp-border);border-radius:8px;box-shadow:var(--sp-shadow)}
.sp-auth-head{padding:18px 20px;border-bottom:1px solid var(--sp-border);background:var(--sp-cream)}
.sp-auth-title{font-size:18px;font-weight:800;color:var(--sp-blue-dark)}
.sp-auth-sub{margin-top:4px;color:var(--sp-muted)}
.sp-auth-body{padding:20px}
.sp-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sp-form-grid .full{grid-column:1/-1}
.sp-empty{padding:24px;text-align:center;color:#85756e}
.sp-home{padding:20px}
.sp-home-grid{display:grid;grid-template-columns:1.2fr .9fr;gap:18px;margin-top:18px}
.sp-home-actions{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
.sp-home-title{font-size:30px;line-height:1.15;font-weight:800;color:var(--sp-blue-dark);margin:0 0 12px}
.sp-home-card{background:#fff;border:1px solid var(--sp-border);border-radius:10px;box-shadow:var(--sp-shadow);padding:24px}
.sp-home-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}
.sp-muted{color:var(--sp-muted)}
.sp-note{font-size:12px;color:#85756e}
.sp-sidebar-footer{margin-top:auto;padding:18px 8px 0;position:relative}
.sp-powered-link{display:inline-block}
.sp-powered-link:hover{text-decoration:none;opacity:.92}
.sp-powered-logo{display:block;max-width:150px;width:100%;height:auto}
.sp-alert-success{background:#edf5e8;border-color:#c7d9ba;color:#3a5b20}
.sp-alert-danger{background:#fdeaea;border-color:#f2c6c6;color:#8b1e1e}
.sp-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.sp-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.sp-dashboard-grid{display:grid;grid-template-columns:1.15fr .85fr .55fr;gap:16px}
.sp-logo-hero .sp-card-body{min-height:170px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(180deg,#fff 0%,var(--sp-cream) 100%)}
.sp-deadline-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.sp-deadline-box{border:1px solid var(--sp-border);border-radius:8px;padding:14px;background:color-mix(in srgb, var(--sp-blue-soft) 40%, #fff 60%);text-align:center}
.sp-deadline-month{font-size:14px;font-weight:700;color:var(--sp-blue-dark);text-transform:uppercase}
.sp-deadline-value{font-size:28px;font-weight:800;margin-top:8px;color:var(--sp-blue)}
.sp-user-menu{position:relative}
.sp-user-dropdown{display:none;position:absolute;right:0;top:42px;min-width:220px;background:#fff;border:1px solid var(--sp-border);border-radius:8px;box-shadow:0 8px 30px rgba(0,0,0,.12);overflow:hidden;z-index:50}
.sp-user-dropdown.is-open{display:block}
.sp-user-dropdown a,.sp-user-dropdown button{display:block;width:100%;padding:12px 14px;text-align:left;background:#fff;border:0;font:inherit;color:var(--sp-text);cursor:pointer}
.sp-user-dropdown a:hover,.sp-user-dropdown button:hover{background:var(--sp-blue-soft);text-decoration:none}
.sp-section-title{font-size:15px;font-weight:800;color:var(--sp-blue-dark);margin-bottom:14px}
.sp-profile-card{background:var(--sp-cream);border:1px solid var(--sp-border);border-radius:10px;padding:18px}
.sp-profile-logo{width:96px;height:96px;border-radius:14px;border:1px solid var(--sp-border);background:#fff;display:grid;place-items:center;overflow:hidden;margin-bottom:14px}
.sp-profile-logo img{max-width:100%;max-height:100%;object-fit:contain}
.sp-profile-logo-placeholder{font-size:26px;font-weight:800;color:var(--sp-blue-dark);text-transform:uppercase}
.sp-profile-name{font-size:22px;font-weight:800;color:var(--sp-blue-dark)}
.sp-profile-sub{margin-top:4px;color:var(--sp-muted)}
.sp-mini-table{width:100%;border-collapse:collapse;margin-top:14px;font-size:14px}
.sp-mini-table th,.sp-mini-table td{padding:9px 0;border-bottom:1px solid var(--sp-border);text-align:left;vertical-align:top}
.sp-mini-table th{width:110px;color:var(--sp-blue-dark)}
.sp-theme-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px}
.sp-theme-option{position:relative}
.sp-theme-option input{position:absolute;opacity:0;inset:0}
.sp-theme-card{display:block;border:1px solid var(--sp-border);border-radius:10px;background:#fff;padding:12px;cursor:pointer}
.sp-theme-option input:checked + .sp-theme-card{border-color:var(--sp-blue);box-shadow:0 0 0 2px color-mix(in srgb, var(--sp-blue) 20%, transparent)}
.sp-theme-swatch{display:flex;gap:6px;margin-bottom:10px}
.sp-theme-swatch span{display:block;height:28px;flex:1;border-radius:6px}
.sp-theme-name{font-weight:700;color:var(--sp-blue-dark)}
.sp-theme-note{margin-top:4px;font-size:12px;color:var(--sp-muted)}
@media (max-width:1100px){
    .sp-shell{grid-template-columns:1fr}
    .sp-sidebar{display:flex;position:fixed;left:0;top:56px;bottom:0;width:min(82vw,300px);height:calc(100vh - 56px);z-index:200;transform:translateX(-105%);transition:transform .22s ease;box-shadow:16px 0 28px rgba(6,39,68,.22)}
    .sp-sidebar-toggle{display:inline-flex}
    body.sp-sidebar-open .sp-sidebar{transform:translateX(0)}
    body.sp-sidebar-open .sp-sidebar-backdrop{display:block}
    body.sp-sidebar-open{overflow:hidden}
    .sp-grid-4,.sp-grid-2,.sp-grid-3,.sp-dashboard-grid{grid-template-columns:1fr}
    .sp-filter-grid,.sp-theme-grid{grid-template-columns:1fr 1fr}
    .sp-home-grid,.sp-home-actions,.sp-home-mini{grid-template-columns:1fr}
}
@media (max-width:700px){
    .sp-grid-4,.sp-form-grid,.sp-filter-grid,.sp-theme-grid{grid-template-columns:1fr}
    .sp-topbar{padding:0 10px}
    .sp-brand-context,.sp-select{display:none}
    .sp-topbar-left,.sp-topbar-right{gap:8px}
    .sp-content{padding:10px}
}


.sp-chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.sp-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.sp-chart-card{border:1px solid var(--sp-border);border-radius:12px;padding:14px;background:linear-gradient(180deg,#fff 0%,color-mix(in srgb, var(--sp-blue-soft) 16%, #fff 84%) 100%)}
.sp-chart-label{font-size:14px;font-weight:800;color:var(--sp-blue-dark);margin-bottom:10px}
.sp-donut{--p1:40;--p2:30;--c1:var(--sp-blue);--c2:var(--sp-gold);--c3:var(--sp-green);width:144px;height:144px;margin:0 auto;border-radius:50%;background:conic-gradient(var(--c1) 0 calc(var(--p1) * 1%), var(--c2) calc(var(--p1) * 1%) calc((var(--p1) + var(--p2)) * 1%), var(--c3) calc((var(--p1) + var(--p2)) * 1%) 100%);display:grid;place-items:center;position:relative;box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}
.sp-donut::after{content:'';width:82px;height:82px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.04);position:absolute}
.sp-donut-center{position:relative;z-index:1;font-size:24px;font-weight:800;color:var(--sp-blue-dark)}
.sp-chart-legend{display:grid;grid-template-columns:1fr;gap:6px;margin-top:12px;font-size:13px;color:var(--sp-text)}
.sp-chart-legend span{display:flex;align-items:center;gap:8px}
.sp-chart-legend i{width:12px;height:12px;border-radius:4px;display:inline-block}
.sp-xy-chart{position:relative;height:230px;border:1px solid var(--sp-border);border-radius:10px;background:#fff;padding:18px 14px 28px 38px;overflow:hidden}
.sp-xy-grid{position:absolute;left:38px;right:12px;top:18px;bottom:28px;background:linear-gradient(to top, transparent 0, transparent calc(25% - 1px), color-mix(in srgb, var(--sp-border) 55%, #fff 45%) calc(25% - 1px), color-mix(in srgb, var(--sp-border) 55%, #fff 45%) 25%, transparent 25%, transparent calc(50% - 1px), color-mix(in srgb, var(--sp-border) 55%, #fff 45%) calc(50% - 1px), color-mix(in srgb, var(--sp-border) 55%, #fff 45%) 50%, transparent 50%, transparent calc(75% - 1px), color-mix(in srgb, var(--sp-border) 55%, #fff 45%) calc(75% - 1px), color-mix(in srgb, var(--sp-border) 55%, #fff 45%) 75%, transparent 75%)}
.sp-xy-bars{position:absolute;left:46px;right:16px;top:18px;bottom:28px;display:grid;grid-template-columns:repeat(6,1fr);gap:12px;align-items:end}
.sp-xy-col{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;z-index:1}
.sp-xy-bar-wrap{width:100%;max-width:54px;height:100%;display:flex;align-items:flex-end}
.sp-xy-bar{width:100%;border-radius:10px 10px 4px 4px;background:linear-gradient(180deg, var(--sp-blue) 0%, color-mix(in srgb, var(--sp-blue) 65%, #fff 35%) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
.sp-xy-x{margin-top:8px;font-size:12px;font-weight:700;color:var(--sp-muted)}
.sp-xy-y{position:absolute;left:10px;font-size:11px;color:var(--sp-muted)}
.sp-xy-y.y1{top:10px}
.sp-xy-y.y2{top:50%;transform:translateY(-50%)}
.sp-xy-y.y3{bottom:24px}
.sp-mini-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.sp-mini-kpi{border:1px solid var(--sp-border);border-radius:12px;padding:16px;background:linear-gradient(180deg,#fff 0%,color-mix(in srgb, var(--sp-cream) 70%, #fff 30%) 100%)}
.sp-mini-kpi-label{font-size:13px;color:var(--sp-muted);margin-bottom:6px}
.sp-mini-kpi-value{font-size:28px;font-weight:800;color:var(--sp-blue-dark);line-height:1.1}
.sp-mini-kpi-note{margin-top:6px;font-size:12px;color:var(--sp-muted)}
@media (max-width:1100px){.sp-chart-grid,.sp-mini-kpis{grid-template-columns:1fr}}

.sp-sidebar-logo-wrap{width:100%;height:110px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:8px;background:#fff;border:1px solid var(--sp-border);margin-bottom:10px}
.sp-sidebar-logo{max-width:100%;max-height:96px;object-fit:contain;display:block}
.sp-sidebar-footer{margin-top:auto;padding:18px 8px 0;position:sticky;bottom:0;background:linear-gradient(180deg,transparent 0%, color-mix(in srgb, var(--sp-sidebar) 88%, #fff 12%) 18%, var(--sp-sidebar) 100%)}
.sp-dashboard-grid{display:grid;grid-template-columns:1.2fr .9fr .55fr;gap:16px}



/* ==== Fix sidebar studio/cliente ==== */
.sp-shell{
    align-items:stretch;
}

.sp-sidebar{
    display:flex;
    flex-direction:column;
    position:sticky;
    top:56px;
    height:calc(100vh - 56px);
    overflow:hidden;
    padding-bottom:0;
}

.sp-sidebar-menu{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    padding-bottom:16px;
    scrollbar-gutter:stable;
    -webkit-overflow-scrolling:touch;
}

.sp-sidebar-footer{
    margin-top:auto;
    flex:0 0 auto;
    padding:14px 8px 10px;
    border-top:1px solid var(--sp-border);
    background:linear-gradient(180deg, rgba(255,255,255,0) 0%, color-mix(in srgb, var(--sp-sidebar) 86%, #fff 14%) 18%, var(--sp-sidebar) 100%);
    position:sticky;
    bottom:0;
    z-index:3;
}

.sp-powered-link{
    display:inline-flex;
    align-items:flex-end;
    justify-content:flex-start;
    max-width:100%;
}

.sp-powered-logo{
    display:block;
    max-width:150px;
    width:100%;
    height:auto;
}

.sp-menu a{
    white-space:nowrap;
}

@media (max-height: 820px){
    .sp-powered-logo{
        max-width:128px;
    }
}

/* quando la sidebar studio non ha wrapper, almeno scorre tutta */
.sp-sidebar > .sp-menu,
.sp-sidebar > .sp-menu-title{
    flex:0 0 auto;
}

.fd-dashboard{display:grid;gap:12px;max-width:1500px;margin:0 auto}
.fd-hero{background:#fff;border:1px solid var(--sp-border);border-radius:8px;padding:12px 18px;display:flex;align-items:center;justify-content:center;gap:18px;box-shadow:var(--sp-shadow);min-height:76px;position:relative}
.fd-hero-logo{display:block;width:min(420px,38vw);max-height:52px;height:auto;object-fit:contain;object-position:center}
.fd-hero-meta{display:grid;gap:4px;text-align:right;color:#062744;min-width:180px;position:absolute;right:18px;top:50%;transform:translateY(-50%)}
.fd-hero-meta span{font-size:12px;font-weight:800;text-transform:uppercase;color:var(--sp-muted)}
.fd-hero-meta strong{font-size:18px;line-height:1.15}
.fd-board{display:grid;grid-template-columns:.9fr 1.1fr .78fr;grid-template-areas:"communications taxes taxes" "invoices renewal assistance";gap:12px}
.fd-tile{position:relative;min-height:118px;border:1px solid var(--sp-border);border-radius:8px;background:#fff;padding:14px 16px;box-shadow:var(--sp-shadow);display:flex;flex-direction:column;justify-content:space-between;color:var(--sp-text);text-decoration:none;overflow:hidden}
.fd-tile:hover{text-decoration:none;border-color:var(--sp-blue);background:color-mix(in srgb, var(--sp-blue-soft) 42%, #fff 58%)}
.fd-tile::after{content:none}
.fd-tile-kicker{font-size:12px;font-weight:800;text-transform:uppercase;color:var(--sp-muted);letter-spacing:.3px}
.fd-tile-title{font-size:20px;font-weight:800;line-height:1.1;color:#062744;margin-top:5px;max-width:360px}
.fd-tile-number{font-size:30px;font-weight:800;color:var(--sp-blue);line-height:1;margin-top:10px}
.fd-tile-note{font-size:12px;color:var(--sp-muted);margin-top:6px}
.fd-tax-main{display:grid;gap:3px;margin-top:9px}
.fd-tax-main span{font-size:12px;font-weight:800;text-transform:uppercase;color:var(--sp-muted)}
.fd-tax-main strong{font-size:28px;line-height:1;color:var(--sp-blue)}
.fd-tax-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;position:relative;z-index:1}
.fd-tax-breakdown span{border:1px solid var(--sp-border);border-radius:7px;background:rgba(255,255,255,.72);padding:7px 9px;font-size:12px;color:var(--sp-muted)}
.fd-tax-breakdown strong{display:block;margin-top:2px;color:#062744;font-size:13px}
.fd-tax-mini-chart{height:42px;display:grid;grid-template-columns:repeat(3,1fr);align-items:end;gap:10px;margin-top:12px;padding:7px 12px 18px;border:1px solid var(--sp-border);border-radius:7px;background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,255,255,.42));position:relative;z-index:1}
.fd-tax-mini-chart span{min-height:6px;border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,var(--sp-blue),color-mix(in srgb,var(--sp-blue) 62%,#fff 38%));position:relative}
.fd-tax-mini-chart i{position:absolute;left:50%;bottom:-20px;transform:translateX(-50%);font-style:normal;font-size:11px;font-weight:800;color:var(--sp-muted);white-space:nowrap}
.fd-tile-communications{grid-area:communications}
.fd-tile-invoices{grid-area:invoices}
.fd-tile-taxes{grid-area:taxes;min-height:210px}
.fd-tile-renewal{grid-area:renewal}
.fd-tile-assistance{grid-area:assistance}
.fd-renewal-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px}
.fd-renewal-actions form{margin:0}
.fd-bottom-panel{display:grid;grid-template-columns:.75fr 1.25fr;gap:12px}
.fd-bottom-panel>div{background:#fff;border:1px solid var(--sp-border);border-radius:8px;box-shadow:var(--sp-shadow);padding:18px}
.fd-panel-title{font-size:15px;font-weight:800;color:#062744;margin-bottom:12px}
.fd-summary-grid{display:grid;grid-template-columns:1fr auto;gap:10px 16px;color:var(--sp-muted)}
.fd-summary-grid strong{color:var(--sp-blue-dark)}
.fd-notice-list{display:grid;gap:8px}
.fd-notice-list a,.fd-notice-list span{padding:10px 12px;border:1px solid var(--sp-border);border-radius:8px;background:color-mix(in srgb, var(--sp-blue-soft) 35%, #fff 65%);color:var(--sp-blue-dark);font-weight:700;text-decoration:none}
.fd-notice-list a{display:grid;gap:3px}
.fd-notice-list a strong{font-size:14px;color:var(--sp-blue-dark);font-weight:800}
.fd-notice-list a span{padding:0;border:0;background:transparent;font-size:12px;color:var(--sp-muted);font-weight:600}
.fd-notice-list a:hover{background:var(--sp-blue-soft);text-decoration:none}
@media (max-width:1100px){.fd-hero{flex-direction:column}.fd-hero-logo{width:100%;max-width:620px}.fd-hero-meta{position:static;transform:none;text-align:center}.fd-board{grid-template-columns:1fr 1fr;grid-template-areas:"communications invoices" "taxes taxes" "renewal assistance"}.fd-bottom-panel{grid-template-columns:1fr}}
@media (max-width:700px){.fd-hero{padding:18px}.fd-board{grid-template-columns:1fr;grid-template-areas:"communications" "invoices" "taxes" "renewal" "assistance"}.fd-tile,.fd-tile-taxes{min-height:160px}.fd-tile-title{font-size:24px}.fd-tile-number{font-size:38px}.fd-tax-breakdown{grid-template-columns:1fr}.fd-tax-main strong{font-size:32px}.fd-tax-mini-chart{height:78px}}

.sp-browser-page{background:transparent;border:0;box-shadow:none;overflow:visible}
.sp-browser-header{background:#fff;border:1px solid var(--sp-border);border-radius:8px;padding:16px 18px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;box-shadow:var(--sp-shadow);margin-bottom:14px}
.sp-browser-subtitle{margin-top:5px;color:var(--sp-muted);font-size:14px;line-height:1.4}
.sp-browser-actions{display:flex;gap:8px;flex-wrap:wrap}
.sp-browser-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.sp-browser-stat{background:#fff;border:1px solid var(--sp-border);border-radius:8px;padding:14px 16px;box-shadow:var(--sp-shadow)}
.sp-browser-stat span{display:block;color:var(--sp-muted);font-size:12px;font-weight:800;text-transform:uppercase;margin-bottom:6px}
.sp-browser-stat strong{display:block;color:var(--sp-blue-dark);font-size:26px;line-height:1}
.sp-browser-toolbar{background:#fff;border:1px solid var(--sp-border);border-radius:8px;padding:12px;box-shadow:var(--sp-shadow);margin-bottom:14px;display:grid;gap:12px}
.sp-browser-breadcrumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px;font-weight:700;color:var(--sp-muted)}
.sp-browser-breadcrumbs a{color:var(--sp-blue-dark)}
.sp-browser-filter-form{display:grid;grid-template-columns:220px minmax(220px,1fr) auto auto;gap:8px;align-items:center}
.sp-browser-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start}
.sp-browser-main{display:grid;gap:14px;min-width:0}
.sp-browser-panel,.sp-browser-upload-card,.sp-browser-side-card{background:#fff;border:1px solid var(--sp-border);border-radius:8px;box-shadow:var(--sp-shadow);padding:16px}
.sp-browser-panel-head,.sp-browser-files-head,.sp-browser-upload-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.sp-folder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.sp-folder-list{display:grid;gap:8px}
.sp-folder-card{border:1px solid var(--sp-border);border-radius:8px;padding:14px;background:linear-gradient(180deg,#fff 0%,color-mix(in srgb,var(--sp-blue-soft) 24%,#fff 76%) 100%);color:var(--sp-text);text-decoration:none;display:grid;gap:6px;min-height:116px}
.sp-folder-card:hover{border-color:var(--sp-blue);background:var(--sp-blue-soft);text-decoration:none}
.sp-folder-icon{font-size:28px;line-height:1}
.sp-folder-title{font-weight:800;color:var(--sp-blue-dark)}
.sp-folder-meta,.sp-folder-date{font-size:12px;color:var(--sp-muted)}
.sp-browser-files-wrap{margin-top:16px}
.sp-browser-table td small{display:block;color:var(--sp-muted);font-size:12px;margin-top:3px}
.sp-browser-file-link{display:flex;align-items:center;gap:10px;color:var(--sp-text)}
.sp-browser-file-link:hover{text-decoration:none;color:var(--sp-blue-dark)}
.sp-browser-file-icon{width:34px;height:34px;border-radius:8px;background:var(--sp-blue-soft);display:grid;place-items:center;flex:0 0 34px}
.sp-browser-actions-col{display:flex;gap:8px;flex-wrap:wrap}
.sp-browser-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}
.sp-browser-dropzone{border:2px dashed var(--sp-border);border-radius:10px;background:color-mix(in srgb,var(--sp-blue-soft) 36%,#fff 64%);padding:22px;text-align:center;cursor:pointer;margin-bottom:14px;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}
.sp-browser-dropzone.is-drag,.sp-browser-dropzone.has-files{border-color:var(--sp-green);background:color-mix(in srgb,var(--sp-green-soft) 58%,#fff 42%);box-shadow:0 0 0 3px color-mix(in srgb,var(--sp-green) 14%,transparent)}
.sp-browser-dropzone-icon{font-size:30px;line-height:1;margin-bottom:8px}
.sp-browser-dropzone-title{font-weight:800;color:var(--sp-blue-dark)}
.sp-browser-dropzone-note{font-size:13px;color:var(--sp-muted);margin-top:5px}
.sp-browser-dropzone input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.sp-upload-selection{margin:16px auto 0;max-width:760px;text-align:left;background:#fff;border:1px solid var(--sp-border);border-radius:8px;padding:12px}
.sp-browser-dropzone.has-files .sp-upload-selection{border-color:color-mix(in srgb,var(--sp-green) 48%,var(--sp-border));background:#f7fff9}
.sp-upload-selection-title{font-weight:800;color:var(--sp-blue-dark);font-size:14px;margin-bottom:8px}
.sp-upload-selection-list{display:grid;gap:8px}
.sp-upload-file{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;background:#fff;border:1px solid #dbe6f0;border-radius:8px;padding:8px 10px}
.sp-upload-file-icon{width:34px;height:28px;border-radius:6px;background:var(--sp-blue);color:#fff;display:grid;place-items:center;font-size:10px;font-weight:900}
.sp-upload-file-name{font-weight:800;color:var(--sp-blue-dark);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-upload-file-size{color:var(--sp-muted);font-size:12px;white-space:nowrap}
.sp-browser-switch{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--sp-blue-dark)}
.sp-browser-side{position:sticky;top:70px}
.sp-browser-detail-name{font-weight:800;color:var(--sp-blue-dark);font-size:18px}
.sp-browser-detail-meta{color:var(--sp-muted);font-size:13px;margin-top:4px;word-break:break-word}
.sp-browser-detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.sp-recent-list{display:grid;gap:8px}
.sp-recent-item{display:flex;justify-content:space-between;gap:12px;border:1px solid var(--sp-border);border-radius:8px;padding:10px 12px;background:color-mix(in srgb,var(--sp-blue-soft) 26%,#fff 74%);color:var(--sp-text)}
.sp-recent-item:hover{text-decoration:none;background:var(--sp-blue-soft)}
.sp-recent-item strong,.sp-recent-item small{display:block}
.sp-recent-item small{color:var(--sp-muted);font-size:12px;margin-top:3px}
.sp-recent-item span{font-weight:800;color:var(--sp-blue-dark)}
.sp-content nav[role="navigation"]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;color:var(--sp-muted);font-size:13px}
.sp-content nav[role="navigation"] svg{width:18px!important;height:18px!important;max-width:18px;max-height:18px;display:block}
.sp-content nav[role="navigation"] a,
.sp-content nav[role="navigation"] span{display:inline-flex;align-items:center;justify-content:center;min-width:34px;min-height:34px;padding:6px 10px;border:1px solid var(--sp-border);background:#fff;color:var(--sp-blue-dark);border-radius:6px;text-decoration:none}
.sp-content nav[role="navigation"] a:hover{background:var(--sp-blue-soft);text-decoration:none}
.sp-content nav[role="navigation"] [aria-current="page"] span,
.sp-content nav[role="navigation"] span[aria-current="page"]{background:var(--sp-blue);border-color:var(--sp-blue);color:#fff}
.sp-content .w-5{width:1.25rem!important}
.sp-content .h-5{height:1.25rem!important}
@media (max-width:1200px){.sp-browser-layout{grid-template-columns:1fr}.sp-browser-side{position:static}.sp-browser-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.sp-browser-header,.sp-browser-panel-head,.sp-browser-files-head,.sp-browser-upload-footer{display:grid}.sp-browser-filter-form,.sp-browser-upload-grid,.sp-browser-stats{grid-template-columns:1fr}.sp-folder-grid{grid-template-columns:1fr}}

@media (max-width:1100px){
    .sp-shell{grid-template-columns:1fr}
    .sp-sidebar{
        display:flex;
        position:fixed;
        left:0;
        top:56px;
        bottom:0;
        width:min(82vw,300px);
        height:calc(100vh - 56px);
        z-index:200;
        transform:translateX(-105%);
        transition:transform .22s ease;
        box-shadow:16px 0 28px rgba(6,39,68,.22);
    }
    .sp-sidebar-toggle{display:inline-flex}
    body.sp-sidebar-open .sp-sidebar{transform:translateX(0)}
    body.sp-sidebar-open .sp-sidebar-backdrop{display:block}
    body.sp-sidebar-open{overflow:hidden}
}

/* FISCODOC official visual alignment */
:root,
body[data-theme="verde"],
body[data-theme="blu-scuro"],
body[data-theme="ardesia"],
body[data-theme="terra"]{
    --sp-blue:#0a2d4f;
    --sp-blue-dark:#062744;
    --sp-blue-soft:#eaf4fb;
    --sp-bg:#f3f8fc;
    --sp-sidebar:#eaf3fb;
    --sp-border:#c8d9e8;
    --sp-text:#092943;
    --sp-muted:#5e6f7d;
    --sp-green:#1fa64a;
    --sp-green-soft:#e9f8ef;
    --sp-gold:#48aede;
    --sp-cream:#f8fcff;
    --sp-shadow:0 10px 28px rgba(6,39,68,.06);
}

.sp-app{
    background:
        radial-gradient(circle at 82% 12%, rgba(72,174,222,.16), transparent 28%),
        linear-gradient(180deg,#f7fbff 0%,var(--sp-bg) 100%);
}

.sp-topbar{
    height:62px;
    background:#183c5d;
    border-bottom:0;
    box-shadow:0 8px 28px rgba(6,39,68,.14);
}

.sp-brand{
    gap:12px;
}

.sp-brand-logo{
    width:172px;
    max-height:30px;
    height:auto;
    object-fit:contain;
    display:block;
    background:#fff;
    border-radius:8px;
    padding:5px 8px;
    box-shadow:0 8px 20px rgba(0,0,0,.08);
}

.sp-brand-badge{
    background:#fff;
    color:var(--sp-blue-dark);
}

.sp-select,
.sp-topbtn,
.sp-iconbtn{
    border-color:rgba(255,255,255,.28);
    background:rgba(255,255,255,.10);
    border-radius:10px;
}

.sp-iconbadge{
    background:#f04438;
    border-color:#183c5d;
    top:-5px;
    right:-5px;
}

.sp-shell{
    grid-template-columns:252px 1fr;
}

.sp-sidebar{
    top:62px;
    height:calc(100vh - 62px);
    background:linear-gradient(180deg,#eef6fc 0%,#e6f0f8 100%);
    border-right-color:#c6d8e8;
}

.sp-studio-card{
    border-radius:12px;
    padding:12px;
    background:#fff;
    border-color:#c6d8e8;
    box-shadow:0 14px 30px rgba(6,39,68,.07);
}

.sp-sidebar-logo-wrap{
    height:70px;
    border-radius:10px;
    border-color:#d3e2ee;
}

.sp-sidebar-logo{
    max-width:188px;
    max-height:48px;
}

.sp-studio-name{
    color:var(--sp-blue-dark);
    font-size:16px;
}

.sp-menu-title{
    color:#536777;
    letter-spacing:.05em;
}

.sp-menu a{
    color:#14334f;
    border-radius:10px;
}

.sp-menu-icon{
    border-color:var(--sp-blue-dark);
    color:var(--sp-green);
}

.sp-menu a.active,
.sp-menu a:hover{
    background:#fff;
    border-color:#b9d2e5;
    color:var(--sp-blue-dark);
    box-shadow:0 8px 18px rgba(6,39,68,.06);
}

.sp-menu a.active .sp-menu-icon,
.sp-menu a:hover .sp-menu-icon{
    background:var(--sp-blue-dark);
    color:#fff;
    border-color:var(--sp-green);
}

.sp-content{
    padding:18px 22px 28px;
}

.sp-page,
.sp-card,
.sp-table-wrap,
.sp-browser-panel,
.sp-browser-upload-card,
.sp-browser-side-card,
.sp-browser-header,
.sp-browser-stat,
.fd-tile,
.fd-bottom-panel>div,
.sd-card,
.sd-kpi,
.sd-head{
    border-color:#c8d9e8;
    border-radius:12px;
    box-shadow:0 14px 34px rgba(6,39,68,.06);
}

.sp-page-header,
.sp-card-head,
.sp-table-toolbar{
    background:linear-gradient(180deg,#fff 0%,#f5fbff 100%);
}

.sp-title,
.sp-card-title,
.sp-section-title,
.fd-panel-title,
.fd-tile-title{
    color:var(--sp-blue-dark);
}

.sp-btn{
    border-radius:8px;
    font-weight:800;
}

.sp-btn-primary,
.sp-btn-success{
    background:var(--sp-green);
    border-color:var(--sp-green);
    color:#fff;
}

.sp-btn-primary:hover,
.sp-btn-success:hover{
    background:#16863b;
    border-color:#16863b;
}

.fd-dashboard{
    max-width:1560px;
}

.fd-hero{
    min-height:104px;
    background:#fff;
    border-radius:14px;
}

.fd-hero::before{
    content:"Il portale fiscale unico dedicato ai medici";
    position:absolute;
    left:22px;
    bottom:18px;
    color:var(--sp-muted);
    font-size:13px;
    font-weight:700;
}

.fd-hero-logo{
    width:min(520px,40vw);
    max-height:70px;
}

.fd-public-logo{
    width:min(520px,32vw) !important;
    image-rendering:auto;
}

.fd-tablet img,
.fd-hero-logo,
.sp-brand-logo,
.sp-sidebar-logo,
.fd-quadra-fiscodoc{
    image-rendering:auto;
}

.fd-tile::after{
    content:none;
}

.fd-tile:hover{
    border-color:#95c7e5;
    background:#fff;
}

.fd-tax-main strong,
.fd-tile-number,
.sp-kpi-value{
    color:var(--sp-blue-dark);
}

.fd-quadra-wrap{
    padding:16px;
    display:grid;
    grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);
    gap:0;
}

.fd-quadra-hero{
    min-height:540px;
    padding:44px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    background:linear-gradient(135deg,#fff 0%,#f3faf7 100%);
    border:1px solid var(--sp-border);
    border-right:0;
    border-radius:14px 0 0 14px;
}

.fd-quadra-fiscodoc{
    width:220px;
    height:auto;
    margin-bottom:28px;
}

.fd-quadra-lockup{
    display:flex;
    align-items:center;
    margin-bottom:24px;
    flex-wrap:wrap;
}

.fd-quadra-icon{
    width:74px;
    height:74px;
    border:1px solid #c8d8e8;
    border-radius:18px;
    background:#fff;
    display:grid;
    place-items:center;
    box-shadow:0 12px 32px rgba(11,48,79,.08);
}

.fd-quadra-icon img{
    width:46px;
    height:46px;
    object-fit:contain;
}

.fd-quadra-logo{
    display:block;
    width:min(250px,100%);
    height:auto;
    object-fit:contain;
}

.fd-quadra-lockup-text{
    min-width:170px;
}

.fd-quadra-eyebrow{
    font-size:13px;
    font-weight:800;
    color:var(--sp-muted);
    text-transform:uppercase;
    letter-spacing:.04em;
}

.fd-quadra-title{
    font-size:36px;
    line-height:1;
    font-weight:900;
    color:var(--sp-blue-dark);
}

.fd-quadra-hero h1{
    margin:0 0 14px;
    color:var(--sp-blue-dark);
    font-size:34px;
    line-height:1.08;
}

.fd-quadra-hero p{
    margin:0 0 20px;
    color:var(--sp-text);
    font-size:17px;
    line-height:1.6;
    max-width:680px;
}

.fd-quadra-points{
    display:grid;
    gap:10px;
    margin:8px 0 28px;
    max-width:580px;
}

.fd-quadra-points div{
    display:flex;
    gap:10px;
    align-items:flex-start;
}

.fd-quadra-points span{
    width:22px;
    height:22px;
    border-radius:999px;
    background:var(--sp-green-soft);
    color:var(--sp-green);
    display:grid;
    place-items:center;
    font-weight:900;
    line-height:1;
    flex:0 0 22px;
}

.fd-quadra-actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    align-items:center;
}

.fd-quadra-actions .sp-btn{
    height:46px;
    font-size:16px;
    padding:0 20px;
}

.fd-quadra-actions span{
    color:var(--sp-muted);
    font-size:13px;
}

.fd-quadra-panel{
    padding:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#eef6f9;
    border:1px solid var(--sp-border);
    border-radius:0 14px 14px 0;
}

.fd-quadra-card{
    width:min(440px,100%);
    background:#fff;
    border:1px solid #c8d8e8;
    border-radius:16px;
    padding:28px;
    box-shadow:0 24px 60px rgba(11,48,79,.14);
}

.fd-quadra-card-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:22px;
}

.fd-quadra-card-head strong{
    color:var(--sp-blue-dark);
    font-size:20px;
}

.fd-quadra-card-head span{
    color:var(--sp-green);
    font-size:12px;
    font-weight:800;
}

.fd-quadra-row{
    border:1px solid #d8e4ef;
    border-radius:12px;
    padding:16px;
    margin-bottom:12px;
}

.fd-quadra-row span{
    display:block;
    color:var(--sp-muted);
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
}

.fd-quadra-row strong{
    display:block;
    margin-top:5px;
    color:var(--sp-text);
    font-size:18px;
}

.fd-quadra-card .sp-btn{
    width:100%;
    height:44px;
    font-size:16px;
}

@media (max-width:1100px){
    .sp-shell{
        grid-template-columns:1fr;
    }
    .sp-content{
        grid-column:1;
        width:100%;
        max-width:100%;
        min-width:0;
    }
    .sp-sidebar{
        top:62px;
        height:calc(100vh - 62px);
    }
    .sp-sidebar-backdrop{
        inset:62px 0 0;
    }
}

@media (max-width:900px){
    .fd-quadra-wrap{
        grid-template-columns:1fr;
    }
    .fd-quadra-hero,
    .fd-quadra-panel{
        border-radius:14px;
        border:1px solid var(--sp-border);
        padding:26px;
    }
    .fd-quadra-panel{
        margin-top:14px;
    }
}

@media (max-width:700px){
    .sp-topbar{
        padding:0 10px;
    }
    .sp-brand-logo{
        width:138px;
    }
    .sp-brand span{
        font-size:16px;
    }
    .fd-hero::before{
        position:static;
        order:3;
        text-align:center;
    }
}

/* Mobile hard reset: keep portal pages inside the viewport */
@media (max-width:760px){
    html,
    body{
        width:100%;
        max-width:100%;
        overflow-x:hidden;
    }

    .sp-app,
    .sp-shell,
    .sp-content,
    .sp-page,
    .sp-browser-page,
    .sp-browser-main,
    .sp-browser-panel,
    .sp-browser-upload-card,
    .sp-browser-side-card,
    .sp-table-wrap{
        width:100%;
        max-width:100%;
        min-width:0;
    }

    .sp-shell{
        display:block;
        grid-template-columns:1fr !important;
    }

    .sp-content{
        padding:12px;
        overflow-x:hidden;
    }

    .sp-topbar{
        height:auto;
        min-height:62px;
        padding:8px 10px;
        gap:8px;
    }

    .sp-topbar-left,
    .sp-topbar-right{
        min-width:0;
        gap:8px;
    }

    .sp-topbar-left{
        flex:1 1 auto;
    }

    .sp-topbar-right{
        flex:0 0 auto;
    }

    .sp-brand{
        min-width:0;
        gap:8px;
    }

    .sp-brand-logo{
        width:min(154px,42vw);
        max-width:154px;
        flex:0 1 auto;
    }

    .sp-brand span{
        max-width:76px;
        font-size:16px;
        line-height:1.1;
        overflow:hidden;
    }

    .sp-topbtn,
    .sp-select{
        min-width:0;
        height:36px;
        padding:0 10px;
    }

    .sp-iconbtn{
        width:38px;
        height:38px;
        flex:0 0 38px;
    }

    .sp-sidebar{
        top:62px;
        width:min(86vw,320px);
        max-width:86vw;
        height:calc(100vh - 62px);
    }

    .sp-sidebar-backdrop{
        inset:62px 0 0;
    }

    .sp-page-header,
    .sp-browser-header,
    .sp-browser-panel-head,
    .sp-browser-files-head,
    .sp-browser-upload-footer{
        display:grid;
        grid-template-columns:1fr;
        align-items:start;
    }

    .sp-toolbar,
    .sp-browser-actions{
        justify-content:flex-start;
    }

    .sp-toolbar,
    .sp-toolbar-right{
        display:grid;
        grid-template-columns:1fr;
        width:100%;
        gap:8px;
    }

    .sp-toolbar .sp-btn,
    .sp-toolbar-right .sp-btn,
    .sp-filter-grid .sp-btn{
        width:100%;
        justify-content:center;
        white-space:normal;
        text-align:center;
    }

    .sp-grid,
    .sp-grid-2,
    .sp-grid-3,
    .sp-grid-4,
    .sd-shell,
    .sd-kpis,
    .sd-grid,
    .sd-panels,
    .sp-dashboard-grid,
    .sp-form-grid,
    .sp-filter-grid,
    .sp-browser-stats,
    .sp-browser-layout,
    .sp-browser-filter-form,
    .sp-browser-upload-grid,
    .sp-folder-grid,
    .fd-board,
    .fd-bottom-panel{
        grid-template-columns:1fr !important;
    }

    .sd-head,
    .sd-card,
    .sd-kpi,
    .sd-table-wrap{
        max-width:100%;
        min-width:0;
    }

    .sd-head-actions{
        display:grid;
        grid-template-columns:1fr;
        width:100%;
    }

    .sd-head-actions .sp-btn{
        width:100%;
        justify-content:center;
        white-space:normal;
        text-align:center;
    }

    .fd-board{
        grid-template-areas:
            "communications"
            "invoices"
            "taxes"
            "renewal"
            "assistance" !important;
    }

    .fd-dashboard{
        max-width:100%;
    }

    .fd-hero-logo{
        width:min(100%,320px);
        max-width:320px;
    }

    .fd-hero-meta{
        min-width:0;
    }

    .sp-table-wrap,
    .sp-browser-files-wrap{
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
    }

    .sp-table{
        min-width:640px;
    }

    .sp-browser-stat,
    .sp-card,
    .sp-browser-panel,
    .sp-browser-upload-card,
    .sp-browser-side-card,
    .fd-tile,
    .fd-bottom-panel>div{
        border-radius:14px;
    }
}

@media (max-width:430px){
    .sp-brand-logo{
        width:138px;
    }

    .sp-brand span{
        max-width:64px;
        font-size:15px;
    }

    .sp-topbtn{
        min-width:62px;
    }

    .sp-content{
        padding:10px;
    }
}
