/* =====================================================================
   INFINITYHUB MARKETPLACE — SPACE / BLUE THEME
   Ispirato all'identità visiva Pre-IPO 2026 e al mockup approvato.
   Caricato per ultimo: uniforma Admin, Energivoro, Professionista,
   Supply Chain e le nuove pagine future.
   ===================================================================== */

:root{
  color-scheme:dark;

  /* Brand */
  --ih-blue:#38bdf8;
  --ih-blue-bright:#55ccff;
  --ih-blue-mid:#168fd2;
  --ih-blue-deep:#075985;
  --ih-blue-soft:rgba(56,189,248,.13);
  --ih-orange:#ff8a00;
  --ih-orange-soft:rgba(255,138,0,.13);

  /* Space surfaces */
  --space-black:#02070c;
  --space-bg:#030a10;
  --space-panel:#071119;
  --space-panel-2:#091620;
  --space-panel-3:#0c1b26;
  --space-line:#173244;
  --space-line-strong:#23506a;
  --space-text:#f7fbff;
  --space-muted:#8fa8b8;
  --space-muted-2:#6e8797;

  --color-bg:var(--space-bg);
  --color-surface:var(--space-panel);
  --color-text:var(--space-text);
  --color-text-muted:var(--space-muted);
  --color-border:var(--space-line);
  --color-border-strong:var(--space-line-strong);
  --color-primary:var(--ih-blue);

  --ih-green:var(--ih-blue);
  --ih-green-mid:var(--ih-blue-mid);
  --ih-green-dark:var(--ih-blue-deep);
  --ih-green-light:var(--ih-blue-soft);

  --slate-50:#071119;
  --slate-100:#091620;
  --slate-200:#102330;
  --slate-300:#173244;
  --slate-400:#688394;
  --slate-500:#8fa8b8;
  --slate-600:#adc0cb;
  --slate-700:#cbd9e1;
  --slate-800:#e7f1f6;
  --slate-900:#ffffff;
  --white:#071119;

  --radius-md:9px;
  --radius-lg:12px;
  --radius-xl:16px;
  --shadow-sm:0 7px 22px rgba(0,0,0,.24);
  --shadow-md:0 12px 36px rgba(0,0,0,.32);

  /* Sidebar inline variables from main.php */
  --sb-bg:#03090e;
  --sb-hover:#081722;
  --sb-active:#0b2638;
  --sb-border:rgba(85,204,255,.13);
  --sb-text:#adc0cb;
  --sb-text-on:#ffffff;
  --sb-accent:var(--ih-blue);
}

/* ---------------------------------------------------------------------
   GLOBAL SPACE BACKGROUND
   --------------------------------------------------------------------- */
html{
  background:var(--space-black) !important;
}

body{
  background:
    linear-gradient(180deg,rgba(2,7,12,.26),rgba(2,7,12,.82) 290px,var(--space-bg) 660px),
    url('../img/sfondo.jpg') center top / 1920px auto no-repeat fixed,
    var(--space-bg) !important;
  color:var(--space-text) !important;
}

body::before{
  content:'' !important;
  display:block !important;
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background:
    radial-gradient(circle at 75% 4%,rgba(56,189,248,.12),transparent 28%),
    radial-gradient(circle at 12% 38%,rgba(11,91,145,.08),transparent 30%);
}

.layout-root,
.layout-main{
  background:transparent !important;
}

.main-content{
  color:var(--space-text) !important;
  background:
    linear-gradient(180deg,rgba(3,10,16,.22),rgba(3,10,16,.78) 420px,var(--space-bg) 760px) !important;
}

.container{
  max-width:1400px;
}

/* ---------------------------------------------------------------------
   LOGO / SIDEBAR
   --------------------------------------------------------------------- */
.sidebar{
  background:
    linear-gradient(180deg,rgba(3,10,16,.98),rgba(2,8,13,.98)) !important;
  border-right:1px solid rgba(56,189,248,.15) !important;
  box-shadow:8px 0 32px rgba(0,0,0,.35) !important;
}

.sb-logo{
  min-height:72px !important;
  padding:9px 15px !important;
  background:rgba(1,6,10,.88) !important;
  border-bottom:1px solid rgba(56,189,248,.12) !important;
}

.sb-logo-img{
  width:100% !important;
  height:auto !important;
  max-width:190px !important;
  max-height:54px !important;
  object-fit:contain !important;
}

.sidebar.collapsed .sb-logo{
  padding:12px 8px !important;
}

.sidebar.collapsed .sb-logo-img{
  width:48px !important;
  max-width:48px !important;
  max-height:42px !important;
  object-fit:cover !important;
  object-position:left center !important;
}

.sb-nav{
  padding:9px 8px !important;
}

.sb-section-label{
  color:#527083 !important;
  font-size:9px !important;
  letter-spacing:.13em !important;
  padding:16px 11px 5px !important;
}

.sb-link{
  min-height:40px !important;
  margin:2px 0 !important;
  padding:9px 11px !important;
  border-radius:8px !important;
  color:#a6b9c5 !important;
  font-size:13px !important;
  font-weight:560 !important;
}

.sb-link:hover{
  background:#071824 !important;
  color:#fff !important;
}

.sb-link.active{
  background:linear-gradient(90deg,rgba(23,143,210,.38),rgba(16,76,112,.38)) !important;
  color:#fff !important;
  box-shadow:
    inset 0 0 0 1px rgba(56,189,248,.18),
    0 0 22px rgba(56,189,248,.05) !important;
}

.sb-link.active::before{
  top:7px !important;
  bottom:7px !important;
  width:3px !important;
  border-radius:4px !important;
  background:var(--ih-blue) !important;
  box-shadow:0 0 13px rgba(56,189,248,.45) !important;
}

.sb-link.active .sb-icon,
.sb-icon{
  color:inherit !important;
}

.sb-badge{
  background:var(--ih-blue-mid) !important;
  color:#fff !important;
  box-shadow:0 0 10px rgba(56,189,248,.18);
}
.sb-badge.amber{
  background:var(--ih-orange) !important;
}

.sb-bottom{
  background:rgba(2,7,12,.96) !important;
  border-color:rgba(56,189,248,.12) !important;
}

.sb-avatar{
  background:linear-gradient(135deg,var(--ih-blue),var(--ih-blue-deep)) !important;
  color:#fff !important;
}

.sb-user-name{color:#fff !important;}
.sb-user-role{color:#7792a2 !important;}

.topbar{
  background:rgba(2,8,13,.96) !important;
  border-bottom:1px solid rgba(56,189,248,.12) !important;
  backdrop-filter:blur(14px);
}

.topbar-logo img{
  height:34px !important;
  max-width:160px;
  object-fit:contain;
}

/* ---------------------------------------------------------------------
   TYPOGRAPHY
   --------------------------------------------------------------------- */
h1,h2,h3,h4,h5,h6,
.dashboard-title,.card-title,.ev-title,.prof-title,.pd-title,.py-title,.pw-title,
strong,label,.form-label{
  color:#fff !important;
}

p,small,.text-muted,.muted,.ev-muted,.prof-muted,.py-muted,
.form-hint,.card-subtitle{
  color:var(--space-muted) !important;
}

a{
  color:var(--ih-blue-bright);
}
a:hover{
  color:#8bddff;
}

/* ---------------------------------------------------------------------
   HERO — SAME SPACE LANGUAGE AS PRE-IPO DECK
   --------------------------------------------------------------------- */
:root{
  --page-hero-image:url('../img/sfondo.jpg');
  --page-hero-position:center center;
  --page-hero-size:cover;
  --page-hero-min-height:172px;
  --page-hero-radius:13px;
  --page-hero-padding:clamp(23px,4vw,40px);
  --page-hero-margin-bottom:22px;
  --page-hero-text:#fff;
  --page-hero-muted:rgba(225,241,249,.82);
  --page-hero-overlay:
    linear-gradient(103deg,rgba(2,8,14,.95) 0%,rgba(3,16,27,.78) 46%,rgba(3,15,25,.28) 100%);
  --page-hero-shadow:0 16px 44px rgba(0,0,0,.28);
  --page-hero-accent:var(--ih-blue-bright);
}

.page-hero,.ev-hero,.dashboard-header{
  border:1px solid rgba(56,189,248,.18) !important;
  background-image:var(--page-hero-overlay),var(--page-hero-image) !important;
  box-shadow:
    var(--page-hero-shadow),
    inset 0 0 0 1px rgba(255,255,255,.018) !important;
}

.page-hero::after,.ev-hero::after,.dashboard-header::after{
  border-color:rgba(56,189,248,.22) !important;
  box-shadow:
    0 0 0 38px rgba(56,189,248,.025),
    0 0 0 76px rgba(56,189,248,.014) !important;
}

.page-hero__eyebrow{
  color:var(--ih-blue-bright) !important;
}

.page-hero__button,
.page-hero .ev-btn,
.ev-hero .ev-btn,
.dashboard-header .btn{
  background:rgba(5,18,28,.62) !important;
  border-color:rgba(116,210,255,.35) !important;
  color:#fff !important;
  backdrop-filter:blur(10px);
}

.page-hero__button--primary,
.page-hero .ev-btn-primary,
.ev-hero .ev-btn-primary{
  background:linear-gradient(135deg,#137fb8,#075985) !important;
  border-color:#36b8f2 !important;
}

/* ---------------------------------------------------------------------
   CARDS / PANELS
   --------------------------------------------------------------------- */
.card,.kpi-card,
.ev-card,.prof-card,.py-card,.pr-card,.pd-card,.ed-card,.pn-card,.pw-card,
.prof-invito-card,.prof-panel,.py-panel,.ev-panel,
[class$="-card"],[class*=" card-"]{
  background:
    linear-gradient(180deg,rgba(9,22,32,.94),rgba(5,15,23,.97)) !important;
  color:var(--space-text) !important;
  border:1px solid var(--space-line) !important;
  border-radius:12px !important;
  box-shadow:0 9px 28px rgba(0,0,0,.24) !important;
}

.card:hover,.kpi-card:hover,.ev-card:hover,.prof-card:hover,
.py-card:hover,.pd-card:hover,.pw-card:hover{
  border-color:#23506a !important;
  box-shadow:
    0 12px 34px rgba(0,0,0,.32),
    0 0 0 1px rgba(56,189,248,.025) !important;
}

.card-header,.card-footer,.ev-card-head,.prof-card-head,.py-card-head,
.pd-card-head,.ed-card-head{
  background:rgba(7,17,25,.92) !important;
  color:#fff !important;
  border-color:var(--space-line) !important;
}

.card-footer{
  background:rgba(4,13,20,.95) !important;
}

/* KPIs: blue by default, orange only alerts/attention */
.kpi-value,.prof-kpi-value,.ev-kpi,.py-kpi{
  color:var(--ih-blue-bright) !important;
}
.kpi-label,.prof-kpi-label{
  color:#8fa8b8 !important;
}

/* ---------------------------------------------------------------------
   BUTTONS
   --------------------------------------------------------------------- */
.btn,.py-btn,.prof-btn,.pd-btn,.ed-btn,.ev-btn,.pw-tabs a,
.page-hero__button{
  border:1px solid #234257 !important;
  border-radius:8px !important;
  background:linear-gradient(180deg,#0b1d29,#07151f) !important;
  color:#dcecf4 !important;
  box-shadow:none !important;
}

.btn:hover,.py-btn:hover,.prof-btn:hover,.pd-btn:hover,.ed-btn:hover,
.ev-btn:hover,.pw-tabs a:hover{
  background:#0d2737 !important;
  border-color:#2e6786 !important;
  color:#fff !important;
}

.btn-primary,.btn-secondary,.py-btn--primary,.prof-btn--accept,
.pd-btn-primary,.ed-btn.primary,.ev-btn-primary,.prof-save,
.page-hero__button--primary{
  background:linear-gradient(135deg,#168fd2,#075985) !important;
  border-color:#38bdf8 !important;
  color:#fff !important;
}

.btn-primary:hover,.btn-secondary:hover,.py-btn--primary:hover,
.prof-save:hover,.ev-btn-primary:hover,.page-hero__button--primary:hover{
  background:linear-gradient(135deg,#21a9ee,#0b6598) !important;
  color:#fff !important;
}

/* Commercial / urgent action */
.btn-accent,.mp-cta{
  background:linear-gradient(135deg,#ff9d23,#e96f00) !important;
  border-color:#ffb257 !important;
  color:#120900 !important;
  font-weight:800 !important;
}

.btn-danger,.py-btn--danger{
  background:#211014 !important;
  border-color:#6c2930 !important;
  color:#ff858c !important;
}

/* ---------------------------------------------------------------------
   FORMS
   --------------------------------------------------------------------- */
.form-control,.py-control,.prof-control,.ev-control,
input[type="text"],input[type="email"],input[type="password"],input[type="tel"],
input[type="number"],input[type="date"],input[type="datetime-local"],input[type="url"],
input[type="search"],input[type="file"],select,textarea{
  background:#081620 !important;
  color:#f5fbff !important;
  border:1px solid #244052 !important;
  border-radius:8px !important;
}

.form-control:hover,input:hover,select:hover,textarea:hover{
  border-color:#32627e !important;
}

.form-control:focus,input:focus,select:focus,textarea:focus{
  border-color:var(--ih-blue) !important;
  box-shadow:0 0 0 3px rgba(56,189,248,.13) !important;
}

input::placeholder,textarea::placeholder{
  color:#5e7889 !important;
}

input:disabled,select:disabled,textarea:disabled{
  background:#061019 !important;
  color:#718999 !important;
  opacity:1 !important;
}

option{
  background:#081620 !important;
  color:#fff !important;
}

/* ---------------------------------------------------------------------
   TABLES
   --------------------------------------------------------------------- */
.table-wrap,.py-table-wrap,.prof-table-wrap,.ev-table-wrap{
  background:#071119 !important;
  border-color:var(--space-line) !important;
  border-radius:10px !important;
}

table,.table,.py-table,.prof-table,.ed-table,.ev-table{
  background:transparent !important;
  color:var(--space-text) !important;
}

thead th,.table th,.py-table th,.prof-table th,.ed-table th,.ev-table th{
  background:#091925 !important;
  color:#9eb4c1 !important;
  border-color:var(--space-line) !important;
}

tbody td,.table td,.py-table td,.prof-table td,.ed-table td,.ev-table td{
  color:#e0eaf0 !important;
  border-color:#122b3a !important;
  background:rgba(7,17,25,.78) !important;
}

tbody tr:hover td{
  background:#0a1c28 !important;
}

/* ---------------------------------------------------------------------
   BADGES / STATES
   --------------------------------------------------------------------- */
.badge,.py-pill,.prof-status,.prof-badge,.pw-badge,.stato-pill,.tipo-pill,.ed-pill{
  border-radius:999px !important;
}

.badge-gray,.ev-pill,.prof-pill{
  background:#112532 !important;
  color:#b8cbd6 !important;
  border-color:#244052 !important;
}

.badge-success,.status-success,.stato-completato,.stato-approvato{
  background:rgba(56,189,248,.11) !important;
  color:#75d7ff !important;
  border-color:rgba(56,189,248,.28) !important;
}

.badge-warning,.status-warning,.stato-in_attesa{
  background:var(--ih-orange-soft) !important;
  color:#ffad45 !important;
  border-color:rgba(255,138,0,.33) !important;
}

.badge-danger,.status-danger,.stato-rifiutato{
  background:rgba(239,68,68,.11) !important;
  color:#ff8585 !important;
  border-color:rgba(239,68,68,.28) !important;
}

/* ---------------------------------------------------------------------
   TABS / SECONDARY NAV
   --------------------------------------------------------------------- */
.tabs,.py-tabs,.prof-tabs,.nav-tabs{
  border-color:var(--space-line) !important;
}

.pw-tabs,.ft-quick-nav{
  padding:6px !important;
  gap:5px !important;
  border:1px solid var(--space-line) !important;
  border-radius:10px !important;
  background:rgba(5,14,22,.84) !important;
}

.pw-tabs a,
.ft-quick-nav .btn{
  min-height:35px !important;
  background:transparent !important;
  border-color:transparent !important;
}

.pw-tabs a:hover,
.ft-quick-nav .btn:hover{
  background:#0a2030 !important;
  border-color:#173f56 !important;
}

/* ---------------------------------------------------------------------
   MODALS / UPLOAD / EMPTY
   --------------------------------------------------------------------- */
.modal-content,.dropdown-menu,.user-menu-dropdown,.popover,.py-modal__box{
  background:#071119 !important;
  color:#f7fbff !important;
  border-color:#173244 !important;
  box-shadow:0 20px 55px rgba(0,0,0,.48) !important;
}

.upload-zone,.pr-empty,.py-empty,.prof-empty,.ev-empty{
  background:rgba(7,17,25,.92) !important;
  color:#8fa8b8 !important;
  border-color:#244052 !important;
}

.upload-zone:hover{
  background:#092234 !important;
  color:#cfefff !important;
  border-color:#38bdf8 !important;
}

/* ---------------------------------------------------------------------
   FLASH / INFO
   --------------------------------------------------------------------- */
.alert-success,.flash.success,.flash-bar--success{
  background:rgba(56,189,248,.11) !important;
  color:#80ddff !important;
  border-color:rgba(56,189,248,.28) !important;
}
.alert-danger,.flash.error,.flash-bar--error,.prof-error,.py-error{
  background:rgba(239,68,68,.11) !important;
  color:#ff9494 !important;
  border-color:rgba(239,68,68,.28) !important;
}
.alert-info,.ed-note,.py-notice{
  background:#071f2d !important;
  color:#aee7ff !important;
  border-color:#18475f !important;
}

/* ---------------------------------------------------------------------
   INLINE WHITE BACKGROUNDS FROM LEGACY VIEWS
   --------------------------------------------------------------------- */
[style*="background:#fff"],[style*="background: #fff"],
[style*="background:#ffffff"],[style*="background: #ffffff"],
[style*="background:white"],[style*="background: white"]{
  background:#071119 !important;
}

[style*="color:#10231d"],[style*="color: #10231d"],
[style*="color:#111827"],[style*="color: #111827"],
[style*="color:#17342b"],[style*="color: #17342b"],
[style*="color:#1f2937"],[style*="color: #1f2937"]{
  color:#f7fbff !important;
}

/* ---------------------------------------------------------------------
   FOOTER
   --------------------------------------------------------------------- */
.site-footer{
  background:
    linear-gradient(180deg,rgba(3,10,16,.95),rgba(1,5,9,.99)) !important;
  border-top:1px solid rgba(56,189,248,.14) !important;
  color:#839aaa !important;
}
.site-footer a{color:#9bb4c2 !important;}
.footer-brand img{
  max-height:34px;
  width:auto;
}

/* ---------------------------------------------------------------------
   AUTH
   --------------------------------------------------------------------- */
body.auth-layout,
.auth-page{
  background:
    linear-gradient(100deg,rgba(2,7,12,.90),rgba(2,7,12,.58)),
    url('../img/sfondo.jpg') center / cover fixed !important;
}

.auth-card{
  background:rgba(5,16,24,.95) !important;
  border:1px solid rgba(56,189,248,.20) !important;
  color:#fff !important;
  box-shadow:0 28px 70px rgba(0,0,0,.48) !important;
  backdrop-filter:blur(14px);
}

.auth-title{color:#fff !important;}
.auth-subtitle,.auth-footer{color:#8fa8b8 !important;}

/* ---------------------------------------------------------------------
   SCROLLBAR
   --------------------------------------------------------------------- */
*{scrollbar-color:#1e4d67 #061019;}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:#061019;}
::-webkit-scrollbar-thumb{
  background:#1e4d67;
  border:2px solid #061019;
  border-radius:10px;
}

/* ---------------------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------------------- */
@media(max-width:960px){
  body{
    background:
      linear-gradient(180deg,rgba(2,7,12,.50),rgba(3,10,16,.92) 380px,var(--space-bg) 700px),
      url('../img/sfondo.jpg') 58% top / auto 420px no-repeat,
      var(--space-bg) !important;
  }

  .topbar-logo img{
    max-width:145px;
  }
}

@media(max-width:760px){
  .container{
    padding-inline:14px !important;
  }

  .card,.kpi-card,.ev-card,.prof-card,.py-card,.pd-card,.pw-card{
    border-radius:10px !important;
  }

  .pw-tabs,.ft-quick-nav{
    overflow-x:auto;
    flex-wrap:nowrap !important;
    justify-content:flex-start !important;
    -webkit-overflow-scrolling:touch;
  }

  .pw-tabs a,.ft-quick-nav .btn{
    flex:0 0 auto !important;
    white-space:nowrap;
  }

  :root{
    --page-hero-min-height:145px;
    --page-hero-radius:10px;
    --page-hero-margin-bottom:16px;
  }
}

/* Final priority over legacy dark-theme.css */
html body.has-sidebar,
html body.has-sidebar .layout-root,
html body.has-sidebar .layout-main,
html body.has-sidebar .main-content{
  color:var(--space-text) !important;
}


/* =====================================================================
   MOCKUP PASS 2 — densità, gerarchia, pagine operative
   ===================================================================== */

/* Lo spazio diventa accento, non fondale invasivo continuo */
body{
  background:
    linear-gradient(180deg,rgba(2,7,12,.35),rgba(2,7,12,.93) 260px,var(--space-bg) 610px),
    url('../img/sfondo.jpg') center top / 1920px auto no-repeat,
    var(--space-bg) !important;
}

.main-content{
  background:rgba(3,10,16,.84) !important;
  backdrop-filter:blur(1px);
}

/* Contenuto più largo e meno dispersivo */
.container,
.pd-wrap,.eg-wrap,.ps-wrap,.ev-wrap,.py-page,.pw-wrap,.prof-page{
  max-width:1420px !important;
}

/* HERO OPERATIVI: il mockup usa una fascia, non una landing page */
.page-hero{
  min-height:104px !important;
  padding:18px 24px !important;
  margin-bottom:18px !important;
  border-radius:10px !important;
  background-position:center 42% !important;
}

.page-hero__inner{
  min-height:66px !important;
  gap:12px !important;
}

.page-hero__back{
  margin-bottom:7px !important;
  font-size:12px !important;
}

.page-hero__eyebrow{
  margin-bottom:4px !important;
  font-size:11px !important;
  letter-spacing:.10em !important;
}

.page-hero__title{
  margin:0 !important;
  font-size:clamp(25px,2.2vw,34px) !important;
  line-height:1.05 !important;
}

.page-hero__subtitle{
  margin-top:6px !important;
  max-width:820px !important;
  font-size:14px !important;
  line-height:1.35 !important;
}

/* Hero storici non ancora migrati al componente */
.ev-hero,
.dashboard-header{
  min-height:116px !important;
  padding:20px 26px !important;
  margin-bottom:18px !important;
  background:
    linear-gradient(100deg,rgba(2,8,14,.95),rgba(3,16,27,.69),rgba(3,15,25,.23)),
    url('../img/sfondo.jpg') center 40% / cover no-repeat !important;
}

.ev-hero{
  padding-bottom:26px !important;
}

.ev-hero-title{
  font-size:clamp(25px,2.2vw,34px) !important;
}

.ev-hero-sub{
  margin-top:5px !important;
}

/* Eliminiamo l'effetto KPI "sospesi" della vecchia area Energivoro */
.ev-kpi-float{
  margin:12px 0 18px !important;
  padding:0 !important;
  gap:9px !important;
  grid-template-columns:repeat(auto-fit,minmax(145px,1fr)) !important;
}

.ev-kpi-card{
  min-height:92px !important;
  padding:14px 16px !important;
  border:1px solid var(--space-line) !important;
  border-top:1px solid var(--space-line) !important;
  border-radius:9px !important;
  background:linear-gradient(180deg,#091620,#071119) !important;
  box-shadow:none !important;
}

.ev-kpi-val{
  font-size:22px !important;
  color:var(--ih-blue-bright) !important;
}

.ev-kpi-val.blue,
.ev-kpi-val.purple{
  color:var(--ih-blue-bright) !important;
}

.ev-kpi-val.amber{
  color:#ff9f1a !important;
}

/* Page body più compatto */
.ev-body{
  padding:0 0 34px !important;
}

.pd-wrap,.eg-wrap,.ps-wrap,.py-page,.pw-wrap,.prof-page{
  padding-top:16px !important;
}

.eg-grid,.ps-grid,.pd-grid,.py-grid{
  gap:12px !important;
}

/* Card come nel mockup: piccole, border sottile, niente "scatoloni" */
.card,.kpi-card,.ev-card,.prof-card,.py-card,.pr-card,.pd-card,.ed-card,.pn-card,.pw-card,
.ps-card,.eg-card,.prof-invito-card,.prof-panel,.py-panel,.ev-panel,
[class$="-card"],[class*=" card-"]{
  border-radius:9px !important;
  border-color:#163245 !important;
  box-shadow:0 4px 16px rgba(0,0,0,.18) !important;
}

.ev-card,.pd-card,.eg-card,.ps-card,.pw-card,.py-card,.prof-card{
  margin-bottom:12px !important;
}

.ev-card-head,.card-header,.pd-card-head,.py-card-head,.prof-card-head{
  padding:12px 15px !important;
}

.ev-card-body,.card-body,.pd-card-body,.py-card-body,.prof-card-body{
  padding:14px 15px !important;
}

/* Form operativi più densi */
.form-group{
  margin-bottom:12px !important;
}

.form-label{
  margin-bottom:5px !important;
  font-size:12px !important;
}

.form-control,
input[type="text"],input[type="email"],input[type="password"],input[type="tel"],
input[type="number"],input[type="date"],input[type="datetime-local"],input[type="url"],
input[type="search"],select,textarea{
  min-height:38px !important;
  padding:8px 10px !important;
  font-size:13px !important;
}

textarea{
  min-height:88px;
}

.btn,.py-btn,.prof-btn,.pd-btn,.ed-btn,.ev-btn,.btn-ev,
.page-hero__button{
  min-height:36px !important;
  padding:8px 13px !important;
  font-size:12.5px !important;
  border-radius:7px !important;
}

/* Sidebar più aderente al mockup */
.sidebar{
  width:218px !important;
}

.layout-main{
  margin-left:218px !important;
}

.sidebar.collapsed{
  width:70px !important;
}
.sidebar.collapsed + .layout-main{
  margin-left:70px !important;
}

.sb-logo{
  min-height:64px !important;
}

.sb-logo-img{
  max-width:172px !important;
  max-height:47px !important;
}

.sb-link{
  min-height:37px !important;
  font-size:12px !important;
}

/* Titoli pannello più piccoli: gerarchia da dashboard */
.eg-card h2,.ps-card h2,.pd-card h2,.ev-card h2,.pw-card h2{
  font-size:15px !important;
}
.eg-card h3,.ps-card h3,.pd-card h3,.ev-card h3,.pw-card h3{
  font-size:13px !important;
}

/* Fix definitivi per view storiche con CSS inline chiaro */
.eg-card,.ps-card{
  background:linear-gradient(180deg,#091620,#071119) !important;
  color:#f7fbff !important;
}

.eg-item,.ps-item{
  background:#07131d !important;
  border:1px solid #163245 !important;
  border-radius:8px !important;
}

.eg-badge,.ps-pill{
  background:rgba(56,189,248,.10) !important;
  color:#77d8ff !important;
  border:1px solid rgba(56,189,248,.22) !important;
}

.eg-meta,.ps-doc-meta{
  color:#839baa !important;
}

.eg-card [style*="background:#f8fafc"],
.eg-card [style*="background: #f8fafc"]{
  background:#0a1c28 !important;
}

/* Tabelle */
table th{
  padding:9px 11px !important;
}
table td{
  padding:10px 11px !important;
}

/* Area Energivoro: toolbar del progetto come shortcut marketplace */
.ev-project-shortcuts{
  display:flex !important;
  align-items:center;
  gap:7px !important;
  flex-wrap:wrap;
  margin:0 0 12px !important;
  padding:9px !important;
  background:rgba(5,14,22,.84) !important;
  border:1px solid #163245 !important;
  border-radius:9px !important;
}

.ev-project-shortcuts .btn-ev{
  background:#081824 !important;
  border-color:#1d3c50 !important;
  color:#c9dbe5 !important;
}
.ev-project-shortcuts .btn-ev:hover{
  background:#0b2535 !important;
  border-color:#2c6483 !important;
  color:#fff !important;
}
.ev-project-shortcuts .btn-ev-teal{
  background:linear-gradient(135deg,#168fd2,#075985) !important;
  border-color:#38bdf8 !important;
  color:#fff !important;
}

/* Calendario Energivoro */
.ev-calendar-wrap{
  max-width:1420px !important;
  padding:16px 22px 30px !important;
}

.ev-switch{
  background:#06131c !important;
  border:1px solid #163245 !important;
}
.ev-switch button{
  color:#8fa8b8 !important;
}
.ev-switch button.is-active{
  background:#0b2638 !important;
  color:#70d5ff !important;
  box-shadow:none !important;
}

.ev-calendar-head button{
  background:#081824 !important;
  color:#dcecf4 !important;
  border-color:#234257 !important;
}

.ev-day{
  min-height:96px !important;
  background:#07131d !important;
  border-color:#163245 !important;
}
.ev-day.is-muted{
  background:#050d13 !important;
  color:#536a79 !important;
}

.ev-event{
  background:rgba(56,189,248,.10) !important;
  color:#77d8ff !important;
}
.ev-event:hover{
  background:rgba(56,189,248,.18) !important;
}

/* Mobile */
@media(max-width:960px){
  .sidebar{width:250px !important;}
  .layout-main{margin-left:0 !important;}
}

@media(max-width:760px){
  .page-hero{
    min-height:92px !important;
    padding:15px 16px !important;
  }
  .page-hero__title{
    font-size:24px !important;
  }
  .ev-hero{
    min-height:100px !important;
    padding:17px 16px !important;
  }
  .ev-project-shortcuts{
    overflow-x:auto;
    flex-wrap:nowrap !important;
    -webkit-overflow-scrolling:touch;
  }
  .ev-project-shortcuts .btn-ev{
    flex:0 0 auto;
  }
  .ev-calendar-wrap{
    padding:12px 12px 24px !important;
  }
}
