/* KK Calendar */
.cal-layout{display:flex;height:100%;overflow:hidden;background:var(--bg);}
.cal-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;}
.cal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px 12px;gap:12px;flex-wrap:wrap;}
.cal-header-left{display:flex;align-items:center;gap:8px;}
.cal-header-right{display:flex;align-items:center;gap:6px;}
.cal-title{font-size:16px;font-weight:700;color:var(--text);margin-left:8px;}
.cal-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border-radius:6px;font-size:12px;font-weight:600;border:none;cursor:pointer;transition:all .15s;background:var(--surface);border:1px solid var(--border);color:var(--text-sec);}
.cal-btn:hover{border-color:var(--accent);color:var(--accent);}
.cal-btn.active{background:var(--navy);color:#fff;border-color:var(--navy);}
.cal-btn-primary{background:var(--navy);color:#fff;border-color:var(--navy);}.cal-btn-primary:hover{opacity:.9;}
.cal-btn-sm{padding:4px 10px;font-size:11px;}

/* Grid container */
.cal-grid{flex:1;overflow:auto;border-top:1px solid var(--border);}

/* ── Day/Week time grid ── */
.cal-tgrid{border-collapse:collapse;width:100%;}
.cal-tgrid th{position:sticky;top:0;z-index:3;background:var(--surface);padding:6px 4px;text-align:center;border-bottom:2px solid var(--border);border-left:1px solid var(--border);font-size:10px;}
.cal-tgrid th:first-child{border-left:none;width:52px;}
.cal-tgrid td{height:32px;border-bottom:1px solid var(--border-light);padding:0;position:relative;}
.cal-tgrid td.cal-hour{border-bottom:1px solid var(--border);}
.cal-tgrid td:first-child{width:52px;text-align:right;padding:0 6px;font-size:10px;color:var(--text-ter);border-right:1px solid var(--border);vertical-align:top;padding-top:2px;}
.cal-tgrid td:not(:first-child){border-left:1px solid var(--border-light);cursor:pointer;}
.cal-tgrid td:not(:first-child):hover{background:rgba(59,130,246,.03);}
.cal-tgrid .cal-today{background:rgba(59,130,246,.02);}
.cal-tgrid .cal-now{background:rgba(220,38,38,.03);}

/* Event block */
.cal-ev{position:relative;border-radius:3px;padding:2px 6px;font-size:10px;cursor:pointer;overflow:hidden;min-height:31px;display:flex;flex-direction:column;justify-content:center;transition:box-shadow .15s;}
.cal-ev:hover{box-shadow:0 2px 8px rgba(0,0,0,.1);z-index:2;}
.cal-ev-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cal-ev-time{font-size:9px;opacity:.8;}
.cal-ev-ksuite{background:rgba(59,130,246,.12);border-left:3px solid #3b82f6;color:#1e40af;}
.cal-ev-personal{background:rgba(139,92,246,.10);border-left:3px solid #8b5cf6;color:#6d28d9;}
.cal-ev-booking{background:rgba(16,185,129,.10);border-left:3px solid #10b981;color:#065f46;}
.cal-ev-del{position:absolute;top:2px;right:4px;font-size:11px;color:#dc2626;cursor:pointer;opacity:0;transition:opacity .15s;}
.cal-ev:hover .cal-ev-del{opacity:1;}

/* ── Month grid ── */
.cal-month{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--border);flex:1;}
.cal-month-head{padding:6px;text-align:center;font-size:10px;font-weight:700;color:var(--text-sec);background:var(--surface);border-bottom:2px solid var(--border);border-left:1px solid var(--border);}
.cal-month-head:first-child{border-left:none;}
.cal-month-day{min-height:90px;border-bottom:1px solid var(--border);border-left:1px solid var(--border);padding:4px;font-size:10px;cursor:pointer;transition:background .1s;overflow:hidden;}
.cal-month-day:hover{background:rgba(59,130,246,.02);}
.cal-month-day.other{background:var(--bg);color:var(--text-ter);}
.cal-month-day.today{background:rgba(59,130,246,.04);}
.cal-month-day.holiday{background:rgba(251,191,36,.06);}
.cal-month-num{font-size:11px;font-weight:600;margin-bottom:2px;display:flex;align-items:center;justify-content:space-between;}
.cal-month-num .today-dot{width:20px;height:20px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;}
.cal-month-ev{font-size:9px;padding:1px 4px;border-radius:3px;margin-bottom:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;}
.cal-month-more{font-size:9px;color:var(--accent);font-weight:600;cursor:pointer;padding:1px 4px;}

/* ── Event detail popup ── */
.cal-popup-overlay{position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:9999;display:flex;align-items:center;justify-content:center;}
.cal-popup{background:var(--surface);border-radius:12px;padding:20px;max-width:440px;width:92%;box-shadow:0 8px 32px rgba(0,0,0,.15);position:relative;}
.cal-popup-close{position:absolute;top:10px;right:14px;background:none;border:none;font-size:18px;cursor:pointer;color:var(--text-ter);}
.cal-popup h3{font-size:15px;font-weight:700;margin-bottom:4px;}
.cal-popup-meta{font-size:12px;color:var(--text-sec);margin-bottom:12px;}
.cal-popup-row{display:flex;justify-content:space-between;font-size:12px;padding:5px 0;border-bottom:1px solid var(--border);}
.cal-popup-row:last-child{border-bottom:none;}
.cal-popup-label{color:var(--text-ter);font-weight:500;}
.cal-popup-value{font-weight:600;color:var(--text);text-align:right;}
.cal-popup-actions{display:flex;gap:6px;margin-top:14px;flex-wrap:wrap;}

/* ── Form fields ── */
.cal-field{display:grid;gap:3px;margin-bottom:10px;}
.cal-field label{font-size:10px;font-weight:600;color:var(--text-sec);}
.cal-field input,.cal-field select,.cal-field textarea{padding:7px 10px;border:1px solid var(--border);border-radius:6px;font-size:12px;background:var(--surface);color:var(--text);outline:none;font-family:inherit;}
.cal-field input:focus,.cal-field select:focus{border-color:var(--accent);}
.cal-field-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;}

/* ── Team column headers ── */
.cal-team-head{display:flex;align-items:center;gap:6px;justify-content:center;}
.cal-team-avatar{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff;flex-shrink:0;}
.cal-team-name{font-size:10px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px;}

/* ── Right sidebar (próximos) ── */
.cal-side{width:260px;flex-shrink:0;border-left:1px solid var(--border);background:var(--surface);overflow-y:auto;padding:14px;}
.cal-side-title{font-size:10px;font-weight:800;color:var(--text-sec);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;}
.cal-side-ev{padding:8px;border:1px solid var(--border);border-radius:8px;margin-bottom:6px;cursor:pointer;transition:border-color .15s;font-size:11px;}
.cal-side-ev:hover{border-color:var(--accent);}
.cal-side-ev-title{font-weight:600;color:var(--text);margin-bottom:2px;}
.cal-side-ev-meta{color:var(--text-ter);font-size:10px;}

/* Mini calendar */
.cal-mini{margin-bottom:16px;}
.cal-mini-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.cal-mini-title{font-size:12px;font-weight:700;color:var(--text);}
.cal-mini-nav{font-size:14px;cursor:pointer;color:var(--text-sec);padding:2px 6px;border-radius:4px;}
.cal-mini-nav:hover{background:var(--bg);}
.cal-mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;text-align:center;}
.cal-mini-grid .head{font-size:9px;font-weight:700;color:var(--text-ter);padding:2px;}
.cal-mini-grid .day{font-size:10px;padding:3px;border-radius:4px;cursor:pointer;}
.cal-mini-grid .day:hover{background:var(--bg);}
.cal-mini-grid .day.today{background:var(--navy);color:#fff;font-weight:700;}
.cal-mini-grid .day.selected{border:1px solid var(--navy);font-weight:600;}
.cal-mini-grid .day.other{color:var(--text-ter);}
.cal-mini-grid .day.has-event{font-weight:700;color:var(--accent);}

/* Status badge */
.cal-status{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:12px;font-size:10px;font-weight:600;}
.cal-status-connected{background:#d1fae5;color:#065f46;}
.cal-status-disconnected{background:#fee2e2;color:#dc2626;}

@media(max-width:900px){
  .cal-layout{flex-direction:column;}
  .cal-side{width:100%;border-left:none;border-top:1px solid var(--border);max-height:200px;}
  .cal-month-day{min-height:60px;}
}
