/* CHANGE-007: one visual contract for semantic selects and OneSchool date controls. */
:root{
  --ui-control-height:44px;
  --ui-control-radius:9px;
  --ui-control-border:#cbdcd4;
  --ui-control-bg:#fff;
  --ui-control-text:#173e42;
  --ui-control-muted:#667b72;
  --ui-control-focus:#3b7c65;
  --ui-control-focus-ring:rgba(36,95,80,.16);
  --ui-control-disabled-bg:#f1f5f3;
  --ui-control-error:#b54242;
}

select:not([multiple]):not([size]){
  min-height:var(--ui-control-height);
  padding-block:9px;
  padding-inline:12px 40px;
  border:1px solid var(--ui-control-border);
  border-radius:var(--ui-control-radius);
  color:var(--ui-control-text);
  background-color:var(--ui-control-bg);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2329584b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 12px center;
  background-size:16px 16px;
  appearance:none;
  -webkit-appearance:none;
  font:inherit;
  line-height:1.45;
  transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease;
}
select:not([multiple]):not([size]):hover:not(:disabled){border-color:#8eafa0}
select:not([multiple]):not([size]):focus-visible{border-color:var(--ui-control-focus);outline:3px solid var(--ui-control-focus-ring);outline-offset:1px}
select:not([multiple]):not([size]):disabled{cursor:not-allowed;color:var(--ui-control-muted);background-color:var(--ui-control-disabled-bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2380938b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E")}
select:not([multiple]):not([size])[aria-invalid=true]{border-color:var(--ui-control-error);box-shadow:0 0 0 3px rgba(181,66,66,.12)}

.rich-editor__toolbar select:not([multiple]):not([size]),
.generic-page-builder select:not([multiple]):not([size]){
  --ui-control-height:2.25rem;
  --ui-control-radius:7px;
  background-position:right 8px center;
  background-size:14px 14px;
  padding-inline-end:29px;
}

.ui-calendar-control{position:relative;display:grid;gap:5px;width:100%;min-width:0}
.ui-calendar-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-width:0;min-height:var(--ui-control-height);padding:9px 11px 9px 12px;border:1px solid var(--ui-control-border);border-radius:var(--ui-control-radius);color:var(--ui-control-text);background:var(--ui-control-bg);font:inherit;font-weight:400;line-height:1.45;text-align:left;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}
.ui-calendar-trigger:hover:not(:disabled):not([aria-readonly=true]){border-color:#8eafa0}
.ui-calendar-trigger:focus-visible{border-color:var(--ui-control-focus);outline:3px solid var(--ui-control-focus-ring);outline-offset:1px}
.ui-calendar-trigger:disabled,.ui-calendar-trigger[aria-readonly=true]{color:var(--ui-control-muted);background:var(--ui-control-disabled-bg)}
.ui-calendar-trigger[aria-readonly=true]{cursor:default}
.ui-calendar-trigger[aria-invalid=true]{border-color:var(--ui-control-error);box-shadow:0 0 0 3px rgba(181,66,66,.12)}
.ui-calendar-trigger__value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ui-calendar-trigger__value.is-placeholder{color:#81928b}
.ui-calendar-trigger svg{flex:none;width:18px;height:18px;fill:none;stroke:#29584b;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ui-calendar-trigger:disabled svg,.ui-calendar-trigger[aria-readonly=true] svg{stroke:#80938b}

.ui-calendar-dialog{width:min(390px,calc(100vw - 24px));max-width:none;margin:auto;padding:0;border:1px solid #bfd1c8;border-radius:16px;color:#173e42;background:#fff;box-shadow:0 22px 65px rgba(17,52,43,.24);font:14px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif;overflow:hidden}
.ui-calendar-dialog::backdrop{background:rgba(8,28,23,.44);backdrop-filter:blur(2px)}
.ui-calendar-dialog[open]{display:grid}
.ui-calendar-dialog__header{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;gap:8px;align-items:center;padding:14px 14px 10px;border-bottom:1px solid #e1e9e5;background:#f8fbf9}
.ui-calendar-dialog__heading{display:flex;justify-content:center;gap:7px;min-width:0}
.ui-calendar-dialog__heading select{--ui-control-height:38px;min-height:38px;width:auto;min-width:0;padding-block:6px;font-size:13px}
.ui-calendar-icon-button{display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid #d0ded7;border-radius:10px;color:#285b4c;background:#fff;font:700 22px/1 inherit;cursor:pointer}
.ui-calendar-icon-button:hover{background:#eaf3ee}
.ui-calendar-icon-button:focus-visible,.ui-calendar-dialog button:focus-visible,.ui-calendar-dialog select:focus-visible{outline:3px solid rgba(36,95,80,.23);outline-offset:2px}
.ui-calendar-dialog__body{padding:14px}
.ui-calendar-weekdays,.ui-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.ui-calendar-weekdays{margin-bottom:6px;color:#6a7e75;font-size:11px;font-weight:700;text-align:center}
.ui-calendar-weekdays span{padding:4px 0}
.ui-calendar-day{display:grid;place-items:center;aspect-ratio:1;min-width:0;padding:0;border:1px solid transparent;border-radius:9px;color:#214c40;background:transparent;font:600 13px/1 inherit;cursor:pointer}
.ui-calendar-day:hover:not(:disabled){border-color:#8eb5a3;background:#edf5f1}
.ui-calendar-day--outside:not(.is-selected){color:#8b9b94;font-weight:400}
.ui-calendar-day.is-today{border-color:#8eb5a3}
.ui-calendar-day.is-selected{border-color:#24634f;background:#24634f;color:#fff}
.ui-calendar-day:disabled{color:#aab7b1;background:transparent;cursor:not-allowed;text-decoration:line-through}
.ui-calendar-day--blank{aspect-ratio:1}
.ui-calendar-time{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px;padding-top:13px;border-top:1px solid #e1e9e5}
.ui-calendar-time label{display:grid;gap:5px;color:#566e64;font-size:11px;font-weight:700}
.ui-calendar-time select{--ui-control-height:40px;min-height:40px}
.ui-calendar-dialog__status{min-height:20px;margin:10px 0 0;color:#60756c;font-size:11px;text-align:center}
.ui-calendar-dialog__footer{display:flex;align-items:center;gap:8px;padding:12px 14px;border-top:1px solid #e1e9e5;background:#f8fbf9}
.ui-calendar-dialog__footer button{min-height:38px;padding:8px 12px;border:1px solid #c9dad2;border-radius:9px;color:#245748;background:#fff;font:700 12px/1.2 inherit;cursor:pointer}
.ui-calendar-dialog__footer button:hover:not(:disabled){background:#eaf3ee}
.ui-calendar-dialog__footer button:disabled{cursor:not-allowed;opacity:.48}
.ui-calendar-dialog__footer .ui-calendar-apply{margin-left:auto;border-color:#24634f;color:#fff;background:#24634f}
.ui-calendar-dialog__footer .ui-calendar-apply:hover{background:#194c3e}
.ui-calendar-error{margin:5px 0 0;color:var(--ui-control-error);font-size:11px;line-height:1.45}
.ui-calendar-error:empty{display:none}

@media(max-width:520px){
  .ui-calendar-dialog{width:calc(100vw - 16px)}
  .ui-calendar-dialog__header{padding-inline:10px}
  .ui-calendar-dialog__body{padding:12px 10px}
  .ui-calendar-dialog__footer{padding-inline:10px;flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){select:not([multiple]):not([size]),.ui-calendar-trigger{transition:none}}
@media(forced-colors:active){select:not([multiple]):not([size]){appearance:auto;background-image:none;padding-inline-end:12px}.ui-calendar-day.is-selected{forced-color-adjust:none}}
@media print{.ui-calendar-dialog{display:none!important}}
