.cat-deep_work   { background: #7c3aed; color: #fff; }
.cat-sopralluogo { background: var(--primary); color: #fff; }
.cat-cliente     { background: #2563eb; color: #fff; }
.cat-admin       { background: var(--secondary); color: #fff; }
.day-event-dot { display: inline-block; width: 8px; height: 8px; border-radius: 2px; flex-shrink: 0; }
.day-detail-actions { padding: 8px 12px 4px; display: flex; justify-content: flex-end; }
.day-detail-evento .btn-action { flex-shrink: 0; }

.list-row--pagamento { height: auto; min-height: 34px; padding-top: 5px; padding-bottom: 5px; align-items: center; }
.pagamento-row-body { flex: 1; min-width: 0; overflow: hidden; }
.pagamento-row-main { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.pagamento-row-sub { font-size: 11px; color: var(--gray-500); margin-top: 2px; display: flex; align-items: center; gap: 4px; }

.update-banner {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    padding: 10px 16px;
    background: var(--primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    font-size: var(--font-size-base, 14px);
    z-index: 9999;
    box-shadow: 0 2px 8px rgba(0,0,0,.2);
}
.update-banner-actions { display: flex; gap: 8px; flex-shrink: 0; }

.menu-text { font-size: 10px; }
.menu-section-title { font-size: 9px; letter-spacing: 1.5px; width: 18px; }
.sidebar-menu > .menu-item .menu-text { font-size: 11px; }

.content-area {
    padding: 20px;
    gap: 20px;
}

.card, .list-row { min-width: 0; }
.card-body, .list-row-content { min-width: 0; }

input:where(:not([type=email]):not([type=password]):not([type=url]):not([type=tel]):not([type=number]):not([type=date]):not([type=time]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=color]):not([type=file]):not([type=hidden]):not([type=range]):not([type=checkbox]):not([type=radio])),
textarea {
    text-transform: uppercase;
}
input::placeholder,
textarea::placeholder {
    text-transform: none;
}
[data-no-uppercase] input,
[data-no-uppercase] textarea,
.search-box input,
.search-field input {
    text-transform: none;
}

.modal:not(.modal-fullscreen) .modal-container {
    width: min(calc(260px * var(--modal-cols, 1) + 300px), 94vw);
    max-width: 94vw;
}

:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
    border-radius: var(--border-radius-sm);
}

.cad-mobile-notice { display: none; }

@media (min-width: 1700px) {
    .content-area { padding-left: 40px; padding-right: 40px; }
    .dashboard-grid { max-width: 1600px; }
    .calendario-layout { max-width: 1600px; }
}

@media (max-width: 1280px) and (min-width: 769px) {
    .mail-layout { grid-template-columns: 64px 300px 1fr; }
    .mail-folder { position: relative; justify-content: center; padding: var(--spacing-sm); gap: 0; }
    .mail-folder-label { display: none; }
    .mail-folder-badge {
        position: absolute;
        top: 4px;
        right: 4px;
        min-width: 16px;
        font-size: 9px;
        padding: 0 4px;
    }
    .mail-sidebar-header { padding: var(--spacing-sm); text-align: center; }
    .mail-sidebar-header .btn-primary span,
    .mail-sidebar-header .btn span { display: none; }
}

@media (max-width: 1024px) {
    .menu-item-cad { display: none; }

    .calendario-layout { grid-template-columns: 1fr; }
    .calendario-sidebar { order: 2; }

    .progetto-bento { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
    .progetto-bento-col:nth-child(n+3) { grid-column: 1 / -1; }

    .cad-mobile-notice {
        display: flex;
        position: absolute;
        inset: 0;
        z-index: 100;
        align-items: center;
        justify-content: center;
        text-align: center;
        padding: 32px;
        background: linear-gradient(135deg, #1e1e1e 0%, #2a2a2a 100%);
        color: rgba(255, 255, 255, 0.85);
        font-size: var(--font-size-base);
        font-weight: var(--font-weight-medium);
        line-height: 1.6;
    }
}

@media (max-width: 768px) {
    .sidebar { width: min(280px, 82vw); }
    .sidebar-header { padding: var(--spacing-md); }

    .menu-text,
    .menu-section-title { display: block; }
    .menu-section-title {
        width: auto;
        font-size: 11px;
        letter-spacing: 1.2px;
        padding: var(--spacing-md) var(--spacing-md) 4px;
        text-align: left;
        flex-direction: row;
        word-break: normal;
    }
    .menu-link {
        flex-direction: row;
        align-items: center;
        gap: var(--spacing-md);
        padding: 12px var(--spacing-md);
        justify-content: flex-start;
    }
    .menu-icon { font-size: 18px; width: 22px; text-align: left; }
    .menu-text,
    .sidebar-menu > .menu-item .menu-text {
        font-size: 14px;
        font-weight: var(--font-weight-medium);
        text-align: left;
        white-space: normal;
        max-width: none;
    }
    .sidebar-menu > .menu-item .menu-icon { font-size: 18px; }

    .page-header {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-sm);
    }
    .page-title { font-size: var(--font-size-xl); }

    .mail-layout {
        display: flex;
        flex-direction: column;
    }
    .mail-sidebar { display: none; }
    .mail-list-panel {
        flex: 0 0 45%;
        max-height: 45%;
        border-right: none;
        border-bottom: 1px solid var(--gray-200);
    }
    .mail-content-panel { flex: 1; min-height: 0; }
    .mail-detail-header { padding: var(--spacing-sm); gap: var(--spacing-sm); }
    .mail-detail-subject { font-size: var(--font-size-base); }
    .mail-list-header { padding: var(--spacing-xs) var(--spacing-sm); }
    .mail-from { max-width: 60vw; }

    .cliente-bento,
    .progetto-bento {
        grid-template-columns: 1fr;
        overflow: visible;
    }
    .cliente-bento-col,
    .progetto-bento-col { overflow: visible; }
    .bento-kpi-row { grid-template-columns: repeat(2, 1fr); }
    .bento-kpi-value { font-size: 18px; }

    .modal { padding: var(--spacing-md) var(--spacing-sm); }
    .modal-container {
        width: 100%;
        max-width: 100%;
        max-height: 100%;
    }
    .modal-header { padding: var(--spacing-sm) var(--spacing-md); }
    .modal-body { padding: var(--spacing-md); }
    .modal-footer {
        flex-wrap: wrap;
        padding: var(--spacing-sm) var(--spacing-md);
    }
    .modal-footer .btn { flex: 1 1 auto; }

    .mobile-header {
        padding: 10px var(--spacing-md);
        gap: var(--spacing-md);
    }
    .mobile-title {
        font-size: var(--font-size-base);
        font-weight: var(--font-weight-semibold);
        flex: 1;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .btn-hamburger {
        font-size: 22px;
        padding: 8px;
        margin-left: -8px;
    }

    input.form-control, textarea.form-control, select.form-control {
        font-size: 16px;
    }
}

@media (max-width: 540px) {
    .content-area { padding: 12px; gap: 12px; }
    .list-panel,
    .calendar-container,
    .dashboard-card,
    .card { border-radius: var(--border-radius); }

    .calendar-container { padding: var(--spacing-md); }
    .calendar-day { min-height: 56px; padding: var(--spacing-xs); }
    .calendar-title { min-width: 0; flex: 1; font-size: var(--font-size-base); }
    .calendar-header { gap: var(--spacing-sm); }

    .dashboard-stats { grid-template-columns: 1fr 1fr; gap: var(--spacing-sm); }
    .stat-card { padding: var(--spacing-sm); gap: var(--spacing-sm); }
    .stat-card .stat-icon { width: 40px; height: 40px; font-size: 16px; }
    .stat-card .stat-value { font-size: var(--font-size-xl); }
    .stat-card .stat-label { font-size: var(--font-size-xs); }

    .dashboard-quick-actions {
        flex-wrap: nowrap;
        overflow-x: auto;
        margin: 0 calc(-1 * var(--spacing-sm));
        padding: 4px var(--spacing-sm);
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .dashboard-quick-actions::-webkit-scrollbar { display: none; }
    .quick-action { flex-shrink: 0; }

    .list-row { flex-wrap: wrap; gap: var(--spacing-xs); }
    .list-header-main {
        flex-direction: column;
        align-items: stretch;
        gap: var(--spacing-sm);
    }
    .list-header-main .search-box { width: 100%; }
    .filter-tabs,
    .status-filter-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .filter-tabs::-webkit-scrollbar,
    .status-filter-tabs::-webkit-scrollbar { display: none; }
    .filter-tab,
    .status-filter-tab { flex-shrink: 0; }

    .bento-stats--3 { grid-template-columns: 1fr 1fr; }
    .bento-stats--3 > .bento-stat:last-child { grid-column: 1 / -1; }
    .bento-stat-num { font-size: 18px; }
    .bento-kpi { padding: var(--spacing-xs) var(--spacing-sm); }

    #toast-container {
        top: auto;
        left: var(--spacing-sm);
        right: var(--spacing-sm);
        bottom: calc(var(--spacing-sm) + 62px + env(safe-area-inset-bottom));
    }
    #toast-container .toast { width: 100%; }
}

@media (hover: none) and (pointer: coarse) {
    .btn, .btn-action { min-height: 44px; }
    .menu-link { min-height: 56px; }
    .quick-action { padding: 12px 16px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

@media print {
    .sidebar, .mobile-header, .sidebar-overlay, #toast-container, .offline-banner { display: none !important; }
    .main-content { margin-left: 0 !important; }
    .content-area { padding: 0 !important; }
}
