:root{--bg:#f4f6f8;--card:#fff;--text:#1f2937;--muted:#6b7280;--primary:#2563eb;--danger:#dc2626;--border:#e5e7eb;--ok:#16a34a}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--primary);text-decoration:none}.wrap{max-width:1180px;margin:0 auto;padding:24px}.topbar{background:#111827;color:white}.topbar .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px}.brand{font-weight:800;letter-spacing:.2px}.nav a{color:white;margin-left:16px;font-size:14px}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:20px;margin:18px 0;box-shadow:0 8px 20px rgba(15,23,42,.04)}.login-card{max-width:420px;margin:70px auto}.grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.stats-grid{grid-template-columns:repeat(4,1fr)}.wide-stat{grid-column:span 2}.stat small{display:block;color:var(--muted);margin-top:5px}.summary-box{background:#f9fafb;border:1px solid var(--border);border-radius:12px;padding:14px}.auto-filter{align-items:end}.stat{background:white;border:1px solid var(--border);border-radius:12px;padding:16px}.stat strong{display:block;font-size:26px}.stat span{color:var(--muted);font-size:13px}table{width:100%;border-collapse:collapse;background:white;border-radius:12px;overflow:hidden}th,td{padding:11px 10px;border-bottom:1px solid var(--border);text-align:left;font-size:14px}th{background:#f9fafb;font-weight:700}.actions{white-space:nowrap}.btn{display:inline-block;border:0;border-radius:10px;padding:10px 14px;background:var(--primary);color:white;cursor:pointer;font-weight:650;font-size:14px}.btn.secondary{background:#374151}.btn.danger{background:var(--danger)}.btn.light{background:#e5e7eb;color:#111827}input,select,textarea{width:100%;border:1px solid #d1d5db;border-radius:10px;padding:10px 12px;font:inherit;background:#fff}label{font-weight:700;font-size:14px;display:block;margin:10px 0 6px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form-row-full{grid-column:1/-1}.notice{padding:12px 14px;border-radius:10px;margin:14px 0;background:#eff6ff;border:1px solid #bfdbfe}.error{background:#fef2f2;border-color:#fecaca}.success{background:#f0fdf4;border-color:#bbf7d0}.muted{color:var(--muted)}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:12px;font-weight:700}.badge.cancelled{background:#fee2e2;color:#991b1b}.success-badge{background:#dcfce7;color:#166534}.pending-badge{background:#fef3c7;color:#92400e}@media(max-width:800px){.grid,.stats-grid,.form-grid{grid-template-columns:1fr}.wide-stat{grid-column:span 1}.topbar .wrap{display:block}.nav{margin-top:10px}.nav a{margin-left:0;margin-right:12px}table{display:block;overflow-x:auto}}

.today-sections{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:14px}.today-section{border-radius:16px;padding:16px;border:1px solid var(--border)}.checkout-section{background:#fff7ed;border-color:#fed7aa}.checkin-section{background:#eff6ff;border-color:#bfdbfe}.free-section{background:#f0fdf4;border-color:#bbf7d0}.today-section h3{margin:0 0 12px;font-size:19px}.section-icon{display:inline-block;margin-right:6px}.today-cards{display:grid;gap:12px}.today-card{background:#fff;border-radius:14px;border:1px solid var(--border);padding:14px;box-shadow:0 4px 12px rgba(15,23,42,.04)}.checkout-card.is-pending{border-left:5px solid #f59e0b}.checkout-card.is-cleaned{border-left:5px solid #22c55e}.checkin-card{border-left:5px solid #3b82f6}.free-card{border-left:5px solid #22c55e}.today-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.today-card-head strong{font-size:18px}.today-meta{color:#334155;margin-top:6px}.today-note{color:#475569;margin-top:8px;font-size:13px}.today-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.today-actions small{color:#15803d}.info-badge{background:#dbeafe;color:#1d4ed8}.free-badge{background:#dcfce7;color:#166534}@media(max-width:1100px){.today-sections{grid-template-columns:1fr}}

.danger-badge{background:#fee2e2;color:#991b1b}.warning-badge{background:#ffedd5;color:#9a3412}

/* Gestione mensile e dashboard giornaliera */
.page-subtitle{margin:6px 0 0;color:var(--muted);font-size:15px}.section-note{margin:4px 0 14px;color:var(--muted);font-size:14px}.dashboard-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:20px 0 14px}.dashboard-shortcut{display:block;padding:18px;border:1px solid var(--border);border-radius:16px;background:#fff;color:var(--text);text-decoration:none;box-shadow:0 10px 25px rgba(15,23,42,.08)}.dashboard-shortcut:hover{border-color:var(--primary)}.dashboard-shortcut .shortcut-label{display:inline-flex;margin-bottom:8px;padding:5px 10px;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:12px;font-weight:750}.dashboard-shortcut strong{display:block;font-size:18px;margin-bottom:5px}.dashboard-shortcut small{display:block;color:var(--muted);font-size:14px;line-height:1.4}.previous-month-links{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 24px;color:var(--muted);font-size:14px}.previous-month-links a{display:inline-flex;padding:6px 11px;border-radius:999px;background:#f3f4f6;color:var(--primary);text-decoration:none;font-weight:700}.previous-month-links a:hover{background:#e0f2fe}.month-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:20px 0}.compact-filter{grid-template-columns:repeat(3,minmax(0,1fr))}.monthly-filter{grid-template-columns:repeat(5,minmax(0,1fr))}.monthly-stats{grid-template-columns:repeat(6,1fr)}.total-stat{background:#0f172a;color:#fff}.total-stat span,.total-stat small{color:rgba(255,255,255,.78)}.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.day-list{display:grid;gap:10px}.day-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;background:#f9fafb;border:1px solid var(--border);border-radius:12px}.settings-summary{display:grid;gap:0}.settings-summary div{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--border)}.settings-summary div:last-child{border-bottom:0}.settings-summary span{color:var(--muted)}.settings-summary strong{text-align:right}.period-current{background:#dbeafe;color:#1d4ed8}.period-future{background:#f3f4f6;color:#374151}.period-closed{background:#f1f5f9;color:#64748b}@media(max-width:1000px){.monthly-stats{grid-template-columns:repeat(3,1fr)}.monthly-filter{grid-template-columns:repeat(2,1fr)}.compact-filter{grid-template-columns:repeat(2,1fr)}.two-columns{grid-template-columns:1fr}}@media(max-width:800px){.dashboard-shortcuts{grid-template-columns:1fr}.monthly-stats,.monthly-filter,.compact-filter{grid-template-columns:1fr}.month-actions .btn{width:100%;text-align:center}}
@media print{.topbar,.month-actions,.dashboard-shortcuts,.previous-month-links,.card form,.actions,.btn{display:none!important}.card,.stat{box-shadow:none}body{background:#fff}.wrap{max-width:none}}

/* Aggiornamento rapido stato pulizia */
.cleaning-quick-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 12px;
}
.quick-clean-form {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    flex: 1 1 420px;
}
.quick-clean-form input[type="text"] {
    min-height: 38px;
    flex: 1 1 230px;
    border: 1px solid #d8e1df;
    border-radius: 10px;
    padding: 8px 10px;
}
.btn-success {
    background: #16a34a !important;
    border-color: #16a34a !important;
    color: #fff !important;
}
.btn-light {
    background: #f8fafc !important;
    border-color: #cbd5e1 !important;
    color: #334155 !important;
}
.cleaned-info {
    color: #15803d;
    font-weight: 700;
}
.inline-clean-form {
    margin-top: 6px;
}
.mini-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    background: #ffffff;
    color: #334155;
    padding: 4px 9px;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}
.mini-btn.success {
    background: #dcfce7;
    border-color: #86efac;
    color: #166534;
}
@media (max-width: 700px) {
    .cleaning-quick-actions,
    .quick-clean-form {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }
    .quick-clean-form input[type="text"],
    .quick-clean-form button,
    .cleaning-quick-actions a {
        width: 100%;
    }
}
.checkout-badge{background:#ffedd5;color:#9a3412}.checkin-card.is-pending{border-left:5px solid #f59e0b}.checkin-card.is-cleaned{border-left:5px solid #22c55e}

/* Dashboard oggi: occupate e pulizie extra */
.today-sections{
    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
}
.occupied-section{background:#f8fafc;border-color:#cbd5e1}
.cleanable-section{background:#fefce8;border-color:#fde68a}
.occupied-card{border-left:5px solid #64748b}
.cleanable-card{border-left:5px solid #eab308}
.occupied-badge{background:#e2e8f0;color:#334155}
.cleanable-section .quick-clean-form{flex:1 1 100%}
.cleanable-section .cleaning-quick-actions{align-items:flex-start}

/* Dashboard: riepilogo compatto apribile */
.dashboard-summary-toggle{background:var(--card);border:1px solid var(--border);border-radius:14px;margin:18px 0;box-shadow:0 8px 20px rgba(15,23,42,.04);overflow:hidden}.dashboard-summary-toggle summary{display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer;list-style:none;padding:16px 20px;font-weight:800}.dashboard-summary-toggle summary::-webkit-details-marker{display:none}.dashboard-summary-toggle summary:after{content:'Apri';display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#eef2ff;color:#3730a3;padding:5px 10px;font-size:12px;font-weight:800}.dashboard-summary-toggle[open] summary:after{content:'Chiudi'}.dashboard-summary-toggle summary small{display:block;color:var(--muted);font-weight:500;font-size:13px}.dashboard-summary-body{padding:0 20px 20px}.compact-stats-grid{margin:0 0 14px}.compact-dashboard-filter{border-top:1px solid var(--border);padding-top:14px}@media(max-width:800px){.dashboard-summary-toggle summary{align-items:flex-start;flex-direction:column}.dashboard-summary-toggle summary:after{align-self:flex-start}.compact-dashboard-filter{grid-template-columns:1fr}}
