.plcal { --plcal-border:#d6dbe1; --plcal-muted:#6b7280; --plcal-bg:#ffffff; --plcal-soft:#f8fafc; font-size:1rem; }
.plcal * { box-sizing:border-box; }
.plcal-topbar { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; margin-bottom:1rem; }
.plcal-topbar h2 { margin:0 0 .25rem; }
.plcal-topbar p { margin:0; color:var(--plcal-muted); }
.plcal-controls { display:flex; gap:.4rem; flex-wrap:wrap; }
.plcal button { border:1px solid var(--plcal-border); background:var(--plcal-bg); border-radius:.4rem; padding:.45rem .7rem; cursor:pointer; }
.plcal button:hover { background:var(--plcal-soft); }
.plcal-layout { display:grid; grid-template-columns:220px minmax(0,1fr) 280px; gap:1rem; }
.plcal-sidebar, .plcal-daypanel, .plcal-main { border:1px solid var(--plcal-border); border-radius:.7rem; background:var(--plcal-bg); padding:1rem; }
.plcal-sidebar h3, .plcal-daypanel h3, .plcal-main h3 { margin-top:0; }
.plcal-legend-item { display:flex; align-items:center; gap:.5rem; margin:.45rem 0; }
.plcal-dot { width:.75rem; height:.75rem; border-radius:50%; border:1px solid rgba(0,0,0,.12); flex:0 0 auto; }
.plcal-weekdays, .plcal-grid-month { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.plcal-weekdays { color:var(--plcal-muted); font-size:.85rem; text-align:center; border-bottom:1px solid var(--plcal-border); padding-bottom:.35rem; margin-bottom:.35rem; }
.plcal-day { min-height:112px; border:1px solid var(--plcal-border); margin:-1px 0 0 -1px; padding:.35rem; background:#fff; cursor:pointer; overflow:hidden; }
.plcal-day:hover { background:var(--plcal-soft); }
.plcal-day.is-other { background:#fafafa; color:#9ca3af; }
.plcal-day.is-today { outline:2px solid #111827; outline-offset:-2px; }
.plcal-day.is-selected { box-shadow:inset 0 0 0 3px #64748b; }
.plcal-day-number { font-weight:700; margin-bottom:.25rem; }
.plcal-event-chip { display:block; color:#fff; border-radius:.3rem; padding:.15rem .28rem; margin:.15rem 0; font-size:.78rem; line-height:1.15; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.plcal-day-event { border-bottom:1px solid var(--plcal-border); padding:.65rem 0; }
.plcal-day-event:last-child { border-bottom:0; }
.plcal-day-event-title { font-weight:700; margin-bottom:.2rem; }
.plcal-day-event-meta { color:var(--plcal-muted); font-size:.9rem; }
.plcal-empty { color:var(--plcal-muted); font-style:italic; }
@media (max-width: 1100px) { .plcal-layout { grid-template-columns:1fr; } .plcal-sidebar, .plcal-daypanel { order:2; } .plcal-main { order:1; } }
@media (max-width: 700px) { .plcal-topbar { display:block; } .plcal-day { min-height:76px; } .plcal-event-chip { display:none; } }
.plcal a.plcal-button, .plcal-button { display:inline-block; border:1px solid var(--plcal-border); background:var(--plcal-bg); border-radius:.4rem; padding:.45rem .7rem; text-decoration:none; color:inherit; cursor:pointer; }
.plcal a.plcal-button:hover, .plcal-button:hover { background:var(--plcal-soft); text-decoration:none; }
.plcal .plcal-button-primary { background:#111827; color:#fff; border-color:#111827; }
.plcal .plcal-button-primary:hover { background:#374151; color:#fff; }
.plcal .plcal-button-danger { background:#b91c1c; color:#fff; border-color:#b91c1c; }
.plcal .plcal-button-danger:hover { background:#991b1b; color:#fff; }
.plcal-button-small { padding:.35rem .55rem; font-size:.9rem; margin-bottom:.6rem; }
.plcal-day-event-actions { margin-top:.35rem; font-size:.9rem; }
.plcal-day-event-actions a { text-decoration:underline; }
.plcal-event-edit { max-width:980px; }
.plcal-edit-form { border:1px solid var(--plcal-border); border-radius:.7rem; background:var(--plcal-bg); padding:1rem; }
.plcal-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.plcal-field { display:flex; flex-direction:column; gap:.25rem; }
.plcal-field label { font-weight:700; }
.plcal-field input[type="text"], .plcal-field input[type="datetime-local"], .plcal-field select, .plcal-field textarea { width:100%; border:1px solid var(--plcal-border); border-radius:.35rem; padding:.5rem; font:inherit; }
.plcal-span-2 { grid-column:1 / -1; }
.plcal-form-note { color:var(--plcal-muted); margin-top:1rem; font-size:.9rem; }
.plcal-form-actions { display:flex; gap:.5rem; flex-wrap:wrap; margin-top:1rem; align-items:center; }
@media (max-width: 700px) { .plcal-form-grid { grid-template-columns:1fr; } }

.plcal-member-status-list {
    margin-top: .5rem;
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}
.plcal-member-badge {
    display: inline-flex;
    align-items: center;
    border: 1px solid #d0d7de;
    background: #f6f8fa;
    border-radius: 999px;
    padding: .15rem .55rem;
    font-size: .85rem;
}
.plcal-rsvp {
    margin-top: .55rem;
    padding-top: .45rem;
    border-top: 1px solid #e5e7eb;
}
.plcal-rsvp-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .35rem;
}
.plcal-rsvp-button {
    border: 1px solid #cbd5e1;
    background: #ffffff;
    border-radius: 999px;
    padding: .2rem .55rem;
    cursor: pointer;
    font-size: .85rem;
}
.plcal-rsvp-button.is-active {
    border-color: #2563eb;
    font-weight: 700;
}

.plcal-my-response-box { margin-top: 1rem; }
.plcal-rsvp-inline { border-top: 0; padding-top: 0; display: flex; flex-wrap: wrap; gap: .35rem; }

/* R5 - agenda personale */
.plcal-stats {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 1rem 0;
}
.plcal-stats span {
  border: 1px solid #d8dee9;
  border-radius: 999px;
  padding: .35rem .75rem;
  background: #fff;
}
.plcal-card {
  border: 1px solid #d8dee9;
  border-radius: 12px;
  background: #fff;
  padding: 1rem;
  margin: 1rem 0;
}
.plcal-agenda-list {
  display: grid;
  gap: .75rem;
  margin-top: 1rem;
}
.plcal-agenda-item {
  display: grid;
  grid-template-columns: minmax(150px, 220px) 1fr;
  gap: 1rem;
  border: 1px solid #d8dee9;
  border-radius: 12px;
  background: #fff;
  padding: 1rem;
}
.plcal-agenda-date {
  font-weight: 700;
  color: #334155;
}
.plcal-agenda-body h3 {
  margin: 0 0 .35rem;
}
@media (max-width: 760px) {
  .plcal-agenda-item {
    grid-template-columns: 1fr;
  }
}


.plcal-notify-box {
    border: 1px solid #d8dee9;
    border-radius: 8px;
    padding: 12px;
    background: #f8fafc;
}
.plcal-sub-label {
    display: block;
    margin-top: 10px;
    font-weight: 600;
}
