:root{
  --bg:#f4f6f8; --card:#ffffff; --text:#1f2937; --muted:#6b7280;
  --primary:#2563eb; --primary-dark:#1d4ed8; --border:#e5e7eb;
  --green:#16a34a; --green-bg:#dcfce7; --red:#dc2626; --red-bg:#fee2e2;
  --yellow:#ca8a04; --yellow-bg:#fef9c3; --gray-bg:#f3f4f6;
}
*{box-sizing:border-box;}
body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);}
header{background:var(--card);border-bottom:1px solid var(--border);padding:12px 20px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;}
header h1{font-size:18px;margin:0;}
.header-brand{display:flex;align-items:center;gap:10px;}
.header-logo{height:24px;width:auto;display:block;}
nav{display:flex;gap:6px;flex-wrap:wrap;}
.tab-btn{background:none;border:none;padding:8px 14px;border-radius:8px;cursor:pointer;font-size:14px;color:var(--muted);text-decoration:none;}
.tab-btn.active{background:var(--primary);color:#fff;}
main{padding:20px;max-width:1300px;margin:0 auto;}
.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:16px;}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px;}
.toolbar input, .toolbar select{padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:14px;}
.btn{background:var(--primary);color:#fff;border:none;padding:9px 16px;border-radius:8px;cursor:pointer;font-size:14px;text-decoration:none;display:inline-block;}
.btn:hover{background:var(--primary-dark);}
.btn-secondary{background:var(--gray-bg);color:var(--text);border:1px solid var(--border);}
.btn-danger{background:var(--red);color:#fff;border:none;}
.btn-sm{padding:5px 10px;font-size:12px;border-radius:6px;}
table{width:100%;border-collapse:collapse;font-size:13px;}
th,td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;}
th{color:var(--muted);font-weight:600;}
tbody tr:hover{background:#fafafa;}
.table-wrap{overflow-x:auto;}
.actions-cell{display:flex;gap:6px;}
.actions-cell form{display:inline;}
.badge{padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;display:inline-block;}
.badge-confirmado{background:var(--green-bg);color:var(--green);}
.badge-sinconfirmar{background:var(--yellow-bg);color:var(--yellow);}
.badge-cancelado{background:var(--red-bg);color:var(--red);}
.empty{color:var(--muted);text-align:center;padding:40px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.form-field{display:flex;flex-direction:column;gap:4px;}
.form-field.full{grid-column:1/-1;}
.form-field label{font-size:12px;color:var(--muted);font-weight:600;}
.form-field input, .form-field select{padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:14px;}
.checkbox-row{display:flex;align-items:center;gap:8px;flex-direction:row;font-size:14px;}
.checkbox-row input{width:auto;}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;}
.calendar-scroll{overflow-x:auto;}
.cal-table{border-collapse:collapse;font-size:12px;}
.cal-table th,.cal-table td{border:1px solid var(--border);padding:2px 4px;line-height:1.3;text-align:center;min-width:50px;height:22px;}
.cal-table th.spot-col, .cal-table td.spot-col{position:sticky;left:0;background:#fff;text-align:left;min-width:120px;font-weight:600;}
.cal-free{background:var(--green-bg);}
.cal-confirmado{background:var(--red-bg);color:var(--red);font-weight:600;}
.cal-sinconfirmar{background:var(--yellow-bg);color:var(--yellow);font-weight:600;}
.cal-table tbody tr:hover td{filter:brightness(0.9);}
.cal-table tbody tr:hover td.spot-col{background:#f3f4f6;}
.legend{display:flex;gap:16px;margin-top:10px;font-size:12px;color:var(--muted);flex-wrap:wrap;}
.legend span{display:inline-flex;align-items:center;gap:6px;}
.legend i{width:12px;height:12px;border-radius:3px;display:inline-block;}
.row{display:flex;gap:10px;align-items:center;}
.spots-list{display:flex;flex-wrap:wrap;gap:8px;}
.spot-chip{background:var(--gray-bg);border-radius:999px;padding:6px 10px 6px 14px;display:flex;align-items:center;gap:8px;font-size:13px;}
.spot-chip form{display:inline-flex;}
.spot-chip button{background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px;}
.stats{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:16px;}
.stat-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px 18px;min-width:140px;}
.stat-card .num{font-size:22px;font-weight:700;}
.stat-card .label{font-size:12px;color:var(--muted);}
.stat-card.stat-green{background:var(--green-bg);border-color:var(--green-bg);}
.stat-card.stat-green .num{color:var(--green);}
.stat-card.stat-yellow{background:var(--yellow-bg);border-color:var(--yellow-bg);}
.stat-card.stat-yellow .num{color:var(--yellow);}
footer{text-align:center;color:var(--muted);font-size:12px;padding:20px;}
.flash{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;padding:10px 14px;border-radius:8px;margin-bottom:14px;font-size:14px;}
.flash-error{background:var(--red-bg);border-color:#fecaca;color:var(--red);}
.user-box{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted);}
.role-tag{background:var(--gray-bg);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;margin-left:4px;text-transform:uppercase;color:var(--text);}
.readonly-value{padding:8px 10px;background:var(--gray-bg);border-radius:8px;font-size:14px;}
.total-highlight{background:var(--primary);color:#fff;font-size:20px;font-weight:700;padding:12px 14px;}
.perm-note{color:var(--muted);font-size:13px;margin-bottom:10px;}