:root {
    --bg-body: #f1f5f9;
    --bg-card: #ffffff;
    --text-primary: #0f172a;
    --text-secondary: #64748b;
    --border-color: #e2e8f0;
    --primary-soft: #e0f2fe;
    --primary-dark: #0284c7;
}

body { 
    background-color: var(--bg-body); 
    font-family: 'Inter', system-ui, -apple-system, sans-serif; 
    font-size: 0.925rem; 
    color: var(--text-primary); 
    -webkit-font-smoothing: antialiased;
}

/* Navbar */
.navbar { background: #fff !important; border-bottom: 1px solid var(--border-color); padding: 0.75rem 0; box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.05); }
.navbar-brand { font-weight: 800; letter-spacing: -0.5px; color: #0f172a !important; font-size: 1.25rem; }

/* Cards */
.sheet-card { 
    background: var(--bg-card); 
    border: 1px solid var(--border-color); 
    border-radius: 16px; /* Più rotondo */
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.05), 0 2px 4px -2px rgb(0 0 0 / 0.05); 
    overflow: hidden; 
    height: 100%; /* Forza altezza uniforme */
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    display: flex;
    flex-direction: column;
}
.sheet-card:hover {
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.05), 0 4px 6px -4px rgb(0 0 0 / 0.05);
    border-color: #cbd5e1;
}

.sheet-header { 
    padding: 1.25rem 1.5rem; 
    background: #fff; 
    border-bottom: 1px solid var(--border-color); 
    display: flex; justify-content: space-between; align-items: center; 
    font-weight: 700; font-size: 1rem; color: var(--text-primary);
}
.sheet-body {
    flex: 1; /* Riempie lo spazio verticale */
    display: flex;
    flex-direction: column;
}

/* Tabelle */
.task-table th { 
    background: #f8fafc; 
    color: var(--text-secondary); 
    font-weight: 700; font-size: 0.7rem; 
    text-transform: uppercase; letter-spacing: 0.05em; 
    padding: 14px 16px; border-bottom: 1px solid var(--border-color);
}
.task-table td { 
    padding: 14px 16px; border-bottom: 1px solid var(--border-color); vertical-align: middle; 
}
.task-table tr:last-child td { border-bottom: none; }

/* Scrollbar personalizzata */
.scroll-box { overflow-y: auto; scrollbar-width: thin; scrollbar-color: #cbd5e1 transparent; }
.scroll-box::-webkit-scrollbar { width: 5px; }
.scroll-box::-webkit-scrollbar-track { background: transparent; }
.scroll-box::-webkit-scrollbar-thumb { background-color: #cbd5e1; border-radius: 20px; }

/* Utility Widget Monitor */
.widget-row {
    transition: background-color 0.2s;
    border-bottom: 1px solid var(--border-color);
}
.widget-row:last-child { border-bottom: none; }
.widget-row:hover { background-color: #f8fafc; }

/* Status Dot pulsante */
.status-dot {
    width: 8px; height: 8px; border-radius: 50%; display: inline-block;
    position: relative;
}
.dot-red { background-color: #ef4444; box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2); }
.dot-green { background-color: #10b981; box-shadow: 0 0 0 2px rgba(16, 185, 129, 0.2); }

/* KPI Cards */
.kpi-card { border-left: 5px solid; transition: transform 0.2s; }
.kpi-card:hover { transform: translateY(-2px); }

/* Helpers */
.fit-content { width: fit-content; }
.hover-bg-light:hover { background-color: #f8f9fa !important; border-color: #dee2e6 !important; }