/* Team Availability Calendar */
:root {
  --tac-green:  #437a22;
  --tac-red:    #b91c1c;
  --tac-border: #d4d1ca;
  --tac-bg:     #f7f6f2;
  --tac-text:   #28251d;
  --tac-muted:  #7a7974;
}
#tac-root {
  font-family: -apple-system,"Segoe UI",sans-serif;
  max-width: 480px;
  margin: 0 auto;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.tac-wrapper { background:#fff; border-radius:.5rem; box-shadow:0 4px 16px rgba(0,0,0,.1); overflow:hidden; }

.tac-header { display:flex; align-items:center; justify-content:space-between; background:var(--tac-text); color:#fff; padding:14px 16px; }
.tac-header h2 { font-size:1.05rem; font-weight:600; }
.tac-nav-btn { background:none; border:none; color:#fff; font-size:1.5rem; cursor:pointer; padding:2px 12px; border-radius:4px; transition:background .15s; line-height:1; }
.tac-nav-btn:hover { background:rgba(255,255,255,.15); }

.tac-weekdays { display:grid; grid-template-columns:repeat(7,1fr); background:var(--tac-bg); border-bottom:1px solid var(--tac-border); }
.tac-weekday { text-align:center; font-size:.7rem; font-weight:700; color:var(--tac-muted); padding:8px 0; text-transform:uppercase; letter-spacing:.05em; }

.tac-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:1px; background:var(--tac-border); }

.tac-day { background:#fff; min-height:64px; padding:5px; cursor:pointer; display:flex; flex-direction:column; transition:filter .12s; }
.tac-day:active { filter:brightness(.92); }
.tac-day.empty { background:var(--tac-bg); cursor:default; }
.tac-day.status-green { background:#d4dfcc; }
.tac-day.status-red   { background:#fecaca; }

.tac-day-num { font-size:.78rem; font-weight:600; color:var(--tac-muted); line-height:1; margin-bottom:3px; }
.tac-day.today .tac-day-num { background:var(--tac-text); color:#fff; border-radius:50%; width:20px; height:20px; display:flex; align-items:center; justify-content:center; font-size:.68rem; }
.tac-day.status-green .tac-day-num { color:#2e5c10; }
.tac-day.status-red   .tac-day-num { color:#991b1b; }

.tac-day-preview { font-size:.64rem; line-height:1.3; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; word-break:break-word; color:#555; flex:1; }
.tac-day.status-green .tac-day-preview { color:#1e3f0a; }
.tac-day.status-red   .tac-day-preview { color:#7f1d1d; }

.tac-swipe-hint { text-align:center; font-size:.7rem; color:var(--tac-muted); padding:6px 0 2px; letter-spacing:.03em; }

/* Modal */
.tac-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:99999; align-items:flex-end; justify-content:center; }
.tac-overlay.open { display:flex; }
@media(min-width:480px){ .tac-overlay { align-items:center; padding:20px; } .tac-modal { border-radius:12px !important; } }

.tac-modal { background:#fff; border-radius:16px 16px 0 0; padding:24px 20px 32px; width:100%; max-width:420px; animation:tacUp .22s cubic-bezier(.16,1,.3,1); }
@keyframes tacUp { from{transform:translateY(60px);opacity:0} }

.tac-modal-title { font-size:1rem; font-weight:700; color:var(--tac-text); margin-bottom:14px; }
.tac-status-row { display:flex; gap:8px; margin-bottom:14px; }
.tac-status-btn { flex:1; padding:9px 6px; border-radius:8px; border:2px solid transparent; font-size:.8rem; font-weight:600; cursor:pointer; transition:all .15s; background:var(--tac-bg); color:var(--tac-muted); }
.tac-status-btn.sel-none  { border-color:var(--tac-border); color:var(--tac-text); background:#eeede9; }
.tac-status-btn.sel-green { border-color:var(--tac-green); color:var(--tac-green); background:#d4dfcc; }
.tac-status-btn.sel-red   { border-color:var(--tac-red);   color:var(--tac-red);   background:#fecaca; }

.tac-textarea-wrap label { display:block; font-size:.75rem; font-weight:700; color:var(--tac-muted); margin-bottom:5px; text-transform:uppercase; letter-spacing:.05em; }
.tac-textarea { width:100%; border:1.5px solid var(--tac-border); border-radius:8px; padding:9px 12px; font-size:.9rem; resize:vertical; min-height:75px; outline:none; transition:border-color .15s; font-family:inherit; color:var(--tac-text); }
.tac-textarea:focus { border-color:var(--tac-text); }

.tac-modal-actions { display:flex; gap:10px; margin-top:18px; }
.tac-btn-save { flex:1; padding:12px; background:var(--tac-text); color:#fff; border:none; border-radius:8px; font-size:.9rem; font-weight:600; cursor:pointer; transition:background .15s; }
.tac-btn-save:hover { background:#1a1810; }
.tac-btn-cancel { padding:12px 16px; background:var(--tac-bg); color:var(--tac-muted); border:1.5px solid var(--tac-border); border-radius:8px; font-size:.9rem; cursor:pointer; transition:all .15s; }
.tac-btn-cancel:hover { background:#e5e4df; }
@media(max-width:360px){ .tac-day{min-height:52px;padding:4px;} .tac-day-num{font-size:.7rem;} }
