.psm-front-wrap{max-width:1280px;margin:20px auto}.psm-planning-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:12px}.psm-planning-head h2{margin:0 0 4px}.psm-toolbar{display:flex;gap:8px;flex-wrap:wrap}.psm-btn{border:0;border-radius:6px;padding:10px 15px;cursor:pointer;background:#1d2327;color:#fff}.psm-btn.secondary{background:#666}.psm-hidden{display:none!important}.psm-alert{padding:12px;border-radius:6px;margin:10px 0}.psm-alert.ok{background:#e8f7ea}.psm-alert.err{background:#fdeaea}.psm-help{font-size:.9em;color:#666;margin:0}.psm-legend{display:flex;flex-wrap:wrap;gap:12px 18px;font-size:.9em;margin:12px 0}.psm-legend span{display:inline-flex;align-items:center;gap:6px}.psm-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.psm-dot-need{background:#c62828}.psm-dot-under{background:#c62828}.psm-dot-ok{background:#2e7d32}.psm-dot-red{background:#c62828}.psm-dot-orange{background:#ef8f00}.psm-dot-green-light{background:#9ccc9c}.psm-dot-green-full{background:#4f9b5f}.psm-dot-med{background:#6a1b9a}.psm-dot-vet{background:#1565c0}.fc-event.psm-under{background:#c62828;border-color:#c62828}.fc-event.psm-ok{background:#2e7d32;border-color:#2e7d32}.fc-event.psm-care-red{background:#c62828;border-color:#c62828}.fc-event.psm-care-orange{background:#ef8f00;border-color:#ef8f00;color:#1d2327}.fc-event.psm-care-green-light{background:#b7ddb7;border-color:#91c691;color:#183b1e}.fc-event.psm-care-green-full{background:#4f9b5f;border-color:#4f9b5f}.fc-event.psm-mediation{background:#6a1b9a;border-color:#6a1b9a}.fc-event.psm-vet{background:#1565c0;border-color:#1565c0}.fc-event.psm-need{background:#fff3df!important;border:1px solid #ed8b00!important;color:#7a4500!important}.fc-event.psm-need-complete{background:#edf7ee!important;border:1px solid #63a56b!important;color:#2b6232!important}.psm-modal{display:none;position:fixed;inset:0;z-index:999999}.psm-modal.open{display:block}.psm-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45)}.psm-modal-dialog{position:relative;background:#fff;width:min(620px,calc(100% - 32px));max-height:calc(100vh - 60px);overflow:auto;margin:30px auto;padding:24px;border-radius:10px;box-shadow:0 15px 60px rgba(0,0,0,.25)}.psm-modal-close{position:absolute;right:12px;top:8px;border:0;background:transparent;font-size:30px;cursor:pointer;line-height:1}.psm-modal-dialog label{font-weight:600}.psm-modal-dialog input,.psm-modal-dialog select,.psm-modal-dialog textarea{max-width:100%;padding:8px}.psm-modal-dialog textarea{width:100%;min-height:90px}.psm-modal-actions{margin-top:18px}.psm-context{padding:12px;background:#f5f6f7;border-radius:6px;margin:12px 0}.psm-weekdays{display:flex;gap:10px;flex-wrap:wrap}.psm-weekdays label{font-weight:400}@media(max-width:700px){.psm-planning-head{display:block}.psm-toolbar{margin-top:12px}.psm-modal-dialog{margin:15px auto;max-height:calc(100vh - 30px)}}
.psm-tabs{display:flex;gap:6px;border-bottom:1px solid #ddd;margin:18px 0}.psm-tab{border:0;background:transparent;padding:11px 16px;cursor:pointer;border-bottom:3px solid transparent;font-weight:600}.psm-tab.active{border-bottom-color:#1d2327}.psm-tab-panel{display:none}.psm-tab-panel.active{display:block}.psm-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin:14px 0}.psm-section-head h3{margin:0 0 4px}.psm-dot-med-local{background:#6a1b9a}.psm-dot-med-away{background:#777}.fc-event.psm-mediation-local{background:#6a1b9a;border-color:#6a1b9a}.fc-event.psm-mediation-away{background:#777;border-color:#777}.psm-radio-row{display:flex;gap:24px}.psm-radio-row label{font-weight:400}.psm-tab-panel:not(.active) .fc{visibility:hidden}@media(max-width:700px){.psm-tabs{overflow-x:auto}.psm-tab{white-space:nowrap}.psm-section-head{display:block}.psm-section-head .psm-toolbar{margin-top:10px}}

.psm-btn.danger{background:#b3261e}.fc-event.psm-care-red.psm-need{opacity:.88}.fc-event.psm-care-red{cursor:pointer}

/* UX feedback */
.psm-message-stack{position:fixed;z-index:1000000;right:22px;top:22px;width:min(420px,calc(100vw - 44px));pointer-events:none;opacity:0;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease}.psm-message-stack.visible{opacity:1;transform:translateY(0)}.psm-message-stack .psm-alert{box-shadow:0 8px 30px rgba(0,0,0,.18);border:1px solid rgba(0,0,0,.08);margin:0}.psm-btn{transition:opacity .15s ease,transform .08s ease,box-shadow .15s ease}.psm-btn:hover:not(:disabled){box-shadow:0 3px 10px rgba(0,0,0,.16)}.psm-btn:active:not(:disabled){transform:translateY(1px)}.psm-btn:disabled,.psm-btn.is-loading{opacity:.55;cursor:wait}.psm-form-feedback{display:none;margin:10px 0;padding:9px 11px;border-radius:6px;font-size:.92em}.psm-form-feedback.err{display:block;background:#fdeaea;color:#8f1d18}.psm-form-feedback.ok{display:block;background:#e8f7ea;color:#24612c}.psm-field-row{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}.psm-field-row label{display:flex;flex-direction:column;gap:5px}.psm-field-row select{min-width:170px}.psm-modal-dialog select:disabled{background:#f1f1f1;color:#888;cursor:not-allowed}
@media(max-width:700px){.psm-message-stack{right:12px;top:12px;width:calc(100vw - 24px)}.psm-field-row label{width:100%}.psm-field-row select{width:100%}}

/* Compact event content + current-user marker */
.fc .fc-timegrid-event .fc-event-main{line-height:1.05;padding:1px 2px}.fc .fc-timegrid-event .fc-event-time{line-height:1.05;margin-bottom:1px}.fc .fc-timegrid-event .fc-event-title{line-height:1.08}.fc-event.psm-my-slot .fc-event-title{font-weight:700}


/* Responsive planning */
.psm-front-wrap{width:100%;box-sizing:border-box;padding-left:12px;padding-right:12px}
.psm-tab-panel,.psm-tab-panel .fc{min-width:0}
.fc .fc-toolbar-title{font-size:1.15rem}
.fc .fc-button{padding:.38em .58em}
.fc .fc-timegrid-slot-label,.fc .fc-col-header-cell-cushion{font-size:.82rem}
.fc .fc-timegrid-axis{width:44px}

@media(max-width:700px){
  .psm-front-wrap{margin:8px auto;padding-left:6px;padding-right:6px}
  .psm-tabs{margin:8px 0 10px;gap:2px}
  .psm-tab{padding:9px 11px;font-size:.9rem}
  .psm-section-head{margin:8px 0}
  .psm-section-head h3{font-size:1.05rem}
  .psm-toolbar{gap:6px}
  .psm-btn{padding:9px 11px;font-size:.9rem}
  .psm-modal-dialog{
    width:calc(100% - 12px);
    margin:6px auto;
    padding:18px 14px;
    max-height:calc(100dvh - 12px);
    border-radius:8px;
  }
  .psm-modal-close{right:8px;top:4px}
  .psm-radio-row{gap:12px;flex-wrap:wrap}
  .psm-weekdays{gap:6px 10px}
  .psm-context{padding:9px;margin:8px 0}
  .fc .fc-toolbar{
    display:grid;
    grid-template-columns:auto 1fr auto;
    gap:4px;
    align-items:center;
    margin-bottom:.55em;
  }
  .fc .fc-toolbar-chunk:nth-child(1){justify-self:start}
  .fc .fc-toolbar-chunk:nth-child(2){justify-self:center;min-width:0}
  .fc .fc-toolbar-chunk:nth-child(3){justify-self:end}
  .fc .fc-toolbar-title{
    font-size:.92rem;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:42vw;
  }
  .fc .fc-button{
    font-size:.76rem;
    padding:.34em .45em;
  }
  .fc .fc-prev-button,.fc .fc-next-button{
    min-width:31px;
    padding:.34em .38em;
  }
  .fc .fc-timegrid-axis{width:34px}
  .fc .fc-timegrid-slot-label,.fc .fc-timegrid-axis-cushion{font-size:.68rem}
  .fc .fc-col-header-cell-cushion{
    font-size:.72rem;
    padding:4px 1px;
    white-space:normal;
    line-height:1.05;
  }
  .fc .fc-timegrid-event .fc-event-main{padding:1px;line-height:1}
  .fc .fc-timegrid-event .fc-event-time{font-size:.68rem;line-height:1}
  .fc .fc-timegrid-event .fc-event-title{font-size:.7rem;line-height:1.02}
  .fc .fc-timegrid-slot{height:1.75em}
  .fc .fc-scrollgrid,.fc-theme-standard td,.fc-theme-standard th{border-color:#e2e2e2}
}


/* Mobile polish v1.18 */
.psm-legend{
  line-height:1.15;
}
.psm-legend span{
  line-height:1.15;
}

@media(max-width:700px){
  /* Tabs: always fit on one mobile row */
  .psm-tabs{
    display:flex;
    width:100%;
    overflow:visible;
    gap:3px;
    border-bottom:1px solid #ddd;
    margin:6px 0 8px;
  }
  .psm-tab{
    flex:1 1 0;
    min-width:0;
    padding:7px 4px;
    font-size:.72rem;
    line-height:1.05;
    text-align:center;
    white-space:normal;
    overflow-wrap:anywhere;
    border-radius:0;
  }

  /* Compact legend */
  .psm-legend{
    gap:4px 10px;
    margin:6px 0 8px;
    font-size:.78rem;
    line-height:1.05;
  }
  .psm-legend span{
    gap:4px;
    line-height:1.05;
  }
  .psm-dot{
    width:8px;
    height:8px;
    flex:0 0 8px;
  }

  /* Slightly tighter section header */
  .psm-section-head{
    margin:6px 0 8px;
  }
  .psm-section-head h3{
    margin-bottom:2px;
  }
  .psm-help{
    line-height:1.25;
  }

  /* More compact modal */
  .psm-modal-dialog{
    width:calc(100% - 8px);
    margin:4px auto;
    padding:14px 12px;
    max-height:calc(100dvh - 8px);
  }
  .psm-modal-dialog h2,
  .psm-modal-dialog h3{
    margin-top:0;
    margin-bottom:8px;
    line-height:1.15;
  }
  .psm-modal-dialog p{
    margin:7px 0;
    line-height:1.3;
  }
  .psm-context{
    padding:8px;
    margin:7px 0;
  }
  .psm-modal-actions{
    margin-top:12px;
    display:flex;
    gap:7px;
    flex-wrap:wrap;
  }
  .psm-modal-actions .psm-btn{
    padding:8px 10px;
    font-size:.82rem;
  }

  /* Keep calendar toolbar compact */
  .fc .fc-toolbar{
    margin-bottom:.4em;
  }
  .fc .fc-toolbar-title{
    font-size:.86rem;
    max-width:38vw;
  }
}


/* Mobile fixes v1.19 */
.psm-modal-dialog,
.psm-modal-dialog *{box-sizing:border-box}
.psm-modal-dialog h3,
.psm-modal-dialog h2,
#psm-detail-title{
  overflow-wrap:anywhere;
  word-break:break-word;
}
button.psm-modal-close,
.psm-modal-close{
  appearance:none !important;
  -webkit-appearance:none !important;
  background:transparent !important;
  color:#1d2327 !important;
  border:0 !important;
  box-shadow:none !important;
  border-radius:0 !important;
  width:auto !important;
  min-width:0 !important;
  height:auto !important;
  line-height:1 !important;
  padding:0 4px !important;
  margin:0 !important;
  text-transform:none !important;
  font-size:28px !important;
  font-weight:400 !important;
}

.psm-front-wrap .psm-tabs .psm-tab{
  appearance:none !important;
  -webkit-appearance:none !important;
  background:#fff !important;
  color:#1d2327 !important;
  border:1px solid #d7d7d7 !important;
  border-bottom:3px solid transparent !important;
  box-shadow:none !important;
  text-shadow:none !important;
  font-weight:700 !important;
  border-radius:8px 8px 0 0 !important;
  margin:0 !important;
}
.psm-front-wrap .psm-tabs .psm-tab.active{
  border-bottom-color:#1d2327 !important;
  background:#f8f8f8 !important;
}

@media(max-width:700px){
  .psm-front-wrap .psm-tabs{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr));
    width:100%;
    gap:4px;
    overflow:visible !important;
  }
  .psm-front-wrap .psm-tabs .psm-tab{
    display:flex !important;
    align-items:center;
    justify-content:center;
    min-height:42px;
    min-width:0 !important;
    width:100% !important;
    padding:6px 3px !important;
    font-size:11px !important;
    line-height:1.05 !important;
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:anywhere !important;
    hyphens:auto;
    letter-spacing:0 !important;
  }
  .psm-legend,
  .psm-legend span{
    line-height:1 !important;
  }
  .psm-legend{
    gap:3px 8px !important;
    font-size:12px !important;
  }
  .psm-modal-dialog{
    width:min(620px, calc(100vw - 10px)) !important;
    max-width:calc(100vw - 10px) !important;
    margin:5px auto !important;
    padding:14px 10px !important;
    max-height:calc(100dvh - 10px) !important;
  }
  .psm-modal-dialog h3,
  #psm-detail-title{
    font-size:22px !important;
    line-height:1.12 !important;
    padding-right:22px;
    margin-bottom:8px !important;
  }
  .psm-modal-dialog p,
  .psm-modal-dialog li,
  .psm-modal-dialog label,
  .psm-modal-dialog strong,
  .psm-modal-dialog div{
    font-size:15px;
    line-height:1.25;
  }
  .psm-modal-actions .psm-btn,
  .psm-modal-dialog .psm-btn{
    width:100%;
    padding:10px 12px !important;
    font-size:13px !important;
    border-radius:8px !important;
  }
}


/* Front login form */
.psm-login-wrap{
  max-width:460px;
  margin:30px auto;
  padding:24px;
  background:#fff;
  border:1px solid #e0e0e0;
  border-radius:10px;
  box-shadow:0 8px 30px rgba(0,0,0,.06);
  box-sizing:border-box;
}
.psm-login-wrap h2{margin:0 0 6px}
.psm-login-wrap .login-username,
.psm-login-wrap .login-password,
.psm-login-wrap .login-remember,
.psm-login-wrap .login-submit{margin:14px 0}
.psm-login-wrap label{
  display:block;
  font-weight:600;
  margin-bottom:5px;
}
.psm-login-wrap input[type="text"],
.psm-login-wrap input[type="password"]{
  width:100%;
  max-width:none;
  box-sizing:border-box;
  padding:10px 12px;
}
.psm-login-wrap .login-remember label{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:400;
}
.psm-login-wrap .button-primary{
  width:100%;
  border:0;
  border-radius:7px;
  padding:11px 14px;
  cursor:pointer;
}
.psm-login-links{margin:12px 0 0;text-align:center}

@media(max-width:700px){
  .psm-login-wrap{
    margin:12px auto;
    padding:18px 14px;
    width:calc(100% - 12px);
  }
}
\n\n/* Event title refinements v1.21 */
.fc-event.psm-care-green-light,
.fc-event.psm-care-green-light .fc-event-main,
.fc-event.psm-care-green-light .fc-event-time,
.fc-event.psm-care-green-light .fc-event-title{
  color:#183b1e !important;
}
.fc .fc-timegrid-event .fc-event-title{
  white-space:pre-line;
}

/* Preserve intentional line breaks in event titles */
.fc .fc-event-title{white-space:pre-line;}


/* Current user slot highlight */
.fc-event.psm-my-slot{
  border:3px solid #2e7d32 !important;
  box-shadow:0 0 0 1px rgba(46,125,50,.15) !important;
}


/* Calendar view switcher */
.fc .fc-button-group .fc-button{
  min-width:auto;
}
@media(max-width:700px){
  .fc .fc-toolbar{
    grid-template-columns:auto 1fr;
    grid-template-areas:
      "nav title"
      "views views";
    row-gap:6px;
  }
  .fc .fc-toolbar-chunk:nth-child(1){grid-area:nav;justify-self:start}
  .fc .fc-toolbar-chunk:nth-child(2){grid-area:title;justify-self:end}
  .fc .fc-toolbar-chunk:nth-child(3){
    grid-area:views;
    justify-self:stretch;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:4px;
  }
  .fc .fc-toolbar-chunk:nth-child(3) .fc-button-group{
    display:flex;
    flex:1 1 auto;
  }
  .fc .fc-toolbar-chunk:nth-child(3) .fc-button-group .fc-button{
    flex:1 1 0;
    padding:.34em .45em;
    font-size:.72rem;
  }
  .fc .fc-toolbar-chunk:nth-child(3) > .fc-today-button{
    flex:0 0 auto;
    font-size:.72rem;
  }
  .fc .fc-toolbar-title{
    max-width:55vw;
  }
}

/* Need selection preview */
#psm-calendar-care .fc-highlight{background:rgba(198,40,40,.16)!important;border:1px dashed #c62828!important;}


/* Need selection mirror */
#psm-calendar-care .fc-highlight{
  background:rgba(198,40,40,.16) !important;
  outline:2px dashed #c62828;
  outline-offset:-2px;
}


/* Custom 2-hour need drag preview */
#psm-calendar-care .fc-timegrid-col{position:relative}
.psm-need-drag-preview{
  position:absolute;
  left:2px;
  right:2px;
  z-index:8;
  pointer-events:none;
  background:rgba(198,40,40,.18);
  border:2px dashed #c62828;
  border-radius:3px;
  box-sizing:border-box;
  color:#8f1d18;
  font-size:12px;
  font-weight:700;
  line-height:1.15;
  padding:3px 4px;
  overflow:hidden;
}


/* v1.43: custom need selection must stay above timegrid events */
.psm-need-drag-preview{
  z-index:20 !important;
}


/* Need modal actions */
#psm-modal-need .psm-modal-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}


/* v1.45 - need hover / selection colors */
.psm-need-hover-cell{
  position:absolute;
  left:1px;
  right:1px;
  z-index:18;
  pointer-events:none;
  background:rgb(70, 140, 92);
  opacity:.92;
  border-radius:2px;
}

.psm-need-drag-preview{
  background:transparent !important;
  border:0 !important;
  outline:0 !important;
  overflow:hidden;
}

.psm-need-drag-current,
.psm-need-drag-rest{
  position:absolute;
  left:0;
  right:0;
  pointer-events:none;
}

.psm-need-drag-current{
  top:0;
  background:rgb(70, 140, 92);
}

.psm-need-drag-rest{
  background:rgb(196, 224, 204);
  border:2px dashed rgb(70, 140, 92);
  border-top:0;
  box-sizing:border-box;
}

.psm-need-drag-label{
  position:relative;
  z-index:2;
  display:inline-block;
  margin:3px 4px;
  padding:1px 4px;
  border-radius:3px;
  background:rgba(255,255,255,.88);
  color:rgb(38, 92, 55);
  font-weight:700;
  font-size:12px;
  line-height:1.15;
}


/* v1.46 - clearer need selection */
.psm-need-drag-preview{
  background:rgb(196, 224, 204) !important;
  border:2px dashed rgb(70, 140, 92) !important;
  outline:0 !important;
  box-sizing:border-box;
  overflow:hidden;
}

.psm-need-drag-current{
  top:0;
  background:rgb(70, 140, 92) !important;
  border:0 !important;
}

.psm-need-drag-rest{
  display:none !important;
}

.psm-need-drag-label{
  position:relative;
  z-index:3;
}

/* Desktop affordance: clickable planning items */
@media (hover:hover) and (pointer:fine){
  #psm-calendar-care .fc-event,
  #psm-calendar-mediation .fc-event,
  #psm-calendar-presence .fc-event{
    cursor:pointer !important;
  }

  #psm-calendar-care .fc-event.psm-care-red,
  #psm-calendar-care .fc-event[class*="psm-care-"],
  #psm-calendar-care .fc-event[id^="need-"]{
    cursor:pointer !important;
  }
}


/* v1.47 - uniform dark-green need selection */
.psm-need-drag-preview{
  background:rgb(70, 140, 92) !important;
  border:2px solid rgb(70, 140, 92) !important;
  outline:0 !important;
  box-sizing:border-box;
}

.psm-need-drag-current,
.psm-need-drag-rest{
  display:none !important;
}

.psm-need-drag-label{
  background:rgba(255,255,255,.92) !important;
  color:rgb(38, 92, 55) !important;
}

/* Past cells are not interactive for need creation */
#psm-calendar-care .fc-timegrid-col.fc-day-past{
  cursor:default;
}


/* v1.48 - 2 h hover preview before creating a need */
.psm-need-hover-cell{display:none !important;}
.psm-need-hover-preview{
  position:absolute;
  left:1px;
  right:1px;
  z-index:18;
  pointer-events:none;
  background:rgb(196, 224, 204) !important;
  border:1px solid rgba(70,140,92,.45);
  border-radius:2px;
  box-sizing:border-box;
  overflow:hidden;
}
.psm-need-hover-active{
  position:absolute;
  top:0;
  left:0;
  right:0;
  background:rgb(70, 140, 92) !important;
  pointer-events:none;
}

/* A real plus cursor on a free area where a need can be created */
@media (hover:hover) and (pointer:fine){
  #psm-calendar-care.psm-can-create-need,
  #psm-calendar-care.psm-can-create-need .fc-timegrid-col,
  #psm-calendar-care.psm-can-create-need .fc-timegrid-slot{
    cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='white' fill-opacity='.92'/%3E%3Cpath d='M12 6v12M6 12h12' stroke='%23468c5c' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E") 12 12, crosshair !important;
  }
}


/* v1.49 - custom care card content */
.psm-event-card{
  display:flex;
  flex-direction:column;
  gap:2px;
  width:100%;
}
.psm-event-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:8px;
  width:100%;
  font-weight:700;
}
.psm-event-range{
  flex:1 1 auto;
  min-width:0;
  white-space:nowrap;
}
.psm-event-capacity{
  flex:0 0 auto;
  white-space:nowrap;
  text-align:right;
}
.psm-event-participants{
  line-height:1.08;
  word-break:break-word;
}
.fc .fc-timegrid-event .psm-event-card{
  font-size:inherit;
}
.fc-event.psm-care-green-light .psm-event-head,
.fc-event.psm-care-green-light .psm-event-participants{
  color:#183b1e !important;
}


/* v1.50 - stronger 2h hover preview */
.psm-need-hover-preview{
  background:rgb(170, 211, 182) !important;
  border:2px solid rgb(70, 140, 92) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.28) !important;
  opacity:1 !important;
}

.psm-need-hover-active{
  background:rgb(70, 140, 92) !important;
  opacity:1 !important;
  border-bottom:1px solid rgb(48, 112, 68) !important;
}


/* v1.51 - mediation creation hover */
.psm-mediation-hover-cell{
  position:absolute;
  left:1px;
  right:1px;
  z-index:18;
  pointer-events:none;
  background:rgb(48, 118, 184);
  border:1px solid rgb(35, 91, 145);
  border-radius:2px;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:20px;
  font-weight:700;
  line-height:1;
  opacity:.92;
}

@media (hover:hover) and (pointer:fine){
  #psm-calendar-mediation.psm-can-create-mediation{
    cursor:crosshair;
  }
}


/* v1.52 - mediation event content */
.psm-event-card-mediation .psm-event-participants{
  font-weight:600;
  line-height:1.08;
}


/* v1.53 - normal pointer on mediation creation zones */
@media (hover:hover) and (pointer:fine){
  #psm-calendar-mediation.psm-can-create-mediation{
    cursor:pointer !important;
  }
}


/* v1.56 - force white text on grey/red action buttons */
.psm-btn.secondary,
.psm-btn.secondary:hover,
.psm-btn.secondary:focus,
.psm-btn.danger,
.psm-btn.danger:hover,
.psm-btn.danger:focus,
button.psm-btn.secondary,
button.psm-btn.danger,
a.psm-btn.secondary,
a.psm-btn.danger{
  color:#fff !important;
}

.psm-btn.secondary *,
.psm-btn.danger *{
  color:#fff !important;
}


/* v1.57 - care suggestions after local mediation creation */
.psm-med-care-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:14px;
}

.psm-med-care-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border:1px solid #ddd;
  border-radius:8px;
  background:#f8f8f8;
}

.psm-med-care-item.is-registered{
  background:#edf7ee;
  border-color:#91c691;
}

.psm-med-care-info{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}

.psm-med-care-info strong{
  font-size:15px;
}

.psm-med-care-info span{
  font-size:13px;
  color:#666;
}

.psm-med-care-register{
  flex:0 0 auto;
}

@media(max-width:700px){
  .psm-med-care-dialog{
    width:calc(100% - 12px) !important;
  }

  .psm-med-care-item{
    align-items:stretch;
    flex-direction:column;
    gap:8px;
  }

  .psm-med-care-register{
    width:100%;
  }
}


/* v1.58 - grey/red buttons: white by default, dark green when theme makes hover white */
.psm-btn.secondary,
.psm-btn.danger{
  color:#fff !important;
}

.psm-btn.secondary:hover,
.psm-btn.secondary:focus,
.psm-btn.danger:hover,
.psm-btn.danger:focus{
  color:#265c37 !important;
}

.psm-btn.secondary:hover *,
.psm-btn.secondary:focus *,
.psm-btn.danger:hover *,
.psm-btn.danger:focus *{
  color:#265c37 !important;
}


/* v1.59 - restore text inside need events */
.psm-event-card-need{
  color:#fff;
}

.psm-event-card-need .psm-event-range,
.psm-event-card-need .psm-need-hours-label{
  color:#fff !important;
}

.psm-event-card-need .psm-need-hours-label{
  font-weight:600;
  line-height:1.15;
  margin-top:2px;
}


/* v1.60 - compact typography in global presence calendar */
#psm-calendar-presence .fc-event,
#psm-calendar-presence .fc-event *,
#psm-calendar-presence .psm-event-card,
#psm-calendar-presence .psm-event-card *{
  font-size:12px !important;
}


/* v1.62 - keep calendar responsive while data refreshes */
.psm-planning .fc,
#psm-calendar-care,
#psm-calendar-mediation,
#psm-calendar-presence{
  transition:opacity .12s ease;
}


/* v1.63 - white text on dark events in month view */
.fc-dayGridMonth-view .psm-care-green-full,
.fc-dayGridMonth-view .psm-care-green-full *,
.fc-dayGridMonth-view .psm-med-local,
.fc-dayGridMonth-view .psm-med-local *,
.fc-dayGridMonth-view .psm-med-away,
.fc-dayGridMonth-view .psm-med-away *{
  color:#fff !important;
}
