/* ==========================================================================
   VITA SOFTWARE UI 1.2
   Minimal, modern, responsive design system
   ========================================================================== */
:root{
  --vt-primary:#2f5d62;
  --vt-primary-strong:#23484c;
  --vt-accent:#b08968;
  --vt-bg:#f6f7f8;
  --vt-surface:#ffffff;
  --vt-surface-soft:#fafbfb;
  --vt-text:#20272c;
  --vt-muted:#7a868d;
  --vt-border:#e7ebed;
  --vt-border-strong:#d9dfe2;
  --vt-success:#347a5e;
  --vt-warning:#aa752d;
  --vt-danger:#af4f4f;

  --vt-radius:14px;
  --vt-button-radius:10px;
  --vt-card-border-width:1px;
  --vt-shadow-opacity:.045;
  --vt-shadow:0 4px 18px rgba(23,31,36,var(--vt-shadow-opacity));
  --vt-shadow-lift:0 10px 28px rgba(23,31,36,.075);

  --vt-max-width:1380px;
  --vt-font-size:16px;
  --vt-logo-size:180px;
  --vt-control-height:44px;
  --vt-section-padding:18px;
  --vt-table-padding-y:10px;
  --vt-table-padding-x:12px;
  --vt-header-padding-y:10px;
  --vt-header-padding-x:16px;
  --vt-font:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
html{font-size:var(--vt-font-size);background:var(--vt-bg);color:var(--vt-text)}
body{margin:0;min-width:320px;background:var(--vt-bg);color:var(--vt-text);font-family:var(--vt-font);line-height:1.5}
a{color:var(--vt-primary);text-decoration:none}
button,input,select,textarea{font:inherit}
img{max-width:100%;height:auto}
:focus-visible{outline:3px solid color-mix(in srgb,var(--vt-primary) 20%,transparent);outline-offset:2px}

.vt-page{padding:14px}
.vt-container{width:min(100%,var(--vt-max-width));margin:0 auto}
.vt-content{display:grid;gap:14px}

/* Header */
.vt-header{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  min-height:66px;padding:var(--vt-header-padding-y) var(--vt-header-padding-x);
  margin-bottom:10px;background:var(--vt-surface);
  border:var(--vt-card-border-width) solid var(--vt-border);
  border-radius:var(--vt-radius);box-shadow:var(--vt-shadow)
}
.vt-header.vt-header-flat{box-shadow:none}
.vt-header.vt-header-line{border-radius:0;border-width:0 0 1px 0;background:transparent;padding-left:2px;padding-right:2px}
.vt-brand{display:flex;align-items:center;gap:11px;min-width:0}
.vt-brand-logo{width:min(var(--vt-logo-size),100%);height:auto;max-height:96px;object-fit:contain;flex:0 1 auto}
.vt-brand-logo.vt-logo-framed{padding:4px;background:#fff;border:1px solid var(--vt-border);border-radius:11px}
.vt-brand-copy{min-width:0}
.vt-brand-title{font-size:1rem;font-weight:760;letter-spacing:-.015em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vt-brand-subtitle{margin-top:1px;color:var(--vt-muted);font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vt-header-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}

/* Navigation */
.vt-page-menu{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  margin-bottom:10px;padding:5px 0;background:transparent
}
.vt-menu-spacer{flex:1}
.vt-page-menu-label{font-size:.78rem}

/* Hero */
.vt-hero{
  padding:18px 2px 19px;margin-bottom:10px;background:transparent;border:0;box-shadow:none
}
.vt-hero.vt-hero-panel{
  padding:18px;background:var(--vt-surface);border:var(--vt-card-border-width) solid var(--vt-border);
  border-radius:var(--vt-radius);box-shadow:var(--vt-shadow)
}
.vt-hero h1{margin:0;font-size:clamp(1.45rem,3vw,1.95rem);line-height:1.14;letter-spacing:-.035em;font-weight:740}
.vt-hero p{margin:6px 0 0;color:var(--vt-muted);max-width:850px;font-size:.92rem}

/* Sections */
.vt-section{
  padding:var(--vt-section-padding);background:var(--vt-surface);
  border:var(--vt-card-border-width) solid var(--vt-border);
  border-radius:var(--vt-radius);box-shadow:var(--vt-shadow);min-width:0
}
.vt-section + .vt-section{margin-top:10px}
.vt-section-title{margin:0 0 13px;font-size:1rem;font-weight:750;letter-spacing:-.012em}
.vt-section-subtitle{margin:-6px 0 13px;color:var(--vt-muted);font-size:.82rem}

/* Cards */
.vt-grid{display:grid;grid-template-columns:1fr;gap:10px}
.vt-card{
  padding:14px;background:var(--vt-surface);
  border:var(--vt-card-border-width) solid var(--vt-border);
  border-radius:calc(var(--vt-radius) - 2px);min-width:0
}
.vt-card-title{font-weight:740}
.vt-card-muted{font-size:.8rem;color:var(--vt-muted)}
.vt-card-link{transition:.16s ease}
.vt-card-link:hover{transform:translateY(-1px);box-shadow:var(--vt-shadow-lift);border-color:var(--vt-border-strong)}

/* Stats */
.vt-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px}
.vt-stat{padding:12px 13px;background:var(--vt-surface);border:var(--vt-card-border-width) solid var(--vt-border);border-radius:12px}
.vt-stat-value{font-size:1.2rem;font-weight:760;letter-spacing:-.025em}
.vt-stat-label{font-size:.72rem;color:var(--vt-muted);margin-top:1px}

/* Buttons */
.vt-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.vt-btn{
  min-height:var(--vt-control-height);display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:8px 12px;border:1px solid transparent;border-radius:var(--vt-button-radius);
  cursor:pointer;font-weight:690;line-height:1.1;white-space:nowrap;transition:.14s ease;text-decoration:none!important
}
.vt-btn:hover{transform:translateY(-1px)}
.vt-btn-primary{background:var(--vt-primary);border-color:var(--vt-primary);color:#fff}
.vt-btn-primary:hover{background:var(--vt-primary-strong);color:#fff}
.vt-btn-secondary{background:#28343a;border-color:#28343a;color:#fff}
.vt-btn-light{background:var(--vt-surface);border-color:var(--vt-border-strong);color:var(--vt-text)}
.vt-btn-light:hover{background:var(--vt-surface-soft)}
.vt-btn-danger{background:#fff;border-color:#edd0d0;color:#984545}
.vt-btn-success{background:#fff;border-color:#cfe3da;color:#2d6d55}
.vt-btn-icon{width:var(--vt-control-height);padding:0}
.vt-btn-sm{min-height:34px;padding:6px 9px;font-size:.8rem}

/* Forms */
.vt-form{display:grid;gap:13px}
.vt-form-grid{display:grid;grid-template-columns:1fr;gap:11px}
.vt-full{grid-column:1/-1}
.vt-field{min-width:0}
.vt-field label,.vt-label{display:block;margin:0 0 5px;font-size:.78rem;font-weight:690;color:#48565e}
.vt-input,.vt-select,.vt-textarea{
  width:100%;min-height:var(--vt-control-height);padding:9px 11px;color:var(--vt-text);background:var(--vt-surface);
  border:1px solid var(--vt-border-strong);border-radius:var(--vt-button-radius);transition:.14s ease
}
.vt-input:focus,.vt-select:focus,.vt-textarea:focus{border-color:var(--vt-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--vt-primary) 9%,transparent)}
.vt-textarea{min-height:96px;resize:vertical}
.vt-help{margin-top:4px;font-size:.73rem;color:var(--vt-muted)}
.vt-checkboxes{display:flex;gap:11px;flex-wrap:wrap}
.vt-check{display:flex;gap:7px;align-items:flex-start;font-size:.84rem}
.vt-form-actions{display:flex;gap:7px;flex-wrap:wrap}

/* Tables */
.vt-table-wrap{overflow:auto;border:var(--vt-card-border-width) solid var(--vt-border);border-radius:12px}
.vt-table{width:100%;border-collapse:separate;border-spacing:0;min-width:720px;background:var(--vt-surface)}
.vt-table th,.vt-table td{padding:var(--vt-table-padding-y) var(--vt-table-padding-x);border-bottom:1px solid var(--vt-border);text-align:left;vertical-align:middle}
.vt-table th{background:var(--vt-surface-soft);color:#748087;font-size:.69rem;text-transform:uppercase;letter-spacing:.05em;font-weight:750}
.vt-table tbody tr:last-child td{border-bottom:0}
.vt-table tbody tr:hover td{background:color-mix(in srgb,var(--vt-primary) 2.5%,var(--vt-surface))}
.vt-cell-actions{display:flex;justify-content:flex-end;gap:5px}

/* Lists */
.vt-record-list{display:grid;gap:7px}
.vt-record-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:11px 12px;border:var(--vt-card-border-width) solid var(--vt-border);
  border-radius:11px;background:var(--vt-surface)
}
.vt-record-main{min-width:0}
.vt-record-title{font-weight:735}
.vt-record-meta{font-size:.77rem;color:var(--vt-muted);margin-top:2px}
.vt-record-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.vt-inactive{opacity:.52}

/* Badges */
.vt-badge,.vt-status{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:.68rem;font-weight:740;background:color-mix(in srgb,var(--vt-primary) 9%,#fff);color:var(--vt-primary)}
.vt-status-present{background:#edf6f1;color:#326b55}
.vt-status-away{background:#fbf3e6;color:#8b6329}
.vt-status-off{background:#f0f2f3;color:#6f797f}

/* Alerts */
.vt-alert{padding:10px 12px;border-radius:10px;border:1px solid;margin-bottom:10px;font-size:.86rem}
.vt-alert-success{background:#f1f8f4;border-color:#d6e9df;color:#326b55}
.vt-alert-danger{background:#fff6f6;border-color:#efd7d7;color:#984545}
.vt-alert-warning{background:#fff9ef;border-color:#eadbbd;color:#89632c}
.vt-alert-info{background:#f1f6f7;border-color:#d8e4e6;color:#315b62}

/* Details */
.vt-details,.vt-module-block{border:var(--vt-card-border-width) solid var(--vt-border);border-radius:12px;background:var(--vt-surface);overflow:hidden}
.vt-details summary,.vt-module-block>summary{cursor:pointer;padding:13px 14px;font-weight:735;background:var(--vt-surface-soft)}
.vt-details[open] summary,.vt-module-block[open]>summary{border-bottom:1px solid var(--vt-border)}
.vt-details-body,.vt-module-body{padding:14px}
.vt-subform{margin-top:10px;padding:13px;border-radius:11px;background:var(--vt-surface-soft);border:1px solid var(--vt-border)}
.vt-sticky-save{position:sticky;bottom:7px;z-index:30;padding:6px;background:color-mix(in srgb,var(--vt-surface) 94%,transparent);border:1px solid var(--vt-border);border-radius:11px;box-shadow:0 8px 24px rgba(23,31,36,.08);backdrop-filter:blur(10px)}
.vt-footer{padding:16px 4px;text-align:center;color:var(--vt-muted);font-size:.72rem}

/* Configurable UI modes */
html.vt-density-compact{
  --vt-control-height:40px;--vt-section-padding:14px;--vt-table-padding-y:7px;--vt-table-padding-x:9px
}
html.vt-density-comfortable{
  --vt-control-height:48px;--vt-section-padding:22px;--vt-table-padding-y:12px;--vt-table-padding-x:14px
}
html.vt-no-shadows{--vt-shadow:none;--vt-shadow-lift:none}
html.vt-no-borders{--vt-card-border-width:0px}
html.vt-buttons-small{--vt-control-height:38px}
html.vt-buttons-large{--vt-control-height:50px}
html.vt-table-compact{--vt-table-padding-y:6px;--vt-table-padding-x:8px}
html.vt-table-relaxed{--vt-table-padding-y:13px;--vt-table-padding-x:14px}
html.vt-dark{
  --vt-bg:#111619;--vt-surface:#181f23;--vt-surface-soft:#1d252a;--vt-text:#eef2f3;
  --vt-muted:#9da9ae;--vt-border:#293237;--vt-border-strong:#374248
}
html.vt-dark .vt-field label,html.vt-dark .vt-label{color:#c7d0d4}
html.vt-dark .vt-btn-light,html.vt-dark .vt-input,html.vt-dark .vt-select,html.vt-dark .vt-textarea{background:var(--vt-surface);color:var(--vt-text)}
html.vt-dark .vt-badge,html.vt-dark .vt-status{background:#213238}

@media(min-width:640px){
  .vt-page{padding:18px}
  .vt-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vt-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vt-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(min-width:1024px){
  .vt-page{padding:21px}
  .vt-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .vt-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:720px){
  .vt-header{padding:9px 10px;align-items:flex-start}
  .vt-brand-logo{width:min(var(--vt-logo-size),calc(100vw - 40px));height:auto;max-height:82px}
  .vt-brand-subtitle{display:none}
  .vt-header-actions .vt-btn-text{display:none}
  .vt-page-menu{position:sticky;top:4px;z-index:60;padding:4px 0}
  .vt-page-menu .vt-btn{flex:1 1 calc(50% - 5px)}
  .vt-page-menu .vt-btn-icon{flex:0 0 var(--vt-control-height)}
  .vt-record-row{align-items:flex-start;flex-direction:column}
  .vt-record-actions{width:100%}.vt-record-actions .vt-btn{flex:1}
  .vt-form-actions .vt-btn{flex:1 1 100%}
}
@media print{
  body{background:#fff;color:#000}
  .vt-page{padding:0}.vt-container{width:100%;max-width:none}
  .vt-header-actions,.vt-page-menu,.vt-no-print,.vt-btn,.vt-footer{display:none!important}
  .vt-header,.vt-hero,.vt-section{box-shadow:none!important;border-color:#bbb!important}
  .vt-table-wrap{overflow:visible;border:0}.vt-table{min-width:0}
}

/* ========================================================================== */
/* HOME PRINCIPALE - layout centralizzato ispirato alla home Miramonti       */
/* ========================================================================== */
.vt-home-body{background:#f6f8fa}
.vt-home-page{padding-top:12px}
.vt-home-topbar{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:12px 14px;margin-bottom:12px;background:var(--vt-surface);
  border:1px solid var(--vt-border);border-radius:var(--vt-radius);box-shadow:var(--vt-shadow)
}
.vt-home-brand{display:flex;align-items:center;gap:10px;min-width:0}
.vt-home-logo-mark{
  width:44px;height:44px;display:grid;place-items:center;flex:0 0 auto;border-radius:12px;
  background:linear-gradient(135deg,var(--vt-primary),var(--vt-primary-strong));color:#fff;
  font-size:1.25rem;font-weight:800;box-shadow:0 6px 16px color-mix(in srgb,var(--vt-primary) 20%,transparent)
}
.vt-home-brand-title{font-weight:780;letter-spacing:-.02em}
.vt-home-brand-subtitle{font-size:.74rem;color:var(--vt-muted);margin-top:1px}
.vt-home-user{display:flex;align-items:center;justify-content:flex-end;gap:10px;font-size:.78rem;color:var(--vt-muted)}
.vt-home-welcome{
  display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;padding:20px 18px;
  border-radius:var(--vt-radius);color:#fff;background:linear-gradient(135deg,var(--vt-primary),#28343a);
  box-shadow:0 8px 24px color-mix(in srgb,var(--vt-primary) 16%,transparent)
}
.vt-home-welcome h1{margin:0;font-size:clamp(1.35rem,3vw,1.8rem);letter-spacing:-.03em}
.vt-home-welcome p{margin:4px 0 0;font-size:.82rem;opacity:.88}
.vt-home-category{
  margin-bottom:13px;padding:15px;background:var(--vt-surface);border:1px solid var(--vt-border);
  border-radius:var(--vt-radius);box-shadow:var(--vt-shadow)
}
.vt-home-category-title{
  display:flex;align-items:center;gap:7px;margin:0 0 13px;padding-bottom:10px;border-bottom:1px solid var(--vt-border);
  font-size:.95rem;font-weight:760;letter-spacing:.01em
}
.vt-home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:9px}
.vt-home-card{
  min-height:112px;padding:15px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;color:var(--vt-text);background:var(--vt-surface);border:1px solid var(--vt-border);
  border-radius:11px;position:relative;overflow:hidden;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease
}
.vt-home-card::before{
  content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--vt-primary),var(--vt-accent));
  transform:scaleX(0);transform-origin:left;transition:transform .18s ease
}
.vt-home-card:hover{transform:translateY(-2px);border-color:var(--vt-border-strong);box-shadow:var(--vt-shadow-lift);color:var(--vt-text)}
.vt-home-card:hover::before{transform:scaleX(1)}
.vt-home-card-icon{font-size:2.55rem;line-height:1;margin-bottom:9px;transition:transform .16s ease}
.vt-home-card:hover .vt-home-card-icon{transform:scale(1.05)}
.vt-home-card-label{font-size:.79rem;line-height:1.2;font-weight:650}
@media(min-width:768px){
  .vt-home-page{padding-top:18px}.vt-home-grid{grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:11px}
  .vt-home-card{min-height:120px;padding:18px 12px}.vt-home-card-icon{font-size:2.75rem}.vt-home-card-label{font-size:.84rem}
}
@media(min-width:1100px){
  .vt-home-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:13px}.vt-home-card{min-height:128px}
}
@media(max-width:540px){
  .vt-home-topbar{align-items:flex-start}.vt-home-user>span{display:none}.vt-home-welcome{padding:17px 15px}
  .vt-home-category{padding:12px}.vt-home-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .vt-home-card{min-height:105px;padding:13px 7px}.vt-home-card-icon{font-size:2.15rem}.vt-home-card-label{font-size:.75rem}
}

/* HOME PRINCIPALE - centratura completa degli elementi */
.vt-home-topbar{
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.vt-home-brand{
  justify-content:center;
  text-align:center;
}
.vt-home-user{
  width:100%;
  justify-content:center;
  text-align:center;
}
.vt-home-welcome{
  justify-content:center;
  text-align:center;
}
.vt-home-welcome>div{
  width:100%;
  text-align:center;
}
.vt-home-category{
  text-align:center;
}
.vt-home-category-title{
  justify-content:center;
  text-align:center;
}
.vt-home-grid{
  grid-template-columns:repeat(auto-fit,minmax(140px,170px));
  justify-content:center;
  align-items:stretch;
}
.vt-home-card{
  width:100%;
  text-align:center;
}

@media(min-width:768px){
  .vt-home-grid{grid-template-columns:repeat(auto-fit,minmax(155px,180px))}
}
@media(min-width:1100px){
  .vt-home-grid{grid-template-columns:repeat(auto-fit,minmax(170px,190px))}
}
@media(max-width:540px){
  .vt-home-topbar{align-items:center}
  .vt-home-grid{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:center}
}

/* HOME PRINCIPALE - menu rapido fisso smartphone (8 voci, 2x4) */
.vt-home-quick-menu{display:none}
@media(max-width:767px){
  .vt-home-body{padding-bottom:154px}
  .vt-home-quick-menu{
    position:fixed;left:0;right:0;bottom:0;z-index:1000;display:block;
    padding:7px 8px calc(7px + env(safe-area-inset-bottom));
    background:color-mix(in srgb,var(--vt-surface) 96%,transparent);
    border-top:1px solid var(--vt-border);
    box-shadow:0 -6px 22px rgba(23,31,36,.10);
    backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)
  }
  .vt-home-quick-grid{
    width:min(100%,560px);margin:0 auto;display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));gap:5px 4px
  }
  .vt-home-quick-btn{
    min-width:0;min-height:60px;padding:5px 2px;display:flex;flex-direction:column;
    align-items:center;justify-content:center;text-align:center;color:var(--vt-muted);
    border-radius:9px;text-decoration:none;transition:background .15s ease,color .15s ease,transform .15s ease
  }
  .vt-home-quick-btn:active{transform:scale(.97);background:color-mix(in srgb,var(--vt-primary) 9%,transparent);color:var(--vt-primary)}
  .vt-home-quick-icon{
    width:34px;height:30px;display:grid;place-items:center;font-size:1.45rem;line-height:1;margin-bottom:3px
  }
  .vt-home-quick-label{
    width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font-size:.64rem;line-height:1.08;font-weight:680
  }
}
@media(max-width:360px){
  .vt-home-body{padding-bottom:146px}
  .vt-home-quick-menu{padding-left:4px;padding-right:4px}
  .vt-home-quick-grid{gap:3px 2px}
  .vt-home-quick-btn{min-height:56px;padding:4px 1px}
  .vt-home-quick-icon{font-size:1.3rem}
  .vt-home-quick-label{font-size:.59rem}
}


/* Logo aziendale: larghezza configurabile fino a 400 px, proporzioni preservate */
.vt-brand{flex-wrap:wrap}
.vt-brand-logo{max-width:min(100%,400px)}
@media(max-width:720px){
  .vt-brand{width:100%;justify-content:center}
  .vt-brand-logo{width:min(var(--vt-logo-size),calc(100vw - 40px));max-width:100%;height:auto;max-height:82px}
  .vt-brand-copy{width:100%;text-align:center}
  .vt-header{flex-direction:column;align-items:center}
  .vt-header-actions{width:100%;justify-content:center}
}

/* Home: logo aziendale configurato */
.vt-home-brand-logo{
  width:min(var(--vt-logo-size),400px);height:auto;max-height:110px;object-fit:contain;display:block
}
@media(max-width:720px){
  .vt-home-brand-logo{width:min(var(--vt-logo-size),calc(100vw - 40px));max-width:100%;height:auto;max-height:96px}
}
