.s360-ui-card{
  background:var(--s360-color-surface-raised);
  border:1px solid var(--s360-color-border);
  border-radius:var(--s360-radius-2xl);
  box-shadow:var(--s360-shadow-lg);
  padding:var(--s360-component-card-padding);
  margin-bottom:var(--s360-space-md, 16px);
}
.s360-ui-card__header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s360-layout-grid-gap);margin-bottom:var(--s360-component-card-header-gap)}
.s360-ui-card__heading{min-width:0;display:flex;flex-direction:column;gap:4px}
.s360-ui-card__title{margin:0;font-size:18px;line-height:1.3}
.s360-ui-card__meta{font-size:13px;color:var(--s360-color-text-tertiary)}
.s360-ui-card__toolbar{display:flex;align-items:center;justify-content:flex-end;gap:var(--s360-component-toolbar-gap);flex-wrap:wrap}
.s360-ui-card__body{display:flex;flex-direction:column;gap:var(--s360-component-card-body-gap)}
.s360-ui-card__footer{margin-top:var(--s360-component-card-footer-gap);padding-top:var(--s360-component-card-footer-padding-top);border-top:1px solid var(--s360-color-border-muted)}

.s360-ui-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--s360-component-button-gap);padding:var(--s360-component-button-padding-y) var(--s360-component-button-padding-x);border-radius:var(--s360-radius-lg);font-size:var(--s360-font-size-sm,13px);font-weight:600;line-height:1.2;text-decoration:none;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease}
.s360-ui-button--primary{background:var(--s360-color-primary-strong);border:1px solid var(--s360-color-primary-strong);color:var(--s360-color-surface-raised)}
.s360-ui-button--secondary{background:var(--s360-color-surface-raised);border:1px solid var(--s360-color-border-strong);color:var(--s360-color-text-heading)}
.s360-ui-button--tertiary{background:transparent;border:1px dashed var(--s360-color-border-strong);color:var(--s360-color-text-secondary)}
.s360-ui-button:hover{transform:translateY(-1px);box-shadow:var(--s360-component-button-shadow-hover)}
.s360-ui-button:focus-visible{outline:none;box-shadow:var(--s360-component-button-shadow-focus)}
.s360-ui-button[aria-disabled="true"],.s360-ui-button:disabled{opacity:.65;cursor:not-allowed;transform:none;box-shadow:none}
.s360-ui-button__label{line-height:1.2}
.s360-ui-button--secondary:hover{background:var(--s360-color-bg-subtle);border-color:var(--s360-color-border);color:var(--s360-color-text-heading)}
.s360-ui-button--tertiary:hover{background:var(--s360-color-warning-bg);border-color:var(--s360-color-border-warning-strong);color:var(--s360-color-warning-strong)}
.s360-ui-button--ghost:hover{background:var(--s360-color-bg-subtle);border-color:var(--s360-color-border-muted);color:var(--s360-color-text-heading)}
.s360-ui-button--danger:hover{background:var(--s360-color-danger-bg);border-color:var(--s360-color-border-danger-strong);color:var(--s360-color-danger-ink)}

.s360-ui-badge{display:inline-flex;align-items:center;gap:6px;padding:var(--s360-component-badge-padding-y) var(--s360-component-badge-padding-x);border-radius:var(--s360-component-pill-radius);font-size:12px;font-weight:700;letter-spacing:.01em;text-transform:none}
.s360-ui-badge--draft{background:var(--s360-color-border-subtle);color:var(--s360-color-text-body)}
.s360-ui-badge--submitted{background:var(--s360-color-border-accent-soft);color:var(--s360-color-info-strong)}
.s360-ui-badge--pending{background:var(--s360-color-warning-tint);color:var(--s360-color-warning-strong)}
.s360-ui-badge--approved{background:var(--s360-color-success-tint);color:var(--s360-color-success-strong)}
.s360-ui-badge--rejected{background:var(--s360-color-danger-tint);color:var(--s360-color-danger-ink)}

.s360-ui-alert{border-radius:var(--s360-radius-xl);padding:var(--s360-component-alert-padding-y) var(--s360-component-alert-padding-x);margin-bottom:var(--s360-component-card-header-gap);border:1px solid transparent}
.s360-ui-alert__title{font-weight:700;margin-bottom:4px}
.s360-ui-alert--info{background:var(--s360-color-info-bg);border-color:var(--s360-color-border-info);color:var(--s360-color-info-strong)}
.s360-ui-alert--success{background:var(--s360-color-success-bg);border-color:var(--s360-color-border-success);color:var(--s360-color-success-strong)}
.s360-ui-alert--warning{background:var(--s360-color-warning-bg);border-color:var(--s360-color-border-warning);color:var(--s360-color-warning-strong)}
.s360-ui-alert--error{background:var(--s360-color-danger-bg);border-color:var(--s360-color-border-danger);color:var(--s360-color-danger-ink)}

.s360-ui-empty-state{padding:var(--s360-component-empty-state-padding);border:1px dashed var(--s360-color-border-strong);border-radius:var(--s360-radius-xl);background:var(--s360-color-bg-subtle);color:var(--s360-color-text-secondary)}
.s360-ui-empty-state__message{font-weight:600;margin-bottom:4px}
.s360-ui-empty-state__hint{font-size:13px;color:var(--s360-color-text-tertiary)}

.s360-ui-field-row{display:flex;flex-direction:column;gap:4px;padding:10px 0;border-bottom:1px solid var(--s360-color-border-divider)}
.s360-ui-field-row:last-child{border-bottom:0;padding-bottom:0}
.s360-ui-field-row__label{font-size:12px;font-weight:700;color:var(--s360-color-text-tertiary);text-transform:uppercase;letter-spacing:.04em}
.s360-ui-field-row__value{font-size:14px;font-weight:600;color:var(--s360-color-text-heading)}
.s360-ui-field-row__helper{font-size:12px;color:var(--s360-color-text-tertiary)}
.s360-ui-field-row__placeholder{color:var(--s360-color-text-placeholder);font-weight:500}

.s360-ui-form{display:grid;gap:var(--s360-form-section-gap)}
.s360-ui-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s360-form-row-gap)}
.s360-ui-form-grid--single{grid-template-columns:1fr}
.s360-ui-form-grid--sidebar{grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr)}
.s360-ui-form-row{display:grid;gap:var(--s360-form-row-gap)}
.s360-ui-form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s360-form-actions-gap);padding-top:var(--s360-space-xs)}
.s360-ui-form-actions--end{justify-content:flex-end}
.s360-ui-form-actions--split{justify-content:space-between}
.s360-ui-form-field{display:flex;flex-direction:column;gap:var(--s360-form-field-gap);min-width:0}
.s360-ui-form-field > label,.s360-ui-form-label{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--s360-color-form-label)}
.s360-ui-form-field__meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.s360-ui-form-help,.s360-ui-form-field .description,.s360-ui-form-field__help{font-size:12px;line-height:1.5;color:var(--s360-color-form-help)}
.s360-ui-form-error,.s360-ui-form-field__error{font-size:12px;line-height:1.5;color:var(--s360-color-form-error)}
.s360-ui-form input[type="text"],.s360-ui-form input[type="email"],.s360-ui-form input[type="number"],.s360-ui-form input[type="password"],.s360-ui-form input[type="search"],.s360-ui-form input[type="date"],.s360-ui-form input[type="time"],.s360-ui-form input[type="url"],.s360-ui-form input[type="tel"],.s360-ui-form select,.s360-ui-form textarea,.s360-student-switcher-form select,.s360-ui-table-toolbar__search input{width:100%;max-width:100%;min-width:0;min-height:var(--s360-control-height-md);padding:var(--s360-control-padding-y) var(--s360-control-padding-x);border:var(--s360-control-border-width) solid var(--s360-color-input-border);border-radius:var(--s360-control-radius);background:var(--s360-color-input-bg);color:var(--s360-color-input-text);box-shadow:var(--s360-shadow-input);transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease,color .15s ease}
.s360-ui-form textarea{min-height:120px;resize:vertical}
.s360-ui-form select,.s360-student-switcher-form select{padding-right:36px}
.s360-ui-form input::placeholder,.s360-ui-form textarea::placeholder,.s360-ui-table-toolbar__search input::placeholder{color:var(--s360-color-input-placeholder)}
.s360-ui-form input:hover,.s360-ui-form select:hover,.s360-ui-form textarea:hover,.s360-student-switcher-form select:hover,.s360-ui-table-toolbar__search input:hover{border-color:var(--s360-color-input-border-hover)}
.s360-ui-form input:focus,.s360-ui-form select:focus,.s360-ui-form textarea:focus,.s360-student-switcher-form select:focus,.s360-ui-table-toolbar__search input:focus{outline:none;border-color:var(--s360-color-input-border-focus);box-shadow:var(--s360-shadow-input-focus)}
.s360-ui-form input:disabled,.s360-ui-form select:disabled,.s360-ui-form textarea:disabled,.s360-ui-form input[readonly],.s360-ui-form textarea[readonly]{background:var(--s360-color-input-disabled-bg);border-color:var(--s360-color-input-disabled-border);color:var(--s360-color-input-disabled-text);cursor:not-allowed;box-shadow:none}
.s360-ui-form input[type="checkbox"],.s360-ui-form input[type="radio"]{width:auto;min-height:auto;padding:0;border:0;box-shadow:none;accent-color:var(--s360-color-primary-strong)}
.s360-ui-form-check{display:flex;align-items:flex-start;gap:10px;color:var(--s360-color-text-body)}
.s360-ui-form-check label{font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--s360-color-text-body)}
.s360-ui-form-read{display:grid;gap:var(--s360-form-row-gap)}
.s360-ui-form-read__value{min-height:var(--s360-control-height-md);display:flex;align-items:center;padding:var(--s360-control-padding-y) var(--s360-control-padding-x);border:1px solid var(--s360-color-form-read-border);border-radius:var(--s360-control-radius);background:var(--s360-color-form-read-bg);color:var(--s360-color-text-heading);font-weight:600}
.s360-ui-form-read__value--multiline{min-height:calc(var(--s360-control-height-lg) + 12px);align-items:flex-start}
.s360-ui-form-field.is-invalid input,.s360-ui-form-field.is-invalid select,.s360-ui-form-field.is-invalid textarea,.s360-ui-form input.is-invalid,.s360-ui-form select.is-invalid,.s360-ui-form textarea.is-invalid{border-color:var(--s360-color-form-error-border);background:var(--s360-color-form-error-bg)}

.s360-ui-student-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.s360-ui-student-header__identity{display:flex;gap:16px;align-items:flex-start;min-width:0}
.s360-ui-student-header__avatar img{width:60px;height:60px;border-radius:var(--s360-radius-3xl);object-fit:cover;border:1px solid var(--s360-color-border-soft-alt);background:var(--s360-color-bg-subtle)}
.s360-ui-student-header__name{margin:0 0 4px;font-size:24px;line-height:1.2}
.s360-ui-student-header__subtitle{font-size:14px;color:var(--s360-color-text-tertiary)}
.s360-ui-student-header__flags{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.s360-ui-chip{display:inline-flex;align-items:center;padding:var(--s360-component-chip-padding-y) var(--s360-component-chip-padding-x);border-radius:var(--s360-component-pill-radius);background:var(--s360-color-primary-soft);color:var(--s360-color-primary-chip);font-size:12px;font-weight:600}
.s360-ui-student-header__aside{display:flex;flex-direction:column;gap:10px;align-items:flex-end;min-width:220px}
.s360-ui-student-header__meta{display:grid;gap:8px;min-width:220px}
.s360-ui-student-header__meta-item{display:flex;justify-content:space-between;gap:10px;font-size:13px}
.s360-ui-student-header__meta-label{color:var(--s360-color-text-tertiary)}
.s360-ui-student-header__meta-value{font-weight:700;color:var(--s360-color-text-heading);text-align:right}
.s360-ui-student-header__actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}

@media (max-width: 900px){
  .s360-ui-card__header,.s360-ui-student-header{flex-direction:column;align-items:stretch}
  .s360-ui-card__toolbar,.s360-ui-student-header__aside,.s360-ui-student-header__actions{justify-content:flex-start;align-items:flex-start}
  .s360-ui-student-header__aside,.s360-ui-student-header__meta{min-width:0}
}

.s360-parent-profile-shell{background:linear-gradient(180deg,var(--s360-color-bg-soft) 0%,var(--s360-color-surface-raised) 18%,var(--s360-color-surface-raised) 100%)}
.s360-ui-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}
.s360-ui-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.s360-ui-stat-item{border:var(--s360-statcard-border-width,1px) solid var(--s360-card-stat-border-color,var(--s360-statcard-border-color,var(--s360-color-border-muted)));border-radius:var(--s360-card-stat-radius,var(--s360-statcard-radius,var(--s360-radius-xl)));padding:var(--s360-card-stat-padding,var(--s360-statcard-padding,var(--s360-component-stat-padding)));background:var(--s360-card-stat-bg,var(--s360-statcard-bg,var(--s360-color-bg-subtle)));box-shadow:var(--s360-card-stat-shadow,var(--s360-statcard-shadow,none));min-height:var(--s360-card-stat-min-height,var(--s360-statcard-min-height,76px))}
.s360-ui-stat-item__value{font-size:var(--s360-card-stat-value-size,var(--s360-statcard-value-size,24px));line-height:1;font-weight:var(--s360-statcard-value-weight,800);color:var(--s360-color-text-heading)}
.s360-ui-stat-item__label{font-size:var(--s360-statcard-label-size,var(--s360-font-size-xs,12px));font-weight:var(--s360-statcard-label-weight,700);color:var(--s360-color-text-label);margin-top:var(--s360-card-stat-gap,var(--s360-statcard-gap,8px));line-height:var(--s360-statcard-line-height,1.2)}
.s360-ui-stat-item__helper{font-size:var(--s360-statcard-meta-size,var(--s360-font-size-xs,12px));color:var(--s360-color-text-tertiary);margin-top:var(--s360-space-2xs,4px);line-height:1.45}
.s360-ui-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.s360-ui-copy{margin:0;color:var(--s360-color-text-secondary);line-height:1.5}
.s360-ui-section-card .s360-ui-button{white-space:nowrap}

@media (max-width: 1024px){
  .s360-ui-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 900px){
  .s360-ui-overview-grid,.s360-ui-action-grid,.s360-ui-stat-grid{grid-template-columns:1fr}
}


.s360-ui-workflow-callout {
    border: 1px solid var(--s360-color-border-subtle);
    border-radius: 10px;
    padding: var(--s360-component-workflow-padding-y) var(--s360-component-workflow-padding-x);
    margin-bottom: 16px;
    background: var(--s360-color-surface-raised);
}

.s360-ui-workflow-callout__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.s360-ui-workflow-callout__title {
    font-size: 14px;
}

.s360-ui-workflow-callout__message {
    color: var(--s360-color-text-body);
    margin-bottom: 8px;
}

.s360-ui-workflow-callout__meta {
    margin: 0;
    padding-left: 18px;
    color: var(--s360-color-text-quaternary);
}

.s360-ui-workflow-callout--pending,
.s360-ui-workflow-callout--warning {
    background: var(--s360-color-warning-bg);
    border-color: var(--s360-color-border-warning-strong);
}

.s360-ui-workflow-callout--approved,
.s360-ui-workflow-callout--success {
    background: var(--s360-color-success-surface);
    border-color: var(--s360-color-border-success-strong);
}

.s360-ui-workflow-callout--rejected,
.s360-ui-workflow-callout--error {
    background: var(--s360-color-danger-bg);
    border-color: var(--s360-color-border-danger-strong);
}

.s360-ui-workflow-callout--submitted,
.s360-ui-workflow-callout--info {
    background: var(--s360-color-info-bg);
    border-color: var(--s360-color-border-accent);
}

.s360-ui-field-group {
    display: grid;
    gap: 10px;
}

.s360-ui-field-group--two-col {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}


.s360-ui-inline-admin-notice {
  border: 0;
  background: transparent;
  box-shadow: none;
  padding: 0;
}

.s360-ui-inline-admin-notice .s360-ui-alert {
  margin: 8px 0 10px;
}

.s360-admin-workspace-callout {
  margin-top: 14px;
}

.s360-ui-workflow-callout__meta li {
  margin-bottom: 6px;
}

.s360-ui-workflow-callout__meta li:last-child {
  margin-bottom: 0;
}


.s360-ui-button--danger{background:var(--s360-color-surface-raised);border:1px solid var(--s360-color-border-danger);color:var(--s360-color-danger-strong)}
.s360-ui-button--ghost{background:transparent;border:1px solid transparent;color:var(--s360-color-text-label)}
.s360-ui-button__icon{font-size:14px;line-height:1}

.s360-ui-page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s360-layout-grid-gap-lg);margin:0 0 var(--s360-layout-grid-gap-lg);padding:var(--s360-space-2xs) 0 2px}
.s360-ui-page-header__main{min-width:0;display:flex;flex-direction:column;gap:6px}
.s360-ui-page-header__eyebrow{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--s360-color-text-tertiary)}
.s360-ui-page-header__title{margin:0;font-size:var(--s360-font-size-heading-xl,28px);line-height:1.15;color:var(--s360-color-text-heading)}
.s360-ui-page-header__description{margin:0;color:var(--s360-color-text-secondary);max-width:72ch;line-height:1.6}
.s360-ui-page-header__meta{display:flex;flex-wrap:wrap;gap:8px 10px}
.s360-ui-page-header__meta-item{display:inline-flex;align-items:center;padding:var(--s360-component-badge-padding-y) var(--s360-component-badge-padding-x);border-radius:var(--s360-component-pill-radius);background:var(--s360-color-bg-subtle);border:1px solid var(--s360-color-border-muted);color:var(--s360-color-text-secondary);font-size:12px;font-weight:600}
.s360-ui-page-header__actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}

.s360-ui-action-bar{display:flex;justify-content:space-between;align-items:center;gap:var(--s360-layout-grid-gap);padding:var(--s360-layout-density-comfy) var(--s360-space-md);margin:0 0 var(--s360-layout-grid-gap);background:var(--s360-color-surface-raised);border:1px solid var(--s360-color-border-muted);border-radius:var(--s360-radius-2xl);box-shadow:var(--s360-shadow-soft)}
.s360-ui-action-bar__main{display:flex;flex-direction:column;gap:4px;min-width:0}
.s360-ui-action-bar__title{font-size:15px;font-weight:800;color:var(--s360-color-text-heading)}
.s360-ui-action-bar__description{font-size:13px;color:var(--s360-color-text-tertiary)}
.s360-ui-action-bar__actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}

.s360-ui-tabs{margin:0 0 var(--s360-layout-grid-gap)}
.s360-ui-tabs__nav{display:flex;flex-wrap:wrap;gap:8px;padding:4px;border:1px solid var(--s360-color-border-muted);border-radius:var(--s360-radius-2xl);background:linear-gradient(180deg,var(--s360-color-bg-subtle) 0%,var(--s360-color-surface-raised) 100%)}
.s360-ui-tabs__tab{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px;border:0;border-radius:var(--s360-radius-lg);background:transparent;color:var(--s360-color-text-secondary);font-size:13px;font-weight:700;cursor:pointer;transition:all .15s ease}
.s360-ui-tabs__tab:hover{background:var(--s360-color-primary-soft);color:var(--s360-color-primary-hover-strong)}
.s360-ui-tabs__tab.is-active{background:var(--s360-color-surface-raised);color:var(--s360-color-text-heading);box-shadow:var(--s360-shadow-floating)}
.s360-ui-tab-panel[hidden]{display:none}

.s360-ui-shell{display:flex;flex-direction:column;gap:var(--s360-layout-page-gap)}
.s360-ui-grid{display:grid;gap:var(--s360-layout-grid-gap)}
.s360-ui-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.s360-ui-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.s360-ui-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}

@media (max-width: 1024px){
  .s360-ui-grid--4,.s360-ui-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 900px){
  .s360-ui-page-header,.s360-ui-action-bar{flex-direction:column;align-items:stretch}
  .s360-ui-page-header__actions,.s360-ui-action-bar__actions{justify-content:flex-start}
  .s360-ui-grid--4,.s360-ui-grid--3,.s360-ui-grid--2,.s360-ui-form-grid,.s360-ui-form-grid--sidebar{grid-template-columns:1fr}
}

.s360-student-workspace{gap:var(--s360-layout-page-gap)}
.s360-student-workspace__tabs{padding:var(--s360-layout-grid-gap-lg)}
.s360-student-workspace__panels{margin-top:var(--s360-layout-grid-gap)}
.s360-student-workspace__panels > .s360-student-panel{display:flex;flex-direction:column;gap:var(--s360-layout-panel-gap)}
.s360-student-switcher-panel .s360-inline-form,
.s360-student-switcher-form{display:flex;flex-wrap:wrap;align-items:end;gap:12px}
.s360-student-switcher-form label{display:flex;flex-direction:column;gap:var(--s360-form-field-gap);font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--s360-color-form-label);min-width:120px}
.s360-student-switcher-form select{min-width:320px}
.s360-student-switcher-form .button,
.s360-student-switcher-form .s360-ui-button{margin:0}
.s360-student-workspace__actionbar,.s360-admin-profile-actionbar{margin-top:-4px;margin-bottom:0;padding-bottom:var(--s360-space-xs);border-bottom:1px solid var(--s360-profile-panel-divider)}
.s360-student-workspace--self .s360-ui-page-header__description,
.s360-student-workspace--parent .s360-ui-page-header__description{max-width:80ch}
.s360-student-workspace .s360-two-col.s360-grid-sidebar-main{align-items:start}

@media (max-width: 900px){
  .s360-student-switcher-form select{min-width:0;width:100%}
}

.s360-admin-dashboard{padding-bottom:var(--s360-space-lg)}
.s360-admin-dashboard__header{margin-bottom:var(--s360-space-sm)}
.s360-admin-dashboard__actionbar{margin-bottom:var(--s360-layout-grid-gap-lg)}
.s360-admin-dashboard__main{align-items:start}

.s360-ui-page-header,
.s360-ui-action-bar,
.s360-ui-tabs,
.s360-student-workspace__panels,
.s360-admin-dashboard__header,
.s360-admin-dashboard__actionbar,
.s360-admin-kpi-grid,
.s360-admissions-page-header,
.s360-admissions-detail-header,
.s360-admissions-tabs,
.s360-admissions-detail-tabs,
.s360-admissions-action-bar,
.s360-custom-fields-header,
.s360-custom-fields-actionbar,
.s360-custom-fields-tabs {
  width: 100%;
  max-width: var(--s360-layout-content-max);
}


.s360-admin-kpi-grid{margin-bottom:var(--s360-layout-grid-gap-lg)}

.s360-ui-card__title{margin:0;font-size:18px;line-height:1.25;color:var(--s360-color-text-heading)}
.s360-ui-card__subtitle{margin:var(--s360-space-2xs, 4px) 0 0;color:var(--s360-color-text-secondary);font-size:13px;line-height:1.55}
.s360-ui-dashboard-panel{height:100%}
.s360-admin-panel--span-2{grid-column:span 2}
.s360-admin-panel--span-3{grid-column:span 3}
.s360-admin-panel__footer{display:flex;flex-wrap:wrap;gap:var(--s360-space-xs, 8px);align-items:center;padding-top:var(--s360-component-card-footer-padding-top);margin-top:var(--s360-component-card-footer-gap);border-top:1px solid var(--s360-color-border-muted)}

.s360-ui-stat-card{display:flex;flex-direction:column;gap:var(--s360-card-stat-gap,var(--s360-statcard-gap,var(--s360-component-card-heading-gap,6px)));min-height:var(--s360-card-stat-min-height,var(--s360-statcard-min-height,76px));padding:var(--s360-card-stat-padding,var(--s360-statcard-padding,14px 16px));border-radius:var(--s360-card-stat-radius,var(--s360-statcard-radius,var(--s360-radius-xl,12px)));background:var(--s360-card-stat-bg,var(--s360-statcard-bg,var(--s360-color-bg-subtle,#f8fafc)));border:var(--s360-statcard-border-width,1px) solid var(--s360-card-stat-border-color,var(--s360-statcard-border-color,var(--s360-color-border-muted,#e2e8f0)));box-shadow:var(--s360-card-stat-shadow,var(--s360-statcard-shadow,none))}
.s360-ui-stat-card__value{font-size:var(--s360-card-stat-value-size,var(--s360-statcard-value-size,24px));line-height:1;font-weight:var(--s360-statcard-value-weight,800);color:var(--s360-color-text-heading)}
.s360-ui-stat-card__label{font-size:var(--s360-statcard-label-size,var(--s360-font-size-xs,12px));font-weight:var(--s360-statcard-label-weight,700);line-height:var(--s360-statcard-line-height,1.2);color:var(--s360-color-text-label);text-transform:none}
.s360-ui-stat-card__helper{font-size:var(--s360-statcard-meta-size,var(--s360-font-size-xs,12px));color:var(--s360-color-text-tertiary);line-height:1.45}
.s360-ui-stat-card--warning{background:var(--s360-card-stat-warning-bg,var(--s360-color-warning-surface));border-color:var(--s360-card-stat-warning-border,var(--s360-color-border-warning))}
.s360-ui-stat-card--compact{min-height:var(--s360-statcard-mobile-min-height,70px);padding:var(--s360-card-stat-padding,var(--s360-statcard-padding,14px 16px));box-shadow:var(--s360-card-stat-shadow,var(--s360-statcard-shadow,none))}
.s360-ui-stat-card--compact .s360-ui-stat-card__value{font-size:var(--s360-card-stat-value-size,var(--s360-statcard-value-size,24px))}
.s360-admin-kpi-grid--compact{gap:var(--s360-space-sm, 12px);margin-bottom:0}
.s360-admin-action-center .s360-ui-empty-state,
.s360-admin-dashboard .s360-ui-empty-state{min-height:0}

.s360-admin-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.s360-admin-shortcut{display:flex;flex-direction:column;gap:var(--s360-component-card-heading-gap, 6px);padding:var(--s360-component-card-padding-tight, 14px) 15px;border-radius:var(--s360-radius-2xl);border:1px solid var(--s360-color-border-soft-alt);background:var(--s360-color-bg-subtle);text-decoration:none;transition:all .15s ease;box-shadow:var(--s360-shadow-inset-highlight)}
.s360-admin-shortcut:hover{transform:translateY(-1px);border-color:var(--s360-color-primary-soft-border);background:var(--s360-color-primary-soft)}
.s360-admin-shortcut__title{font-size:14px;font-weight:800;color:var(--s360-color-text-heading)}
.s360-admin-shortcut__meta{font-size:12px;color:var(--s360-color-text-tertiary)}
.s360-admin-panel--compact{height:auto}
.s360-admin-dashboard .s360-ui-card__header{gap:var(--s360-space-sm)}
.s360-admin-dashboard .s360-ui-table-wrap{max-height:360px;overflow:auto}
.s360-admin-kpi-grid .s360-ui-stat-card{height:100%}
a.s360-ui-stat-card{text-decoration:none;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
a.s360-ui-stat-card:hover{transform:translateY(-1px);border-color:var(--s360-color-primary-soft-border);box-shadow:var(--s360-shadow-floating)}
.s360-admin-action-center .s360-ui-stat-card__helper,
.s360-admin-kpi-grid--compact .s360-ui-stat-card__helper{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.s360-admin-dashboard__main .s360-ui-card{min-width:0}



.s360-admin-nav-pills{display:flex;flex-wrap:wrap;gap:var(--s360-space-xs);margin:0 0 var(--s360-layout-grid-gap-lg);padding:var(--s360-space-2xs);border:1px solid var(--s360-color-border-muted);border-radius:var(--s360-radius-2xl);background:linear-gradient(180deg,var(--s360-color-bg-subtle) 0%,var(--s360-color-surface-raised) 100%)}
.s360-admin-nav-pill{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:var(--s360-radius-lg);text-decoration:none;font-size:13px;font-weight:700;color:var(--s360-color-text-secondary);transition:all .15s ease}
.s360-admin-nav-pill:hover{background:var(--s360-color-primary-soft);color:var(--s360-color-primary-hover-strong)}
.s360-admin-nav-pill.is-active{background:var(--s360-color-surface-raised);color:var(--s360-color-text-heading);box-shadow:var(--s360-shadow-floating)}

@media (max-width: 1200px){
  .s360-admin-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 900px){
  .s360-admin-panel--span-2{grid-column:auto}
  .s360-admin-shortcuts{grid-template-columns:1fr}
}

.s360-admissions-workspace .s360-stats.s360-grid-4-stat{margin-top:var(--s360-layout-density-compact)}
.s360-admissions-page-header .s360-ui-page-header__description,
.s360-admissions-detail-header .s360-ui-page-header__description{max-width:84ch}
.s360-admissions-tabs,
.s360-admissions-detail-tabs{margin-bottom:var(--s360-layout-grid-gap-lg)}
.s360-admissions-tabs .s360-ui-tabs__nav,
.s360-admissions-detail-tabs .s360-ui-tabs__nav{box-shadow:0 10px 30px rgba(15,23,42,.04)}
.s360-admissions-action-bar{margin-bottom:var(--s360-layout-grid-gap-lg)}
.s360-admissions-workspace .s360-ui-card--progress{border:1px solid var(--s360-color-border-accent-soft);box-shadow:var(--s360-shadow-accent)}
.s360-admissions-workspace .s360-ui-card{border-radius:var(--s360-radius-3xl)}
.s360-admissions-workspace .s360-workflow-callout{margin-top:0}


.s360-ui-table-wrap{position:relative;overflow:auto;border:var(--s360-table-border-width) solid var(--s360-color-border-muted);border-radius:var(--s360-table-radius);background:var(--s360-color-surface-raised);box-shadow:var(--s360-table-shadow)}
.s360-ui-table-wrap + .s360-ui-table-wrap{margin-top:var(--s360-layout-grid-gap)}
.s360-ui-table-toolbar{display:flex;justify-content:space-between;align-items:center;gap:var(--s360-table-toolbar-gap);padding:var(--s360-table-toolbar-padding-y) var(--s360-table-toolbar-padding-x);border-bottom:var(--s360-table-border-width) solid var(--s360-table-tablenav-border);background:var(--s360-table-toolbar-bg)}
.s360-ui-table-toolbar__meta{display:flex;flex-wrap:wrap;gap:var(--s360-table-meta-gap-y) var(--s360-table-meta-gap-x);align-items:center;color:var(--s360-color-text-tertiary);font-size:12px;font-weight:700}
.s360-ui-table-toolbar__title{font-size:13px;font-weight:800;color:var(--s360-color-text-heading)}
.s360-ui-table-toolbar__filters,.s360-ui-table-toolbar__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s360-table-filter-gap)}
.s360-ui-table-toolbar__search{display:flex;align-items:center;gap:var(--s360-table-actions-gap);min-width:min(var(--s360-table-search-min-width),100%);max-width:var(--s360-table-toolbar-search-max-width);margin-left:auto}
.s360-ui-table-toolbar__search input{width:100%;min-width:0}
.s360-ui-table-wrap table{width:100%;margin:0;border:0;box-shadow:none;background:var(--s360-color-surface-raised);border-collapse:separate;border-spacing:0}
.s360-ui-table-wrap .widefat thead th,
.s360-ui-table-wrap table thead th{position:sticky;top:0;z-index:1;background:var(--s360-table-header-bg);color:var(--s360-table-header-text);font-weight:800;border-bottom:var(--s360-table-border-width) solid var(--s360-color-border-muted)}
.s360-ui-table-wrap .widefat td,.s360-ui-table-wrap .widefat th,
.s360-ui-table-wrap table td,.s360-ui-table-wrap table th{padding:var(--s360-table-cell-padding-y) var(--s360-table-cell-padding-x);vertical-align:top;min-height:var(--s360-table-row-min-height)}
/* Phase 9U: keep table header top corners square; the outer .s360-ui-table-wrap keeps the card/container radius. */
.s360-ui-table-wrap table thead th:first-child{border-top-left-radius:0}
.s360-ui-table-wrap table thead th:last-child{border-top-right-radius:0}
.s360-ui-table-wrap table tbody tr{transition:background-color .12s ease}
.s360-ui-table-wrap table tbody tr:hover{background:var(--s360-table-row-hover-bg)}
.s360-ui-table-wrap table tbody tr.is-filtered-out{display:none}
.s360-ui-table-wrap table tbody td{border-bottom:1px solid var(--s360-color-border-divider)}
.s360-ui-table-wrap table tbody tr:last-child td{border-bottom:0}
.s360-ui-table-wrap table tbody td:first-child{font-weight:700;color:var(--s360-color-text-heading)}
.s360-ui-table-wrap table tbody td .button,
.s360-ui-table-wrap table tbody td .s360-ui-button{white-space:nowrap}
.s360-ui-table-empty{display:none;padding:var(--s360-table-empty-padding-y) var(--s360-table-empty-padding-x);color:var(--s360-table-empty-text);font-size:13px}
.s360-ui-table-empty.is-visible{display:block}
.s360-ui-table-wrap .tablenav{display:flex;justify-content:space-between;align-items:center;gap:var(--s360-table-toolbar-gap);padding:var(--s360-table-toolbar-padding-y) var(--s360-table-toolbar-padding-x);margin:0;border-top:var(--s360-table-border-width) solid var(--s360-table-tablenav-border);background:var(--s360-table-tablenav-bg);box-shadow:none}
.s360-ui-table-wrap .tablenav.top{border-top:0;border-bottom:var(--s360-table-border-width) solid var(--s360-table-tablenav-border)}
.s360-ui-table-wrap .tablenav .actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s360-table-actions-gap);padding:0}
.s360-ui-table-wrap .tablenav .displaying-num,.s360-ui-table-wrap .tablenav .pagination-links{color:var(--s360-color-text-secondary)}
.s360-ui-table-wrap .tablenav .tablenav-pages{display:flex;align-items:center;gap:var(--s360-table-actions-gap);margin:0}
.s360-ui-table-wrap .tablenav select{min-height:var(--s360-control-height-sm)}
.s360-ui-table-wrap .table-view-list .manage-column{box-shadow:none}
.s360-ui-table-wrap .widefat.striped>tbody>:nth-child(odd),
.s360-ui-table-wrap .striped>tbody>:nth-child(odd){background-color:var(--s360-table-row-striped-bg)}
.s360-ui-table-wrap .column-primary{width:auto}
.s360-ui-table-wrap--compact .widefat td,.s360-ui-table-wrap--compact .widefat th,
.s360-ui-table-wrap--compact table td,.s360-ui-table-wrap--compact table th{padding:var(--s360-table-cell-padding-compact-y) var(--s360-table-cell-padding-compact-x)}

@media (max-width: 900px){
  .s360-ui-table-toolbar{flex-direction:column;align-items:stretch}
  .s360-ui-table-toolbar__search{min-width:0;width:100%;max-width:none;margin-left:0}
  .s360-ui-table-wrap .tablenav{flex-direction:column;align-items:stretch}
  .s360-ui-table-wrap .tablenav .actions,.s360-ui-table-wrap .tablenav .tablenav-pages{width:100%;justify-content:space-between}
}


/* Phase 5 – Custom Fields UX */
.s360-custom-fields-workspace .s360-page-panel{margin-top:var(--s360-layout-grid-gap-lg)}
.s360-custom-fields-header,.s360-custom-fields-actionbar,.s360-custom-fields-tabs{margin-bottom:var(--s360-layout-grid-gap)}
.s360-custom-fields-tabs .s360-ui-tabs__nav{flex-wrap:wrap;gap:10px}
.s360-cf-builder-hero{display:flex;justify-content:space-between;gap:var(--s360-layout-grid-gap);align-items:flex-start;margin-bottom:var(--s360-layout-grid-gap);padding-bottom:var(--s360-layout-grid-gap);border-bottom:1px solid var(--s360-color-border-soft)}
.s360-cf-builder-hero__eyebrow{display:inline-block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--s360-color-text-subtle);margin-bottom:6px}
.s360-cf-builder-hero__meta{display:grid;grid-template-columns:repeat(3,minmax(110px,1fr));gap:10px;min-width:min(100%,360px)}
.s360-cf-mini-stat{background:var(--s360-card-stat-bg,var(--s360-statcard-bg,var(--s360-color-bg-subtle)));border:var(--s360-statcard-border-width,1px) solid var(--s360-card-stat-border-color,var(--s360-statcard-border-color,var(--s360-color-border-muted)));border-radius:var(--s360-card-stat-radius,var(--s360-statcard-radius,var(--s360-radius-xl)));padding:var(--s360-card-stat-padding,var(--s360-statcard-padding,14px 16px));box-shadow:var(--s360-card-stat-shadow,var(--s360-statcard-shadow,none))}
.s360-cf-mini-stat span{display:block;font-size:var(--s360-statcard-label-size,var(--s360-font-size-xs,12px));font-weight:var(--s360-statcard-label-weight,700);line-height:var(--s360-statcard-line-height,1.2);color:var(--s360-color-text-label);margin-bottom:var(--s360-space-2xs,4px)}
.s360-cf-mini-stat strong{display:block;font-size:var(--s360-card-stat-value-size,var(--s360-statcard-value-size,24px));line-height:1;font-weight:var(--s360-statcard-value-weight,800);color:var(--s360-color-text-heading)}
.s360-cf-live-preview{margin-bottom:16px;background:var(--s360-color-info-surface-alt);border:1px solid var(--s360-color-border-accent-soft);border-radius:var(--s360-radius-3xl);padding:16px}
.s360-cf-live-preview__header{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.s360-cf-live-preview__surface{background:var(--s360-color-surface-raised);border:1px solid var(--s360-color-border-subtle);border-radius:var(--s360-radius-2xl);padding:14px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.s360-cf-live-preview__label{display:block;font-weight:600;color:var(--s360-color-text-strong);margin-bottom:8px}
.s360-cf-live-preview__control{padding:12px 14px;border:1px solid var(--s360-color-neutral-border);border-radius:var(--s360-radius-xl);background:var(--s360-color-surface-contrast);color:var(--s360-color-text-body)}
.s360-cf-live-preview__help{margin-top:8px;font-size:12px;color:var(--s360-color-text-quaternary)}
.s360-cf-builder-hero__tools{display:flex;justify-content:flex-end;margin-bottom:8px}
.s360-cf-library-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;background:var(--s360-color-surface-alt);border:1px solid var(--s360-color-border-soft);border-radius:var(--s360-radius-2xl);padding:12px 14px;margin:var(--s360-layout-density-comfy) 0 var(--s360-layout-grid-gap-lg);flex-wrap:wrap}
.s360-cf-library-toolbar__search{min-width:min(100%,380px)}
.s360-cf-library-toolbar__search input{width:100%}
.s360-js-cf-library-item.is-filtered-out{display:none}
.s360-custom-fields-hero--workspace .s360-custom-fields-hero__stats{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:12px}
.s360-custom-fields-tools--workspace{border-top:3px solid var(--s360-color-border-accent-soft)}
@media (max-width: 960px){
  .s360-cf-builder-hero{flex-direction:column}
  .s360-cf-builder-hero__meta{grid-template-columns:1fr}
}


.s360-student-workspace--admin .s360-ui-page-header__description,
.s360-admin-student-page-header .s360-ui-page-header__description{max-width:80ch}
.s360-admin-profile-shell .s360-ui-tabs,
.s360-parent-profile-shell .s360-ui-tabs{margin-bottom:0}
.s360-admin-student-profile-tabs .s360-ui-tabs__nav,
.s360-student-profile-tabs-wrap .s360-ui-tabs__nav{box-shadow:var(--s360-profile-tabs-nav-shadow)}
.s360-admin-student-page-header{margin-bottom:var(--s360-layout-density-compact)}
.s360-student-profile-tabs-wrap{position:relative;overflow:hidden}
.s360-student-profile-tabs-wrap::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--s360-profile-shell-accent-border) 0%,transparent 100%)}
.s360-student-workspace--parent .s360-ui-page-header,
.s360-student-workspace--self .s360-ui-page-header,
.s360-student-workspace--admin .s360-ui-page-header{padding-bottom:var(--s360-space-xs);border-bottom:1px solid var(--s360-profile-panel-divider)}
.s360-student-workspace--parent .s360-ui-overview-grid > .s360-ui-card,
.s360-student-workspace--self .s360-ui-overview-grid > .s360-ui-card,
.s360-student-workspace--admin .s360-ui-overview-grid > .s360-ui-card{height:100%;margin-bottom:0}
.s360-student-workspace--parent .s360-ui-section-card,
.s360-student-workspace--self .s360-ui-section-card,
.s360-student-workspace--admin .s360-ui-section-card{padding:var(--s360-profile-section-card-padding);border-color:var(--s360-profile-section-card-border);background:var(--s360-profile-section-card-bg)}

.s360-ui-alert__message{margin:0}
.s360-ui-empty-state > *:last-child{margin-bottom:0}
.s360-ui-empty-state__actions{display:flex;flex-wrap:wrap;gap:var(--s360-space-xs, 8px);margin-top:12px}
.s360-ui-section-card{display:flex;flex-direction:column;gap:0}
.s360-ui-section-card > *:last-child{margin-bottom:0}
.s360-ui-copy + .s360-ui-copy{margin-top:10px}

.s360-student-workspace__panels > .s360-student-panel + .s360-student-panel{border-top:1px solid var(--s360-profile-panel-divider)}
.s360-ui-student-header__meta-label,.s360-ui-page-header__meta-item{color:var(--s360-profile-inline-meta-text)}
@media (max-width: 900px){
  .s360-student-workspace__tabs{padding:var(--s360-space-md)}
  .s360-ui-overview-grid,.s360-ui-stat-grid,.s360-ui-action-grid{grid-template-columns:1fr}
}


/* Phase 10 – Accessibility, regression and final polish */
.s360-ui-shell,
.s360-ui-card,
.s360-ui-section-card,
.s360-ui-page-header,
.s360-ui-action-bar,
.s360-ui-alert,
.s360-ui-empty-state,
.s360-ui-table-wrap,
.s360-ui-form-field,
.s360-ui-student-header,
.s360-ui-stat-item,
.s360-ui-workflow-callout {
  overflow-wrap: var(--s360-overflow-wrap);
}

.s360-ui-page-header__description,
.s360-ui-copy,
.s360-ui-workflow-callout__message,
.s360-ui-empty-state__copy,
.s360-ui-form-help,
.s360-ui-form-error,
.s360-ui-alert__message {
  max-width: var(--s360-content-max-readable);
}

.s360-ui-button,
.s360-ui-tabs__tab,
.s360-ui-page-header__actions .button,
.s360-ui-action-bar__actions .button,
.s360-ui-table-wrap .tablenav-pages-navspan,
.s360-ui-table-wrap .tablenav-pages a,
.s360-ui-table-wrap .tablenav-pages .button,
.s360-ui-table-wrap .tablenav .button,
.s360-ui-table-wrap .tablenav select,
.s360-ui-form input,
.s360-ui-form select,
.s360-ui-form textarea,
.s360-student-switcher-form select,
.s360-ui-table-toolbar__search input,
.s360-cf-library-toolbar__search input {
  transition:
    border-color var(--s360-motion-base) var(--s360-ease-standard),
    box-shadow var(--s360-motion-base) var(--s360-ease-standard),
    background-color var(--s360-motion-base) var(--s360-ease-standard),
    color var(--s360-motion-base) var(--s360-ease-standard),
    opacity var(--s360-motion-fast) var(--s360-ease-standard);
}

.s360-ui-button:focus,
.s360-ui-tabs__tab:focus,
.s360-ui-form input:focus,
.s360-ui-form select:focus,
.s360-ui-form textarea:focus,
.s360-student-switcher-form select:focus,
.s360-ui-table-toolbar__search input:focus,
.s360-cf-library-toolbar__search input:focus {
  outline: none;
}

.s360-ui-button:focus-visible,
.s360-ui-tabs__tab:focus-visible,
.s360-ui-page-header__actions .button:focus-visible,
.s360-ui-action-bar__actions .button:focus-visible,
.s360-ui-table-wrap .tablenav-pages a:focus-visible,
.s360-ui-table-wrap .tablenav .button:focus-visible,
.s360-ui-table-wrap .tablenav select:focus-visible,
.s360-ui-form input:focus-visible,
.s360-ui-form select:focus-visible,
.s360-ui-form textarea:focus-visible,
.s360-student-switcher-form select:focus-visible,
.s360-ui-table-toolbar__search input:focus-visible,
.s360-cf-library-toolbar__search input:focus-visible,
.s360-ui-card a:focus-visible,
.s360-ui-alert a:focus-visible,
.s360-ui-empty-state a:focus-visible {
  outline: 2px solid var(--s360-color-focus-outline);
  outline-offset: var(--s360-interactive-outline-offset);
}

.s360-ui-button[aria-disabled="true"],
.s360-ui-button:disabled,
.s360-ui-form input:disabled,
.s360-ui-form select:disabled,
.s360-ui-form textarea:disabled,
.s360-ui-table-wrap .tablenav .button:disabled,
.s360-ui-table-wrap .tablenav select:disabled {
  cursor: not-allowed;
  opacity: .72;
  box-shadow: none;
}

.s360-ui-form input[readonly],
.s360-ui-form textarea[readonly],
.s360-ui-form select[readonly] {
  background: var(--s360-color-readonly-surface);
  border-color: var(--s360-color-readonly-border);
}

.s360-ui-button[aria-busy="true"],
.s360-ui-button.is-loading,
.s360-ui-card.is-loading,
.s360-ui-section-card.is-loading,
.s360-ui-stat-item.is-loading {
  position: relative;
  overflow: hidden;
}

.s360-ui-button[aria-busy="true"]::after,
.s360-ui-button.is-loading::after,
.s360-ui-card.is-loading::after,
.s360-ui-section-card.is-loading::after,
.s360-ui-stat-item.is-loading::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, var(--s360-color-overlay-scrim) 50%, transparent 100%);
  transform: translateX(-100%);
  animation: s360-ui-shimmer 1.35s infinite;
  pointer-events: none;
}

.s360-ui-button[aria-busy="true"] {
  color: transparent;
}

.s360-ui-table-wrap table td,
.s360-ui-table-wrap table th,
.s360-ui-student-header__meta-value,
.s360-ui-card__meta,
.s360-ui-page-header__meta-item {
  word-break: break-word;
}

.s360-ui-table-wrap table td > :last-child,
.s360-ui-table-wrap table th > :last-child,
.s360-ui-card > :last-child,
.s360-ui-section-card > :last-child,
.s360-ui-action-bar__main > :last-child,
.s360-ui-page-header__main > :last-child {
  margin-bottom: 0;
}

.s360-ui-table-wrap .tablenav-pages a,
.s360-ui-table-wrap .tablenav .button,
.s360-ui-tabs__tab,
.s360-ui-button {
  min-height: var(--s360-touch-target-min);
}

.s360-ui-card a,
.s360-ui-alert a,
.s360-ui-empty-state a,
.s360-ui-workflow-callout a {
  color: var(--s360-color-link);
}

.s360-ui-card a:hover,
.s360-ui-alert a:hover,
.s360-ui-empty-state a:hover,
.s360-ui-workflow-callout a:hover {
  color: var(--s360-color-link-hover);
}

.s360-ui-table-wrap,
.s360-student-profile-tabs-wrap,
.s360-ui-tabs__nav,
.s360-ui-card,
.s360-ui-section-card {
  scrollbar-gutter: stable both-edges;
}

::selection {
  background: var(--s360-color-selection-bg);
  color: var(--s360-color-selection-text);
}

@keyframes s360-ui-shimmer {
  100% { transform: translateX(100%); }
}

@media (prefers-reduced-motion: reduce) {
  .s360-ui-button,
  .s360-ui-tabs__tab,
  .s360-ui-form input,
  .s360-ui-form select,
  .s360-ui-form textarea,
  .s360-student-switcher-form select,
  .s360-ui-table-toolbar__search input,
  .s360-cf-library-toolbar__search input,
  .s360-ui-table-wrap table tbody tr {
    transition: none ;
  }

  .s360-ui-button[aria-busy="true"]::after,
  .s360-ui-button.is-loading::after,
  .s360-ui-card.is-loading::after,
  .s360-ui-section-card.is-loading::after,
  .s360-ui-stat-item.is-loading::after {
    animation: none !important;
  }
}

@media (max-width: 900px){.s360-admin-panel--span-3{grid-column:span 1}.s360-admin-shortcuts{grid-template-columns:1fr}}

/* v9.9.28.1 - Dashboard card layout hotfix
 * Keep dashboard metric cards in normal grid flow and prevent stacked/overlapping cards
 * when legacy admin styles or browser zoom alter card heights.
 */
.s360-admin-dashboard .s360-admin-kpi-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:var(--s360-space-md, 16px);
  align-items:stretch;
  grid-auto-flow:row;
  grid-auto-rows:auto;
  margin-bottom:var(--s360-space-lg, 24px);
}
.s360-admin-dashboard .s360-admin-kpi-grid--compact{
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:var(--s360-component-card-header-gap, 14px);
  margin-bottom:0;
}
.s360-admin-dashboard .s360-ui-stat-card,
.s360-admin-dashboard a.s360-ui-stat-card{
  box-sizing:border-box;
  width:100%;
  min-width:0;
  height:auto;
  min-height:118px;
  margin:0;
  position:relative;
  overflow:visible;
}
.s360-admin-dashboard .s360-ui-stat-card--compact,
.s360-admin-dashboard a.s360-ui-stat-card--compact{
  min-height:112px;
}
.s360-admin-dashboard .s360-ui-card,
.s360-admin-dashboard .s360-ui-dashboard-panel{
  box-sizing:border-box;
  min-width:0;
  height:auto;
  overflow:visible;
}
.s360-admin-dashboard .s360-ui-dashboard-panel{
  margin-bottom:var(--s360-space-lg, 24px);
}
.s360-admin-dashboard .s360-ui-grid{
  align-items:stretch;
  grid-auto-flow:row;
  grid-auto-rows:auto;
}
.s360-admin-dashboard .s360-mt-lg{
  margin-top:var(--s360-space-lg, 24px);
}
@media (max-width:1280px){
  .s360-admin-dashboard .s360-admin-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:782px){
  .s360-admin-dashboard .s360-admin-kpi-grid,
  .s360-admin-dashboard .s360-admin-kpi-grid--compact{grid-template-columns:1fr;}
}

/* v9.9.29 - Dashboard signal prioritization polish */
.s360-admin-dashboard .s360-admin-panel__note{
  margin:var(--s360-space-sm, 12px) 0 0;
  color:var(--s360-color-text-tertiary);
  font-size:12px;
  line-height:1.5;
}
.s360-admin-dashboard .s360-ui-card__toolbar{
  flex-shrink:0;
}
.s360-admin-dashboard .s360-ui-empty-state{
  border-style:dashed;
}

/* v9.9.30 - Dashboard actionable KPI polish */
.s360-admin-dashboard .s360-ui-stat-card--kpi{
  gap:var(--s360-space-xs, 8px);
}
.s360-admin-dashboard a.s360-ui-stat-card--kpi{
  color:inherit;
  cursor:pointer;
}
.s360-admin-dashboard .s360-ui-stat-card__action{
  margin-top:auto;
  padding-top:var(--s360-space-xs, 8px);
  font-size:11px;
  font-weight:800;
  letter-spacing:.02em;
  color:var(--s360-color-primary);
  text-transform:uppercase;
}
.s360-admin-dashboard a.s360-ui-stat-card--kpi:focus{
  outline:2px solid var(--s360-color-primary);
  outline-offset:3px;
}

/* v9.9.31 - Dashboard compact review workspace polish */
.s360-admin-dashboard .s360-admin-panel--all-clear{
  padding-bottom:18px;
}
.s360-admin-dashboard .s360-admin-panel--all-clear .s360-ui-empty-state{
  padding:var(--s360-component-card-padding-tight, 14px) var(--s360-component-card-padding-compact, 16px);
  background:linear-gradient(180deg,var(--s360-color-surface-raised) 0%,var(--s360-color-bg-subtle) 100%);
}
.s360-admin-dashboard .s360-admin-attention-grid .s360-ui-stat-card,
.s360-admin-dashboard .s360-admin-attention-grid a.s360-ui-stat-card{
  min-height:124px;
}
.s360-admin-dashboard .s360-admin-attention-grid .s360-ui-stat-card__action{
  margin-top:auto;
  padding-top:var(--s360-space-xs, 8px);
  font-size:11px;
  font-weight:800;
  letter-spacing:.02em;
  color:var(--s360-color-primary);
  text-transform:uppercase;
}
.s360-admin-dashboard .s360-ui-card__header{
  align-items:flex-start;
}
.s360-admin-dashboard .s360-ui-card__toolbar{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:var(--s360-space-xs, 8px);
}
@media (max-width:960px){
  .s360-admin-dashboard .s360-ui-card__header{
    flex-direction:column;
    align-items:stretch;
  }
  .s360-admin-dashboard .s360-ui-card__toolbar{
    justify-content:flex-start;
  }
  .s360-admin-shortcuts{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:600px){
  .s360-admin-shortcuts{
    grid-template-columns:1fr;
  }
  .s360-admin-dashboard .s360-admin-attention-grid .s360-ui-stat-card,
  .s360-admin-dashboard .s360-admin-attention-grid a.s360-ui-stat-card{
    min-height:112px;
  }
}

/* v9.9.32 - Dashboard secondary workspace polish */
.s360-admin-dashboard .s360-ui-page-header__meta{
  gap:var(--s360-space-xs, 8px);
}
.s360-admin-dashboard .s360-ui-page-header__meta-item{
  max-width:100%;
  overflow-wrap:anywhere;
}
.s360-admin-dashboard__secondary{
  gap:18px;
  margin-top:var(--s360-space-xs, 8px);
}
.s360-admin-dashboard__secondary .s360-ui-dashboard-panel--secondary{
  display:flex;
  flex-direction:column;
  gap:var(--s360-component-card-header-gap, 14px);
  min-height:0;
  margin-bottom:18px;
}
.s360-admin-dashboard__secondary .s360-ui-card__header{
  min-width:0;
}
.s360-admin-dashboard__secondary .s360-ui-card__header > div:first-child{
  min-width:0;
}
.s360-admin-dashboard__secondary .s360-ui-card__subtitle,
.s360-admin-dashboard .s360-ui-stat-card__label,
.s360-admin-dashboard .s360-ui-stat-card__helper,
.s360-admin-dashboard .s360-admin-shortcut__title,
.s360-admin-dashboard .s360-admin-shortcut__meta,
.s360-admin-dashboard .s360-admin-panel__note{
  overflow-wrap:anywhere;
  word-break:normal;
}
.s360-admin-dashboard__secondary .s360-ui-empty-state{
  padding:var(--s360-component-card-padding-tight, 14px) var(--s360-component-card-padding-compact, 16px);
  margin:0;
  min-height:0;
}
.s360-admin-dashboard__secondary .s360-ui-empty-state h2,
.s360-admin-dashboard__secondary .s360-ui-empty-state h3,
.s360-admin-dashboard__secondary .s360-ui-empty-state p{
  margin-top:0;
  margin-bottom:6px;
}
.s360-admin-dashboard__secondary .s360-ui-empty-state p:last-child{
  margin-bottom:0;
}
.s360-admin-dashboard .s360-ui-table-wrap{
  min-width:0;
  width:100%;
}
.s360-admin-dashboard .s360-ui-table-wrap table{
  table-layout:auto;
  min-width:620px;
}
.s360-admin-dashboard .s360-ui-table-wrap th,
.s360-admin-dashboard .s360-ui-table-wrap td{
  overflow-wrap:anywhere;
  vertical-align:top;
}
.s360-admin-dashboard .s360-admin-shortcut{
  min-width:0;
  outline:none;
}
.s360-admin-dashboard .s360-admin-shortcut:focus-visible{
  border-color:var(--s360-color-primary);
  box-shadow:0 0 0 3px var(--s360-color-primary-soft-border), var(--s360-shadow-floating);
  background:var(--s360-color-primary-soft);
}
.s360-admin-dashboard .s360-admin-shortcut__title,
.s360-admin-dashboard .s360-admin-shortcut__meta{
  min-width:0;
}
@media (max-width:1100px){
  .s360-admin-dashboard__secondary{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .s360-admin-dashboard__secondary .s360-admin-panel--span-2,
  .s360-admin-dashboard__secondary .s360-admin-panel--span-3{
    grid-column:1 / -1;
  }
}
@media (max-width:782px){
  .s360-admin-dashboard__secondary{
    grid-template-columns:1fr;
    gap:var(--s360-component-card-header-gap, 14px);
  }
  .s360-admin-dashboard__secondary .s360-ui-dashboard-panel--secondary{
    margin-bottom:var(--s360-component-card-header-gap, 14px);
  }
  .s360-admin-dashboard .s360-ui-table-wrap table{
    min-width:560px;
  }
}
@media (max-width:480px){
  .s360-admin-dashboard__secondary .s360-ui-empty-state{
    padding:var(--s360-space-sm, 12px) var(--s360-component-card-padding-tight, 14px);
  }
  .s360-admin-dashboard .s360-ui-table-wrap table{
    min-width:500px;
  }
}


/* v9.9.33 - Dashboard final QA and micro polish */
.s360-admin-dashboard .s360-ui-card__title,
.s360-admin-dashboard .s360-ui-card__subtitle,
.s360-admin-dashboard .s360-ui-stat-card__value,
.s360-admin-dashboard .s360-ui-stat-card__label,
.s360-admin-dashboard .s360-ui-stat-card__helper{
  min-width:0;
}
.s360-admin-dashboard a.s360-ui-stat-card:focus-visible{
  outline:2px solid var(--s360-color-primary);
  outline-offset:3px;
  border-color:var(--s360-color-primary);
  box-shadow:0 0 0 3px var(--s360-color-primary-soft-border), var(--s360-shadow-floating);
}
.s360-admin-dashboard .s360-ui-dashboard-panel--secondary{
  contain:layout paint;
}
.s360-admin-dashboard .s360-admin-dashboard-table{
  max-height:320px;
}
.s360-admin-dashboard .s360-admin-dashboard-table:focus-within{
  border-color:var(--s360-color-primary-soft-border);
  box-shadow:var(--s360-shadow-floating);
}
.s360-admin-dashboard .s360-admin-dashboard-table table td,
.s360-admin-dashboard .s360-admin-dashboard-table table th{
  max-width:260px;
}
.s360-admin-dashboard .s360-admin-dashboard-table code{
  white-space:normal;
  overflow-wrap:anywhere;
}
.s360-admin-dashboard .s360-admin-shortcut{
  min-height:64px;
  justify-content:center;
}
.s360-admin-dashboard .s360-admin-shortcut:hover,
.s360-admin-dashboard .s360-admin-shortcut:focus-visible{
  text-decoration:none;
}
.s360-admin-dashboard__secondary .s360-admin-panel__footer{
  margin-top:auto;
}
@media (max-width:960px){
  .s360-admin-dashboard .s360-admin-dashboard-table{
    max-height:300px;
  }
  .s360-admin-dashboard .s360-admin-dashboard-table table td,
  .s360-admin-dashboard .s360-admin-dashboard-table table th{
    max-width:220px;
  }
}
@media (max-width:600px){
  .s360-admin-dashboard .s360-ui-stat-card,
  .s360-admin-dashboard a.s360-ui-stat-card{
    min-height:104px;
    padding:var(--s360-component-card-padding-tight, 14px);
  }
  .s360-admin-dashboard .s360-ui-stat-card__value{
    font-size:26px;
  }
  .s360-admin-dashboard .s360-admin-dashboard-table{
    max-height:280px;
  }
}

/* v9.9.34 - Dashboard final stabilization and cleanup */
.s360-admin-dashboard__secondary{
  align-items:stretch;
}
.s360-admin-dashboard__secondary[role="region"]{
  width:100%;
}
.s360-admin-dashboard .s360-admin-dashboard-table{
  border-radius:var(--s360-radius-2xl);
  border:1px solid var(--s360-color-border-muted);
  background:var(--s360-color-surface-raised);
}
.s360-admin-dashboard .s360-admin-dashboard-table:focus{
  outline:none;
}
.s360-admin-dashboard .s360-admin-dashboard-table:focus-visible{
  border-color:var(--s360-color-primary);
  box-shadow:0 0 0 3px var(--s360-color-primary-soft-border), var(--s360-shadow-floating);
}
.s360-admin-dashboard .s360-admin-dashboard-table tbody tr:last-child td{
  border-bottom:none;
}
.s360-admin-dashboard .s360-admin-shortcuts[role="list"]{
  list-style:none;
  margin:0;
  padding:0;
}
.s360-admin-dashboard .s360-admin-shortcut{
  overflow:hidden;
}
.s360-admin-dashboard .s360-admin-shortcut__title,
.s360-admin-dashboard .s360-admin-shortcut__meta{
  display:block;
  max-width:100%;
}
.s360-admin-dashboard .s360-admin-panel__footer .s360-ui-button{
  max-width:100%;
  white-space:normal;
  text-align:center;
}
@media (max-width:782px){
  .s360-admin-dashboard .s360-admin-panel__footer{
    align-items:stretch;
  }
  .s360-admin-dashboard .s360-admin-panel__footer .s360-ui-button{
    width:100%;
    justify-content:center;
  }
}
@media (max-width:480px){
  .s360-admin-dashboard .s360-ui-card__title{
    font-size:16px;
  }
  .s360-admin-dashboard .s360-ui-card__subtitle{
    font-size:12px;
  }
  .s360-admin-dashboard .s360-admin-shortcut{
    padding:var(--s360-space-sm, 12px) 13px;
  }
}


/* Phase 4: admin UX consistency helpers */
.s360-admin-notice{border-radius:8px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.s360-admin-notice p{margin:.55em 0}
.s360-admin-action{display:inline-flex;align-items:center;gap:6px;min-height:32px}
.s360-admin-action--danger{border-color:var(--s360-color-danger);color:var(--s360-color-danger)}
.s360-admin-action--muted{opacity:.82}
/* v13.3 UI/IX refinement: integrate auto table toolbars with the table shell instead of rendering a nested bordered card. */
.s360-ui-table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:12px 14px;border:0;border-bottom:1px solid var(--s360-color-border-muted);border-radius:0;background:var(--s360-color-surface-raised)}
.s360-ui-table-wrap > .s360-ui-table-toolbar:first-child{border-top-left-radius:calc(var(--s360-table-radius) - 1px);border-top-right-radius:calc(var(--s360-table-radius) - 1px)}
.s360-ui-table-toolbar__meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.s360-ui-table-toolbar__title{font-weight:600;color:var(--s360-color-text)}
.s360-ui-table-toolbar__count{color:var(--s360-color-text-muted);font-size:12px}
.s360-ui-table-toolbar__search input{min-width:220px;max-width:100%}
.s360-ui-table-empty{display:none;margin:10px 0;padding:12px;border:1px dashed var(--s360-color-border-exact-c3c4c7);border-radius:8px;background:var(--s360-color-bg);color:var(--s360-color-text-muted);text-align:center}
.s360-ui-table-empty.is-visible{display:block}
tr.is-filtered-out{display:none}
@media (max-width:782px){.s360-ui-table-toolbar{align-items:stretch;flex-direction:column}.s360-ui-table-toolbar__search input{width:100%;min-width:0}}

/* UI cleanup bridge utilities — keep legacy/admin views out of inline style attributes. */
.s360-u-m-0{margin:0}
.s360-u-mt-0{margin-top:0}
.s360-u-mt-4{margin-top:4px}
.s360-u-mt-6{margin-top:6px}
.s360-u-mt-8{margin-top:8px}
.s360-u-mt-10{margin-top:10px}
.s360-u-mt-12{margin-top:12px}
.s360-u-mt-16{margin-top:16px}
.s360-u-mt-18{margin-top:18px}
.s360-u-mb-0{margin-bottom:0}
.s360-u-mb-8{margin-bottom:8px}
.s360-u-mb-10{margin-bottom:10px}
.s360-u-mb-12{margin-bottom:12px}
.s360-u-mb-16{margin-bottom:16px}
.s360-u-mr-6{margin-right:6px}
.s360-u-mr-14{margin-right:14px}
.s360-u-ml-6{margin-left:6px}
.s360-u-p-10{padding:10px}
.s360-u-p-12{padding:12px}
.s360-u-p-16{padding:16px}
.s360-u-p-18{padding:18px}
.s360-u-inline{display:inline}
.s360-u-inline-block{display:inline-block}
.s360-u-block{display:block}
.s360-u-w-full{width:100%}
.s360-u-w-220{width:220px}
.s360-u-w-240{width:240px}
.s360-u-w-35p{width:35%}
.s360-u-text-right{text-align:right}
.s360-u-text-nowrap{white-space:nowrap}
.s360-u-grid-full{grid-column:1 / -1}
.s360-u-flex-wrap-8{display:flex;gap:8px;flex-wrap:wrap}
.s360-u-flex-wrap-center-8{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.s360-u-flex-wrap-center-6{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.s360-u-flex-between-start-12{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.s360-u-flex-between-start-16{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.s360-u-flex-between-center-12{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.s360-u-list-indent{margin:0 0 0 18px}
.s360-u-list-disc-18{list-style:disc;margin-left:18px}
.s360-u-line-17{line-height:1.7}
.s360-u-metric-24{font-size:24px;margin:8px 0}
.s360-u-metric-22{font-size:22px;margin:6px 0}
.s360-u-helper-muted{margin-top:6px;color:var(--s360-color-text-secondary)}
.s360-u-code-scroll-md{white-space:pre-wrap;max-height:320px;overflow:auto}
.s360-u-code-scroll-sm{white-space:pre-wrap;max-height:220px;overflow:auto}
.s360-u-surface-flat{padding:12px;border:1px solid var(--s360-color-border);border-radius:8px;background:var(--s360-color-white)}
.s360-u-surface-flat-sm{padding:10px;border:1px solid var(--s360-color-border);border-radius:8px;background:var(--s360-color-white)}
.s360-u-surface-muted{padding:16px;border:1px solid var(--s360-color-border);border-radius:6px;background:var(--s360-color-bg)}
.s360-u-panel-grid-180{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--s360-space-sm, 12px);margin-bottom:12px}
.s360-u-panel-grid-160{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--s360-space-sm, 12px);margin-top:12px}
.s360-u-panel-grid-220{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}

/* UI cleanup bridge utilities — phase 2 component/layout extraction. */
.s360-u-p-8{padding:8px}
.s360-u-my-12{margin:12px 0}
.s360-u-my-12-6{margin:12px 0 6px}
.s360-u-my-12-8{margin:12px 0 8px}
.s360-u-my-12-18{margin:12px 0 18px}
.s360-u-my-16-8{margin:16px 0 8px}
.s360-u-mb-1em{margin-bottom:1em}
.s360-u-mb-4{margin-bottom:4px}
.s360-u-mb-6{margin-bottom:6px}
.s360-u-mt-14{margin-top:14px}
.s360-u-m-neg4-0-14{margin:-4px 0 14px}
.s360-u-p12-mb12{padding:12px;margin-bottom:12px}
.s360-u-p16-mt16{padding:16px;margin-top:16px}
.s360-u-p12-14-mt16{margin-top:16px;padding:12px 14px}
.s360-u-box-p12-my12{padding:12px;margin:12px 0}
.s360-u-box-p10-12-my12{margin:12px 0;padding:10px 12px}
.s360-u-box-p8-12-mb16{margin:0 0 16px;padding:8px 12px}
.s360-u-block-mb-4{display:block;margin-bottom:4px}
.s360-u-block-mb-6{display:block;margin-bottom:6px}
.s360-u-block-mt-6{display:block;margin-top:6px}
.s360-u-block-mt-10{display:block;margin-top:10px}
.s360-u-inline-chip-space-sm{display:inline-block;margin:0 2px 4px 0}
.s360-u-inline-chip-space-md{display:inline-block;margin:0 4px 4px 0}
.s360-u-inline-flex-center-8-mr12{display:inline-flex;align-items:center;gap:8px;margin-right:12px}
.s360-u-flex-6{display:flex;gap:6px}
.s360-u-flex-wrap-4{display:flex;gap:4px;flex-wrap:wrap}
.s360-u-flex-wrap-4-mt-4{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.s360-u-flex-center-8{display:flex;gap:8px;align-items:center}
.s360-u-flex-center-10{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.s360-u-flex-center-12{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.s360-u-flex-center-8-mb-10{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 10px}
.s360-u-flex-center-8-mt-10{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.s360-u-flex-center-8-mb12{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.s360-u-flex-center-10-mb-8{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.s360-u-flex-center-12-mt10{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:10px}
.s360-u-flex-center-12-mt12{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:12px}
.s360-u-flex-end-8{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.s360-u-flex-end-12{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.s360-u-flex-end-8-mb-10{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin-bottom:10px}
.s360-u-flex-between-end-16{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.s360-u-flex-start-8{display:flex;gap:8px;align-items:flex-start}
.s360-u-flex-start-8-my{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap;margin:12px 0 16px}
.s360-u-flex-wrap-8-mt-12{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.s360-u-flex-wrap-8-mb-14{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.s360-u-flex-wrap-10-my-lg{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 18px}
.s360-u-flex-min-180{flex:1;min-width:180px}
.s360-u-flex-min-240{flex:1;min-width:240px}
.s360-u-flex-min-280{flex:1;min-width:280px}
.s360-u-flex-1-max-620{flex:1;max-width:620px}
.s360-u-gap-4{gap:4px}
.s360-u-gap-8{gap:8px}
.s360-u-gap-8-items-center{gap:8px;align-items:center}
.s360-u-gap-6-wrap{gap:6px;flex-wrap:wrap}
.s360-u-gap-12-items-end{gap:12px;align-items:flex-end}
.s360-u-wrap-gap-6{flex-wrap:wrap;gap:6px}
.s360-u-wrap-gap-6-start{flex-wrap:wrap;gap:6px;align-items:flex-start}
.s360-u-grid-2-start-16{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.s360-u-grid-2-16-mt16{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.s360-u-grid-3-16-my-16{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:16px 0}
.s360-u-grid-3-16-max980{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:980px}
.s360-u-grid-3-12-my12{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0}
.s360-u-grid-3-12-my14{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}
.s360-u-grid-180-14-mv-lg{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:16px 0 24px}
.s360-u-grid-180-12-end{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;align-items:flex-end}
.s360-u-grid-220-12-end{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;align-items:flex-end}
.s360-u-grid-280-16-mt16{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:16px}
.s360-u-grid-fill-160-16{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}
.s360-u-list-grid-8{list-style:none;margin:10px 0 14px;padding:0;display:grid;gap:8px}
.s360-u-list-item-top{padding:10px 0;border-top:1px solid var(--s360-color-border-subtle);list-style:none}
.s360-u-list-disc-20{list-style:disc;margin-left:20px}
.s360-u-list-indent-mt-10-line{margin:10px 0 0 18px;line-height:1.7}
.s360-u-list-disc-18-mt8{margin:8px 0 0 18px;list-style:disc}
.s360-u-list-disc-16-mt12{margin:12px 0 0 16px;list-style:disc}
.s360-u-w-32{width:32px}
.s360-u-w-90{width:90px}
.s360-u-w-120{width:120px}
.s360-u-w-32p{width:32%}
.s360-u-max-w-full{max-width:100%}
.s360-u-max-w-120-mt4{max-width:120px;margin-top:4px}
.s360-u-max-w-180{max-width:180px}
.s360-u-max-w-180-mt4{max-width:180px;margin-top:4px}
.s360-u-max-w-220{max-width:220px}
.s360-u-max-w-820{max-width:820px}
.s360-u-max-w-980{max-width:980px}
.s360-u-min-w-28{min-width:28px}
.s360-u-min-w-180{min-width:180px}
.s360-u-min-w-260{min-width:260px}
.s360-u-min-w-320{min-width:320px}
.s360-u-text-center{text-align:center}
.s360-u-text-right-min-140{text-align:right;min-width:140px}
.s360-u-fw-semibold{font-weight:600}
.s360-u-fw-bold-mb-8{font-weight:700;margin-bottom:8px}
.s360-u-kpi-value-tight{font-size:28px;font-weight:700;line-height:1.1}
.s360-u-kpi-value{font-size:28px;font-weight:700;line-height:1.2}
.s360-u-metric-28-bold-my8{font-size:28px;font-weight:700;margin:8px 0}
.s360-u-metric-28-m0{font-size:28px;margin:0}
.s360-u-metric-24-tight{font-size:24px;margin:4px 0}
.s360-u-metric-24-semibold-tight{font-size:24px;font-weight:600;line-height:1;margin-bottom:6px}
.s360-u-eyebrow{font-size:13px;color:var(--s360-color-text-tertiary);text-transform:uppercase;letter-spacing:.04em}
.s360-u-text-15-mb8{font-size:15px;margin-bottom:8px}
.s360-u-text-10-inline-mt4{font-size:10px;margin-top:4px;display:inline-block}
.s360-u-icon-36-mb12{font-size:36px;margin-bottom:12px}
.s360-u-icon-48-mb12{font-size:48px;margin-bottom:12px}
.s360-u-text-quaternary{color:var(--s360-color-text-quaternary)}
.s360-u-color-danger{color:var(--s360-color-danger)}
.s360-u-color-danger-strong{color:var(--s360-color-danger-strong)}
.s360-u-border-left-warning-4{border-left:4px solid var(--s360-color-warning-accent)}
.s360-u-border-left-primary-4{border-left:4px solid var(--s360-color-primary)}
.s360-u-border-surface{border:1px solid var(--s360-color-border);border-radius:8px}
.s360-u-divider-mv6{margin:6px 0;border:none;border-top:1px solid var(--s360-color-border)}
.s360-u-item-info{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid var(--s360-color-border-info-soft);border-radius:10px;background:var(--s360-color-white)}
.s360-u-surface-flat-mt12{margin-top:12px;padding:12px;border:1px solid var(--s360-color-border);border-radius:8px;background:var(--s360-color-white)}
.s360-u-warning-box{margin-top:10px;padding:10px 12px;border:1px solid var(--s360-color-warning-border-legacy);background:var(--s360-color-surface-warning-soft);border-radius:10px}
.s360-u-dashed-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0 12px;padding:10px;border:1px dashed var(--s360-color-neutral-border);border-radius:8px}
.s360-u-action-panel{padding:var(--s360-component-card-padding-tight, 14px) var(--s360-component-card-padding-compact, 16px);margin-top:var(--s360-space-sm, 12px);display:flex;gap:var(--s360-space-xs, 8px);flex-wrap:wrap;align-items:center}
.s360-u-searchbar-row{margin:16px 0;display:flex;gap:8px;align-items:center;max-width:760px}
.s360-u-empty-center-lg{text-align:center;padding:48px 24px;color:var(--s360-color-text-muted)}
.s360-u-pill-neutral-xs{display:inline-block;padding:3px 9px;border-radius:999px;background:var(--s360-color-neutral-chip-bg);font-weight:600;font-size:12px;line-height:1.6}
.s360-u-code-box-sm{white-space:pre-wrap;max-height:220px;overflow:auto;background:var(--s360-color-bg);border:1px solid var(--s360-color-border-neutral-soft);padding:8px}
.s360-u-prewrap-mb0{white-space:pre-wrap;margin-bottom:0}
.s360-u-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.s360-u-image-bordered-sm{max-width:100%;height:auto;border:1px solid var(--s360-color-border);border-radius:6px}
.s360-u-avatar-max-160{max-width:160px;height:auto;border-radius:16px}
.s360-u-thumb-48{width:48px;height:48px;object-fit:cover;border-radius:4px;vertical-align:middle}
@media (max-width:782px){
  .s360-u-grid-2-start-16,
  .s360-u-grid-2-16-mt16,
  .s360-u-grid-3-16-my-16,
  .s360-u-grid-3-16-max980,
  .s360-u-grid-3-12-my12,
  .s360-u-grid-3-12-my14{grid-template-columns:1fr}
  .s360-u-w-32p{width:100%}
  .s360-u-min-w-320{min-width:0}
}
/* UI cleanup phase 6 — reusable state and badge helpers for remaining legacy inline styles. */
.s360-u-hidden{display:none}
.s360-u-pill-status{display:inline-block;padding:var(--s360-space-2xs, 4px) 10px;border-radius:999px;font-size:12px;font-weight:600}
.s360-u-pill-status--info{background:var(--s360-color-surface-exact-ecfeff);color:var(--s360-color-info-exact-155e75)}
.s360-u-pill-status--warning{background:var(--s360-color-warning-tint);color:var(--s360-color-warning-strong)}
.s360-u-pill-status--success{background:var(--s360-color-success-surface);color:var(--s360-color-success-strong)}
.s360-u-pill-status--auto{background:var(--s360-color-border-exact-e0f2fe);color:var(--s360-color-info-exact-0c4a6e)}
.s360-u-border-left-info-4{border-left:4px solid var(--s360-color-info-exact-0ea5e9)}
.s360-u-border-left-success-4{border-left:4px solid var(--s360-color-success-exact-22c55e)}
.s360-u-workflow-step{background:var(--s360-color-white)}
.s360-u-workflow-step.is-active{background:var(--s360-color-border-exact-f0f6fc)}
.s360-u-pending-update-panel{border:1px solid var(--s360-color-border-subtle);border-radius:10px;padding:var(--s360-space-sm, 12px);margin:12px 0}
.s360-u-pending-update-panel.is-focused{border:2px solid var(--s360-color-primary-exact-2563eb);background:var(--s360-color-info-bg)}
.s360-u-preview-fallback{display:none}
.s360-u-preview-fallback.is-visible{display:flex}
.s360-u-preview-image{display:none;max-width:100%;height:auto}
.s360-u-preview-image.is-visible{display:block}


/* Phase 12: reusable screen-reader-only utility for runtime captions and form hints. */
.s360-u-sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0, 0, 0, 0);
  white-space:nowrap;
  border:0;
}


/* Phase 14: responsive/mobile polish for shared UI shells and data tables. */
.s360-ui-table-wrap--responsive{
  max-width:100%;
  overflow-x:auto;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
}
.s360-ui-table-wrap--responsive:focus{
  outline:none;
}
.s360-ui-table-wrap--responsive.is-scrollable:focus-visible{
  border-color:var(--s360-color-focus-outline);
  box-shadow:0 0 0 3px var(--s360-color-primary-soft-border), var(--s360-table-shadow);
}
.s360-ui-table-wrap--responsive.is-scrollable{
  scroll-padding-inline:12px;
}
.s360-ui-table-wrap--responsive table{
  min-width:min(100%, 640px);
}
.s360-ui-table-wrap--responsive td,
.s360-ui-table-wrap--responsive th{
  overflow-wrap:anywhere;
}
@media (max-width: 782px){
  .s360-ui-card,
  .s360-ui-section-card,
  .s360-ui-action-bar,
  .s360-ui-empty-state{
    border-radius:var(--s360-radius-xl);
  }
  .s360-ui-card{
    padding:clamp(14px, 4vw, var(--s360-component-card-padding));
  }
  .s360-ui-card__header,
  .s360-ui-page-header,
  .s360-ui-action-bar{
    flex-direction:column;
    align-items:stretch;
  }
  .s360-ui-card__toolbar,
  .s360-ui-page-header__actions,
  .s360-ui-action-bar__actions,
  .s360-ui-form-actions{
    align-items:stretch;
    justify-content:flex-start;
    width:100%;
  }
  .s360-ui-card__toolbar .button,
  .s360-ui-card__toolbar .s360-ui-button,
  .s360-ui-page-header__actions .button,
  .s360-ui-page-header__actions .s360-ui-button,
  .s360-ui-action-bar__actions .button,
  .s360-ui-action-bar__actions .s360-ui-button,
  .s360-ui-form-actions .button,
  .s360-ui-form-actions .s360-ui-button{
    justify-content:center;
    max-width:100%;
    white-space:normal;
  }
  .s360-ui-tabs__nav,
  .s360-admin-nav-pills{
    flex-wrap:nowrap;
    overflow-x:auto;
    padding-bottom:6px;
    scrollbar-width:thin;
    -webkit-overflow-scrolling:touch;
  }
  .s360-ui-tabs__tab,
  .s360-admin-nav-pill{
    flex:0 0 auto;
    white-space:nowrap;
  }
  .s360-ui-table-toolbar{
    align-items:stretch;
    flex-direction:column;
    gap:10px;
  }
  .s360-ui-table-toolbar__meta,
  .s360-ui-table-toolbar__filters,
  .s360-ui-table-toolbar__actions,
  .s360-ui-table-wrap .tablenav .actions,
  .s360-ui-table-wrap .tablenav .tablenav-pages{
    align-items:stretch;
    flex-direction:column;
    width:100%;
  }
  .s360-ui-table-toolbar__search{
    width:100%;
    max-width:none;
    min-width:0;
    margin-left:0;
  }
  .s360-ui-table-wrap--responsive table{
    min-width:680px;
  }
  .s360-ui-table-wrap .button,
  .s360-ui-table-wrap select,
  .s360-ui-table-toolbar__search input{
    min-height:var(--s360-touch-target-min);
  }
}
@media (max-width: 480px){
  .s360-ui-page-header__title{
    font-size:clamp(22px, 7vw, 28px);
  }
  .s360-ui-card__title{
    font-size:16px;
  }
  .s360-ui-table-wrap--responsive table{
    min-width:620px;
  }
}

/* Phase 15: shared visual consistency pass for cards, badges, notices and empty states. */
.s360-ui-card,
.s360-ui-section-card,
.s360-ui-stat-card,
.s360-ui-action-bar,
.s360-ui-card,
.s360-ui-section-card,
.s360-ui-card,
.s360-ui-stat-card{
  border-radius:var(--s360-component-card-radius);
  border-color:var(--s360-component-card-border-color);
  box-shadow:var(--s360-component-card-shadow);
}

.s360-ui-card,
.s360-ui-section-card,
.s360-ui-stat-card,
.s360-ui-action-card,
.s360-ui-stat-item,
.s360-ui-card,
.s360-ui-section-card,
.s360-ui-card,
.s360-ui-stat-card{
  min-width:0;
  transition:border-color var(--s360-component-transition-fast), box-shadow var(--s360-component-transition-fast), transform var(--s360-component-transition-fast), background-color var(--s360-component-transition-fast);
}

.s360-ui-card > :first-child,
.s360-ui-section-card > :first-child,
.s360-ui-action-bar > :first-child,
.s360-ui-card > :first-child,
.s360-ui-section-card > :first-child,
.s360-ui-card > :first-child,
.s360-ui-stat-card > :first-child{
  margin-top:0;
}

.s360-ui-card > :last-child,
.s360-ui-section-card > :last-child,
.s360-ui-action-bar > :last-child,
.s360-ui-card > :last-child,
.s360-ui-section-card > :last-child,
.s360-ui-card > :last-child,
.s360-ui-stat-card > :last-child{
  margin-bottom:0;
}

.s360-ui-card__title,
.s360-ui-page-header__title,
.s360-ui-section-card__title,
.s360-section-title,
.s360-section-heading,
.s360-ui-card__title-reset,
.s360-h4-reset{
  letter-spacing:-.01em;
}

.s360-ui-card__subtitle,
.s360-ui-card__meta,
.s360-ui-copy,
.s360-subtle-note,
.s360-help,
.s360-text-muted,
.s360-ui-form-help,
.s360-ui-form-field__help{
  line-height:1.55;
}

.s360-ui-badge,
.s360-ui-chip,
.s360-badge,
.s360-status-pill,
.s360-status-badge,
.s360-report-chip,
.s360-system-badge,
.s360-expense-status-pill,
.s360-admissions-status-chip,
.s360-hr-status-pill,
.s360-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--s360-component-card-heading-gap, 6px);
  min-height:var(--s360-component-badge-min-height);
  border-radius:var(--s360-component-pill-radius);
  font-size:var(--s360-component-badge-font-size);
  font-weight:700;
  line-height:1.2;
  vertical-align:middle;
}

.s360-ui-alert,
.s360-notice,
.s360-inline-error,
.s360-notice,
.s360-alert,
.s360-portal-notice,
.s360-hr-portal-notice{
  border-width:var(--s360-component-notice-border-width);
  border-radius:var(--s360-component-notice-radius);
  line-height:1.55;
}

.s360-ui-alert > :first-child,
.s360-notice > :first-child,
.s360-notice > :first-child,
.s360-alert > :first-child,
.s360-portal-notice > :first-child,
.s360-hr-portal-notice > :first-child{
  margin-top:0;
}

.s360-ui-alert > :last-child,
.s360-notice > :last-child,
.s360-notice > :last-child,
.s360-alert > :last-child,
.s360-portal-notice > :last-child,
.s360-hr-portal-notice > :last-child{
  margin-bottom:0;
}

.s360-ui-empty-state,
.s360-empty-state,
.s360-empty-state--soft,
.s360-hr-empty-state,
.s360-empty-state,
.s360-calendar-empty-state,
.s360-report-empty-state{
  min-height:var(--s360-component-empty-state-min-height);
  border-radius:var(--s360-component-empty-state-radius);
  line-height:1.55;
}

.s360-ui-empty-state > :first-child,
.s360-empty-state > :first-child,
.s360-hr-empty-state > :first-child,
.s360-empty-state > :first-child,
.s360-calendar-empty-state > :first-child,
.s360-report-empty-state > :first-child{
  margin-top:0;
}

.s360-ui-empty-state > :last-child,
.s360-empty-state > :last-child,
.s360-hr-empty-state > :last-child,
.s360-empty-state > :last-child,
.s360-calendar-empty-state > :last-child,
.s360-report-empty-state > :last-child{
  margin-bottom:0;
}

.s360-ui-form-actions,
.s360-ui-card__toolbar,
.s360-ui-page-header__actions,
.s360-ui-action-bar__actions,
.s360-toolbar-actions,
.s360-inline-actions,
.s360-builder-actions{
  gap:var(--s360-component-toolbar-control-gap);
}

.s360-ui-table-wrap table th,
.s360-ui-table-wrap table td{
  vertical-align:middle;
}

.s360-ui-table-wrap table tbody tr{
  transition:background-color var(--s360-component-transition-fast), box-shadow var(--s360-component-transition-fast);
}

.s360-ui-button,
.s360-ui-tabs__tab,
.s360-ui-form input,
.s360-ui-form select,
.s360-ui-form textarea,
.s360-ui-table-toolbar__search input{
  transition-duration:.15s;
}

/* UI Phase 2: central School 360 component layer refinements.
   New/refactored UI must use s360-ui-* buttons instead of WordPress .button classes. */
.s360-ui-button,
a.s360-ui-button,
button.s360-ui-button,
input.s360-ui-button {
  box-sizing: border-box;
  min-height: var(--s360-control-height-md);
  appearance: none;
  cursor: pointer;
  vertical-align: middle;
  white-space: nowrap;
}

.s360-ui-button:hover,
a.s360-ui-button:hover,
button.s360-ui-button:hover,
input.s360-ui-button:hover {
  text-decoration: none;
}

.s360-ui-button--primary:hover {
  background: var(--s360-color-primary-hover-strong);
  border-color: var(--s360-color-primary-hover-strong);
  color: var(--s360-color-surface-raised);
}

.s360-ui-button--muted {
  background: var(--s360-color-bg-subtle);
  border: 1px solid var(--s360-color-border-muted);
  color: var(--s360-color-text-secondary);
}

.s360-ui-button--muted:hover {
  background: var(--s360-color-surface-raised);
  border-color: var(--s360-color-border-strong);
  color: var(--s360-color-text-heading);
}

.s360-ui-button--link {
  min-height: auto;
  padding: 0;
  border-color: transparent;
  background: transparent;
  color: var(--s360-color-link);
  box-shadow: none;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.s360-ui-button--link:hover {
  color: var(--s360-color-link-hover);
  transform: none;
  box-shadow: none;
}

.s360-ui-button--small {
  min-height: var(--s360-control-height-sm);
  padding: 6px 10px;
  border-radius: var(--s360-radius-md);
  font-size: var(--s360-font-size-xs,12px);
}

.s360-ui-button--large {
  min-height: var(--s360-control-height-lg);
  padding: 10px var(--s360-component-button-padding-x-lg);
  border-radius: var(--s360-radius-xl);
  font-size: var(--s360-font-size-md,14px);
}

.s360-ui-button--full {
  width: 100%;
}

.s360-ui-button--icon-only {
  width: var(--s360-control-height-md);
  padding-inline: 0;
}

.s360-ui-button--small.s360-ui-button--icon-only {
  width: var(--s360-control-height-sm);
}

.s360-ui-button--large.s360-ui-button--icon-only {
  width: var(--s360-control-height-lg);
}

.s360-ui-button[aria-disabled="true"],
a.s360-ui-button[aria-disabled="true"],
button.s360-ui-button:disabled,
input.s360-ui-button:disabled {
  pointer-events: none;
}

.s360-admin-action {
  margin: 0;
}

.s360-ui-field,
.s360-ui-form-field {
  display: grid;
  gap: var(--s360-form-field-gap);
  min-width: 0;
}

.s360-ui-label,
.s360-ui-form-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--s360-color-form-label);
}

.s360-ui-required {
  color: var(--s360-color-form-error);
}

.s360-ui-input,
.s360-ui-select,
.s360-ui-textarea,
.s360-ui-field input[type="text"],
.s360-ui-field input[type="email"],
.s360-ui-field input[type="number"],
.s360-ui-field input[type="password"],
.s360-ui-field input[type="search"],
.s360-ui-field input[type="date"],
.s360-ui-field input[type="time"],
.s360-ui-field input[type="url"],
.s360-ui-field input[type="tel"],
.s360-ui-field select,
.s360-ui-field textarea {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: var(--s360-control-height-md);
  padding: var(--s360-control-padding-y) var(--s360-control-padding-x);
  border: var(--s360-control-border-width) solid var(--s360-color-input-border);
  border-radius: var(--s360-control-radius);
  background: var(--s360-color-input-bg);
  color: var(--s360-color-input-text);
  box-shadow: var(--s360-shadow-input);
  transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease, color .15s ease;
}

.s360-ui-textarea,
.s360-ui-field textarea {
  min-height: 120px;
  resize: vertical;
}

.s360-ui-input:focus,
.s360-ui-select:focus,
.s360-ui-textarea:focus,
.s360-ui-field input:focus,
.s360-ui-field select:focus,
.s360-ui-field textarea:focus {
  outline: none;
  border-color: var(--s360-color-input-border-focus);
  box-shadow: var(--s360-shadow-input-focus);
}

.s360-ui-help,
.s360-ui-form-help {
  margin: 0;
  font-size: 12px;
  line-height: 1.5;
  color: var(--s360-color-form-help);
}

.s360-ui-error,
.s360-ui-form-error {
  margin: 0;
  font-size: 12px;
  line-height: 1.5;
  color: var(--s360-color-form-error);
}

.s360-ui-field--invalid input,
.s360-ui-field--invalid select,
.s360-ui-field--invalid textarea,
.s360-ui-field input.is-invalid,
.s360-ui-field select.is-invalid,
.s360-ui-field textarea.is-invalid {
  border-color: var(--s360-color-form-error-border);
  background: var(--s360-color-form-error-bg);
}

.s360-ui-table {
  width: 100%;
  border-collapse: collapse;
}

.s360-ui-table caption {
  padding: 10px 12px;
  text-align: left;
  color: var(--s360-color-text-tertiary);
  font-size: 12px;
}

.s360-ui-table th,
.s360-ui-table td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--s360-color-border-divider);
  vertical-align: top;
}

.s360-ui-table th {
  background: var(--s360-color-bg-subtle);
  color: var(--s360-color-text-heading);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.s360-ui-table tbody tr:hover {
  background: var(--s360-color-bg-subtle);
}

.s360-ui-table-toolbar__filters,
.s360-ui-table-toolbar__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

@media (max-width: 782px) {
  .s360-ui-button,
  a.s360-ui-button,
  button.s360-ui-button,
  input.s360-ui-button {
    justify-content: center;
    white-space: normal;
  }

  .s360-ui-table-toolbar__filters,
  .s360-ui-table-toolbar__actions {
    width: 100%;
  }
}

/* UI Phase 3: standardized form field refinements */
.s360-ui-form {
  display: grid;
  gap: var(--s360-form-section-gap, 20px);
}

.s360-ui-inline-form {
  align-items: end;
  grid-template-columns: minmax(220px, 360px) auto;
  max-width: 720px;
}

.s360-ui-inline-form .s360-ui-form-actions {
  padding-top: 0;
}

.s360-ui-form-grid {
  display: grid;
  gap: var(--s360-form-row-gap, 16px);
}

.s360-ui-form-grid--single {
  grid-template-columns: minmax(0, 1fr);
}

.s360-ui-control {
  box-sizing: border-box;
}

.s360-ui-select {
  padding-right: 36px;
}

.s360-ui-file-input {
  min-height: var(--s360-control-height-md);
  padding: 9px 12px;
  border: var(--s360-control-border-width) solid var(--s360-color-input-border);
  border-radius: var(--s360-control-radius);
  background: var(--s360-color-input-bg);
  color: var(--s360-color-input-text);
  box-shadow: var(--s360-shadow-input);
}

.s360-ui-file-input::file-selector-button {
  margin-right: 12px;
  min-height: 32px;
  padding: 6px 12px;
  border: 1px solid var(--s360-color-border-strong);
  border-radius: var(--s360-radius-md);
  background: var(--s360-color-bg-subtle);
  color: var(--s360-color-text-heading);
  font-weight: 700;
  cursor: pointer;
}

.s360-ui-file-input:hover,
.s360-ui-input:hover,
.s360-ui-select:hover,
.s360-ui-textarea:hover {
  border-color: var(--s360-color-input-border-hover);
}

.s360-ui-file-input:focus,
.s360-ui-input:focus-visible,
.s360-ui-select:focus-visible,
.s360-ui-textarea:focus-visible {
  outline: none;
  border-color: var(--s360-color-input-border-focus);
  box-shadow: var(--s360-shadow-input-focus);
}

.s360-ui-control[aria-invalid="true"] {
  border-color: var(--s360-color-form-error-border);
  background: var(--s360-color-form-error-bg);
}

.s360-ui-form-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s360-form-actions-gap, 10px);
  padding-top: var(--s360-space-xs, 8px);
}

.s360-ui-card[data-s360-portal-card="login"].s360-ui-form {
  gap: var(--s360-space-md, 16px);
}

.s360-ui-card[data-s360-portal-card="login"] .s360-ui-form-actions {
  padding-top: var(--s360-space-2xs, 4px);
}

@media (max-width: 782px) {
  .s360-ui-inline-form {
    grid-template-columns: 1fr;
    max-width: none;
  }

  .s360-ui-form-actions,
  .s360-ui-inline-form .s360-ui-form-actions {
    width: 100%;
  }

  .s360-ui-form-actions .s360-ui-button {
    width: 100%;
  }
}

/* Phase 4 - Table and empty-state standardization */
.s360-ui-table {
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: separate;
  border-spacing: 0;
  background: var(--s360-color-surface-raised);
}

.s360-ui-table caption.screen-reader-text {
  position: absolute;
}

.s360-ui-table-empty-row > td,
.s360-ui-table-empty-cell {
  padding: var(--s360-table-empty-padding-y) var(--s360-table-empty-padding-x) ;
  background: var(--s360-color-bg-subtle);
}

.s360-ui-empty-state--compact,
.s360-ui-empty-state--table {
  min-height: 0;
  padding: var(--s360-component-card-padding-tight, 14px);
  text-align: left;
  border-radius: var(--s360-radius-xl);
}

.s360-ui-empty-state__title {
  margin: 0 0 var(--s360-space-2xs, 4px);
  color: var(--s360-color-text-heading);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.35;
}

.s360-ui-empty-state__message {
  margin: 0;
  color: var(--s360-color-text-secondary);
  line-height: 1.5;
}

.s360-ui-empty-state__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin: 0 0 10px;
  border-radius: var(--s360-component-pill-radius);
  background: var(--s360-color-surface-raised);
  box-shadow: var(--s360-shadow-xs);
}

.s360-ui-table-wrap .s360-ui-empty-state--table .s360-ui-empty-state__actions {
  justify-content: flex-start;
}

.s360-ui-table-wrap .s360-ui-table tbody td:first-child code,
.s360-ui-table-wrap .s360-ui-table tbody td:first-child .s360-ui-empty-state {
  font-weight: initial;
}

.s360-ui-table-wrap .s360-ui-table tbody tr.s360-ui-table-empty-row:hover {
  background: transparent;
}

.s360-ui-table-wrap .s360-ui-table tbody tr.s360-ui-table-empty-row td:first-child {
  font-weight: initial;
}

.s360-ui-table-status {
  display: inline-flex;
  align-items: center;
  gap: var(--s360-component-card-heading-gap, 6px);
  white-space: nowrap;
}

/* Phase 5: dashboard/admin overview helper consolidation */
.s360-ui-dashboard-panel{
  min-width:0;
}
.s360-ui-dashboard-panel > .s360-ui-card__body{
  display:flex;
  flex-direction:column;
  gap:var(--s360-space-md,16px);
}
.s360-admin-dashboard .s360-ui-stat-card{
  min-width:0;
}
.s360-admin-dashboard .s360-ui-stat-card .s360-ui-stat-card__action{
  margin-top:auto;
}
.s360-ui-dashboard-shortcuts{
  min-width:0;
}
.s360-ui-dashboard-shortcut{
  min-width:0;
}
.s360-admin-dashboard.school360-dashboard-phase-5 .s360-ui-dashboard-panel .s360-ui-card__header{
  margin-bottom:var(--s360-space-md,16px);
}
.s360-admin-dashboard.school360-dashboard-phase-5 .s360-ui-dashboard-panel .s360-ui-card__body > .s360-ui-table-wrap:last-child,
.s360-admin-dashboard.school360-dashboard-phase-5 .s360-ui-dashboard-panel .s360-ui-card__body > .s360-ui-grid:last-child{
  margin-bottom:0;
}
.s360-admin-dashboard--legacy-compatible{
  display:flex;
  flex-direction:column;
  gap:var(--s360-space-lg,24px);
}
.s360-admin-dashboard--legacy-compatible #attendanceChart{
  max-width:100%;
  min-height:220px;
}
@media (max-width: 782px){
  .s360-ui-dashboard-panel > .s360-ui-card__body{
    gap:var(--s360-space-sm,12px);
  }
}

/* Phase 7: remaining portal/admin module cleanup */
[data-school360-ui-phase="7"] {
  box-sizing: border-box;
}

[data-school360-ui-phase="7"] .s360-ui-card,
.s360-ui-admin-panel {
  min-width: 0;
}

.s360-ui-admin-panel {
  padding: var(--s360-space-lg, 24px);
  border: 1px solid var(--s360-color-border-subtle);
  border-radius: var(--s360-radius-2xl, 18px);
  background: var(--s360-color-surface-raised);
  box-shadow: var(--s360-shadow-sm);
}

.s360-ui-form-table {
  width: 100%;
  max-width: 980px;
  margin: 0 0 var(--s360-space-md, 16px);
  border: 0;
  border-collapse: separate;
  border-spacing: 0 var(--s360-space-xs, 8px);
}

.s360-ui-form-table th,
.s360-ui-form-table td {
  padding: 6px 12px 6px 0;
  vertical-align: top;
}

.s360-ui-form-table th {
  width: 210px;
  color: var(--s360-color-text-heading);
  font-weight: 700;
  text-align: left;
}

.s360-ui-form-table label {
  display: inline-block;
  margin-bottom: 4px;
  font-weight: 700;
}

.s360-ui-form-table select,
[data-school360-ui-phase="7"] select {
  max-width: 100%;
  min-height: var(--s360-form-control-height, 40px);
  border: 1px solid var(--s360-color-form-border);
  border-radius: var(--s360-radius-lg, 12px);
  background-color: var(--s360-color-form-bg);
}

.s360-ui-input--small {
  max-width: 120px;
}

.s360-ui-alert--inline {
  margin: var(--s360-space-sm, 12px) 0;
}

[data-school360-ui-phase="7"] .s360-ui-table {
  margin: var(--s360-space-sm, 12px) 0 var(--s360-space-lg, 24px);
}

[data-school360-ui-phase="7"] form:not(.s360-ui-inline-form) .s360-ui-button {
  margin-top: var(--s360-space-xs, 8px);
}

@media (max-width: 782px) {
  .s360-ui-form-table,
  .s360-ui-form-table tbody,
  .s360-ui-form-table tr,
  .s360-ui-form-table th,
  .s360-ui-form-table td {
    display: block;
    width: 100%;
  }

  .s360-ui-form-table th,
  .s360-ui-form-table td {
    padding-right: 0;
  }

  .s360-ui-input--small {
    max-width: 100%;
  }
}

/* UI Phase 9: final visual-regression bridge.
   This is a runtime compatibility safety net for older School 360 views that still
   contain WordPress visual classes in source templates. ui-core.js promotes them
   to s360-ui-* classes and removes the WordPress button/form classes in the DOM. */
.s360-ui-legacy-button-normalized {
  margin: 0;
}

input.s360-ui-button.s360-ui-legacy-button-normalized {
  text-align: center;
}

.s360-ui-legacy-control-normalized {
  max-width: 100%;
}

input.s360-ui-input--full,
select.s360-ui-input--full,
textarea.s360-ui-input--full {
  width: 100%;
}

[data-school360-ui-scope] .s360-ui-form-actions > .s360-ui-button,
.s360-tailwind-foundation .s360-ui-form-actions > .s360-ui-button,
[data-school360-ui-scope] .s360-ui-table-wrap .s360-ui-button {
  flex-shrink: 0;
}

@media (max-width: 782px) {
  [data-school360-ui-scope] .s360-ui-legacy-button-normalized,
  .s360-tailwind-foundation .s360-ui-legacy-button-normalized {
    width: 100%;
  }

  [data-school360-ui-scope] .s360-ui-table-wrap .s360-ui-legacy-button-normalized,
  .s360-tailwind-foundation .s360-ui-table-wrap .s360-ui-legacy-button-normalized {
    width: auto;
  }
}


/* Phase 9.1: dashboard KPI/stat card border tuning.
 * Keep shortcuts on the softer #e2e8f0 token, but move dashboard cards to the
 * stronger #cbd5e1 token for clearer card separation on large dashboards.
 */
.s360-admin-dashboard .s360-ui-stat-card,
.school360-dashboard-phase-d .s360-ui-stat-card{
  border-color:var(--s360-color-border-strong, #cbd5e1);
}
.s360-admin-dashboard .s360-ui-stat-card--info,
.school360-dashboard-phase-d .s360-ui-stat-card--info{
  border-color:var(--s360-color-border-info, #bfdbfe);
}
.s360-admin-dashboard .s360-ui-stat-card--success,
.school360-dashboard-phase-d .s360-ui-stat-card--success{
  border-color:var(--s360-color-border-success, #bbf7d0);
}
.s360-admin-dashboard .s360-ui-stat-card--warning,
.school360-dashboard-phase-d .s360-ui-stat-card--warning{
  border-color:var(--s360-color-border-warning, #fde68a);
}
.s360-admin-dashboard .s360-ui-stat-card--danger,
.school360-dashboard-phase-d .s360-ui-stat-card--danger{
  border-color:var(--s360-color-border-danger, #fecaca);
}
.s360-admin-dashboard a.s360-ui-stat-card:hover,
.school360-dashboard-phase-d a.s360-ui-stat-card:hover{
  border-color:var(--s360-color-primary-soft-border, #c7d2fe);
}

/* Phase 9.2: dashboard recent login activity visibility.
 * The login activity card is intentionally full-width because IP/location
 * columns need more horizontal space than the compact secondary panels.
 */
.s360-admin-dashboard__secondary .s360-admin-login-activity-panel{
  grid-column:1 / -1;
}
.s360-admin-dashboard .s360-admin-login-activity-panel .s360-admin-dashboard-table{
  max-height:380px;
}
.s360-admin-dashboard .s360-admin-login-activity-table{
  min-width:840px;
}
.s360-admin-dashboard .s360-admin-login-activity-table code{
  display:inline-block;
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
}
@media (max-width:782px){
  .s360-admin-dashboard .s360-admin-login-activity-table{
    min-width:760px;
  }
}


/* Phase 9.2: dashboard final polish and low-risk legacy table cleanup.
 * Dashboard widget tables now use s360-ui-table classes directly instead of
 * WordPress widefat where no WP list-table behaviour is required.
 */
.s360-admin-dashboard table.s360-ui-table--dashboard{
  width:100%;
  margin:0;
  border:0;
  border-collapse:separate;
  border-spacing:0;
  background:var(--s360-color-surface-raised,#fff);
}
.s360-admin-dashboard table.s360-ui-table--dashboard th,
.s360-admin-dashboard table.s360-ui-table--dashboard td{
  vertical-align:top;
}
.s360-admin-dashboard table.s360-ui-table--dashboard thead th{
  color:var(--s360-table-header-text,var(--s360-color-text-heading,#0f172a));
}
.s360-admin-dashboard table.s360-ui-table--dashboard tbody tr:nth-child(odd){
  background:var(--s360-table-row-striped-bg,#f8fafc);
}
.s360-admin-dashboard table.s360-ui-table--dashboard tbody tr:hover{
  background:var(--s360-table-row-hover-bg,#eef2ff);
}
.s360-admin-dashboard.school360-dashboard-phase9-2{
  max-width:100%;
  overflow-x:clip;
}
@supports not (overflow:clip){
  .s360-admin-dashboard.school360-dashboard-phase9-2{
    overflow-x:hidden;
  }
}
@media (max-width:600px){
  .s360-admin-dashboard table.s360-ui-table--dashboard th,
  .s360-admin-dashboard table.s360-ui-table--dashboard td{
    white-space:normal;
  }
}

/* v9.9.40 - Audit detail and recent activity polish */
.s360-admin-dashboard__secondary .s360-admin-activity-log-panel{
  grid-column:1 / -1;
}
.s360-audit-detail-stack{
  display:grid;
  gap:18px;
}
.s360-audit-detail-panel{
  border:1px solid var(--s360-color-border-muted,#e2e8f0);
  border-radius:var(--s360-radius-2xl,16px);
  background:var(--s360-color-surface-raised,#fff);
}
.s360-audit-detail-summary{
  display:grid;
  gap:var(--s360-space-sm, 12px);
  margin-bottom:var(--s360-space-md, 16px);
}
.s360-audit-detail-summary__text{
  margin:0;
  font-size:15px;
  line-height:1.6;
}
.s360-audit-detail-badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.s360-audit-detail-meta-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:0 0 18px;
}
.s360-audit-detail-meta-item{
  display:grid;
  gap:6px;
  padding:12px 14px;
  border:1px solid var(--s360-color-border-muted,#e2e8f0);
  border-radius:var(--s360-radius-xl,12px);
  background:var(--s360-color-surface-muted,#fbfbfc);
}
.s360-audit-detail-meta-item--full{
  grid-column:1 / -1;
}
.s360-audit-detail-meta-item__label{
  font-size:12px;
  font-weight:700;
  line-height:1.4;
  letter-spacing:.03em;
  text-transform:uppercase;
  color:var(--s360-color-text-muted,#646970);
}
.s360-audit-detail-meta-item__value{
  font-size:13px;
  line-height:1.6;
  color:var(--s360-color-text-body,#374151);
  overflow-wrap:anywhere;
}
.s360-audit-json-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.s360-audit-json-grid--2{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.s360-audit-json-panel{
  min-width:0;
  border:1px solid var(--s360-color-border-muted,#e2e8f0);
  border-radius:var(--s360-radius-xl,12px);
  background:var(--s360-color-surface-muted,#fbfbfc);
  padding:var(--s360-component-card-padding-tight, 14px);
}
.s360-audit-json-panel h3{
  margin:0 0 10px;
  font-size:15px;
}
.s360-audit-json-pre{
  margin:0;
  min-height:120px;
  background:var(--s360-color-surface-raised,#fff);
  border:1px solid var(--s360-color-border-soft,#e7e7e9);
  border-radius:10px;
  padding:12px;
}
@media (max-width:1100px){
  .s360-audit-json-grid,
  .s360-audit-json-grid--2{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:782px){
  .s360-audit-detail-meta-grid,
  .s360-audit-json-grid,
  .s360-audit-json-grid--2{
    grid-template-columns:1fr;
  }
}

/* v9.9.41 - Audit/activity actor display */
.s360-actor-label{
  display:inline-grid;
  gap:2px;
  min-width:0;
  max-width:100%;
  line-height:1.35;
}
.s360-actor-label strong{
  font-size:13px;
  font-weight:700;
  color:var(--s360-color-text-heading,#0f172a);
  overflow-wrap:anywhere;
}
.s360-actor-label small{
  font-size:11px;
  color:var(--s360-color-text-muted,#646970);
  overflow-wrap:anywhere;
}
.s360-admin-activity-log-panel .s360-ui-table-wrap table{
  min-width:820px;
}

/* Phase 9.7 - Admin dashboard header utility cards */
.s360-admin-dashboard__top-surfaces{
  display:grid;
  grid-template-columns:minmax(0,2fr) minmax(280px,1fr);
  gap:var(--s360-space-md, 16px);
  margin:-4px 0 var(--s360-space-lg,24px);
}
.s360-admin-dashboard__utility-card{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  min-width:0;
  padding:18px var(--s360-component-card-padding, 20px);
  border:1px solid var(--s360-color-border-muted,#d9e2ec);
  border-radius:var(--s360-radius-2xl,16px);
  background:linear-gradient(180deg,var(--s360-color-surface-raised,#fff) 0%,var(--s360-color-bg-subtle,#f8fafc) 100%);
  box-shadow:var(--s360-shadow-sm,0 1px 2px rgba(15,23,42,.06));
}
.s360-admin-dashboard__utility-card--notification{
  border-left:4px solid var(--s360-color-warning,#b26200);
}
.s360-admin-dashboard__utility-card--school{
  border-left:4px solid var(--s360-color-primary,#2271b1);
}
.s360-admin-dashboard__utility-copy{
  display:flex;
  flex-direction:column;
  gap:var(--s360-component-card-heading-gap, 6px);
  min-width:0;
}
.s360-admin-dashboard__utility-copy h2{
  margin:0;
  color:var(--s360-color-text-heading,#0f172a);
  font-size:16px;
  line-height:1.25;
}
.s360-admin-dashboard__utility-copy p{
  margin:0;
  color:var(--s360-color-text-secondary,#475569);
  line-height:1.5;
}
.s360-admin-dashboard__utility-actions,
.s360-admin-dashboard__utility-control{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-shrink:0;
  min-width:220px;
}
.s360-admin-dashboard__notification-chips{
  display:flex;
  flex-wrap:wrap;
  gap:var(--s360-space-xs, 8px);
  margin-top:var(--s360-space-2xs, 4px);
}
.s360-admin-dashboard__notification-chip{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  padding:5px 9px;
  border:1px solid var(--s360-dashboard-notification-chip-border,rgba(178,98,0,.24));
  border-radius:999px;
  background:var(--s360-dashboard-notification-chip-bg,rgba(178,98,0,.08));
  color:var(--s360-color-text-heading,#0f172a);
  font-size:12px;
  font-weight:700;
  overflow-wrap:anywhere;
}
.s360-admin-dashboard__utility-card .s360-admin-dashboard__school-switcher{
  width:100%;
  max-width:280px;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.s360-admin-dashboard__utility-card .s360-admin-dashboard__school-switcher-label{
  display:block;
  margin-bottom:6px;
  color:var(--s360-color-text-secondary,#475569);
  font-size:11px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.s360-admin-dashboard__utility-card .s360-admin-dashboard__school-switcher-select{
  width:100%;
  min-height:40px;
}
@media (max-width:1100px){
  .s360-admin-dashboard__top-surfaces{
    grid-template-columns:1fr;
  }
}
@media (max-width:720px){
  .s360-admin-dashboard__utility-card{
    flex-direction:column;
    align-items:stretch;
  }
  .s360-admin-dashboard__utility-actions,
  .s360-admin-dashboard__utility-control{
    justify-content:flex-start;
    min-width:0;
    width:100%;
  }
  .s360-admin-dashboard__utility-card .s360-admin-dashboard__school-switcher{
    max-width:none;
  }
}

/* Phase 9.8 - Admin dashboard header compact shortcut cards */
.s360-admin-dashboard__header--inline .s360-ui-page-header__main{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:10px var(--s360-component-card-header-gap, 14px);
}
.s360-admin-dashboard__header--inline .s360-ui-page-header__title{
  margin:0;
}
.s360-admin-dashboard__header--inline .s360-ui-page-header__description{
  margin:0;
  max-width:none;
}
.s360-admin-dashboard__top-surfaces{
  align-items:stretch;
}
.s360-admin-dashboard__utility-card.s360-admin-shortcut{
  flex-direction:row;
  align-items:center;
  justify-content:space-between;
  gap:var(--s360-component-card-header-gap, 14px);
  min-height:58px;
  padding:var(--s360-component-card-padding-tight, 14px) var(--s360-component-card-padding-compact, 16px);
  text-decoration:none;
}
.s360-admin-dashboard__utility-card.s360-admin-shortcut:hover{
  transform:none;
}
.s360-admin-dashboard__utility-card--notification.s360-admin-shortcut,
.s360-admin-dashboard__utility-card--school.s360-admin-shortcut{
  border-left-width:4px;
}
.s360-admin-dashboard__utility-copy--inline{
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:center;
  gap:var(--s360-space-xs, 8px) var(--s360-space-sm, 12px);
}
.s360-admin-dashboard__utility-copy--inline h2,
.s360-admin-dashboard__utility-copy--inline p{
  margin:0;
}
.s360-admin-dashboard__notification-chips{
  margin-top:0;
  align-items:center;
}
.s360-admin-dashboard__notification-chip{
  padding:var(--s360-space-2xs, 4px) var(--s360-space-xs, 8px);
  font-size:11px;
  line-height:1.2;
}
.s360-ui-button--tiny{
  min-height:28px;
  padding:4px 8px;
  border-radius:8px;
  font-size:var(--s360-font-size-2xs,11px);
  line-height:1.2;
}
.s360-admin-dashboard__utility-card .s360-admin-dashboard__school-switcher-label{
  display:none;
}
.s360-admin-dashboard__utility-card .s360-admin-dashboard__school-switcher-select{
  min-height:34px;
}
.s360-admin-dashboard__utility-actions,
.s360-admin-dashboard__utility-control{
  min-width:180px;
}
@media (max-width:720px){
  .s360-admin-dashboard__header--inline .s360-ui-page-header__main,
  .s360-admin-dashboard__utility-card.s360-admin-shortcut,
  .s360-admin-dashboard__utility-copy--inline{
    flex-direction:column;
    align-items:flex-start;
  }
  .s360-admin-dashboard__utility-actions,
  .s360-admin-dashboard__utility-control{
    min-width:0;
  }
}

/* UI/IX CSS Phase 3 - dashboard visual polish.
 * Scope: School360 admin dashboard only. Keeps PHP workflows, widgets, data,
 * permissions and enqueue order unchanged.
 */
.s360-admin-dashboard{
  gap:var(--s360-dashboard-workspace-gap,var(--s360-space-lg,24px));
}
.s360-admin-dashboard__workspace{
  min-width:0;
}
.s360-admin-dashboard__workspace > * + *{
  margin-top:var(--s360-dashboard-workspace-gap,var(--s360-space-lg,24px));
}
.s360-admin-dashboard__top-surfaces{
  gap:var(--s360-dashboard-section-gap,var(--s360-space-md,16px));
  margin-bottom:var(--s360-dashboard-workspace-gap,var(--s360-space-lg,24px));
}
.s360-admin-dashboard__utility-card.s360-admin-shortcut{
  margin:0;
  padding:var(--s360-dashboard-top-card-padding-y,14px) var(--s360-dashboard-top-card-padding-x,16px);
  border-radius:var(--s360-dashboard-panel-radius,var(--s360-radius-xl,12px));
}
.s360-admin-dashboard .s360-admin-kpi-grid{
  gap:var(--s360-dashboard-section-gap,var(--s360-space-md,16px));
  margin-bottom:var(--s360-dashboard-workspace-gap,var(--s360-space-lg,24px));
}
.s360-admin-dashboard .s360-admin-kpi-grid--compact{
  gap:var(--s360-dashboard-compact-gap,var(--s360-space-sm,12px));
}
.s360-admin-dashboard .s360-ui-stat-card,
.s360-admin-dashboard a.s360-ui-stat-card{
  padding:var(--s360-dashboard-stat-card-padding,16px);
  border-radius:var(--s360-dashboard-panel-radius,var(--s360-radius-xl,12px));
}
.s360-admin-dashboard a.s360-ui-stat-card:hover{
  border-color:var(--s360-color-primary-soft-border,var(--s360-color-border-accent-soft,#c7d2fe));
  box-shadow:var(--s360-dashboard-card-hover-shadow,var(--s360-shadow-floating));
  text-decoration:none;
}
.s360-admin-dashboard__secondary{
  gap:var(--s360-dashboard-section-gap,var(--s360-space-md,16px));
}
.s360-admin-dashboard .s360-admin-dashboard-table{
  max-height:var(--s360-dashboard-table-max-height,320px);
}
.s360-admin-dashboard .s360-admin-dashboard-table table th{
  white-space:nowrap;
}
@media (max-width:782px){
  .s360-admin-dashboard__workspace > * + *,
  .s360-admin-dashboard__top-surfaces,
  .s360-admin-dashboard .s360-admin-kpi-grid{
    margin-top:var(--s360-dashboard-section-gap,var(--s360-space-md,16px));
    margin-bottom:var(--s360-dashboard-section-gap,var(--s360-space-md,16px));
  }
  .s360-admin-dashboard .s360-admin-dashboard-table{
    max-height:var(--s360-dashboard-table-max-height-mobile,280px);
  }
}
@media (max-width:480px){
  .s360-admin-dashboard__utility-card.s360-admin-shortcut,
  .s360-admin-dashboard .s360-ui-stat-card,
  .s360-admin-dashboard a.s360-ui-stat-card{
    padding:var(--s360-space-sm, 12px) 13px;
  }
  .s360-admin-dashboard__notification-chips{
    gap:var(--s360-component-card-heading-gap, 6px);
  }
}
/* v13.3 UI/IX refinement: the WordPress admin menu reduces usable content width before viewport-based mobile breakpoints fire.
 * Stack the admissions/system dashboard split earlier so KPI cards do not become too narrow.
 */
@media (max-width:1200px){
  .s360-admin-dashboard .s360-admin-dashboard-phase5 > .s360-ui-grid--2{
    grid-template-columns:1fr;
  }
}

@media (max-width:1100px){
  .s360-admin-dashboard .s360-admin-dashboard-phase5 .s360-admin-kpi-grid--compact{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .s360-admin-dashboard .s360-admin-dashboard-phase5 .s360-ui-stat-card__value{
    overflow-wrap:anywhere;
    word-break:normal;
  }
}

@media (max-width:782px){
  .s360-admin-dashboard .s360-admin-dashboard-phase5 .s360-admin-kpi-grid--compact{
    grid-template-columns:1fr;
  }
}

@media (prefers-reduced-motion:reduce){
  .s360-admin-dashboard a.s360-ui-stat-card:hover{
    transform:none;
  }
}

/* v13.3 UI/IX refinement: compact dashboard KPI values need a smaller, safer type scale.
 * Prevent long operational values such as `five_minutes` from crowding or escaping compact cards.
 */
.s360-admin-dashboard .s360-ui-stat-card--compact .s360-ui-stat-card__value,
.s360-admin-dashboard a.s360-ui-stat-card--compact .s360-ui-stat-card__value{
  font-size:21px;
  line-height:1.05;
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:normal;
}
.s360-admin-dashboard .s360-ui-stat-card--compact .s360-ui-stat-card__label,
.s360-admin-dashboard a.s360-ui-stat-card--compact .s360-ui-stat-card__label{
  font-size:12px;
  line-height:1.35;
}
.school360-dashboard-phase-d .s360-ui-stat-card--compact{
  column-gap:var(--s360-component-card-heading-gap, 6px);
}
@media (max-width:480px){
  .s360-admin-dashboard .s360-ui-stat-card--compact .s360-ui-stat-card__value,
  .s360-admin-dashboard a.s360-ui-stat-card--compact .s360-ui-stat-card__value{
    font-size:20px;
  }
}

/* UI/IX CSS Phase 3.1 - dashboard header utilities and mobile overflow fix.
 * Scope: School360 dashboard page header, notification card and school selector only.
 * Purpose: restore these controls as real responsive cards and prevent document-level
 * horizontal scrolling on desktop and mobile.
 */
.s360-admin-dashboard.school360-dashboard-phase-d,
.school360-dashboard-phase-d.s360-admin-dashboard{
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  overflow-x:hidden;
  overflow-x:clip;
}
.school360-dashboard-phase-d .s360-ui-page-header{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  flex-wrap:wrap;
}
.school360-dashboard-phase-d .s360-ui-page-header__main,
.school360-dashboard-phase-d .s360-ui-page-header__description{
  min-width:0;
  max-width:100%;
}
.school360-dashboard-phase-d .s360-admin-dashboard__top-surfaces{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--s360-dashboard-section-gap,var(--s360-space-md,16px));
  width:100%;
  max-width:100%;
  min-width:0;
  margin:0 0 var(--s360-dashboard-workspace-gap,var(--s360-space-lg,24px));
  box-sizing:border-box;
  align-items:stretch;
}
.school360-dashboard-phase-d .s360-admin-dashboard__utility-card{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:space-between;
  gap:var(--s360-space-sm,12px);
  width:100%;
  max-width:100%;
  min-width:0;
  min-height:112px;
  margin:0;
  padding:18px var(--s360-component-card-padding, 20px);
  box-sizing:border-box;
  border:1px solid var(--s360-color-border-muted,#d9e2ec);
  border-radius:var(--s360-dashboard-panel-radius,var(--s360-radius-xl,12px));
  background:linear-gradient(180deg,var(--s360-color-surface-raised,#fff) 0%,var(--s360-color-bg-subtle,#f8fafc) 100%);
  box-shadow:var(--s360-shadow-sm,0 1px 2px rgba(15,23,42,.06));
  overflow:hidden;
}
.school360-dashboard-phase-d .s360-admin-dashboard__utility-card--notification{
  border-left:4px solid var(--s360-color-warning,#b26200);
}
.school360-dashboard-phase-d .s360-admin-dashboard__utility-card--school{
  border-left:4px solid var(--s360-color-primary,#2271b1);
}
.school360-dashboard-phase-d .s360-admin-dashboard__utility-card--notification,
.school360-dashboard-phase-d .s360-admin-dashboard__utility-card--school{
  flex-direction:row;
  align-items:center;
  justify-content:space-between;
  gap:var(--s360-space-md, 16px);
}
.school360-dashboard-phase-d .s360-admin-dashboard__utility-copy{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  align-items:flex-start;
  gap:7px;
  min-width:0;
  max-width:100%;
}
.school360-dashboard-phase-d .s360-admin-dashboard__utility-title{
  margin:0;
  color:var(--s360-color-text-heading,#0f172a);
  font-size:14px;
  line-height:1.25;
  font-weight:800;
}
.school360-dashboard-phase-d .s360-admin-dashboard__utility-meta{
  margin:0;
  max-width:100%;
  color:var(--s360-color-text-secondary,#475569);
  font-size:12px;
  line-height:1.45;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.school360-dashboard-phase-d .s360-admin-dashboard__notification-chips{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:var(--s360-space-xs, 8px);
  max-width:100%;
  margin:0;
}
.school360-dashboard-phase-d .s360-admin-dashboard__notification-chip{
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
}
.school360-dashboard-phase-d .s360-admin-dashboard__utility-actions,
.school360-dashboard-phase-d .s360-admin-dashboard__utility-control{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  width:auto;
  min-width:0;
  max-width:100%;
  flex-shrink:1;
}
.school360-dashboard-phase-d .s360-admin-dashboard__utility-card--notification .s360-admin-dashboard__utility-actions{
  flex:0 0 auto;
}
.school360-dashboard-phase-d .s360-admin-dashboard__utility-card--school .s360-admin-dashboard__utility-control{
  flex:0 1 320px;
  width:320px;
  max-width:100%;
}
.school360-dashboard-phase-d .s360-admin-dashboard__utility-card .s360-admin-dashboard__school-switcher{
  width:100%;
  max-width:none;
  min-width:0;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.school360-dashboard-phase-d .s360-admin-dashboard__utility-card .s360-admin-dashboard__school-switcher-label{
  display:none;
}
.school360-dashboard-phase-d .s360-admin-dashboard__utility-card .s360-admin-dashboard__school-switcher-select{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  min-height:38px;
  box-sizing:border-box;
}
.school360-dashboard-phase-d .s360-admin-dashboard__notification-action{
  max-width:100%;
  white-space:normal;
}
@media (max-width:1100px){
  .school360-dashboard-phase-d .s360-admin-dashboard__top-surfaces{
    grid-template-columns:1fr;
  }
}
@media (max-width:782px){
  .s360-admin-dashboard.school360-dashboard-phase-d,
  .school360-dashboard-phase-d.s360-admin-dashboard{
    overflow-x:hidden;
  }
  .school360-dashboard-phase-d .s360-ui-page-header{
    flex-direction:column;
    align-items:stretch;
    gap:var(--s360-space-xs, 8px);
    margin:0 0 var(--s360-space-md,16px);
    padding:var(--s360-component-card-padding, 20px) var(--s360-component-card-padding-compact, 16px);
    border-radius:var(--s360-radius-xl,12px);
  }
  .school360-dashboard-phase-d .s360-ui-page-header::after{
    inset-inline-end:-4rem;
    inset-block-start:-4rem;
    width:10rem;
    height:10rem;
    opacity:.75;
  }
  .school360-dashboard-phase-d .s360-ui-page-header__main{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:var(--s360-space-xs, 8px);
  }
  .school360-dashboard-phase-d .s360-ui-page-header__title{
    font-size:24px;
    line-height:1.2;
  }
  .school360-dashboard-phase-d .s360-ui-page-header__description{
    font-size:13px;
    line-height:1.5;
  }
  .school360-dashboard-phase-d .s360-admin-dashboard__top-surfaces{
    gap:var(--s360-space-sm, 12px);
    margin:0 0 var(--s360-space-md,16px);
  }
  .school360-dashboard-phase-d .s360-admin-dashboard__utility-card{
    min-height:0;
    padding:var(--s360-component-card-padding-compact, 16px);
    border-radius:var(--s360-radius-xl,12px);
  }
  .school360-dashboard-phase-d .s360-admin-dashboard__utility-card--notification,
  .school360-dashboard-phase-d .s360-admin-dashboard__utility-card--school{
    flex-direction:column;
    align-items:stretch;
  }
  .school360-dashboard-phase-d .s360-admin-dashboard__utility-actions,
  .school360-dashboard-phase-d .s360-admin-dashboard__utility-control,
  .school360-dashboard-phase-d .s360-admin-dashboard__utility-card--school .s360-admin-dashboard__utility-control{
    width:100%;
    max-width:100%;
    justify-content:flex-start;
  }
}
@media (max-width:480px){
  .school360-dashboard-phase-d .s360-ui-page-header{
    padding:18px var(--s360-component-card-padding-tight, 14px);
  }
  .school360-dashboard-phase-d .s360-ui-page-header__title{
    font-size:22px;
  }
  .school360-dashboard-phase-d .s360-admin-dashboard__utility-card{
    padding:var(--s360-component-card-padding-tight, 14px);
  }
  .school360-dashboard-phase-d .s360-admin-dashboard__notification-chips{
    gap:var(--s360-component-card-heading-gap, 6px);
  }
}

/* UI/IX CSS Phase 4.1 - HR admin forms/tables legacy bridge.
 * Scope: HR workspace only, activated by .s360-ui-legacy-forms-tables.
 * Purpose: migrate visible WordPress legacy form/table controls toward the
 * School 360 UI system without changing actions, nonces, permissions or data.
 */
.s360-ui-legacy-forms-tables,
.s360-ui-legacy-forms-tables *{
  box-sizing:border-box;
}
.s360-ui-legacy-forms-tables .s360-hr-main,
.s360-ui-legacy-forms-tables .s360-ui-section-card--hr-panel,
.s360-ui-legacy-forms-tables .postbox,
.s360-ui-legacy-forms-tables .inside{
  max-width:100%;
  min-width:0;
}
.s360-ui-legacy-forms-tables .s360-hr-header-actions,
.s360-ui-legacy-forms-tables .s360-hr-sticky-actions__buttons,
.s360-ui-legacy-forms-tables .s360-hr-quick-actions,
.s360-ui-legacy-forms-tables .s360-hr-section-actions,
.s360-ui-legacy-forms-tables .s360-hr-filter-actions,
.s360-ui-legacy-forms-tables .s360-hr-row-actions,
.s360-ui-legacy-forms-tables .s360-hr-bulk-controls,
.s360-ui-legacy-forms-tables .s360-u-flex-wrap-4,
.s360-ui-legacy-forms-tables .s360-u-flex-wrap-4-mt-4{
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:var(--s360-component-toolbar-control-gap,var(--s360-space-xs,8px));
  max-width:100%;
  min-width:0;
}
.s360-ui-legacy-forms-tables .s360-ui-button{
  min-height:var(--s360-control-height-sm,34px);
  max-width:100%;
  white-space:normal;
  text-align:center;
}
.s360-ui-legacy-forms-tables :where(.widefat,.s360-ui-table--admin){
  width:100%;
  min-width:min(720px,100%);
  max-width:100%;
  border:1px solid var(--s360-color-border-muted,#d9e2ec);
  border-radius:var(--s360-radius-xl,12px);
  border-spacing:0;
  box-shadow:var(--s360-shadow-sm,0 1px 2px rgba(15,23,42,.06));
  overflow:hidden;
}
.s360-ui-legacy-forms-tables :where(.widefat thead th,.s360-ui-table--admin thead th){
  background:var(--s360-table-header-bg,var(--s360-color-bg-subtle,#f8fafc));
  color:var(--s360-table-header-text,var(--s360-color-text-heading,#0f172a));
  font-size:12px;
  font-weight:800;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.s360-ui-legacy-forms-tables :where(.widefat th,.widefat td,.s360-ui-table--admin th,.s360-ui-table--admin td){
  padding:var(--s360-table-cell-padding-y,12px) var(--s360-table-cell-padding-x,14px);
  vertical-align:top;
  overflow-wrap:anywhere;
}
.s360-ui-legacy-forms-tables :where(.widefat tbody td,.s360-ui-table--admin tbody td){
  border-bottom:1px solid var(--s360-color-border-divider,#edf2f7);
}
.s360-ui-legacy-forms-tables :where(.widefat tbody tr:last-child td,.s360-ui-table--admin tbody tr:last-child td){
  border-bottom:0;
}
.s360-ui-legacy-forms-tables :where(.widefat tbody tr:hover,.s360-ui-table--admin tbody tr:hover){
  background:var(--s360-table-row-hover-bg,var(--s360-color-bg-subtle,#f8fafc));
}
.s360-ui-legacy-forms-tables :where(.s360-hr-table-wrap,.s360-hr-directory-table-wrap,.s360-hr-portal-table-wrap,.postbox .inside){
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.s360-ui-legacy-forms-tables :where(.form-table){
  width:100%;
  max-width:100%;
  margin:0;
  border-collapse:separate;
  border-spacing:0 10px;
}
.s360-ui-legacy-forms-tables :where(.form-table th){
  width:min(240px,34%);
  padding:10px 16px 10px 0;
  color:var(--s360-color-form-label,var(--s360-color-text-tertiary,#64748b));
  font-size:12px;
  font-weight:800;
  letter-spacing:.04em;
  line-height:1.35;
  text-transform:uppercase;
  vertical-align:top;
}
.s360-ui-legacy-forms-tables :where(.form-table td){
  padding:8px 0;
  vertical-align:top;
}
.s360-ui-legacy-forms-tables :where(input.regular-text,input.large-text,textarea.large-text,input.small-text,input[type="text"],input[type="email"],input[type="number"],input[type="date"],input[type="url"],input[type="tel"],select,textarea){
  max-width:100%;
  min-width:0;
  min-height:var(--s360-control-height-md,38px);
  border-color:var(--s360-color-input-border,#cbd5e1);
  border-radius:var(--s360-control-radius,8px);
  box-shadow:var(--s360-shadow-input,0 1px 2px rgba(15,23,42,.04));
}
.s360-ui-legacy-forms-tables :where(input.regular-text,input.large-text,textarea.large-text,textarea){
  width:min(100%,42rem);
}
.s360-ui-legacy-forms-tables :where(input.small-text){
  width:min(100%,7rem);
}
.s360-ui-legacy-forms-tables :where(input:focus,select:focus,textarea:focus){
  border-color:var(--s360-color-input-border-focus,var(--s360-color-primary,#2271b1));
  box-shadow:var(--s360-shadow-input-focus,0 0 0 2px rgba(34,113,177,.18));
  outline:none;
}
.s360-ui-legacy-forms-tables :where(.description,.s360-help,.s360-subtle-note){
  color:var(--s360-color-form-help,var(--s360-color-text-tertiary,#64748b));
  line-height:1.55;
}
@media (max-width:782px){
  .s360-ui-legacy-forms-tables{
    overflow-x:hidden;
  }
  .s360-ui-legacy-forms-tables .s360-hr-header-actions,
  .s360-ui-legacy-forms-tables .s360-hr-sticky-actions__buttons,
  .s360-ui-legacy-forms-tables .s360-hr-quick-actions,
  .s360-ui-legacy-forms-tables .s360-hr-section-actions,
  .s360-ui-legacy-forms-tables .s360-hr-filter-actions,
  .s360-ui-legacy-forms-tables .s360-hr-row-actions,
  .s360-ui-legacy-forms-tables .s360-hr-bulk-controls{
    align-items:stretch;
    width:100%;
  }
  .s360-ui-legacy-forms-tables .s360-ui-button,
  .s360-ui-legacy-forms-tables :where(button.button,input[type="submit"].button,a.button){
    width:100%;
    justify-content:center;
    min-height:44px;
  }
  .s360-ui-legacy-forms-tables :where(.form-table,.form-table tbody,.form-table tr,.form-table th,.form-table td){
    display:block;
    width:100%;
  }
  .s360-ui-legacy-forms-tables :where(.form-table){
    border-spacing:0;
  }
  .s360-ui-legacy-forms-tables :where(.form-table tr){
    padding:12px 0;
    border-bottom:1px solid var(--s360-color-border-divider,#edf2f7);
  }
  .s360-ui-legacy-forms-tables :where(.form-table th,.form-table td){
    padding:4px 0;
  }
  .s360-ui-legacy-forms-tables :where(input.regular-text,input.large-text,input.small-text,textarea.large-text,input[type="text"],input[type="email"],input[type="number"],input[type="date"],input[type="url"],input[type="tel"],select,textarea){
    width:100%;
  }
  .s360-ui-legacy-forms-tables :where(.widefat,.s360-ui-table--admin){
    min-width:100%;
    box-shadow:none;
  }
}

/* UI/IX CSS Phase 4.2 - Expense admin forms/tables legacy bridge.
 * Scope: Expense admin workspace only, activated by .s360-ui-expense-admin-forms-tables.
 * Purpose: continue the Phase 4 module-by-module migration by normalizing
 * high-traffic Expense action rows, detail forms and tables without changing
 * handlers, nonces, permissions, exports, uploads, payments or workflow logic.
 */
.s360-ui-expense-admin-forms-tables{
  --s360-expense-admin-card-gap:var(--s360-space-md,16px);
  overflow-x:clip;
}
.s360-ui-expense-admin-forms-tables .s360-expense-status-center,
.s360-ui-expense-admin-forms-tables .s360-ui-card--expense-detail,
.s360-ui-expense-admin-forms-tables .postbox,
.s360-ui-expense-admin-forms-tables .s360-export-workbench,
.s360-ui-expense-admin-forms-tables .s360-expense-dashboard-panel,
.s360-ui-expense-admin-forms-tables .s360-ui-stat-card--expense-kpi{
  max-width:100%;
  min-width:0;
}
.s360-ui-expense-admin-forms-tables .s360-expense-status-actions,
.s360-ui-expense-admin-forms-tables .s360-detail-page-actions,
.s360-ui-expense-admin-forms-tables .s360-expense-dashboard-actions,
.s360-ui-expense-admin-forms-tables .s360-expense-page-actions,
.s360-ui-expense-admin-forms-tables .s360-export-command-grid,
.s360-ui-expense-admin-forms-tables .s360-receipt-grid,
.s360-ui-expense-admin-forms-tables .s360-bulk-toolbar,
.s360-ui-expense-admin-forms-tables .s360-expense-actions,
.s360-ui-expense-admin-forms-tables .s360-expense-filter-bar,
.s360-ui-expense-admin-forms-tables .s360-ui-card--expense-mobile-actions,
.s360-ui-expense-admin-forms-tables .s360-phase10-actions,
.s360-ui-expense-admin-forms-tables .s360-expense-drawer-head span,
.s360-ui-expense-admin-forms-tables .s360-expense-receipt-modal-head span{
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:var(--s360-component-toolbar-control-gap,var(--s360-space-xs,8px));
  max-width:100%;
  min-width:0;
}
.s360-ui-expense-admin-forms-tables .s360-expense-status-actions,
.s360-ui-expense-admin-forms-tables .s360-detail-page-actions{
  justify-content:flex-end;
}
.s360-ui-expense-admin-forms-tables .s360-expense-page-actions{
  margin:var(--s360-space-md,16px) 0;
}
.s360-ui-expense-admin-forms-tables .s360-ui-button{
  min-height:var(--s360-control-height-sm,34px);
  max-width:100%;
  white-space:normal;
  text-align:center;
}
.s360-ui-expense-admin-forms-tables :where(.s360-detail-form-grid input,.s360-detail-form-grid select,.s360-detail-form-grid textarea){
  max-width:100%;
}
.s360-ui-expense-admin-forms-tables :where(.s360-detail-form-grid){
  max-width:100%;
  min-width:0;
}
.s360-ui-expense-admin-forms-tables :where(.s360-expense-table-wrap,.s360-table-scroll,.s360-dashboard-table-wrap,.s360-expense-list-wrap,.s360-export-table-wrap,.inside){
  max-width:100%;
  min-width:0;
}
.s360-ui-expense-admin-forms-tables :where(.s360-expense-table-wrap,.s360-table-scroll,.s360-dashboard-table-wrap,.s360-expense-list-wrap,.s360-export-table-wrap){
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.s360-ui-expense-admin-forms-tables :where(.s360-ui-table--admin){
  min-width:min(760px,100%);
}
.s360-ui-expense-admin-forms-tables .s360-ui-action-card .s360-ui-button,
.s360-ui-expense-admin-forms-tables .s360-expense-dashboard-actions .s360-ui-button,
.s360-ui-expense-admin-forms-tables .s360-expense-page-actions .s360-ui-button{
  flex:0 1 auto;
}
.s360-ui-expense-admin-forms-tables .s360-bulk-toolbar :where(select,input,button,.s360-ui-button){
  flex:0 1 auto;
}
.s360-ui-expense-admin-forms-tables .s360-expense-drawer-head,
.s360-ui-expense-admin-forms-tables .s360-expense-receipt-modal-head{
  gap:var(--s360-space-sm,12px);
}
.s360-ui-expense-admin-forms-tables .s360-expense-drawer-body,
.s360-ui-expense-admin-forms-tables .s360-expense-receipt-modal{
  max-width:100%;
}
@media (max-width:782px){
  .s360-ui-expense-admin-forms-tables{
    overflow-x:hidden;
  }
  .s360-ui-expense-admin-forms-tables .s360-expense-status-center,
  .s360-ui-expense-admin-forms-tables .s360-detail-page-header,
  .s360-ui-expense-admin-forms-tables .s360-expense-dashboard-panels{
    grid-template-columns:1fr;
  }
  .s360-ui-expense-admin-forms-tables .s360-expense-status-actions,
  .s360-ui-expense-admin-forms-tables .s360-detail-page-actions,
  .s360-ui-expense-admin-forms-tables .s360-expense-dashboard-actions,
  .s360-ui-expense-admin-forms-tables .s360-expense-page-actions,
  .s360-ui-expense-admin-forms-tables .s360-bulk-toolbar,
  .s360-ui-expense-admin-forms-tables .s360-expense-filter-bar,
  .s360-ui-expense-admin-forms-tables .s360-ui-card--expense-mobile-actions{
    align-items:stretch;
    flex-direction:column;
    justify-content:flex-start;
  }
  .s360-ui-expense-admin-forms-tables .s360-ui-button,
  .s360-ui-expense-admin-forms-tables .s360-expense-status-actions .s360-ui-button,
  .s360-ui-expense-admin-forms-tables .s360-detail-page-actions .s360-ui-button,
  .s360-ui-expense-admin-forms-tables .s360-expense-dashboard-actions .s360-ui-button,
  .s360-ui-expense-admin-forms-tables .s360-expense-page-actions .s360-ui-button{
    width:100%;
  }
}

/* UI/IX CSS Phase 9.3 - HR/Expense source-level table cleanup.
 * Purpose: keep migrated s360-ui-table admin tables visually aligned with the
 * earlier scoped legacy bridges while the remaining form/button cleanup stays
 * module-by-module.
 */
.s360-ui-table--admin{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  background:var(--s360-color-surface-raised,#fff);
}
.s360-ui-table--hr,
.s360-ui-table--expense{
  min-width:min(760px,100%);
}
.s360-ui-table--admin.striped > tbody > :nth-child(odd){
  background:var(--s360-table-row-striped-bg,#f9fafb);
}
.s360-ui-table--admin caption.s360-u-sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
@media (max-width:782px){
  .s360-ui-table--hr,
  .s360-ui-table--expense{
    min-width:100%;
  }
}

/* UI/IX CSS Phase 9.4 - People/Documents/Attendance source-level table cleanup.
 * Purpose: keep the next admin source-level table migrations aligned with the
 * shared s360-ui admin table system while preserving previous scoped bridge
 * behavior for forms, buttons and unmigrated modules.
 */
.s360-ui-table--management,
.s360-ui-table--gallery-documents,
.s360-ui-table--attendance{
  min-width:min(760px,100%);
}
.s360-ui-management-admin-forms-tables .s360-ui-table--management,
.s360-ui-gallery-documents-admin-forms-tables .s360-ui-table--gallery-documents,
.s360-ui-attendance-admin-forms-tables .s360-ui-table--attendance{
  border:1px solid var(--s360-color-border,#d5dbe7);
  border-radius:var(--s360-radius-md,10px);
  overflow:hidden;
}
.s360-ui-gallery-documents-admin-forms-tables .s360-ui-table--gallery-documents.s360-gd-table{
  min-width:min(600px,100%);
}
.s360-ui-attendance-admin-forms-tables .s360-ui-table--attendance.s360-u-max-w-full{
  min-width:100%;
}
@media (max-width:782px){
  .s360-ui-table--management,
  .s360-ui-table--gallery-documents,
  .s360-ui-table--attendance{
    min-width:100%;
  }
  .s360-ui-management-admin-forms-tables :where(.s360-ui-table--management),
  .s360-ui-gallery-documents-admin-forms-tables :where(.s360-ui-table--gallery-documents),
  .s360-ui-attendance-admin-forms-tables :where(.s360-ui-table--attendance){
    width:100%;
  }
}


/* UI/IX CSS Phase 4.3 - Management/User admin forms/tables legacy bridge.
 * Scope: School 360 People > Users workspace only, activated by
 * .s360-ui-management-admin-forms-tables.
 * Purpose: continue the Phase 4 module-by-module migration by normalizing
 * the high-traffic user management forms, relationship tables, profile cards
 * and action rows without changing handlers, nonces, permissions or data.
 */
.s360-ui-management-admin-forms-tables{
  --s360-management-admin-card-gap:var(--s360-space-md,16px);
  overflow-x:clip;
}
.s360-ui-management-admin-forms-tables :where(.s360-ui-card,.s360-ui-section-card,.postbox,.inside,.s360-user-profile,.s360-user-overview,.s360-user-relations,.s360-user-portal,.s360-user-activity,.s360-user-notes){
  max-width:100%;
  min-width:0;
}
.s360-ui-management-admin-forms-tables :where(.s360-ui-grid,.s360-ui-grid--summary,.s360-ui-grid--wide,.s360-two-col,.s360-three-col,.s360-grid,.s360-grid-2,.s360-grid-3){
  max-width:100%;
  min-width:0;
  gap:var(--s360-management-admin-card-gap);
}
.s360-ui-management-admin-forms-tables :where(.s360-ui-card,.postbox .inside){
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.s360-ui-management-admin-forms-tables :where(.nav-tab-wrapper,.subsubsub,.s360-u-flex-wrap-center-6,.s360-u-flex-wrap-center-8,.s360-u-flex-wrap-8,.s360-u-flex-between-start-16,.s360-user-quick-actions){
  max-width:100%;
  min-width:0;
}
.s360-ui-management-admin-forms-tables :where(.subsubsub){
  display:flex;
  flex-wrap:wrap;
  gap:var(--s360-space-xs,8px);
  float:none;
  margin:var(--s360-space-sm,12px) 0 var(--s360-space-md,16px);
}
.s360-ui-management-admin-forms-tables :where(.subsubsub li){
  margin:0;
  white-space:normal;
}
.s360-ui-management-admin-forms-tables :where(.s360-u-flex-wrap-center-6,.s360-u-flex-wrap-center-8,.s360-u-flex-wrap-8,.s360-u-flex-between-start-16,.s360-user-quick-actions > div){ 
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:var(--s360-component-toolbar-control-gap,var(--s360-space-xs,8px));
}
.s360-ui-management-admin-forms-tables .s360-ui-button,
.s360-ui-management-admin-forms-tables :where(button.button,input[type="submit"].button,a.button){
  max-width:100%;
  min-height:var(--s360-control-height-sm,34px);
  white-space:normal;
  text-align:center;
}
.s360-ui-management-admin-forms-tables :where(button.button,input[type="submit"].button,a.button):not(.s360-ui-button){
  border-radius:var(--s360-control-radius,8px);
  box-shadow:var(--s360-shadow-input,0 1px 2px rgba(15,23,42,.04));
}
.s360-ui-management-admin-forms-tables :where(.s360-badge){
  max-width:100%;
  overflow-wrap:anywhere;
}
.s360-ui-management-admin-forms-tables :where(.widefat,.s360-ui-table--admin){
  min-width:min(760px,100%);
}
.s360-ui-management-admin-forms-tables :where(input.regular-text,input.large-text,textarea.large-text,select){
  max-width:100%;
}
.s360-ui-management-admin-forms-tables :where(input.regular-text,input.large-text,textarea.large-text){
  width:min(100%,42rem);
}
.s360-ui-management-admin-forms-tables :where(.s360-user-form,.s360-user-form .form-table){
  max-width:100%;
}
@media (max-width:782px){
  .s360-ui-management-admin-forms-tables{
    overflow-x:hidden;
  }
  .s360-ui-management-admin-forms-tables :where(.s360-ui-grid,.s360-ui-grid--summary,.s360-ui-grid--wide,.s360-two-col,.s360-three-col,.s360-grid,.s360-grid-2,.s360-grid-3){
    grid-template-columns:1fr;
  }
  .s360-ui-management-admin-forms-tables :where(.nav-tab-wrapper){
    display:flex;
    flex-wrap:wrap;
    gap:var(--s360-space-xs,8px);
  }
  .s360-ui-management-admin-forms-tables :where(.nav-tab){
    margin:0;
    min-height:40px;
  }
  .s360-ui-management-admin-forms-tables :where(.s360-u-flex-wrap-center-6,.s360-u-flex-wrap-center-8,.s360-u-flex-wrap-8,.s360-u-flex-between-start-16,.s360-user-quick-actions > div){
    align-items:stretch;
    flex-direction:column;
    width:100%;
  }
  .s360-ui-management-admin-forms-tables .s360-ui-button,
  .s360-ui-management-admin-forms-tables :where(button.button,input[type="submit"].button,a.button){
    justify-content:center;
    min-height:44px;
    width:100%;
  }
  .s360-ui-management-admin-forms-tables :where(input.regular-text,input.large-text,input.small-text,textarea.large-text,select){
    width:100%;
  }
  .s360-ui-management-admin-forms-tables :where(.widefat,.s360-ui-table--admin){
    min-width:100%;
  }
}

/* UI/IX CSS Phase 4.4 - Gallery/Documents admin forms/tables legacy bridge.
 * Scope: School 360 > Content & Assets > Document Center only, activated by
 * .s360-ui-gallery-documents-admin-forms-tables.
 * Purpose: continue Phase 4 module-by-module migration by normalizing document
 * center action controls, requirement forms, filters and table wrappers without
 * changing upload, review, nonce, permission, export or persistence workflows.
 */
.s360-ui-gallery-documents-admin-forms-tables{
  --s360-gallery-documents-gap:var(--s360-space-md,16px);
  overflow-x:clip;
}
.s360-ui-gallery-documents-admin-forms-tables :where(.s360-ui-card,.s360-gd-list-shell,.s360-gd-form-shell,.s360-gd-form-panel,.s360-gd-audience-picker,.s360-overflow-x,.s360-gd-table-wrap){
  max-width:100%;
  min-width:0;
}
.s360-ui-gallery-documents-admin-forms-tables :where(.s360-ui-grid,.s360-grid,.s360-grid-2,.s360-u-grid-fill-160-16){
  max-width:100%;
  min-width:0;
  gap:var(--s360-gallery-documents-gap);
}
.s360-ui-gallery-documents-admin-forms-tables :where(.nav-tab-wrapper){
  display:flex;
  flex-wrap:wrap;
  gap:var(--s360-space-xs,8px);
  border-bottom:1px solid var(--s360-color-border,#d0d7de);
}
.s360-ui-gallery-documents-admin-forms-tables :where(.nav-tab){
  margin:0;
  white-space:normal;
}
.s360-ui-gallery-documents-admin-forms-tables :where(.s360-cluster,.s360-cluster-between,.s360-inline-actions,.s360-u-flex-6,.s360-u-gap-6-wrap,.s360-u-gap-8,.s360-u-gap-8-items-center,.s360-u-wrap-gap-6-start){
  max-width:100%;
  min-width:0;
}
.s360-ui-gallery-documents-admin-forms-tables :where(.s360-cluster,.s360-cluster-between,.s360-inline-actions,.s360-u-flex-6,.s360-u-gap-6-wrap,.s360-u-gap-8,.s360-u-gap-8-items-center,.s360-u-wrap-gap-6-start){
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:var(--s360-component-toolbar-control-gap,var(--s360-space-xs,8px));
}
.s360-ui-gallery-documents-admin-forms-tables :where(.s360-cluster-between){
  justify-content:space-between;
}
.s360-ui-gallery-documents-admin-forms-tables .s360-ui-button,
.s360-ui-gallery-documents-admin-forms-tables :where(button.button,input[type="submit"].button,a.button){
  max-width:100%;
  min-height:var(--s360-control-height-sm,34px);
  white-space:normal;
  text-align:center;
}
.s360-ui-gallery-documents-admin-forms-tables :where(.s360-overflow-x,.s360-gd-table-wrap){
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.s360-ui-gallery-documents-admin-forms-tables :where(.s360-ui-table--admin){
  min-width:min(760px,100%);
}
.s360-ui-gallery-documents-admin-forms-tables :where(.s360-gd-table){
  min-width:980px;
}
.s360-ui-gallery-documents-admin-forms-tables :where(input.regular-text,input.large-text,input.small-text,textarea.large-text,select,input[type="search"],input[type="text"],input[type="number"],input[type="date"],input[type="url"]){
  max-width:100%;
}
.s360-ui-gallery-documents-admin-forms-tables :where(input.regular-text,input.large-text,textarea.large-text,input[type="search"],input[type="text"],input[type="url"]){
  width:min(100%,42rem);
}
.s360-ui-gallery-documents-admin-forms-tables :where(textarea.large-text){
  min-height:120px;
}
.s360-ui-gallery-documents-admin-forms-tables :where(input.small-text){
  width:min(100%,8rem);
}
.s360-ui-gallery-documents-admin-forms-tables :where(.s360-gd-audience-picker details p){
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:var(--s360-space-xs,8px);
}
.s360-ui-gallery-documents-admin-forms-tables :where(.s360-badge){
  max-width:100%;
  overflow-wrap:anywhere;
}
@media (max-width:782px){
  .s360-ui-gallery-documents-admin-forms-tables{
    overflow-x:hidden;
  }
  .s360-ui-gallery-documents-admin-forms-tables :where(.s360-ui-grid,.s360-grid,.s360-grid-2,.s360-u-grid-fill-160-16){
    grid-template-columns:1fr;
  }
  .s360-ui-gallery-documents-admin-forms-tables :where(.s360-cluster-between,.s360-inline-actions,.s360-u-flex-6,.s360-u-gap-6-wrap,.s360-u-gap-8,.s360-u-gap-8-items-center,.s360-u-wrap-gap-6-start,.s360-gd-audience-picker details p){
    align-items:stretch;
    flex-direction:column;
    justify-content:flex-start;
    width:100%;
  }
  .s360-ui-gallery-documents-admin-forms-tables .s360-ui-button,
  .s360-ui-gallery-documents-admin-forms-tables :where(button.button,input[type="submit"].button,a.button){
    justify-content:center;
    min-height:44px;
    width:100%;
  }
  .s360-ui-gallery-documents-admin-forms-tables :where(.form-table,.form-table tbody,.form-table tr,.form-table th,.form-table td){
    display:block;
    width:100%;
  }
  .s360-ui-gallery-documents-admin-forms-tables :where(.form-table th,.form-table td){
    padding:8px 0;
  }
  .s360-ui-gallery-documents-admin-forms-tables :where(input.regular-text,input.large-text,input.small-text,textarea.large-text,select,input[type="search"],input[type="text"],input[type="number"],input[type="date"],input[type="url"]){
    width:100%;
  }
  .s360-ui-gallery-documents-admin-forms-tables :where(.s360-ui-table--admin){
    min-width:100%;
  }
  .s360-ui-gallery-documents-admin-forms-tables :where(.s360-gd-table){
    min-width:920px;
  }
}

/* UI/IX CSS Phase 4.5 - Attendance / Student Operations forms/tables legacy bridge.
 * Scope: School 360 > Students > Operations / Attendance workspace only,
 * activated by .s360-ui-attendance-admin-forms-tables.
 * Purpose: continue Phase 4 module-by-module migration by normalizing roster,
 * attendance insight tables, student workspace forms, pending parent update
 * action controls and inline editor controls without changing attendance,
 * profile, medical, approval, nonce, permission, upload or persistence logic.
 */
.s360-ui-attendance-admin-forms-tables{
  --s360-attendance-admin-gap:var(--s360-space-md,16px);
  overflow-x:clip;
}
.s360-ui-attendance-admin-forms-tables :where(.s360-ui-card,.s360-ui-section-card,.s360-inline-editor,.s360-inline-editor__form,.s360-student-workspace-grid,.s360-student-workspace-shell,.s360-stats-grid,.s360-doc-upload-grid,.s360-ui-card--note){
  max-width:100%;
  min-width:0;
}
.s360-ui-attendance-admin-forms-tables :where(.s360-ui-grid,.s360-u-grid-180-14-mv-lg,.s360-u-grid-2-start-16,.s360-stats-grid,.s360-doc-upload-grid){
  max-width:100%;
  min-width:0;
  gap:var(--s360-attendance-admin-gap);
}
.s360-ui-attendance-admin-forms-tables :where(.nav-tab-wrapper){
  display:flex;
  flex-wrap:wrap;
  gap:var(--s360-space-xs,8px);
  border-bottom:1px solid var(--s360-color-border,#d0d7de);
}
.s360-ui-attendance-admin-forms-tables :where(.nav-tab){
  margin:0;
  white-space:normal;
}
.s360-ui-attendance-admin-forms-tables :where(.s360-u-flex-end-12,.s360-u-flex-center-10,.s360-inline-editor__actions,.s360-pending-update-actions,.s360-u-flex-center-10-mb-8){
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:var(--s360-component-toolbar-control-gap,var(--s360-space-xs,8px));
  max-width:100%;
  min-width:0;
}
.s360-ui-attendance-admin-forms-tables :where(.s360-u-flex-end-12){
  justify-content:flex-end;
}
.s360-ui-attendance-admin-forms-tables :where(.s360-inline-editor__actions){
  margin:var(--s360-space-sm,12px) 0 0;
}
.s360-ui-attendance-admin-forms-tables .s360-ui-button,
.s360-ui-attendance-admin-forms-tables :where(button.button,input[type="submit"].button,a.button){
  max-width:100%;
  min-height:var(--s360-control-height-sm,34px);
  text-align:center;
  white-space:normal;
}
.s360-ui-attendance-admin-forms-tables :where(button.button,input[type="submit"].button,a.button):not(.s360-ui-button){
  border-radius:var(--s360-control-radius,8px);
  box-shadow:var(--s360-shadow-input,0 1px 2px rgba(15,23,42,.04));
}
.s360-ui-attendance-admin-forms-tables :where(.s360-ui-card,.s360-ui-section-card__body,.s360-inline-editor__form){
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.s360-ui-attendance-admin-forms-tables > table.widefat,
.s360-ui-attendance-admin-forms-tables :where(.s360-table-wrap,.s360-u-overflow-x-auto){
  display:block;
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.s360-ui-attendance-admin-forms-tables :where(.s360-ui-table--admin){
  min-width:min(780px,100%);
}
.s360-ui-attendance-admin-forms-tables :where(.s360-student-workspace-grid .widefat){
  min-width:min(720px,100%);
}
.s360-ui-attendance-admin-forms-tables :where(.form-table){
  max-width:100%;
}
.s360-ui-attendance-admin-forms-tables :where(input.regular-text,input.large-text,input.small-text,textarea.large-text,select,input[type="search"],input[type="text"],input[type="email"],input[type="number"],input[type="date"],input[type="url"],input[type="tel"],textarea){
  max-width:100%;
}
.s360-ui-attendance-admin-forms-tables :where(input.regular-text,input.large-text,textarea.large-text,input[type="search"],input[type="text"],input[type="email"],input[type="url"],input[type="tel"],textarea){
  width:min(100%,42rem);
}
.s360-ui-attendance-admin-forms-tables :where(input.small-text){
  width:min(100%,8rem);
}
.s360-ui-attendance-admin-forms-tables :where(select[multiple]){
  min-height:120px;
}
.s360-ui-attendance-admin-forms-tables :where(.s360-badge,.s360-badge){
  max-width:100%;
  overflow-wrap:anywhere;
}
@media (max-width:782px){
  .s360-ui-attendance-admin-forms-tables{
    overflow-x:hidden;
  }
  .s360-ui-attendance-admin-forms-tables :where(.s360-ui-grid,.s360-u-grid-180-14-mv-lg,.s360-u-grid-2-start-16,.s360-stats-grid,.s360-doc-upload-grid,.s360-student-workspace-grid){
    grid-template-columns:1fr;
  }
  .s360-ui-attendance-admin-forms-tables :where(.nav-tab-wrapper){
    gap:var(--s360-space-xs,8px);
  }
  .s360-ui-attendance-admin-forms-tables :where(.nav-tab){
    min-height:40px;
  }
  .s360-ui-attendance-admin-forms-tables :where(.s360-u-flex-end-12,.s360-u-flex-center-10,.s360-inline-editor__actions,.s360-pending-update-actions,.s360-u-flex-center-10-mb-8){
    align-items:stretch;
    flex-direction:column;
    justify-content:flex-start;
    width:100%;
  }
  .s360-ui-attendance-admin-forms-tables .s360-ui-button,
  .s360-ui-attendance-admin-forms-tables :where(button.button,input[type="submit"].button,a.button){
    justify-content:center;
    min-height:44px;
    width:100%;
  }
  .s360-ui-attendance-admin-forms-tables :where(.form-table,.form-table tbody,.form-table tr,.form-table th,.form-table td){
    display:block;
    width:100%;
  }
  .s360-ui-attendance-admin-forms-tables :where(.form-table th,.form-table td){
    padding:8px 0;
  }
  .s360-ui-attendance-admin-forms-tables :where(input.regular-text,input.large-text,input.small-text,textarea.large-text,select,input[type="search"],input[type="text"],input[type="email"],input[type="number"],input[type="date"],input[type="url"],input[type="tel"],textarea){
    width:100%;
  }
  .s360-ui-attendance-admin-forms-tables :where(.s360-ui-table--admin){
    min-width:100%;
  }
}

/* UI/IX CSS Phase 4.6 - Admissions / Enrollment admin forms/tables legacy bridge.
 * Scope: School 360 > Admissions & Enrollment workspace only,
 * activated by .s360-ui-admissions-admin-forms-tables.
 * Purpose: continue Phase 4 module-by-module migration by normalizing admissions
 * action controls, filters, detail tabs, enrollment setup forms, decision tools,
 * waitlist/capacity/scoring/inbox tables and field builder controls without
 * changing admissions, enrollment, communication, nonce, permission or persistence logic.
 */
.s360-ui-admissions-admin-forms-tables{
  --s360-admissions-admin-gap:var(--s360-space-md,16px);
  overflow-x:clip;
}
.s360-ui-admissions-admin-forms-tables :where(.s360-ui-card,.s360-ui-card--progress,.s360-status-ownership-panel,.s360-admissions-action-center,.s360-admissions-command-center,.s360-admissions-parent-message-inbox,.s360-admissions-status-insight,.s360-enrollment-preview-panel,.s360-builder-panel,.s360-builder-modal,.s360-repeater-row){
  max-width:100%;
  min-width:0;
}
.s360-ui-admissions-admin-forms-tables :where(.s360-two-col,.s360-grid,.s360-grid-2,.s360-grid-3,.s360-grid-4,.s360-stats,.s360-admissions-command-grid,.s360-admissions-action-queue-grid,.s360-admissions-status-grid,.s360-enrollment-grid){
  max-width:100%;
  min-width:0;
  gap:var(--s360-admissions-admin-gap);
}
.s360-ui-admissions-admin-forms-tables :where(.s360-ui-tabs__nav,.s360-admissions-detail-tabs .s360-ui-tabs__nav,.nav-tab-wrapper){
  display:flex;
  flex-wrap:wrap;
  gap:var(--s360-space-xs,8px);
}
.s360-ui-admissions-admin-forms-tables :where(.s360-ui-tabs__link,.nav-tab){
  min-width:0;
  white-space:normal;
}
.s360-ui-admissions-admin-forms-tables :where(.s360-admissions-quick-actions,.s360-review-action-buttons,.s360-builder-toolbar,.s360-builder-modal__footer,.s360-admissions-parent-message-inbox__footer,.s360-admissions-action-row,.s360-email-thread-actions,.s360-waitlist-actions,.s360-capacity-actions,.s360-repeater-row,.s360-u-flex-end-12,.s360-u-flex-center-10){
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:var(--s360-component-toolbar-control-gap,var(--s360-space-xs,8px));
  max-width:100%;
  min-width:0;
}
.s360-ui-admissions-admin-forms-tables .s360-ui-button,
.s360-ui-admissions-admin-forms-tables :where(button.button,input[type="submit"].button,a.button){
  max-width:100%;
  min-height:var(--s360-control-height-sm,34px);
  text-align:center;
  white-space:normal;
}
.s360-ui-admissions-admin-forms-tables :where(button.button,input[type="submit"].button,a.button):not(.s360-ui-button){
  border-radius:var(--s360-control-radius,8px);
  box-shadow:var(--s360-shadow-input,0 1px 2px rgba(15,23,42,.04));
}
.s360-ui-admissions-admin-forms-tables :where(.s360-ui-card,.s360-ui-table-wrap,.s360-table-wrap,.s360-u-overflow-x-auto,.s360-admissions-table-wrap,.s360-status-ownership-panel,.s360-builder-table-wrap){
  max-width:100%;
}
.s360-ui-admissions-admin-forms-tables :where(.s360-ui-table-wrap,.s360-table-wrap,.s360-u-overflow-x-auto,.s360-admissions-table-wrap,.s360-builder-table-wrap){
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.s360-ui-admissions-admin-forms-tables :where(.widefat,.s360-ui-table--admin){
  min-width:min(820px,100%);
}
.s360-ui-admissions-admin-forms-tables :where(input.regular-text,input.large-text,input.small-text,textarea.large-text,select,input[type="search"],input[type="text"],input[type="email"],input[type="number"],input[type="date"],input[type="url"],input[type="tel"],textarea){
  max-width:100%;
}
.s360-ui-admissions-admin-forms-tables :where(input.regular-text,input.large-text,textarea.large-text,input[type="search"],input[type="text"],input[type="email"],input[type="url"],input[type="tel"],textarea){
  width:min(100%,44rem);
}
.s360-ui-admissions-admin-forms-tables :where(input.small-text){
  width:min(100%,8rem);
}
.s360-ui-admissions-admin-forms-tables :where(select[multiple]){
  min-height:120px;
}
.s360-ui-admissions-admin-forms-tables :where(.s360-badge,.s360-badge,.s360-admissions-status-chip){
  max-width:100%;
  overflow-wrap:anywhere;
}
.s360-ui-admissions-admin-forms-tables :where(.s360-repeater-row input){
  flex:1 1 16rem;
  min-width:0;
}
@media (max-width:782px){
  .s360-ui-admissions-admin-forms-tables{
    overflow-x:hidden;
  }
  .s360-ui-admissions-admin-forms-tables :where(.s360-two-col,.s360-grid,.s360-grid-2,.s360-grid-3,.s360-grid-4,.s360-stats,.s360-admissions-command-grid,.s360-admissions-action-queue-grid,.s360-admissions-status-grid,.s360-enrollment-grid){
    grid-template-columns:1fr;
  }
  .s360-ui-admissions-admin-forms-tables :where(.s360-ui-tabs__nav,.nav-tab-wrapper){
    gap:var(--s360-space-xs,8px);
  }
  .s360-ui-admissions-admin-forms-tables :where(.s360-admissions-quick-actions,.s360-review-action-buttons,.s360-builder-toolbar,.s360-builder-modal__footer,.s360-admissions-parent-message-inbox__footer,.s360-admissions-action-row,.s360-email-thread-actions,.s360-waitlist-actions,.s360-capacity-actions,.s360-repeater-row,.s360-u-flex-end-12,.s360-u-flex-center-10){
    align-items:stretch;
    flex-direction:column;
    justify-content:flex-start;
    width:100%;
  }
  .s360-ui-admissions-admin-forms-tables .s360-ui-button,
  .s360-ui-admissions-admin-forms-tables :where(button.button,input[type="submit"].button,a.button){
    justify-content:center;
    min-height:44px;
    width:100%;
  }
  .s360-ui-admissions-admin-forms-tables :where(.form-table,.form-table tbody,.form-table tr,.form-table th,.form-table td){
    display:block;
    width:100%;
  }
  .s360-ui-admissions-admin-forms-tables :where(.form-table th,.form-table td){
    padding:8px 0;
  }
  .s360-ui-admissions-admin-forms-tables :where(input.regular-text,input.large-text,input.small-text,textarea.large-text,select,input[type="search"],input[type="text"],input[type="email"],input[type="number"],input[type="date"],input[type="url"],input[type="tel"],textarea){
    width:100%;
  }
  .s360-ui-admissions-admin-forms-tables :where(.widefat,.s360-ui-table--admin){
    min-width:100%;
  }
}

/*
 * UI/IX CSS Phase 4.7 - Finance / Billing admin forms and tables bridge.
 * Scope: Finance workspace only, activated by .s360-ui-finance-admin-forms-tables.
 * Purpose: continue Phase 4 module-by-module migration by normalizing finance
 * action controls, reports, gateways, ledger, bulk operations, import, documents,
 * reminders, audit/adjustment and refund UI without changing payment, gateway,
 * nonce, permission, export/import or accounting logic.
 */
.s360-ui-finance-admin-forms-tables{
  --s360-finance-admin-gap:var(--s360-space-md,16px);
  overflow-x:clip;
}
.s360-ui-finance-admin-forms-tables :where(.s360-ui-card,.s360-ui-section-card--finance-overview,.s360-ui-section-card--finance-workflow,.s360-finance-ledger-toolbar,[data-s360-finance-card="ledger-filter"],[data-s360-finance-card="ledger-results"],[data-s360-finance-card="bulk"],[data-s360-finance-card="import"],.s360-ui-card--finance-document,[data-s360-finance-card="refund-form"],.s360-finance-refund-help,[data-s360-finance-card="audit-history"],.s360-payment-add-panel,.s360-ui-card--finance-report){
  max-width:100%;
  min-width:0;
}
.s360-ui-finance-admin-forms-tables :where(.s360-finance-kpi-grid,.s360-finance-action-grid,.s360-finance-workflow-grid,.s360-finance-report-grid,.s360-finance-gateway-grid,.s360-finance-ledger-filter-grid,.s360-finance-bulk-grid,.s360-finance-import-grid,.s360-document-grid,.s360-finance-refunds-grid,.s360-finance-audit-history-grid,.s360-finance-refunds-summary,.s360-reminder-settings-grid){
  max-width:100%;
  min-width:0;
  gap:var(--s360-finance-admin-gap);
}
.s360-ui-finance-admin-forms-tables .s360-finance-tabs{
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:var(--s360-space-xs,8px);
  max-width:100%;
  overflow-x:visible;
}
.s360-ui-finance-admin-forms-tables .s360-finance-tab-link{
  min-width:0;
  white-space:normal;
}
.s360-ui-finance-admin-forms-tables :where(.s360-finance-workspace-actions,.s360-finance-ledger-toolbar-actions,.s360-finance-ledger-filter-actions,.s360-finance-ledger-export-actions,.s360-finance-ledger-footer,.s360-finance-bulk-submit-row,.s360-document-actions,.s360-reminder-automation-status,.s360-finance-refund-submit,.s360-payment-add-panel-header,.s360-finance-gateway-actions,.s360-finance-report-actions,.s360-finance-refresh-form){
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:var(--s360-component-toolbar-control-gap,var(--s360-space-xs,8px));
  max-width:100%;
  min-width:0;
}
.s360-ui-finance-admin-forms-tables .s360-ui-button{
  max-width:100%;
  min-height:var(--s360-control-height-sm,34px);
  text-align:center;
  white-space:normal;
}
.s360-ui-finance-admin-forms-tables :where(.s360-table-scroll,.s360-finance-ledger-table-wrap,.s360-finance-gateway-activity,.s360-finance-gateway-reconciliation-table,.s360-finance-gateway-failed-events,.s360-finance-gateway-logs,.s360-finance-permission-matrix,[data-s360-finance-card="audit-history"]){
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.s360-ui-finance-admin-forms-tables :where(.s360-ui-table--admin){
  min-width:920px;
}
.s360-ui-finance-admin-forms-tables :where(.s360-finance-mini-table){
  min-width:680px;
}
.s360-ui-finance-admin-forms-tables :where(select,input[type="search"],input[type="text"],input[type="email"],input[type="number"],input[type="date"],input[type="month"],input[type="url"],input[type="file"],textarea){
  max-width:100%;
}
.s360-ui-finance-admin-forms-tables :where(input[type="search"],input[type="text"],input[type="email"],input[type="url"],input[type="file"],textarea){
  width:min(100%,44rem);
}
.s360-ui-finance-admin-forms-tables :where(.s360-badge,.s360-badge,.s360-finance-status-chip,.s360-finance-kpi-value,.s360-finance-kpi-label,.s360-finance-kpi-hint){
  max-width:100%;
  overflow-wrap:anywhere;
}
.s360-ui-finance-admin-forms-tables :where(.s360-document-form label,.s360-finance-import-form label,.s360-finance-refund-form label,.s360-finance-bulk-form-grid label){
  max-width:100%;
  min-width:0;
}
@media (max-width:782px){
  .s360-ui-finance-admin-forms-tables{
    overflow-x:hidden;
  }
  .s360-ui-finance-admin-forms-tables :where(.s360-finance-kpi-grid,.s360-finance-action-grid,.s360-finance-workflow-grid,.s360-finance-report-grid,.s360-finance-gateway-grid,.s360-finance-ledger-filter-grid,.s360-finance-bulk-grid,.s360-finance-import-grid,.s360-document-grid,.s360-finance-refunds-grid,.s360-finance-audit-history-grid,.s360-finance-refunds-summary,.s360-reminder-settings-grid){
    grid-template-columns:1fr;
  }
  .s360-ui-finance-admin-forms-tables .s360-finance-tabs{
    align-items:stretch;
    flex-direction:column;
  }
  .s360-ui-finance-admin-forms-tables .s360-finance-tab-link{
    text-align:left;
    width:100%;
  }
  .s360-ui-finance-admin-forms-tables :where(.s360-finance-workspace-actions,.s360-finance-ledger-toolbar-actions,.s360-finance-ledger-filter-actions,.s360-finance-ledger-export-actions,.s360-finance-ledger-footer,.s360-finance-bulk-submit-row,.s360-document-actions,.s360-reminder-automation-status,.s360-finance-refund-submit,.s360-payment-add-panel-header,.s360-finance-gateway-actions,.s360-finance-report-actions,.s360-finance-refresh-form){
    align-items:stretch;
    flex-direction:column;
    justify-content:flex-start;
    width:100%;
  }
  .s360-ui-finance-admin-forms-tables .s360-ui-button{
    justify-content:center;
    min-height:44px;
    width:100%;
  }
  .s360-ui-finance-admin-forms-tables :where(select,input[type="search"],input[type="text"],input[type="email"],input[type="number"],input[type="date"],input[type="month"],input[type="url"],input[type="file"],textarea){
    width:100%;
  }
  .s360-ui-finance-admin-forms-tables :where(.s360-ui-table--admin){
    min-width:720px;
  }
  .s360-ui-finance-admin-forms-tables :where(.s360-finance-mini-table){
    min-width:640px;
  }
}

/*
 * UI/IX CSS Phase 4.8 - Communication / Notifications admin forms and tables bridge.
 * Scope: Communication Center only, activated by .s360-ui-communication-admin-forms-tables.
 * Purpose: continue Phase 4 module-by-module migration by normalizing messages,
 * announcements, targeted notifications, broadcast, planning and communication
 * activity controls without changing delivery, scheduling, permission, nonce,
 * export, read-state or activity-log logic.
 */
.s360-ui-communication-admin-forms-tables{
  --s360-communication-admin-gap:var(--s360-space-md,16px);
  overflow-x:clip;
}
.s360-ui-communication-admin-forms-tables :where(.s360-ui-card,.s360-ui-grid,.s360-two-col,.s360-grid,.s360-grid-2,.s360-grid-3,.s360-grid-4,.s360-notification-detail,.postbox){
  max-width:100%;
  min-width:0;
}
.s360-ui-communication-admin-forms-tables :where(.s360-ui-grid,.s360-two-col,.s360-grid,.s360-grid-2,.s360-grid-3,.s360-grid-4,.s360-u-grid-280-16-mt16){
  gap:var(--s360-communication-admin-gap);
  max-width:100%;
  min-width:0;
}
.s360-ui-communication-admin-forms-tables :where(.nav-tab-wrapper,.s360-ui-tabs__nav){
  display:flex;
  flex-wrap:wrap;
  gap:var(--s360-space-xs,8px);
  max-width:100%;
}
.s360-ui-communication-admin-forms-tables :where(.nav-tab,.s360-ui-tabs__link){
  min-width:0;
  white-space:normal;
}
.s360-ui-communication-admin-forms-tables :where(.s360-cluster,.s360-report-actions,.s360-analytics-filter-actions,.s360-toolbar-actions,.s360-page-hero__actions,.s360-profile-action-row,.tablenav-pages,.pagination-links){
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:var(--s360-component-toolbar-control-gap,var(--s360-space-xs,8px));
  max-width:100%;
  min-width:0;
}
.s360-ui-communication-admin-forms-tables .s360-ui-button{
  max-width:100%;
  min-height:var(--s360-control-height-sm,34px);
  text-align:center;
  white-space:normal;
}
.s360-ui-communication-admin-forms-tables :where(.s360-table-scroll,.s360-ui-table-wrap,.s360-table-wrap,.s360-u-overflow-x-auto,.tablenav,.wp-editor-wrap,.wp-editor-container){
  max-width:100%;
}
.s360-ui-communication-admin-forms-tables :where(.s360-table-scroll,.s360-ui-table-wrap,.s360-table-wrap,.s360-u-overflow-x-auto){
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.s360-ui-communication-admin-forms-tables :where(.s360-ui-table--admin){
  min-width:min(880px,100%);
}
.s360-ui-communication-admin-forms-tables :where(select,input[type="search"],input[type="text"],input[type="email"],input[type="number"],input[type="date"],input[type="datetime-local"],input[type="url"],input[type="tel"],textarea){
  max-width:100%;
}
.s360-ui-communication-admin-forms-tables :where(input[type="search"],input[type="text"],input[type="email"],input[type="url"],input[type="tel"],textarea){
  width:min(100%,44rem);
}
.s360-ui-communication-admin-forms-tables :where(.s360-badge,.s360-badge,.s360-status-badge,.s360-ui-stat-card__value,.s360-text-muted,.description){
  max-width:100%;
  overflow-wrap:anywhere;
}
.s360-ui-communication-admin-forms-tables :where(.s360-text-nowrap){
  white-space:normal;
}
.s360-ui-communication-admin-forms-tables :where(form.s360-u-inline-block,.s360-inline-form){
  display:inline-flex;
  max-width:100%;
  vertical-align:middle;
}
@media (max-width:782px){
  .s360-ui-communication-admin-forms-tables{
    overflow-x:hidden;
  }
  .s360-ui-communication-admin-forms-tables :where(.s360-ui-grid,.s360-two-col,.s360-grid,.s360-grid-2,.s360-grid-3,.s360-grid-4,.s360-u-grid-280-16-mt16){
    grid-template-columns:1fr;
  }
  .s360-ui-communication-admin-forms-tables :where(.s360-cluster,.s360-report-actions,.s360-analytics-filter-actions,.s360-toolbar-actions,.s360-page-hero__actions,.s360-profile-action-row,.tablenav-pages,.pagination-links){
    align-items:stretch;
    flex-direction:column;
    justify-content:flex-start;
    width:100%;
  }
  .s360-ui-communication-admin-forms-tables .s360-ui-button{
    justify-content:center;
    min-height:44px;
    width:100%;
  }
  .s360-ui-communication-admin-forms-tables :where(form.s360-u-inline-block,.s360-inline-form){
    display:flex;
    width:100%;
  }
  .s360-ui-communication-admin-forms-tables :where(select,input[type="search"],input[type="text"],input[type="email"],input[type="number"],input[type="date"],input[type="datetime-local"],input[type="url"],input[type="tel"],textarea){
    width:100%;
  }
  .s360-ui-communication-admin-forms-tables :where(.s360-ui-table--admin){
    min-width:720px;
  }
}


/* UI/IX CSS Phase 9.7 - targeted legacy bridge CSS cleanup.
 * Removed obsolete .widefat selector branches from modules whose source tables
 * were migrated to s360-ui-table in Phases 9.3-9.6. Compatibility remains for
 * global legacy admin surfaces and modules not yet source-cleaned.
 */

/* UI/IX CSS Phase 9.5 - Admissions/Finance/Communication source-level table cleanup.
 * Purpose: align the remaining high-traffic admin table migrations with the
 * shared s360-ui admin table system while preserving existing striped row
 * behavior, finance mini-table hooks and communication/activity table layouts.
 */
.s360-ui-table--admissions,
.s360-ui-table--finance,
.s360-ui-table--communication,
.s360-ui-table--compliance{
  min-width:min(760px,100%);
}
.s360-ui-admissions-admin-forms-tables .s360-ui-table--admissions,
.s360-ui-finance-admin-forms-tables .s360-ui-table--finance,
.s360-ui-communication-admin-forms-tables .s360-ui-table--communication,
.s360-ui-table--compliance{
  border:1px solid var(--s360-color-border,#d5dbe7);
  border-radius:var(--s360-radius-md,10px);
  overflow:hidden;
}
.s360-ui-table--finance.s360-finance-mini-table,
.s360-ui-table--finance.s360-finance-ledger-table,
.s360-ui-table--finance.s360-payment-methods-table{
  min-width:min(900px,100%);
}
.s360-ui-table--communication :where(th,td),
.s360-ui-table--admissions :where(th,td),
.s360-ui-table--finance :where(th,td),
.s360-ui-table--compliance :where(th,td){
  vertical-align:top;
}
@media (max-width:782px){
  .s360-ui-table--admissions,
  .s360-ui-table--finance,
  .s360-ui-table--communication,
  .s360-ui-table--compliance{
    min-width:100%;
  }
  .s360-ui-admissions-admin-forms-tables :where(.s360-ui-table--admissions),
  .s360-ui-finance-admin-forms-tables :where(.s360-ui-table--finance),
  .s360-ui-communication-admin-forms-tables :where(.s360-ui-table--communication),
  :where(.s360-ui-table--compliance){
    width:100%;
  }
  .s360-ui-table--finance.s360-finance-mini-table,
  .s360-ui-table--finance.s360-finance-ledger-table,
  .s360-ui-table--finance.s360-payment-methods-table{
    min-width:100%;
  }
}

/* Phase 9.9: unified admin page header and separated page notice zone. */
.s360-ui-page-header,
.s360-wrap .s360-ui-page-header,
.s360-wrap .s360-admissions-page-header,
.s360-wrap .s360-admissions-detail-header,
.s360-wrap .s360-admin-student-page-header,
.s360-wrap .s360-custom-fields-header,
.s360-wrap .s360-page-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  width:100%;
  max-width:var(--s360-layout-content-max, none);
  min-width:0;
  box-sizing:border-box;
  margin:0 0 16px;
  padding:14px 20px 16px;
  border:1px solid var(--s360-page-header-border, var(--s360-color-border-muted, #d9e2ec));
  border-radius:12px;
  background:var(--s360-page-header-bg, var(--s360-color-surface-raised, #fff));
  box-shadow:0 1px 2px rgba(15,23,42,.04);
  overflow:hidden;
}
.s360-ui-page-header::before,
.s360-ui-page-header::after,
.s360-wrap .s360-ui-page-header::before,
.s360-wrap .s360-ui-page-header::after,
.school360-dashboard-phase-d .s360-ui-page-header::before,
.school360-dashboard-phase-d .s360-ui-page-header::after{
  content:none ;
  display:none ;
}
.s360-ui-page-header__main,
.s360-wrap .s360-ui-page-header__main{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
  max-width:100%;
}
.s360-ui-page-header__eyebrow,
.s360-wrap .s360-ui-page-header__eyebrow{
  margin:0;
  color:var(--s360-color-primary, #2271b1);
  font-size:11px;
  line-height:1.35;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.s360-ui-page-header__title,
.s360-wrap .s360-ui-page-header__title,
.s360-wrap .s360-page-header h1{
  margin:0;
  color:var(--s360-page-header-title, var(--s360-color-text-heading, #0f172a));
  font-size:16px;
  line-height:1.3;
  font-weight:800;
  letter-spacing:-.01em;
}
.s360-ui-page-header__description,
.s360-wrap .s360-ui-page-header__description,
.s360-wrap .s360-page-header .description,
.s360-wrap .s360-page-header p{
  margin:0;
  max-width:min(86ch, 100%);
  color:var(--s360-page-header-description, var(--s360-color-text-secondary, #475569));
  font-size:13px;
  line-height:1.5;
}
.s360-ui-page-header__meta,
.s360-wrap .s360-ui-page-header__meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px 8px;
  margin-top:2px;
}
.s360-ui-page-header__meta-item,
.s360-wrap .s360-ui-page-header__meta-item{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:3px 9px;
  border:1px solid var(--s360-color-border-muted, #d9e2ec);
  border-radius:999px;
  background:var(--s360-color-bg-subtle, #f8fafc);
  color:var(--s360-color-text-secondary, #475569);
  font-size:12px;
  font-weight:700;
}
.s360-ui-page-header__actions,
.s360-wrap .s360-ui-page-header__actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  min-width:0;
}
.s360-ui-page-notices{
  display:grid;
  gap:8px;
  width:100%;
  max-width:var(--s360-layout-content-max, none);
  min-width:0;
  box-sizing:border-box;
  margin:-4px 0 16px;
}
.s360-ui-page-notices .notice,
.s360-ui-page-notice{
  margin:0;
  box-sizing:border-box;
  border-radius:10px;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.s360-ui-page-notices .notice p,
.s360-ui-page-notice p{
  margin:.45em 0;
}
.s360-ui-page-header .notice,
.s360-ui-page-header .s360-ui-page-notice{
  flex:1 0 100%;
  margin:8px 0 0;
}
@media (max-width: 782px){
  .s360-ui-page-header,
  .s360-wrap .s360-ui-page-header,
  .s360-wrap .s360-admissions-page-header,
  .s360-wrap .s360-admissions-detail-header,
  .s360-wrap .s360-admin-student-page-header,
  .s360-wrap .s360-custom-fields-header,
  .s360-wrap .s360-page-header{
    flex-direction:column;
    align-items:stretch;
    gap:10px;
    margin:0 0 14px;
    padding:14px 16px;
    border-radius:12px;
  }
  .s360-ui-page-header__actions,
  .s360-wrap .s360-ui-page-header__actions{
    justify-content:flex-start;
    width:100%;
  }
}
@media (max-width: 480px){
  .s360-ui-page-header,
  .s360-wrap .s360-ui-page-header,
  .s360-wrap .s360-admissions-page-header,
  .s360-wrap .s360-admissions-detail-header,
  .s360-wrap .s360-admin-student-page-header,
  .s360-wrap .s360-custom-fields-header,
  .s360-wrap .s360-page-header{
    padding:13px 14px;
  }
  .s360-ui-page-header__title,
  .s360-wrap .s360-ui-page-header__title,
  .s360-wrap .s360-page-header h1{
    font-size:15px;
  }
}

/* Phase 9.10: unified module page headers and separated notice zones. */
.s360-ui-page-notices:empty{
  display:none;
}
.s360-ui-page-notices--separated,
.s360-ui-page-notices--expense-readiness,
.s360-ui-page-notices--grouped-admin,
.s360-ui-page-notices--treasury,
.s360-ui-page-notices--calendar{
  display:grid;
  gap:8px;
  width:100%;
  max-width:var(--s360-layout-content-max, none);
  min-width:0;
  box-sizing:border-box;
  margin:0 0 16px;
  padding:0;
}
.s360-ui-page-notices--calendar{
  margin:0 0 14px;
}
.s360-ui-page-notices--calendar:empty{
  margin:0;
}
.s360-ui-page-notices--separated .notice,
.s360-ui-page-notices--expense-readiness .notice,
.s360-ui-page-notices--grouped-admin .notice,
.s360-ui-page-notices--treasury .notice,
.s360-ui-page-notices--calendar .notice,
.s360-ui-page-notice{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  margin:0;
}
.s360-ui-page-header .notice,
.s360-ui-page-header .notice.notice-warning,
.s360-ui-page-header .notice.notice-error,
.s360-ui-page-header .notice.notice-success,
.s360-ui-page-header .notice.notice-info{
  border-left-width:4px;
  background:var(--s360-color-surface-raised,#fff);
}

.s360-grouped-admin__hero--unified.s360-ui-page-header,
.s360-calendar-page-header.s360-ui-page-header,
.s360-treasury-page-header.s360-ui-page-header,
.s360-expense-page-header.s360-ui-page-header{
  background:var(--s360-page-header-bg, var(--s360-color-surface-raised,#fff));
  border-color:var(--s360-page-header-border, var(--s360-color-border-muted,#d9e2ec));
  border-radius:12px;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.s360-grouped-admin__hero--unified .s360-ui-page-header__title,
.s360-calendar-page-header .s360-ui-page-header__title,
.s360-treasury-page-header .s360-ui-page-header__title,
.s360-expense-page-header .s360-ui-page-header__title{
  font-size:16px;
  line-height:1.3;
}
.s360-grouped-admin__hero--unified .s360-ui-page-header__description,
.s360-calendar-page-header .s360-ui-page-header__description,
.s360-treasury-page-header .s360-ui-page-header__description,
.s360-expense-page-header .s360-ui-page-header__description{
  font-size:13px;
  line-height:1.5;
}
.s360-calendar-phase-k > .s360-ui-card.s360-calendar-workspace{
  margin-top:0;
}
@media (max-width: 782px){
  .s360-ui-page-notices--separated,
  .s360-ui-page-notices--expense-readiness,
  .s360-ui-page-notices--grouped-admin,
  .s360-ui-page-notices--treasury,
  .s360-ui-page-notices--calendar{
    margin-bottom:14px;
  }
}


/* Phase 9.12: grouped admin deterministic notice slot. */
.s360-grouped-admin > .s360-grouped-admin__notice-slot{
  display:block;
  width:100%;
  max-width:var(--s360-layout-content-max, none);
  min-width:0;
  box-sizing:border-box;
  margin:0 0 18px;
  padding:0;
}
.s360-grouped-admin > .s360-grouped-admin__notice-slot:empty{
  display:none;
  margin:0;
}
.s360-grouped-admin > .s360-grouped-admin__notice-slot .s360-ui-page-notices,
.s360-grouped-admin > .s360-grouped-admin__notice-slot .s360-ui-page-notices--expense-readiness{
  margin:0;
  padding:0;
}


/* Phase 9.13: grouped admin header utility cards match dashboard card placement. */
.s360-grouped-admin > .s360-grouped-admin__top-surfaces{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:var(--s360-dashboard-section-gap,var(--s360-space-md,16px));
  width:100%;
  max-width:var(--s360-layout-content-max,none);
  min-width:0;
  margin:0 0 var(--s360-dashboard-workspace-gap,var(--s360-space-lg,24px));
  box-sizing:border-box;
  align-items:stretch;
}
.s360-grouped-admin > .s360-grouped-admin__top-surfaces:empty{
  display:none;
  margin:0;
}
.s360-grouped-admin > .s360-grouped-admin__top-surfaces .s360-admin-dashboard__utility-card{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  margin:0;
}
.s360-grouped-admin > .s360-grouped-admin__top-surfaces .s360-admin-dashboard__notification-chips{
  max-width:100%;
}
.s360-grouped-admin > .s360-grouped-admin__top-surfaces .s360-admin-dashboard__notification-action{
  max-width:100%;
  white-space:normal;
}
.s360-grouped-admin .s360-ui-page-header .notice[data-school360-expense-readiness-placement],
.s360-grouped-admin .s360-ui-page-header .s360-ui-page-notice[data-school360-expense-readiness-placement]{
  display:none;
}
@media (max-width:782px){
  .s360-grouped-admin > .s360-grouped-admin__top-surfaces{
    gap:12px;
    margin:0 0 var(--s360-space-md,16px);
  }
  .s360-grouped-admin > .s360-grouped-admin__top-surfaces .s360-admin-dashboard__utility-card{
    flex-direction:column;
    align-items:stretch;
    min-height:0;
    padding:var(--s360-component-card-padding-compact, 16px);
  }
  .s360-grouped-admin > .s360-grouped-admin__top-surfaces .s360-admin-dashboard__utility-actions{
    justify-content:flex-start;
    min-width:0;
    width:100%;
  }
}

/* Phase 9.14: standalone admin header utility cards match dashboard/grouped placement. */
.s360-ui-header-utility-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:var(--s360-dashboard-section-gap,var(--s360-space-md,16px));
  width:100%;
  max-width:var(--s360-layout-content-max,none);
  min-width:0;
  margin:0 0 var(--s360-dashboard-workspace-gap,var(--s360-space-lg,24px));
  padding:0;
  box-sizing:border-box;
  align-items:stretch;
}
.s360-ui-header-utility-grid:empty{
  display:none;
  margin:0;
}
.s360-ui-header-utility-grid .s360-admin-dashboard__utility-card{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  margin:0;
}
.s360-ui-header-utility-grid .s360-admin-dashboard__notification-chips{
  max-width:100%;
}
.s360-ui-header-utility-grid .s360-admin-dashboard__notification-action{
  max-width:100%;
  white-space:normal;
}
.s360-calendar-phase-k > .s360-calendar-header-utility-grid + .s360-ui-card.s360-calendar-workspace,
.s360-treasury-wrap > .s360-treasury-header-utility-grid + .s360-ui-page-notices,
.s360-expense-phase-h > .s360-expense-header-utility-grid + .notice{
  margin-top:0;
}
.s360-calendar-phase-k .s360-ui-page-header .notice[data-school360-expense-readiness-placement],
.s360-calendar-phase-k .s360-ui-page-header .s360-ui-page-notice[data-school360-expense-readiness-placement],
.s360-treasury-wrap .s360-ui-page-header .notice[data-school360-expense-readiness-placement],
.s360-treasury-wrap .s360-ui-page-header .s360-ui-page-notice[data-school360-expense-readiness-placement],
.s360-expense-phase-h .s360-ui-page-header .notice[data-school360-expense-readiness-placement],
.s360-expense-phase-h .s360-ui-page-header .s360-ui-page-notice[data-school360-expense-readiness-placement]{
  display:none;
}
@media (max-width:782px){
  .s360-ui-header-utility-grid{
    gap:var(--s360-space-sm, 12px);
    margin:0 0 var(--s360-space-md,16px);
  }
  .s360-ui-header-utility-grid .s360-admin-dashboard__utility-card{
    flex-direction:column;
    align-items:stretch;
    min-height:0;
    padding:var(--s360-component-card-padding-compact, 16px);
  }
  .s360-ui-header-utility-grid .s360-admin-dashboard__utility-actions{
    justify-content:flex-start;
    min-width:0;
    width:100%;
  }
}

/* Phase 9.15: align School 360 admin headers, utility cards, tabs and content to the same full-width layout line. */
.wp-admin .s360-tailwind-foundation :where(.s360-ui-page-header,.s360-ui-page-notices,.s360-ui-page-notices--separated,.s360-ui-page-notices--expense-readiness,.s360-ui-page-notices--grouped-admin,.s360-ui-page-notices--treasury,.s360-ui-page-notices--calendar,.s360-ui-header-utility-grid,.s360-admin-dashboard__top-surfaces,.s360-grouped-admin__top-surfaces,.s360-ui-main-tabs,.s360-grouped-admin__content,.s360-admin-dashboard__workspace){
  width:100% ;
  max-width:none ;
  min-width:0;
  box-sizing:border-box;
}

.wp-admin .s360-tailwind-foundation.s360-grouped-admin > :where(.s360-ui-page-header,.s360-grouped-admin__notice-slot,.s360-grouped-admin__top-surfaces,.s360-ui-main-tabs,.s360-grouped-admin__content),
.wp-admin .s360-tailwind-foundation.school360-dashboard-phase-d > :where(.s360-ui-page-header,.s360-admin-dashboard__top-surfaces,.s360-admin-dashboard__workspace),
.wp-admin .s360-tailwind-foundation.s360-calendar-phase-k > :where(.s360-ui-page-header,.s360-ui-header-utility-grid,.s360-ui-card,.s360-calendar-workspace),
.wp-admin .s360-tailwind-foundation.s360-treasury-wrap > :where(.s360-ui-page-header,.s360-ui-header-utility-grid,.s360-ui-card,.s360-ui-card),
.wp-admin .s360-tailwind-foundation.s360-expense-phase-h > :where(.s360-ui-page-header,.s360-ui-header-utility-grid,.s360-expense-workspace-tabs,.nav-tab-wrapper,.s360-ui-card,.s360-ui-card,.s360-expense-status-center){
  width:100% ;
  max-width:none ;
  min-width:0;
  box-sizing:border-box;
}

.wp-admin .s360-tailwind-foundation .s360-ui-page-header,
.wp-admin .s360-tailwind-foundation .s360-ui-header-utility-grid,
.wp-admin .s360-tailwind-foundation .s360-admin-dashboard__top-surfaces,
.wp-admin .s360-tailwind-foundation .s360-grouped-admin__top-surfaces{
  align-self:stretch;
}

/* Phase 9.16: Calendar & Events uses the standard School 360 page header. */
.wp-admin .wrap.s360-tailwind-foundation.s360-calendar-phase-k{
  width:auto ;
  max-width:none ;
  min-width:0;
  box-sizing:border-box;
  background:transparent ;
  border-radius:0 ;
}
.wp-admin .s360-tailwind-foundation.s360-calendar-phase-k .s360-calendar-page-header.s360-ui-page-header{
  background:var(--s360-page-header-bg, var(--s360-color-surface-raised,#fff));
  border-color:var(--s360-page-header-border, var(--s360-color-border-muted,#d9e2ec));
  border-radius:12px;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.wp-admin .s360-tailwind-foundation.s360-calendar-phase-k .s360-calendar-page-header .s360-ui-page-header__title{
  display:block ;
  align-items:normal ;
  gap:0 ;
  margin:0 ;
  font-size:16px ;
  line-height:1.3 ;
  font-weight:800 ;
  letter-spacing:0 ;
}
.wp-admin .s360-tailwind-foundation.s360-calendar-phase-k .s360-calendar-page-header .s360-ui-page-header__title::before{
  content:none ;
  display:none ;
  width:0 ;
  height:0 ;
  margin:0 ;
  background:none ;
  box-shadow:none ;
}
.wp-admin .s360-tailwind-foundation.s360-calendar-phase-k .s360-calendar-page-header .s360-ui-page-header__description{
  margin:0 ;
  font-size:13px ;
  line-height:1.5 ;
  letter-spacing:0 ;
}


/* Phase 9.18: HR workspace top layout uses the shared School 360 header/utility-card pattern. */
.wp-admin .wrap.s360-tailwind-foundation.s360-hr-phase-i{
  width:auto ;
  max-width:none ;
  min-width:0;
  box-sizing:border-box;
  background:transparent ;
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-hr-shell{
  display:block ;
  margin-top:0 ;
  width:100% ;
  max-width:none ;
  min-width:0;
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i > :where(.s360-ui-page-header,.s360-ui-header-utility-grid,.s360-ui-section-card--hr-navigation,.s360-hr-main),
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-hr-shell > :where(.s360-ui-page-header,.s360-ui-header-utility-grid,.s360-ui-section-card--hr-navigation,.s360-hr-main){
  width:100% ;
  max-width:none ;
  min-width:0;
  box-sizing:border-box;
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-hr-page-header.s360-ui-page-header{
  margin:0 0 var(--s360-space-md,16px) ;
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-hr-header-utility-grid{
  margin:0 0 var(--s360-space-md,16px) ;
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation{
  background:var(--s360-color-surface-raised,#fff);
  border:1px solid var(--s360-color-border-muted,var(--s360-color-border,#d9e2ec));
  border-radius:16px;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
  margin:0 0 var(--s360-space-lg,24px);
  padding:var(--s360-component-card-padding-tight, 14px) var(--s360-component-card-padding-compact, 16px);
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav--grouped{
  align-items:stretch;
  border-top:0 ;
  display:flex;
  flex-wrap:wrap;
  gap:var(--s360-space-sm, 12px);
  overflow:visible;
  padding-top:0 ;
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav-group{
  background:var(--s360-color-surface-muted,#f8fafc);
  border:1px solid var(--s360-color-border-muted,var(--s360-color-border,#d9e2ec));
  border-radius:14px;
  flex:1 1 240px;
  min-width:220px;
  padding:10px var(--s360-space-sm, 12px);
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav-group:first-child{
  border-left:1px solid var(--s360-color-border-muted,var(--s360-color-border,#d9e2ec));
  padding-left:var(--s360-space-sm, 12px);
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav-group-title{
  color:var(--s360-color-text-muted,#64748b);
  display:block;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  line-height:1.2;
  margin:0 0 var(--s360-space-xs, 8px);
  text-transform:uppercase;
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav-group-items{
  display:flex;
  flex-wrap:wrap;
  gap:var(--s360-space-xs, 8px);
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav-item{
  background:transparent;
  border:1px solid transparent;
  border-radius:999px;
  box-shadow:none;
  color:var(--s360-color-primary,#0073aa);
  display:inline-flex;
  font-size:13px;
  font-weight:700;
  line-height:1.2;
  min-height:32px;
  padding:7px var(--s360-space-sm, 12px);
  text-decoration:none;
  transform:none ;
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav-item:hover,
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav-item:focus{
  background:var(--s360-color-surface,#fff);
  border-color:var(--s360-color-border-muted,var(--s360-color-border,#d9e2ec));
  color:var(--s360-color-primary-hover,#005a87);
  outline:none;
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav-active,
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav-active:hover,
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav-active:focus{
  background:var(--s360-color-surface,#fff);
  border-color:var(--s360-color-primary,#0073aa);
  color:var(--s360-color-primary,#0073aa);
  box-shadow:inset 0 -2px 0 var(--s360-color-primary,#0073aa);
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-hr-breadcrumbs{
  margin:0 0 var(--s360-space-md,16px);
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-hr-main > .s360-hr-header{
  display:none ;
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-page-header .notice[data-school360-expense-readiness-placement],
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-page-header .s360-ui-page-notice[data-school360-expense-readiness-placement]{
  display:none ;
}
@media (max-width:782px){
  .wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation{
    padding:var(--s360-space-sm, 12px);
  }
  .wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav--grouped,
  .wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav-group-items{
    display:grid;
    grid-template-columns:1fr;
  }
  .wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav-group{
    min-width:0;
  }
}

/* v11.3.1: Progressive Datepicker component. */
.s360-ui-datepicker{
  position:relative;
  max-width:100%;
}
.s360-ui-datepicker__fields{
  display:flex;
  flex-wrap:wrap;
  gap:var(--s360-space-sm,8px);
  align-items:flex-end;
}
.s360-ui-datepicker__field{
  display:grid;
  gap:6px;
  min-width:180px;
}
.s360-ui-datepicker__label{
  color:var(--s360-color-text-muted,#64748b);
  font-size:12px;
  font-weight:700;
  letter-spacing:.02em;
}
.s360-ui-datepicker__control-row{
  display:flex;
  align-items:center;
  gap:6px;
}
.s360-ui-datepicker__input{
  min-width:160px;
}
.s360-ui-datepicker__trigger,
.s360-ui-datepicker__nav-button,
.s360-ui-datepicker__cell{
  align-items:center;
  background:var(--s360-color-surface-raised,#fff);
  border:1px solid var(--s360-datepicker-border,#d9e2ec);
  border-radius:var(--s360-radius-md,8px);
  color:var(--s360-color-text,#1d2327);
  cursor:pointer;
  display:inline-flex;
  font:inherit;
  justify-content:center;
  min-height:34px;
  min-width:34px;
  padding:0;
}
.s360-ui-datepicker__trigger:hover,
.s360-ui-datepicker__trigger:focus,
.s360-ui-datepicker__nav-button:hover,
.s360-ui-datepicker__nav-button:focus,
.s360-ui-datepicker__cell:hover,
.s360-ui-datepicker__cell:focus{
  border-color:var(--s360-datepicker-highlight,#2271b1);
  box-shadow:0 0 0 2px var(--s360-color-primary-soft,rgba(34,113,177,.12));
  outline:none;
}

.s360-ui-datepicker__summary{
  color:var(--s360-color-text-muted,#64748b);
  font-size:12px;
  line-height:1.4;
  margin-top:6px;
}

.s360-ui-datepicker__popover{
  background:var(--s360-datepicker-bg,#fff);
  border:1px solid var(--s360-datepicker-border,#d9e2ec);
  border-radius:var(--s360-datepicker-radius,14px);
  box-shadow:var(--s360-datepicker-shadow,0 12px 24px rgba(15,23,42,.12));
  box-sizing:border-box;
  margin-top:6px;
  max-width:320px;
  padding:12px;
  position:absolute;
  z-index:var(--s360-z-dropdown,900);
}
.s360-ui-datepicker__popover[hidden]{
  display:none;
}
.s360-ui-datepicker__nav{
  align-items:center;
  display:grid;
  gap:8px;
  grid-template-columns:36px 1fr 36px;
  margin-bottom:8px;
}
.s360-ui-datepicker__month{
  color:var(--s360-color-text,#1d2327);
  font-weight:800;
  text-align:center;
}
.s360-ui-datepicker__weekdays,
.s360-ui-datepicker__grid{
  display:grid;
  gap:4px;
  grid-template-columns:repeat(7,var(--s360-datepicker-cell-size,36px));
}
.s360-ui-datepicker__weekday{
  color:var(--s360-color-text-muted,#64748b);
  font-size:11px;
  font-weight:800;
  line-height:1.2;
  text-align:center;
  text-transform:uppercase;
}
.s360-ui-datepicker__cell{
  border-radius:999px;
  font-size:13px;
  height:var(--s360-datepicker-cell-size,36px);
  width:var(--s360-datepicker-cell-size,36px);
}
.s360-ui-datepicker__cell--outside{
  color:var(--s360-color-text-muted,#64748b);
  opacity:.62;
}
.s360-ui-datepicker__cell--today{
  box-shadow:inset 0 0 0 2px var(--s360-datepicker-today-ring,rgba(34,113,177,.12));
}
.s360-ui-datepicker__cell--selected{
  background:var(--s360-datepicker-highlight,#2271b1);
  border-color:var(--s360-datepicker-highlight,#2271b1);
  color:#fff;
}
.s360-ui-datepicker__cell--in-range:not(.s360-ui-datepicker__cell--selected){
  background:var(--s360-datepicker-range-bg,rgba(34,113,177,.12));
  border-color:transparent;
}
.s360-ui-datepicker__cell--disabled,
.s360-ui-datepicker__cell:disabled{
  background:var(--s360-color-bg-subtle,#f6f7fb);
  border-color:var(--s360-color-border-muted,#d9e2ec);
  color:var(--s360-datepicker-disabled-text,#94a3b8);
  cursor:not-allowed;
  opacity:.7;
}
@media (max-width:782px){
  .s360-ui-datepicker__trigger,
  .s360-ui-datepicker__popover{
    display:none ;
  }
  .s360-ui-datepicker__field,
  .s360-ui-datepicker__input{
    min-width:0;
    width:100%;
  }
}

/* Phase G0 component foundation: shared reduced-motion guard for animated UI components. */
@media (prefers-reduced-motion: reduce){
  .s360-ui-component--reduced-motion-aware{
    animation-duration:0.001ms !important;
    transition-duration:0.001ms !important;
  }
}

/* v11.4.7: Toast / Snackbar component. */
.s360-ui-toast-region{
  align-items:flex-end;
  box-sizing:border-box;
  display:flex;
  flex-direction:column-reverse;
  gap:var(--s360-toast-region-gap,var(--s360-space-sm,12px));
  inset:auto var(--s360-toast-region-offset,var(--s360-space-lg,24px)) var(--s360-toast-region-offset,var(--s360-space-lg,24px)) auto;
  max-width:calc(100vw - (2 * var(--s360-toast-region-offset,var(--s360-space-lg,24px))));
  pointer-events:none;
  position:fixed;
  z-index:var(--s360-z-toast,1200);
}
.s360-ui-toast{
  align-items:start;
  animation:s360-toast-slide-in var(--s360-transition-medium,250ms ease-out);
  background:var(--s360-color-surface-raised,#fff);
  border:1px solid var(--s360-color-border-muted,#e2e8f0);
  border-inline-start-width:4px;
  border-radius:var(--s360-toast-radius,var(--s360-radius-xl,12px));
  box-shadow:var(--s360-toast-shadow,var(--s360-elevation-overlay,0 20px 40px rgba(0,0,0,.15),0 4px 8px rgba(0,0,0,.08)));
  box-sizing:border-box;
  color:var(--s360-color-text-body,#374151);
  display:grid;
  gap:var(--s360-space-sm,12px);
  grid-template-columns:auto minmax(0,1fr) auto;
  line-height:1.5;
  max-width:var(--s360-toast-max-width,420px);
  min-width:min(320px,100%);
  opacity:1;
  padding:var(--s360-space-md,16px);
  pointer-events:auto;
  position:relative;
  width:max-content;
}
.s360-ui-toast:focus{
  box-shadow:var(--s360-toast-shadow,var(--s360-elevation-overlay,0 20px 40px rgba(0,0,0,.15),0 4px 8px rgba(0,0,0,.08))),0 0 0 3px var(--s360-color-primary-soft,#eef2ff);
  outline:0;
}
.s360-ui-toast--exiting{
  animation:s360-toast-slide-out var(--s360-transition-medium,250ms ease-out) forwards;
}
.s360-ui-toast--success{
  background:var(--s360-toast-bg-success,var(--s360-color-success-tint,#dcfce7));
  border-color:var(--s360-toast-border-success,var(--s360-color-success-chip,#047857));
  color:var(--s360-toast-text-success,var(--s360-color-success-strong,#166534));
}
.s360-ui-toast--info{
  background:var(--s360-toast-bg-info,var(--s360-color-info-bg,#eff6ff));
  border-color:var(--s360-toast-border-info,var(--s360-color-info-chip,#0b57d0));
  color:var(--s360-toast-text-info,var(--s360-color-info-strong,#1e3a8a));
}
.s360-ui-toast--warning{
  background:var(--s360-toast-bg-warning,var(--s360-color-warning-tint,#fef3c7));
  border-color:var(--s360-toast-border-warning,var(--s360-color-warning-chip,#c2410c));
  color:var(--s360-toast-text-warning,var(--s360-color-warning-strong,#92400e));
}
.s360-ui-toast--error{
  background:var(--s360-toast-bg-error,var(--s360-color-danger-tint,#fee2e2));
  border-color:var(--s360-toast-border-error,var(--s360-color-danger-strong,#b91c1c));
  color:var(--s360-toast-text-error,var(--s360-color-danger-strong,#b91c1c));
}
.s360-ui-toast__icon{
  align-items:center;
  display:inline-flex;
  font-size:18px;
  font-weight:800;
  justify-content:center;
  line-height:1;
  min-height:24px;
  min-width:24px;
}
.s360-ui-toast__content{
  min-width:0;
}
.s360-ui-toast__title{
  color:inherit;
  font-size:14px;
  font-weight:800;
  line-height:1.3;
  margin:0 0 2px;
}
.s360-ui-toast__message{
  color:inherit;
  font-size:13px;
  line-height:1.45;
  margin:0;
  overflow-wrap:anywhere;
}
.s360-ui-toast__action{
  color:inherit;
  display:inline-flex;
  font-size:12px;
  font-weight:800;
  margin-top:8px;
  text-decoration:underline;
  text-underline-offset:2px;
}
.s360-ui-toast__close{
  align-items:center;
  appearance:none;
  background:transparent;
  border:0;
  border-radius:999px;
  color:inherit;
  cursor:pointer;
  display:inline-flex;
  font-size:20px;
  height:28px;
  justify-content:center;
  line-height:1;
  margin:-4px -4px 0 0;
  opacity:.72;
  padding:0;
  width:28px;
}
.s360-ui-toast__close:hover,
.s360-ui-toast__close:focus{
  background:rgba(15,23,42,.08);
  opacity:1;
  outline:0;
}
@keyframes s360-toast-slide-in{
  from{opacity:0;transform:translateX(100%)}
  to{opacity:1;transform:translateX(0)}
}
@keyframes s360-toast-slide-out{
  from{opacity:1;transform:translateX(0)}
  to{opacity:0;transform:translateX(100%)}
}
@media (prefers-reduced-motion: reduce){
  .s360-ui-toast,
  .s360-ui-toast--exiting{
    animation:none !important;
    transition:none !important;
  }
}
@media (max-width:480px){
  .s360-ui-toast-region{
    align-items:stretch;
    inset:auto var(--s360-space-sm,12px) var(--s360-space-sm,12px) var(--s360-space-sm,12px);
    max-width:none;
  }
  .s360-ui-toast{
    max-width:100%;
    min-width:0;
    width:100%;
  }
}


/* v11.5.0: Modal / Dialog component. */
.s360-ui-modal{
  background:var(--s360-modal-bg,var(--s360-color-surface-raised,#fff));
  border:0;
  border-radius:var(--s360-modal-radius,var(--s360-radius-2xl,14px));
  box-shadow:var(--s360-modal-shadow,var(--s360-elevation-overlay,0 20px 40px rgba(0,0,0,.15),0 4px 8px rgba(0,0,0,.08)));
  box-sizing:border-box;
  color:var(--s360-color-text-body,#374151);
  max-height:calc(100vh - (2 * var(--s360-space-lg,24px)));
  max-width:var(--s360-modal-max-width-md,640px);
  overflow:hidden;
  padding:0;
  width:calc(100% - (2 * var(--s360-space-lg,24px)));
  z-index:var(--s360-z-modal,1001);
}
.s360-ui-modal:not([open]){
  display:none;
}
.s360-ui-modal[open]{
  animation:s360-modal-zoom-in var(--s360-transition-medium,250ms ease-out);
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
}
.s360-ui-modal::backdrop{
  background:var(--s360-modal-backdrop-bg,var(--s360-overlay-backdrop,rgba(15,23,42,.55)));
  backdrop-filter:blur(var(--s360-overlay-blur,4px));
}
.s360-ui-modal-backdrop{
  background:var(--s360-modal-backdrop-bg,var(--s360-overlay-backdrop,rgba(15,23,42,.55)));
  backdrop-filter:blur(var(--s360-overlay-blur,4px));
  inset:0;
  position:fixed;
  z-index:var(--s360-z-modal-backdrop,1000);
}
.s360-ui-modal--sm{max-width:var(--s360-modal-max-width-sm,480px);}
.s360-ui-modal--md{max-width:var(--s360-modal-max-width-md,640px);}
.s360-ui-modal--lg{max-width:var(--s360-modal-max-width-lg,880px);}
.s360-ui-modal--xl{max-width:var(--s360-modal-max-width-xl,1120px);}
.s360-ui-modal--drawer{
  border-radius:0;
  height:100vh;
  margin:0 0 0 auto;
  max-height:100vh;
  max-width:var(--s360-modal-drawer-width,480px);
  width:min(var(--s360-modal-drawer-width,480px),100vw);
}
.s360-ui-modal--drawer[open]{
  animation:s360-drawer-slide-in var(--s360-transition-medium,250ms ease-out);
}
.s360-ui-modal__header{
  align-items:flex-start;
  border-bottom:1px solid var(--s360-color-border-subtle,#e5e7eb);
  display:flex;
  gap:var(--s360-space-md,16px);
  justify-content:space-between;
  padding:var(--s360-space-md,16px) var(--s360-modal-padding-x,var(--s360-space-lg,24px));
}
.s360-ui-modal__title{
  color:var(--s360-color-text-heading,#0f172a);
  font-size:18px;
  font-weight:800;
  line-height:1.3;
  margin:0;
}
.s360-ui-modal__close{
  align-items:center;
  appearance:none;
  background:transparent;
  border:0;
  border-radius:999px;
  color:var(--s360-color-text-tertiary,#64748b);
  cursor:pointer;
  display:inline-flex;
  font-size:24px;
  height:32px;
  justify-content:center;
  line-height:1;
  margin:-4px -8px 0 0;
  padding:0;
  width:32px;
}
.s360-ui-modal__close:hover,
.s360-ui-modal__close:focus{
  background:var(--s360-color-bg-subtle,#f8fafc);
  color:var(--s360-color-text-heading,#0f172a);
  outline:0;
}
.s360-ui-modal__body{
  color:var(--s360-color-text-body,#374151);
  font-size:14px;
  line-height:1.55;
  max-height:70vh;
  overflow-y:auto;
  padding:var(--s360-modal-padding-y,var(--s360-space-lg,24px)) var(--s360-modal-padding-x,var(--s360-space-lg,24px));
}
.s360-ui-modal--drawer .s360-ui-modal__body{
  max-height:none;
}
.s360-ui-modal__footer{
  align-items:center;
  border-top:1px solid var(--s360-color-border-subtle,#e5e7eb);
  display:flex;
  flex-wrap:wrap;
  gap:var(--s360-space-sm,12px);
  justify-content:flex-end;
  padding:var(--s360-space-md,16px) var(--s360-modal-padding-x,var(--s360-space-lg,24px));
}
.s360-ui-modal--danger .s360-ui-modal__header,
.s360-ui-modal--confirm .s360-ui-modal__header{
  background:var(--s360-color-bg-subtle,#f8fafc);
}
.s360-ui-modal--danger .s360-ui-modal__title{
  color:var(--s360-color-danger-strong,#b91c1c);
}
.s360-ui-modal--info .s360-ui-modal__title{
  color:var(--s360-color-info-strong,#1e3a8a);
}
.s360-ui-modal--form .s360-ui-modal__body{
  background:var(--s360-color-surface-raised,#fff);
}
@keyframes s360-modal-fade-in{
  from{opacity:0;}
  to{opacity:1;}
}
@keyframes s360-modal-zoom-in{
  from{opacity:0;transform:scale(.96);}
  to{opacity:1;transform:scale(1);}
}
@keyframes s360-drawer-slide-in{
  from{opacity:0;transform:translateX(100%);}
  to{opacity:1;transform:translateX(0);}
}
@media (prefers-reduced-motion: reduce){
  .s360-ui-modal[open],
  .s360-ui-modal--drawer[open]{
    animation:none;
  }
}
@media (max-width:640px){
  .s360-ui-modal{
    max-height:calc(100vh - (2 * var(--s360-space-sm,12px)));
    width:calc(100% - (2 * var(--s360-space-sm,12px)));
  }
  .s360-ui-modal__header,
  .s360-ui-modal__body,
  .s360-ui-modal__footer{
    padding-left:var(--s360-space-md,16px);
    padding-right:var(--s360-space-md,16px);
  }
  .s360-ui-modal--drawer{
    height:100vh;
    max-height:100vh;
    max-width:100vw;
    width:100vw;
  }
}

/* v11.5.1: Dropdown Menu component. */
.s360-ui-dropdown{
  display:inline-block;
  position:relative;
}
.s360-ui-dropdown__trigger{
  align-items:center;
  display:inline-flex;
  gap:var(--s360-space-xs,8px);
}
.s360-ui-dropdown__trigger::after{
  border-left:4px solid transparent;
  border-right:4px solid transparent;
  border-top:5px solid currentColor;
  content:"";
  display:inline-block;
  height:0;
  margin-left:var(--s360-space-2xs,4px);
  opacity:.75;
  width:0;
}
.s360-ui-dropdown__menu{
  background:var(--s360-dropdown-bg,#fff);
  border:var(--s360-dropdown-border,1px solid var(--s360-color-border-subtle,#e5e7eb));
  border-radius:var(--s360-dropdown-radius,var(--s360-radius-lg,10px));
  box-shadow:var(--s360-dropdown-shadow,var(--s360-elevation-floating,0 12px 24px rgba(0,0,0,.12)));
  display:none;
  left:0;
  margin-top:var(--s360-space-2xs,4px);
  max-height:var(--s360-dropdown-max-height,360px);
  min-width:var(--s360-dropdown-min-width,200px);
  overflow-y:auto;
  padding:var(--s360-space-2xs,4px) 0;
  position:absolute;
  top:100%;
  z-index:var(--s360-z-dropdown,900);
}
.s360-ui-dropdown--open .s360-ui-dropdown__menu{
  animation:s360-dropdown-fade-in var(--s360-transition-fast,150ms ease-out);
  display:block;
}
.s360-ui-dropdown__menu[hidden]{
  display:none ;
}
.s360-ui-dropdown--align-end .s360-ui-dropdown__menu{
  left:auto;
  right:0;
}
.s360-ui-dropdown--flip .s360-ui-dropdown__menu{
  bottom:100%;
  margin-bottom:var(--s360-space-2xs,4px);
  margin-top:0;
  top:auto;
}
.s360-ui-dropdown__item{
  align-items:center;
  background:transparent;
  border:0;
  box-sizing:border-box;
  color:var(--s360-color-text-body,#374151);
  cursor:pointer;
  display:flex;
  font:inherit;
  gap:var(--s360-space-xs,8px);
  line-height:1.4;
  padding:var(--s360-dropdown-item-padding-y,var(--s360-space-xs,8px)) var(--s360-dropdown-item-padding-x,var(--s360-space-md,16px));
  text-align:left;
  text-decoration:none;
  transition:background var(--s360-transition-fast,150ms ease-out),color var(--s360-transition-fast,150ms ease-out);
  user-select:none;
  width:100%;
}
.s360-ui-dropdown__item:hover,
.s360-ui-dropdown__item:focus,
.s360-ui-dropdown__item--active{
  background:var(--s360-dropdown-item-hover-bg,var(--s360-color-bg-subtle,#f8fafc));
  color:var(--s360-color-text-heading,#0f172a);
  outline:0;
  text-decoration:none;
}
.s360-ui-dropdown__item--danger{
  color:var(--s360-color-danger-ink,#991b1b);
}
.s360-ui-dropdown__item--danger:hover,
.s360-ui-dropdown__item--danger:focus,
.s360-ui-dropdown__item--danger.s360-ui-dropdown__item--active{
  background:var(--s360-color-danger-bg,#fef2f2);
  color:var(--s360-color-danger-strong,#b91c1c);
}
.s360-ui-dropdown__item--disabled,
.s360-ui-dropdown__item[aria-disabled="true"]{
  cursor:not-allowed;
  opacity:var(--s360-dropdown-item-disabled-opacity,.5);
  pointer-events:none;
}
.s360-ui-dropdown__item-icon{
  align-items:center;
  display:inline-flex;
  flex:0 0 auto;
  justify-content:center;
  min-width:1em;
}
.s360-ui-dropdown__item-label{
  flex:1 1 auto;
}
.s360-ui-dropdown__divider{
  background:var(--s360-dropdown-divider-color,var(--s360-color-border-subtle,#e5e7eb));
  height:1px;
  margin:var(--s360-space-2xs,4px) 0;
}
.s360-ui-dropdown__header{
  color:var(--s360-color-text-tertiary,#64748b);
  font-size:12px;
  font-weight:700;
  letter-spacing:.04em;
  padding:var(--s360-space-xs,8px) var(--s360-dropdown-item-padding-x,var(--s360-space-md,16px));
  text-transform:uppercase;
}
@keyframes s360-dropdown-fade-in{
  from{opacity:0;transform:translateY(-4px);}
  to{opacity:1;transform:translateY(0);}
}
@media (prefers-reduced-motion: reduce){
  .s360-ui-dropdown--open .s360-ui-dropdown__menu{
    animation:none;
  }
}
@media (max-width:480px){
  .s360-ui-dropdown[data-s360-dropdown-mobile="sheet"] .s360-ui-dropdown__menu{
    border-radius:var(--s360-dropdown-radius,var(--s360-radius-lg,10px)) var(--s360-dropdown-radius,var(--s360-radius-lg,10px)) 0 0;
    bottom:0;
    left:0;
    margin:0;
    max-height:70vh;
    min-width:0;
    position:fixed;
    right:0;
    top:auto;
    width:100vw;
    z-index:var(--s360-z-dropdown,900);
  }
  .s360-ui-dropdown[data-s360-dropdown-mobile="sheet"].s360-ui-dropdown--open .s360-ui-dropdown__menu{
    animation:s360-dropdown-sheet-in var(--s360-transition-medium,250ms ease-out);
  }
  .s360-ui-dropdown[data-s360-dropdown-mobile="sheet"] .s360-ui-dropdown__item{
    min-height:44px;
  }
}
@keyframes s360-dropdown-sheet-in{
  from{opacity:0;transform:translateY(100%);}
  to{opacity:1;transform:translateY(0);}
}
@media (prefers-reduced-motion: reduce){
  .s360-ui-dropdown[data-s360-dropdown-mobile="sheet"].s360-ui-dropdown--open .s360-ui-dropdown__menu{
    animation:none;
  }
}

/* v11.5.2: Tooltip component. */
.s360-ui-tooltip{
  background:var(--s360-tooltip-bg,#1d2327);
  border-radius:var(--s360-tooltip-radius,var(--s360-radius-md,8px));
  box-shadow:var(--s360-tooltip-shadow,var(--s360-shadow-md,0 8px 18px rgba(0,0,0,.18)));
  box-sizing:border-box;
  color:var(--s360-tooltip-text,#fff);
  font-size:13px;
  line-height:1.4;
  max-width:var(--s360-tooltip-max-width,240px);
  opacity:0;
  padding:var(--s360-tooltip-padding,var(--s360-space-xs,8px) var(--s360-space-sm,12px));
  pointer-events:none;
  position:absolute;
  transform:translateY(2px);
  transition:opacity var(--s360-transition-fast,150ms ease-out),transform var(--s360-transition-fast,150ms ease-out);
  width:max-content;
  z-index:var(--s360-z-tooltip,1100);
}
.s360-ui-tooltip--visible{
  opacity:1;
  transform:translateY(0);
}
.s360-ui-tooltip::after{
  border:var(--s360-tooltip-arrow-size,6px) solid transparent;
  content:"";
  height:0;
  position:absolute;
  width:0;
}
.s360-ui-tooltip--top::after{
  border-top-color:var(--s360-tooltip-bg,#1d2327);
  left:50%;
  top:100%;
  transform:translateX(-50%);
}
.s360-ui-tooltip--bottom::after{
  border-bottom-color:var(--s360-tooltip-bg,#1d2327);
  bottom:100%;
  left:50%;
  transform:translateX(-50%);
}
.s360-ui-tooltip--left::after{
  border-left-color:var(--s360-tooltip-bg,#1d2327);
  left:100%;
  top:50%;
  transform:translateY(-50%);
}
.s360-ui-tooltip--right::after{
  border-right-color:var(--s360-tooltip-bg,#1d2327);
  right:100%;
  top:50%;
  transform:translateY(-50%);
}
@media (prefers-reduced-motion: reduce){
  .s360-ui-tooltip{
    transform:none;
    transition:opacity .001ms linear;
  }
}

/* v11.5.2: Skeleton component. */
.s360-ui-skeleton{
  background:linear-gradient(90deg,var(--s360-skeleton-bg,var(--s360-color-bg-subtle,#f1f5f9)) 0%,var(--s360-skeleton-shimmer-color,rgba(255,255,255,.6)) 50%,var(--s360-skeleton-bg,var(--s360-color-bg-subtle,#f1f5f9)) 100%);
  background-size:200px 100%;
  border-radius:var(--s360-skeleton-radius,var(--s360-radius-md,8px));
  box-sizing:border-box;
  display:block;
  overflow:hidden;
  position:relative;
  animation:s360-skeleton-shimmer var(--s360-skeleton-animation-duration,1.5s) infinite linear;
}
.s360-ui-skeleton--text{
  height:1em;
  max-width:12em;
}
.s360-ui-skeleton--paragraph{
  height:1em;
  max-width:100%;
}
.s360-ui-skeleton--avatar{
  border-radius:50%;
  height:40px;
  width:40px;
}
.s360-ui-skeleton--card{
  border-radius:var(--s360-radius-lg,10px);
  height:120px;
  width:100%;
}
.s360-ui-skeleton--table-row{
  border-radius:var(--s360-skeleton-radius,var(--s360-radius-md,8px));
  height:36px;
  margin-bottom:var(--s360-space-2xs,4px);
}
.s360-ui-skeleton-group{
  display:grid;
  gap:var(--s360-space-xs,8px);
}
.s360-ui-skeleton-table-row{
  display:grid;
  gap:var(--s360-space-xs,8px);
  grid-template-columns:repeat(var(--s360-skeleton-columns,4),minmax(0,1fr));
  margin-bottom:var(--s360-space-2xs,4px);
}
@keyframes s360-skeleton-shimmer{
  0%{background-position:-200px 0;}
  100%{background-position:calc(200px + 100%) 0;}
}
@media (prefers-reduced-motion: reduce){
  .s360-ui-skeleton{
    animation:none;
    background:var(--s360-skeleton-bg,var(--s360-color-bg-subtle,#f1f5f9));
  }
}

/* UI-A1: accessibility hardening layer — low-risk scoped defaults. */
.s360-skip-link,
.s360-ui-skip-link {
  position: absolute;
  z-index: var(--s360-z-skip-link, 1500);
  inset-block-start: var(--s360-skip-link-offset, 12px);
  inset-inline-start: var(--s360-skip-link-offset, 12px);
  transform: translateY(calc(-100% - 24px));
  opacity: 0;
  pointer-events: none;
  display: inline-flex;
  align-items: center;
  min-height: var(--s360-touch-target-min, 36px);
  padding: var(--s360-space-xs, 8px) var(--s360-space-sm, 12px);
  border: 2px solid var(--s360-color-focus-outline, #1d4ed8);
  border-radius: var(--s360-radius-lg, 10px);
  background: var(--s360-color-surface-raised, #fff);
  color: var(--s360-color-link, #1d4ed8);
  box-shadow: var(--s360-shadow-md, 0 4px 12px rgba(0, 0, 0, 0.06));
  font-weight: var(--s360-font-weight-semibold, 600);
  text-decoration: none;
  transition: transform var(--s360-motion-base, .18s) var(--s360-ease-standard, ease), opacity var(--s360-motion-base, .18s) var(--s360-ease-standard, ease);
}

.s360-skip-link:focus,
.s360-skip-link:focus-visible,
.s360-ui-skip-link:focus,
.s360-ui-skip-link:focus-visible {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
  outline: 2px solid var(--s360-color-focus-outline, #1d4ed8);
  outline-offset: var(--s360-interactive-outline-offset, 2px);
}

.s360-wrap :where(a, button, input, select, textarea, summary, [role="button"], [tabindex]:not([tabindex="-1"]), .button):focus-visible,
.s360-page-shell :where(a, button, input, select, textarea, summary, [role="button"], [tabindex]:not([tabindex="-1"]), .button):focus-visible,
.s360-ui-shell :where(a, button, input, select, textarea, summary, [role="button"], [tabindex]:not([tabindex="-1"]), .button):focus-visible,
.s360-portal :where(a, button, input, select, textarea, summary, [role="button"], [tabindex]:not([tabindex="-1"]), .button):focus-visible,
.s360-tailwind-foundation :where(a, button, input, select, textarea, summary, [role="button"], [tabindex]:not([tabindex="-1"]), .button):focus-visible {
  outline: 2px solid var(--s360-color-focus-outline, #1d4ed8);
  outline-offset: var(--s360-interactive-outline-offset, 2px);
}

.s360-wrap :where(input, select, textarea, .s360-ui-control)[aria-invalid="true"],
.s360-page-shell :where(input, select, textarea, .s360-ui-control)[aria-invalid="true"],
.s360-ui-shell :where(input, select, textarea, .s360-ui-control)[aria-invalid="true"],
.s360-portal :where(input, select, textarea, .s360-ui-control)[aria-invalid="true"],
.s360-tailwind-foundation :where(input, select, textarea, .s360-ui-control)[aria-invalid="true"] {
  border-color: var(--s360-color-form-error-border, #fecaca);
  box-shadow: var(--s360-focus-ring-danger, 0 0 0 3px rgba(185, 28, 28, 0.16));
}

.s360-wrap :where([aria-disabled="true"], [disabled]),
.s360-page-shell :where([aria-disabled="true"], [disabled]),
.s360-ui-shell :where([aria-disabled="true"], [disabled]),
.s360-portal :where([aria-disabled="true"], [disabled]),
.s360-tailwind-foundation :where([aria-disabled="true"], [disabled]) {
  cursor: not-allowed;
}

.s360-wrap :where(.s360-ui-form-help, .s360-field-help, .s360-help, .description),
.s360-page-shell :where(.s360-ui-form-help, .s360-field-help, .s360-help, .description),
.s360-ui-shell :where(.s360-ui-form-help, .s360-field-help, .s360-help, .description),
.s360-portal :where(.s360-ui-form-help, .s360-field-help, .s360-help, .description),
.s360-tailwind-foundation :where(.s360-ui-form-help, .s360-field-help, .s360-help, .description) {
  line-height: var(--s360-line-height, 1.5);
}

@media (max-width: 782px) {
  .s360-wrap :where(a.button, .button, button, input[type="button"], input[type="submit"], input[type="reset"], select, input[type="text"], input[type="search"], input[type="email"], input[type="number"], input[type="date"], input[type="tel"], input[type="url"], .s360-ui-button, .s360-ui-tabs__tab, .s360-admin-nav-pill),
  .s360-page-shell :where(a.button, .button, button, input[type="button"], input[type="submit"], input[type="reset"], select, input[type="text"], input[type="search"], input[type="email"], input[type="number"], input[type="date"], input[type="tel"], input[type="url"], .s360-ui-button, .s360-ui-tabs__tab, .s360-admin-nav-pill),
  .s360-ui-shell :where(a.button, .button, button, input[type="button"], input[type="submit"], input[type="reset"], select, input[type="text"], input[type="search"], input[type="email"], input[type="number"], input[type="date"], input[type="tel"], input[type="url"], .s360-ui-button, .s360-ui-tabs__tab, .s360-admin-nav-pill),
  .s360-portal :where(a.button, .button, button, input[type="button"], input[type="submit"], input[type="reset"], select, input[type="text"], input[type="search"], input[type="email"], input[type="number"], input[type="date"], input[type="tel"], input[type="url"], .s360-ui-button, .s360-ui-tabs__tab, .s360-admin-nav-pill),
  .s360-tailwind-foundation :where(a.button, .button, button, input[type="button"], input[type="submit"], input[type="reset"], select, input[type="text"], input[type="search"], input[type="email"], input[type="number"], input[type="date"], input[type="tel"], input[type="url"], .s360-ui-button, .s360-ui-tabs__tab, .s360-admin-nav-pill) {
    min-height: var(--s360-touch-target-min-mobile, 44px);
  }

  .s360-wrap :where(input[type="checkbox"], input[type="radio"]),
  .s360-page-shell :where(input[type="checkbox"], input[type="radio"]),
  .s360-ui-shell :where(input[type="checkbox"], input[type="radio"]),
  .s360-portal :where(input[type="checkbox"], input[type="radio"]),
  .s360-tailwind-foundation :where(input[type="checkbox"], input[type="radio"]) {
    min-width: 20px;
    min-height: 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .s360-skip-link,
  .s360-ui-skip-link {
    transition-duration: .001ms;
  }
}


/* UI-D1: module visual consistency hardening.
 * Low-risk shared defaults for common module layout, toolbar, filter and
 * action zones. This layer intentionally avoids workflow-specific styling.
 */
.s360-ui-module-stack,
.s360-wrap .s360-ui-module-stack {
  display: flex;
  flex-direction: column;
  gap: var(--s360-module-stack-gap, var(--s360-space-lg, 24px));
  min-width: 0;
  max-width: 100%;
}

.s360-ui-module-section,
.s360-wrap .s360-ui-module-section {
  min-width: 0;
  max-width: 100%;
}

.s360-ui-module-heading,
.s360-wrap .s360-ui-module-heading {
  display: flex;
  flex-direction: column;
  gap: var(--s360-module-heading-gap, var(--s360-space-xs, 8px));
  min-width: 0;
  max-width: 100%;
}

.s360-ui-module-heading > :where(h1, h2, h3, h4, p),
.s360-wrap .s360-ui-module-heading > :where(h1, h2, h3, h4, p) {
  margin-top: 0;
  margin-bottom: 0;
}

.s360-ui-filter-shell,
.s360-ui-module-toolbar,
.s360-wrap :where(.s360-ui-filter-shell, .s360-ui-module-toolbar) {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: var(--s360-module-toolbar-gap, var(--s360-space-sm, 12px));
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: var(--s360-module-toolbar-padding-y, 12px) var(--s360-module-toolbar-padding-x, 16px);
  border: 1px solid var(--s360-module-toolbar-border-color, var(--s360-color-border-muted, #e2e8f0));
  border-radius: var(--s360-module-toolbar-radius, var(--s360-radius-xl, 12px));
  background: var(--s360-module-toolbar-bg, var(--s360-color-surface-raised, #fff));
  box-shadow: var(--s360-module-toolbar-shadow, var(--s360-shadow-sm, 0 1px 2px rgba(0, 0, 0, 0.04)));
}

.wp-admin .s360-wrap :where(
  .s360-ui-page-header,
  .s360-page-header,
  .s360-admissions-page-header,
  .s360-admissions-detail-header,
  .s360-admin-student-page-header,
  .s360-custom-fields-header
) {
  margin-bottom: var(--s360-module-page-header-margin-bottom, 16px);
}

.wp-admin .s360-wrap :where(
  .s360-ui-table-toolbar,
  .s360-ui-action-bar,
  .s360-filter-bar,
  .s360-field-toolbar,
  .s360-report-filter-form,
  .s360-template-toolbar,
  .s360-builder-toolbar,
  .s360-finance-ledger-toolbar,
  .s360-finance-ledger-filter-grid,
  .s360-report-filter-grid,
  .s360-hr-live-toolbar,
  .s360-hr-directory-filters,
  .s360-expense-phase4 .s360-phase4-filterbar
) {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
}

.wp-admin .s360-wrap :where(
  .s360-ui-page-header__actions,
  .s360-ui-action-bar__actions,
  .s360-ui-table-toolbar__actions,
  .s360-ui-table-toolbar__filters,
  .s360-builder-toolbar,
  .s360-template-toolbar,
  .s360-finance-ledger-toolbar-actions,
  .s360-finance-ledger-filter-actions,
  .s360-hr-filter-actions,
  .s360-hr-live-toolbar .s360-hr-filter-chips
) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s360-module-toolbar-control-gap, var(--s360-space-xs, 8px));
  min-width: 0;
}

.wp-admin .s360-wrap :where(
  .s360-ui-page-header__title,
  .s360-ui-card__title,
  .s360-ui-action-bar__title,
  .s360-ui-table-toolbar__title,
  .s360-admin-shortcut__title
) {
  overflow-wrap: anywhere;
}

.wp-admin .s360-wrap :where(
  .s360-ui-page-header__description,
  .s360-ui-card__subtitle,
  .s360-ui-action-bar__description,
  .s360-ui-empty-state__message,
  .s360-ui-empty-state__hint
) {
  overflow-wrap: break-word;
}

.wp-admin .s360-wrap :where(
  .s360-ui-table-toolbar,
  .s360-ui-action-bar,
  .s360-filter-bar,
  .s360-field-toolbar,
  .s360-report-filter-form,
  .s360-template-toolbar,
  .s360-builder-toolbar,
  .s360-finance-ledger-toolbar,
  .s360-finance-ledger-filter-grid,
  .s360-report-filter-grid,
  .s360-hr-live-toolbar,
  .s360-hr-directory-filters,
  .s360-ui-filter-shell,
  .s360-ui-module-toolbar
) :where(label, .s360-ui-form-field, .s360-field, .s360-field-wide) {
  min-width: 0;
  max-width: 100%;
}

.wp-admin .s360-wrap :where(
  .s360-ui-table-toolbar,
  .s360-ui-action-bar,
  .s360-filter-bar,
  .s360-field-toolbar,
  .s360-report-filter-form,
  .s360-template-toolbar,
  .s360-builder-toolbar,
  .s360-finance-ledger-toolbar,
  .s360-finance-ledger-filter-grid,
  .s360-report-filter-grid,
  .s360-hr-live-toolbar,
  .s360-hr-directory-filters,
  .s360-ui-filter-shell,
  .s360-ui-module-toolbar
) :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  max-width: 100%;
  min-width: 0;
}

@media (max-width: 782px) {
  .s360-ui-filter-shell,
  .s360-ui-module-toolbar,
  .wp-admin .s360-wrap :where(.s360-ui-filter-shell, .s360-ui-module-toolbar) {
    flex-direction: column;
    align-items: stretch;
    padding: var(--s360-space-sm, 12px);
  }

  .wp-admin .s360-wrap :where(
    .s360-ui-table-toolbar,
    .s360-filter-bar,
    .s360-field-toolbar,
    .s360-report-filter-form,
    .s360-template-toolbar,
    .s360-builder-toolbar,
    .s360-finance-ledger-toolbar,
    .s360-finance-ledger-filter-grid,
    .s360-report-filter-grid,
    .s360-hr-live-toolbar,
    .s360-hr-directory-filters
  ) :where(label, .s360-ui-form-field, .s360-field, .s360-field-wide) {
    width: 100%;
  }
}

/* UI-D2: module wrapper scope consistency.
 * Applies the D1/A1 safety normalization to School 360 admin wrappers that
 * use module-specific classes but do not yet carry the canonical s360-wrap
 * shell class. This is intentionally scoped to wp-admin and low-specificity
 * selectors so existing module-specific styles keep priority.
 */
.wp-admin :where(.wrap[class*="s360-"], .wrap[class*="school360"]) {
  color: var(--s360-color-text, #1e293b);
  font-size: var(--s360-font-size-md, 14px);
  line-height: var(--s360-line-height, 1.5);
  min-width: 0;
  box-sizing: border-box;
}

.wp-admin :where(.wrap[class*="s360-"], .wrap[class*="school360"]) :where(.postbox, .notice) {
  border-radius: var(--s360-radius-lg, 10px);
  box-shadow: var(--s360-shadow-sm, 0 1px 2px rgba(0, 0, 0, 0.04));
}

.wp-admin :where(.wrap[class*="s360-"], .wrap[class*="school360"]) :where(a, button, input, select, textarea, summary, [role="button"], [tabindex]:not([tabindex="-1"]), .button):focus-visible {
  outline: 2px solid var(--s360-color-focus-outline, #1d4ed8);
  outline-offset: var(--s360-interactive-outline-offset, 2px);
}

.wp-admin :where(.wrap[class*="s360-"], .wrap[class*="school360"]) :where(input, select, textarea, .s360-ui-control)[aria-invalid="true"] {
  border-color: var(--s360-color-form-error-border, #fecaca);
  box-shadow: var(--s360-focus-ring-danger, 0 0 0 3px rgba(185, 28, 28, 0.16));
}

.wp-admin :where(.wrap[class*="s360-"], .wrap[class*="school360"]) :where([aria-disabled="true"], [disabled]) {
  cursor: not-allowed;
}

.wp-admin :where(.wrap[class*="s360-"], .wrap[class*="school360"]) :where(.s360-ui-form-help, .s360-field-help, .s360-help, .description) {
  line-height: var(--s360-line-height, 1.5);
}

.wp-admin :where(.wrap[class*="s360-"], .wrap[class*="school360"]) :where(
  .s360-ui-table-toolbar,
  .s360-ui-action-bar,
  .s360-filter-bar,
  .s360-field-toolbar,
  .s360-report-filter-form,
  .s360-template-toolbar,
  .s360-builder-toolbar,
  .s360-finance-ledger-toolbar,
  .s360-finance-ledger-filter-grid,
  .s360-report-filter-grid,
  .s360-hr-live-toolbar,
  .s360-hr-directory-filters,
  .s360-ui-filter-shell,
  .s360-ui-module-toolbar
) {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
}

.wp-admin :where(.wrap[class*="s360-"], .wrap[class*="school360"]) :where(
  .s360-ui-page-header__actions,
  .s360-ui-action-bar__actions,
  .s360-ui-table-toolbar__actions,
  .s360-ui-table-toolbar__filters,
  .s360-builder-toolbar,
  .s360-template-toolbar,
  .s360-finance-ledger-toolbar-actions,
  .s360-finance-ledger-filter-actions,
  .s360-hr-filter-actions,
  .s360-hr-live-toolbar .s360-hr-filter-chips
) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s360-module-toolbar-control-gap, var(--s360-space-xs, 8px));
  min-width: 0;
}

.wp-admin :where(.wrap[class*="s360-"], .wrap[class*="school360"]) :where(
  .s360-ui-page-header__title,
  .s360-ui-card__title,
  .s360-ui-action-bar__title,
  .s360-ui-table-toolbar__title,
  .s360-admin-shortcut__title
) {
  overflow-wrap: anywhere;
}

.wp-admin :where(.wrap[class*="s360-"], .wrap[class*="school360"]) :where(
  .s360-ui-page-header__description,
  .s360-ui-card__subtitle,
  .s360-ui-action-bar__description,
  .s360-ui-empty-state__message,
  .s360-ui-empty-state__hint
) {
  overflow-wrap: break-word;
}

.wp-admin :where(.wrap[class*="s360-"], .wrap[class*="school360"]) :where(
  .s360-ui-table-toolbar,
  .s360-ui-action-bar,
  .s360-filter-bar,
  .s360-field-toolbar,
  .s360-report-filter-form,
  .s360-template-toolbar,
  .s360-builder-toolbar,
  .s360-finance-ledger-toolbar,
  .s360-finance-ledger-filter-grid,
  .s360-report-filter-grid,
  .s360-hr-live-toolbar,
  .s360-hr-directory-filters,
  .s360-ui-filter-shell,
  .s360-ui-module-toolbar
) :where(label, .s360-ui-form-field, .s360-field, .s360-field-wide, input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 782px) {
  .wp-admin :where(.wrap[class*="s360-"], .wrap[class*="school360"]) :where(a.button, .button, button, input[type="button"], input[type="submit"], input[type="reset"], select, input[type="text"], input[type="search"], input[type="email"], input[type="number"], input[type="date"], input[type="tel"], input[type="url"], .s360-ui-button, .s360-ui-tabs__tab, .s360-admin-nav-pill) {
    min-height: var(--s360-touch-target-min-mobile, 44px);
  }

  .wp-admin :where(.wrap[class*="s360-"], .wrap[class*="school360"]) :where(input[type="checkbox"], input[type="radio"]) {
    min-width: 20px;
    min-height: 20px;
  }

  .wp-admin :where(.wrap[class*="s360-"], .wrap[class*="school360"]) :where(
    .s360-ui-table-toolbar,
    .s360-filter-bar,
    .s360-field-toolbar,
    .s360-report-filter-form,
    .s360-template-toolbar,
    .s360-builder-toolbar,
    .s360-finance-ledger-toolbar,
    .s360-finance-ledger-filter-grid,
    .s360-report-filter-grid,
    .s360-hr-live-toolbar,
    .s360-hr-directory-filters,
    .s360-ui-filter-shell,
    .s360-ui-module-toolbar
  ) :where(label, .s360-ui-form-field, .s360-field, .s360-field-wide) {
    width: 100%;
  }
}


/* UI-D4: module component polish.
 * This pass normalizes recurring module component surfaces after UI-D3 made
 * School 360 admin pages share the canonical wrapper. Selectors remain
 * low-specificity and wp-admin-scoped so module-specific styles can still win.
 */
.wp-admin .s360-wrap :where(
  .s360-ui-card,
  .s360-ui-section-card,
  .s360-action-card,
  .s360-card,
  .s360-playground-card,
  .postbox
) {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
}

.wp-admin .s360-wrap :where(
  .s360-ui-card__header,
  .s360-ui-section-card__header,
  .s360-ui-card__toolbar,
  .s360-ui-section-card__toolbar,
  .s360-card-header,
  .s360-section-header,
  .s360-detail-page-header,
  .s360-page-header
) {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
  gap: var(--s360-module-card-header-gap, var(--s360-space-xs, 8px));
}

.wp-admin .s360-wrap :where(
  .s360-ui-card__header,
  .s360-ui-section-card__header,
  .s360-ui-card__toolbar,
  .s360-ui-section-card__toolbar,
  .s360-toolbar-actions,
  .s360-badge-row,
  .s360-audit-detail-badges,
  .s360-hr-profile-badges,
  .s360-admissions-inbox-badges,
  .s360-calendar-event-badges,
  .s360-custom-field-panel__badges,
  .s360-workflow-preview__badge-row
) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

.wp-admin .s360-wrap :where(
  .s360-filter-panel,
  .s360-analytics-filter-panel,
  .s360-analytics-filter-shell,
  .s360-admissions-inbox-filters,
  .s360-calendar-filterbar,
  .s360-report-filter-panel,
  .s360-expense-quick-filters,
  .s360-audit-filter-form,
  .s360-cf-library-toolbar,
  .s360-bulk-toolbar,
  .s360-layout-board-toolbar,
  .s360-layout-board-toolbar-secondary,
  .s360-notes-toolbar,
  .s360-filter-bar,
  .s360-field-toolbar,
  .s360-report-filter-form,
  .s360-expense-report-filter-form
) {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
  border-radius: var(--s360-module-filter-radius, var(--s360-radius-xl, 12px));
}

.wp-admin .s360-wrap :where(
  .s360-filter-panel,
  .s360-analytics-filter-panel,
  .s360-admissions-inbox-filters,
  .s360-calendar-filterbar,
  .s360-report-filter-panel,
  .s360-expense-quick-filters,
  .s360-audit-filter-form,
  .s360-cf-library-toolbar,
  .s360-bulk-toolbar,
  .s360-layout-board-toolbar,
  .s360-layout-board-toolbar-secondary,
  .s360-notes-toolbar
) :where(label, .s360-ui-form-field, .s360-field, .s360-field-wide, input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  max-width: 100%;
  min-width: 0;
}

.wp-admin .s360-wrap :where(
  .s360-filter-panel,
  .s360-analytics-filter-panel,
  .s360-admissions-inbox-filters,
  .s360-calendar-filterbar,
  .s360-report-filter-panel,
  .s360-expense-quick-filters,
  .s360-audit-filter-form,
  .s360-cf-library-toolbar,
  .s360-bulk-toolbar,
  .s360-layout-board-toolbar,
  .s360-layout-board-toolbar-secondary,
  .s360-notes-toolbar
) :where(.button, .s360-ui-button, button, input[type="submit"], input[type="button"], a.button) {
  white-space: nowrap;
}

.wp-admin .s360-wrap :where(
  div.s360-empty-state,
  div.s360-hr-empty-state,
  div.s360-calendar-empty-state,
  div.s360-report-empty-state,
  div.s360-builder-empty-state,
  .s360-ui-empty-state,
  .s360-ui-empty-state--table
) {
  box-sizing: border-box;
  max-width: 100%;
  min-height: var(--s360-module-empty-state-min-height, 96px);
  padding: var(--s360-module-empty-state-padding, 24px);
  border: 1px dashed var(--s360-module-empty-state-border, var(--s360-color-border-muted, #e2e8f0));
  border-radius: var(--s360-component-empty-state-radius, var(--s360-radius-2xl, 16px));
  background: var(--s360-module-empty-state-bg, var(--s360-color-bg-subtle, #f8fafc));
  color: var(--s360-module-empty-state-text, var(--s360-color-text-secondary, #475569));
  text-align: center;
}

.wp-admin .s360-wrap :where(
  div.s360-empty-state,
  div.s360-hr-empty-state,
  div.s360-calendar-empty-state,
  div.s360-report-empty-state,
  div.s360-builder-empty-state,
  .s360-ui-empty-state,
  .s360-ui-empty-state--table
) :where(strong, h2, h3, .s360-ui-empty-state__title) {
  color: var(--s360-module-empty-state-title, var(--s360-color-text-heading, #0f172a));
}

.wp-admin .s360-wrap :where(td.s360-empty-state, td .s360-ui-empty-state--table) {
  color: var(--s360-module-empty-state-text, var(--s360-color-text-secondary, #475569));
  text-align: center;
}

.wp-admin .s360-wrap :where(
  .s360-badge,
  .s360-ui-badge,
  .s360-status-badge,
  .s360-system-badge,
  .s360-event-type-badge
) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s360-module-badge-gap, 6px);
  max-width: 100%;
  min-height: var(--s360-component-badge-min-height, 24px);
  padding: var(--s360-module-badge-padding-y, 3px) var(--s360-module-badge-padding-x, 8px);
  line-height: 1.25;
  white-space: nowrap;
  vertical-align: middle;
}

.wp-admin .s360-wrap :where(
  .s360-ui-table-wrap,
  .s360-table-wrap,
  .s360-table-scroll,
  .s360-table-wrapper,
  .table-responsive,
  .s360-hr-table-wrap,
  .s360-hr-portal-table-wrap,
  .s360-finance-table-wrap
) {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  border-radius: var(--s360-module-table-radius, var(--s360-radius-xl, 12px));
  scrollbar-gutter: var(--s360-module-table-scrollbar-gutter, stable both-edges);
}

.wp-admin .s360-wrap :where(
  .s360-ui-table,
  .s360-hr-modern-table,
  .s360-hr-portal-table,
  .s360-finance-mini-table,
  .s360-table-compact
) {
  max-width: 100%;
}

.wp-admin .s360-wrap :where(
  .s360-ui-table th,
  .s360-ui-table td,
  .s360-hr-modern-table th,
  .s360-hr-modern-table td,
  .s360-finance-mini-table th,
  .s360-finance-mini-table td
) {
  overflow-wrap: anywhere;
}

.wp-admin .s360-wrap :where(
  .s360-ui-page-notices,
  .s360-ui-page-notice,
  .s360-notice,
  .s360-ui-notice,
  .s360-inline-notice,
  .s360-admissions-notice,
  .s360-portal-notice,
  .s360-timetable-conflict-notice
) {
  box-sizing: border-box;
  max-width: 100%;
}

@media (max-width: 782px) {
  .wp-admin .s360-wrap :where(
    .s360-filter-panel,
    .s360-analytics-filter-panel,
    .s360-admissions-inbox-filters,
    .s360-calendar-filterbar,
    .s360-report-filter-panel,
    .s360-expense-quick-filters,
    .s360-audit-filter-form,
    .s360-cf-library-toolbar,
    .s360-bulk-toolbar,
    .s360-layout-board-toolbar,
    .s360-layout-board-toolbar-secondary,
    .s360-notes-toolbar
  ) :where(label, .s360-ui-form-field, .s360-field, .s360-field-wide) {
    width: 100%;
  }

  .wp-admin .s360-wrap :where(
    .s360-ui-card__header,
    .s360-ui-section-card__header,
    .s360-ui-card__toolbar,
    .s360-ui-section-card__toolbar,
    .s360-toolbar-actions,
    .s360-badge-row,
    .s360-audit-detail-badges,
    .s360-hr-profile-badges,
    .s360-admissions-inbox-badges,
    .s360-calendar-event-badges,
    .s360-custom-field-panel__badges
  ) {
    align-items: stretch;
  }

  .wp-admin .s360-wrap :where(.s360-ui-page-header__actions, .s360-ui-card__toolbar, .s360-ui-section-card__toolbar) :where(.button, .s360-ui-button, button, a.button) {
    justify-content: center;
  }
}

/* UI Phase 2D — HR navigation must match grouped admin tab strip.
   Duplicated in runtime UI bundle because this file can load after module CSS. */
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation{
    background:transparent;
    border:0;
    border-radius:0;
    box-shadow:none;
    margin:18px 0 22px;
    padding:0;
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav.s360-ui-tabs__nav{
    align-items:flex-end;
    background:transparent;
    border:0;
    border-bottom:1px solid var(--s360-color-border-muted,#e2e8f0);
    border-radius:0;
    box-shadow:none;
    display:flex;
    flex-wrap:wrap;
    gap:0;
    margin:0;
    overflow:visible;
    padding:0;
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav-group,
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav-group-items{
    background:transparent;
    border:0;
    border-radius:0;
    box-shadow:none;
    display:contents;
    flex:initial;
    min-width:0;
    padding:0;
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav-group-title{
    display:none;
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav.s360-ui-tabs__nav .s360-hr-nav-item.s360-ui-tabs__tab{
    align-items:center;
    background:transparent;
    border:0;
    border-bottom:2px solid transparent;
    border-radius:0;
    box-shadow:none;
    color:var(--s360-color-text-muted,#64748b);
    cursor:pointer;
    display:inline-flex;
    flex:0 0 auto;
    font-size:13px;
    font-weight:750;
    justify-content:center;
    line-height:1.25;
    margin:0;
    min-height:46px;
    min-width:0;
    padding:13px var(--s360-component-card-padding-compact, 16px) 11px;
    text-decoration:none;
    transform:none;
    white-space:nowrap;
    width:auto;
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav.s360-ui-tabs__nav .s360-hr-nav-item.s360-ui-tabs__tab:hover,
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav.s360-ui-tabs__nav .s360-hr-nav-item.s360-ui-tabs__tab:focus-visible{
    background:transparent;
    border-bottom-color:var(--s360-color-primary-soft-border,#c7d2fe);
    box-shadow:none;
    color:var(--s360-color-primary,#2271b1);
    outline:none;
    transform:none;
}
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav.s360-ui-tabs__nav .s360-hr-nav-item.s360-ui-tabs__tab.is-active,
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav.s360-ui-tabs__nav .s360-hr-nav-item.s360-ui-tabs__tab[aria-current="page"],
.wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav.s360-ui-tabs__nav .s360-hr-nav-active{
    background:transparent;
    border-bottom-color:var(--s360-color-primary,#2271b1);
    box-shadow:none;
    color:var(--s360-color-primary,#2271b1);
}
@media (max-width:782px){
    .wp-admin .s360-tailwind-foundation.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav.s360-ui-tabs__nav{
        flex-wrap:nowrap;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
    }
}

/* ==========================================================================
 * Promoted components: event pill + toggle.
 * ========================================================================== */
.s360-ui-event-pill {
  box-sizing: border-box;
  min-width: 0;
  display: grid;
  grid-template-columns: 58px 1fr;
  gap: 14px;
  padding: 14px;
  border: 1px solid var(--s360-color-border-muted);
  border-radius: 14px;
  background: var(--s360-color-white, var(--s360-color-surface-raised));
  box-shadow: none;
}

.s360-ui-toggle {
  box-sizing: border-box;
  min-width: 0;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-height: 86px;
  padding: 14px;
  background: var(--s360-color-bg-subtle);
  border: 1px solid var(--s360-color-border-exact-d8dee6, var(--s360-color-border-muted));
  border-radius: 14px;
  box-shadow: none;
}

.s360-ui-toggle__content {
  display: block;
  flex: 1 1 auto;
}

.s360-ui-toggle__content small {
  display: block;
  margin-top: 4px;
  color: var(--s360-color-text-secondary);
}

.s360-ui-toggle--accent {
  border-inline-start: 4px solid var(--s360-color-primary);
}

.s360-ui-toggle--readonly {
  opacity: .78;
}

.s360-ui-toggle.is-muted {
  opacity: .7;
  pointer-events: none;
}

@media (max-width: 782px) {
  .s360-ui-event-pill {
    grid-template-columns: 1fr;
  }
}
/* v13.3: .s360-ui-main-tabs is the canonical class for page-level/main navigation tab strips.
   It intentionally inherits the existing s360-ui-tabs/nav-tab visual contract. */
.s360-ui-main-tabs{}


/* v13.3 — Canonical navigation contract.
 * Admin overrides should target .s360-ui-main-tabs and .s360-ui-sub-tabs.
 * Do not add high-specificity forced declarations here; site/admin CSS must be able to override these hooks. */
.s360-ui-main-tabs,
.s360-ui-sub-tabs,
.s360-ui-tabs__nav{
  --s360-tabs-bg: transparent;
  --s360-tabs-border: var(--s360-color-border-muted, #e2e8f0);
  --s360-tabs-text: var(--s360-color-text-muted, #64748b);
  --s360-tabs-active: var(--s360-color-primary, #2271b1);
}
.s360-ui-main-tabs{}
.s360-ui-sub-tabs{}

/* v13.3 hotfix: HR main navigation visual alignment.
 * The HR workspace carried a later Phase 2D underline override with higher
 * specificity than the shared `.s360-ui-main-tabs` bridge in card-system.css.
 * Keep the canonical classes and make HR page-level tabs match the Admin
 * Dashboard rounded container + pill-tab pattern. Workflow/sub-tabs remain
 * outside this selector because they do not use `.s360-ui-main-tabs`.
 */
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-ui-section-card--hr-navigation{
    display:block;
    min-height:0;
    margin:18px 0 22px;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
}
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-sidebar{
    position:static;
    top:auto;
    width:100%;
    margin:18px 0 22px;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    backdrop-filter:none;
    overflow:visible;
}
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs,
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav.s360-ui-main-tabs,
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i nav.nav-tab-wrapper.s360-hr-nav.s360-ui-tabs__nav.s360-ui-main-tabs{
    position:relative;
    top:auto;
    z-index:auto;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:flex-start;
    gap:var(--s360-space-xs, 8px);
    width:100%;
    max-width:none;
    min-width:0;
    margin:0;
    padding:var(--s360-space-xs, 8px);
    border:1px solid var(--s360-color-border-muted,var(--s360-color-border,#dbe5f0));
    border-bottom:1px solid var(--s360-color-border-muted,var(--s360-color-border,#dbe5f0));
    border-radius:16px;
    background:var(--s360-color-surface,var(--s360-color-white,#fff));
    box-shadow:var(--s360-shadow-sm,0 1px 2px rgba(15,23,42,.06));
    backdrop-filter:none;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    white-space:nowrap;
}
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs > .nav-tab,
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs > .s360-ui-tabs__tab,
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs .s360-hr-nav-item.s360-ui-tabs__tab{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    min-height:38px;
    min-width:0;
    width:auto;
    margin:0;
    padding:8px 12px;
    border:1px solid transparent;
    border-bottom:1px solid transparent;
    border-radius:999px;
    background:transparent;
    box-shadow:none;
    color:var(--s360-color-text-soft,var(--s360-color-text-muted,#64748b));
    font-size:13px;
    font-weight:700;
    line-height:1.3;
    text-align:center;
    text-decoration:none;
    transform:none;
    white-space:nowrap;
}
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs > .nav-tab:hover,
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs > .nav-tab:focus-visible,
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs > .s360-ui-tabs__tab:hover,
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs > .s360-ui-tabs__tab:focus-visible,
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs .s360-hr-nav-item.s360-ui-tabs__tab:hover,
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs .s360-hr-nav-item.s360-ui-tabs__tab:focus-visible{
    border-color:var(--s360-color-primary-soft-border,var(--s360-color-border,#bfdbfe));
    border-bottom-color:var(--s360-color-primary-soft-border,var(--s360-color-border,#bfdbfe));
    background:var(--s360-color-bg-subtle,var(--s360-color-bg,#f8fafc));
    color:var(--s360-color-primary,#2271b1);
    box-shadow:none;
    outline:none;
    transform:none;
}
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs > .nav-tab.nav-tab-active,
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs > .nav-tab.is-active,
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs > .nav-tab[aria-current="page"],
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs > .s360-ui-tabs__tab.nav-tab-active,
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs > .s360-ui-tabs__tab.is-active,
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs > .s360-ui-tabs__tab[aria-current="page"],
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs .s360-hr-nav-item.s360-ui-tabs__tab.nav-tab-active,
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs .s360-hr-nav-item.s360-ui-tabs__tab.s360-hr-nav-active,
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs .s360-hr-nav-item.s360-ui-tabs__tab.is-active,
body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs .s360-hr-nav-item.s360-ui-tabs__tab[aria-current="page"]{
    border-color:var(--s360-color-primary-soft-border,var(--s360-color-primary,#2271b1));
    border-bottom-color:var(--s360-color-primary-soft-border,var(--s360-color-primary,#2271b1));
    background:var(--s360-color-primary-soft,var(--s360-color-border-exact-f0f6fc,#f0f6fc));
    color:var(--s360-color-primary,#2271b1);
    box-shadow:none;
}
@media (max-width:782px){
    body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-hr-nav.s360-ui-main-tabs,
    body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i .s360-ui-section-card--hr-navigation .s360-hr-nav.s360-ui-main-tabs,
    body.wp-admin .s360-tailwind-foundation.s360-admin-wrapper.s360-hr-phase-i nav.nav-tab-wrapper.s360-hr-nav.s360-ui-tabs__nav.s360-ui-main-tabs{
        flex-wrap:nowrap;
        scroll-padding-inline:var(--s360-space-sm,12px);
    }
}

/* Phase 6 relocation: the v13.3 Admissions/System dashboard compact-card
 * correction moved to card-system.css so it loads after the generated
 * Tailwind foundation and no longer needs priority override declarations.
 */

