:root {
    --button-height:40px;
    --button-padding:8px 12px;
    --button-radius:9px;
    --button-font-size:14px;
    --button-font-weight:800;
    --button-border:#cfd6e3;
    --button-soft-bg:#fff;
    --button-soft-hover:#eff6ff;
    --button-danger:#b42318;
    --button-danger-border:#fda29b;
    --button-danger-hover:#fef3f2;
    --tenant-fixed-z-index:4000;
    --assignment-drag-z-index:3000;
    --dialog-horizontal-logo-width:min(340px, 76vw);
    --dialog-horizontal-logo-height:108px;
}

.notice {
    margin: 18px 0;
    padding: 13px 15px;
    border-radius: 10px;
}

.notice-success {
    border: 1px solid #abefc6;
    background: #ecfdf3;
    color: #067647;
}

.notice-error {
    border: 1px solid #fda29b;
    background: #fef3f2;
    color: #b42318;
}

.notice-warning {
    border: 1px solid #fedf89;
    background: #fffaeb;
    color: #93370d;
}

.form-panel { margin: 24px 0; }
.content { overflow: visible; }

.admin-form {
    display: grid;
    grid-template-columns: minmax(180px, 260px) minmax(260px, 1fr);
    align-items: center;
    gap: 13px 22px;
    margin-top: 24px;
}

.content :target {
    scroll-margin-top: 160px;
}

.admin-form label { font-weight: 700; }
.admin-form label .label-caption {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.admin-form label .label-caption .required-badge {
    margin-left: 0;
}
.admin-form small { color: var(--muted); font-weight: 500; }

.form-section-title {
    grid-column: 1 / -1;
    margin: 18px 0 0;
    padding-top: 18px;
    border-top: 1px solid var(--line);
    font-size: 18px;
}

.admin-form .form-section-title:first-of-type {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

.form-subsection-title {
    grid-column: 1 / -1;
    margin: 6px 0 -2px;
    font-size: 15px;
    font-weight: 800;
    color: var(--muted);
}

.form-row {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 13px 16px;
    align-items: end;
}

.form-wide {
    grid-column: 1 / -1;
}

.checkbox-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 9px 16px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #f8fafc;
}

.document-pill-list {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}

.form-row label {
    display: grid;
    gap: 7px;
}

.compact-form {
    margin-top: 14px;
}

.checkbox-line {
    display: flex !important;
    align-items: center;
    gap: 8px;
    font-weight: 600;
}

.checkbox-line input[type="checkbox"] {
    width: auto;
}

.checkbox-line span {
    display: grid;
    gap: 2px;
}

.campaign-mail-recipient-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    align-items: start;
}

.campaign-mail-recipient-grid > div,
.campaign-mail-attachments {
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #f8fafc;
    padding: 12px;
}

.campaign-mail-recipient-grid h5,
.campaign-mail-attachments legend {
    margin: 0 0 10px;
    font-size: 14px;
    font-weight: 800;
}

.campaign-mail-attachments {
    display: grid;
    gap: 10px;
}

.team-material-description {
    grid-column: 1 / -1;
}

.team-material-description textarea {
    min-height: 112px;
}

.team-material-grid {
    display: grid;
    gap: 14px;
}

.team-material-row {
    display: grid;
    grid-template-columns: minmax(260px, 360px) minmax(320px, 1fr);
    gap: 18px;
    align-items: end;
}

.team-material-check {
    min-height: 46px;
    white-space: nowrap;
}

.team-material-check strong,
.team-material-check span {
    display: block;
}

.team-material-note {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.team-rights-title {
    margin-top: 6px;
}

.team-rights-grid .row-actions {
    margin: 0;
}

.team-documents-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.team-document-card {
    display: grid;
    gap: 10px;
    align-content: start;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #f8fafc;
}

.team-document-card h4,
.team-document-card p {
    margin: 0;
}

.team-document-card-wide {
    grid-column: 1 / -1;
}

.team-document-list {
    display: grid;
    gap: 10px;
}

.team-document-list-item {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
    padding: 10px;
    border: 1px solid #dbe3ef;
    border-radius: 10px;
    background: #fff;
}

.team-upload-control {
    display: grid;
    gap: 6px;
    margin-top: 4px;
}

.hidden-form {
    display: none;
}

.team-main-panel {
    display: grid;
    gap: 22px;
}

.team-subblock {
    display: grid;
    gap: 14px;
    padding-top: 0;
    border-top: 0;
}

.team-subblock:first-of-type {
    padding-top: 0;
    border-top: 0;
}

.team-profile-detail {
    order: 1;
}

.team-create-subblock {
    order: 2;
}

.team-list-subblock {
    order: 3;
}

.panel-title-compact {
    margin-bottom: 0;
}

.panel-title-compact h3 {
    margin: 0;
    font-size: 1.15rem;
}

.school-list-title {
    align-items:center;
}

.panel-title-count {
    margin-left:auto;
    white-space:nowrap;
    font-size:13px;
}

.panel-title-actions {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    flex-wrap:wrap;
    margin-left:auto;
}

.panel-title-actions .panel-title-count {
    margin-left:0;
}
.campaign-table-title-actions {
    flex:1 1 auto;
    align-items:flex-start;
}
.campaign-table-title-actions .column-picker-button {
    margin:0;
}
.campaign-table-title-actions .column-picker-button.is-open {
    display:contents;
}
.campaign-table-title-actions .column-picker-button.is-open .column-picker-toggle {
    display:inline-flex;
}
.campaign-table-title-actions .column-picker-dropdown {
    flex:1 1 100%;
    width:100%;
    margin-top:0;
    padding:12px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#f8fafc;
}

.form-row.count-row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.form-row.count-row-with-average {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.form-row.count-row-total {
    grid-template-columns: minmax(180px, 1fr);
}

.count-summary {
    min-height: 72px;
    display: grid;
    align-content: center;
    gap: 4px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #f8fafc;
}

.count-summary span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.count-summary strong {
    font-size: 20px;
}

.inline-fieldset {
    grid-column: 1 / -1;
    display: flex;
    gap: 18px;
    align-items: center;
    flex-wrap: wrap;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 10px;
}

.inline-fieldset legend {
    padding: 0 8px;
    font-weight: 800;
}

.inline-fieldset label {
    display: flex;
    gap: 8px;
    align-items: center;
}

.inline-fieldset > .muted {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    margin: 0;
}

.inline-fieldset > .form-wide {
    flex: 1 1 240px;
    grid-column: auto;
}

.inline-fieldset input {
    width: auto;
}

.admin-form input,
.admin-form select,
.admin-form textarea,
.invitation-link input {
    width: 100%;
    padding: 12px;
    border: 1px solid #cfd6e3;
    border-radius: 9px;
    background: #fff;
    font: inherit;
    font-weight: 400;
}

.admin-form textarea { resize: vertical; line-height: 1.5; }
.admin-form .form-validation-summary {
    grid-column:1 / -1;
    margin:0 0 10px;
    font-weight:800;
}
.admin-form .is-invalid-control {
    border-color:#f04438!important;
    background:#fff7f6!important;
    box-shadow:0 0 0 3px rgba(240,68,56,.12)!important;
}
.admin-form label.has-invalid-control,
.admin-form .solo-form-section-title.has-invalid-control {
    color:#b42318;
}
.admin-form .solo-form-section-title.has-invalid-control {
    border-color:#fda29b!important;
    background:#fef3f2;
}

.admin-form > button {
    grid-column: 2;
    justify-self: start;
    width: auto;
}

.admin-form .form-bottom-actions {
    grid-column: 1 / -1;
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-start;
    margin-top: 10px;
}

.admin-form .form-bottom-actions button {
    grid-column: auto;
}

.invitation-link { margin: 18px 0; border-color: #abefc6; }
.invitation-link label { display: block; margin-bottom: 9px; font-weight: 800; }
.invitation-link p { margin: 9px 0 0; }

.row-actions { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.row-actions form { margin: 0; }
.solo-form-section-title {
    display:flex;
    align-items:center;
    gap:7px;
    min-height:34px;
    padding:5px 8px!important;
    border:1px solid var(--line)!important;
    border-radius:9px;
    background:#f8fafc;
    cursor:pointer;
}
.admin-form [hidden],
.solo-form-section-title[hidden] {
    display:none!important;
}
.solo-form-section-title.is-open {
    background:#eef4ff;
    border-color:#c7d7fe!important;
}
.solo-form-section-title::before {
    content:"\25BE";
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:18px;
    height:18px;
    border-radius:999px;
    background:#fff;
    color:var(--blue);
    font-size:13px;
    line-height:1;
    transition:transform .16s ease;
}
.solo-form-section-title:not(.is-open)::before { transform:rotate(-90deg); }
.solo-form-section-title .solo-form-section-toggle {
    grid-column:auto;
    margin-left:auto;
    min-height:24px;
    padding:3px 8px;
    border:1px solid #cfd6e3;
    border-radius:999px;
    background:#fff;
    color:var(--ink);
    font-size:12px;
    font-weight:800;
}
.solo-form-section-body {
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:minmax(180px,260px) minmax(260px,1fr);
    align-items:center;
    gap:10px 18px;
    padding:10px 0 2px;
}
.solo-form-section-body[hidden] { display:none!important; }
.solo-form-section-body > .form-row,
.solo-form-section-body > .form-wide,
.solo-form-section-body > fieldset,
.solo-form-section-body > .contact-list,
.solo-form-section-body > .team-documents-grid,
.solo-form-section-body > .team-material-grid,
.solo-form-section-body > .form-bottom-actions { grid-column:1 / -1; }
.inline-delete-form { margin-top: 10px; }
.task-row-done { background: #ecfdf3; }
.task-row-overdue { background: #fff7ed; }
.task-row-open { background: #fff; }
.row-edit-details summary { cursor: pointer; font-weight: 800; color: var(--blue); }
.task-edit-form {
    min-width: 320px;
    display: grid;
    gap: 8px;
    margin-top: 10px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
}
.task-edit-form label { display: grid; gap: 5px; font-weight: 800; }
.task-edit-form input,
.task-edit-form select,
.task-edit-form textarea { width: 100%; padding: 9px; border: 1px solid #cfd6e3; border-radius: 8px; font: inherit; font-weight: 400; }
.confirm-form { display: flex; gap: 7px; }
.confirm-form input { width: 170px; padding: 8px; border: 1px solid #cfd6e3; border-radius: 8px; }
.panel + .panel { margin-top: 24px; }
.collapsible-panel > .panel-title { cursor:pointer; }
.collapsible-panel > .panel-title h2 { display:flex;align-items:center;gap:10px; }
.panel-collapse-toggle {
    margin-left:auto;
    min-height:34px;
    padding:7px 11px;
    border:1px solid #cfd6e3;
    border-radius:999px;
    background:#fff;
    color:var(--ink);
    font-weight:800;
    cursor:pointer;
}
.collapsible-panel.is-collapsed > :not(.panel-title) { display:none!important; }
.collapsible-panel:not(.is-collapsed) > .panel-title { padding-bottom:12px;border-bottom:1px solid var(--line); }
[data-panel-solo-section] [data-panel-solo-section].collapsible-panel {
    margin-top: 16px;
}

[data-panel-solo-section] [data-panel-solo-section].collapsible-panel > .panel-title {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    min-height: 68px;
    padding: 16px 18px !important;
    border: 1px solid var(--line) !important;
    border-radius: 14px;
    background: #f8fafc;
    box-shadow: none;
    cursor: pointer;
}

[data-panel-solo-section] [data-panel-solo-section].collapsible-panel:not(.is-collapsed) > .panel-title {
    border-color: #c7d7fe !important;
    background: #eef4ff;
}

[data-panel-solo-section] [data-panel-solo-section].collapsible-panel > .panel-title::before {
    content: "\25BE";
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: #fff;
    color: var(--blue);
    font-size: 18px;
    line-height: 1;
    transition: transform .16s ease;
}

[data-panel-solo-section] [data-panel-solo-section].collapsible-panel.is-collapsed > .panel-title::before {
    transform: rotate(-90deg);
}

[data-panel-solo-section] [data-panel-solo-section].collapsible-panel > .panel-title > div {
    min-width: 0;
}

[data-panel-solo-section] [data-panel-solo-section].collapsible-panel > .panel-title .eyebrow {
    margin: 0 0 4px;
}

[data-panel-solo-section] [data-panel-solo-section].collapsible-panel > .panel-title h2,
[data-panel-solo-section] [data-panel-solo-section].collapsible-panel > .panel-title h3 {
    margin: 0;
    font-size: 20px;
}

[data-panel-solo-section] [data-panel-solo-section].collapsible-panel > .panel-title .panel-collapse-toggle {
    position: absolute;
    width: 1px;
    height: 1px;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    opacity: 0;
    pointer-events: none;
}

[data-panel-solo-section] [data-panel-solo-section].collapsible-panel:not(.is-collapsed) > :not(.panel-title) {
    margin-top: 16px;
}
.school-address-button { min-width:112px; }
.quick-actions,.share-choice-buttons { display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 18px; }
.quick-actions {
    position: sticky;
    top: 0;
    z-index: 90;
    padding: 10px 0;
    background: linear-gradient(180deg, rgba(248,250,252,.98), rgba(248,250,252,.92));
    backdrop-filter: blur(6px);
    border-bottom: 1px solid rgba(207,214,227,.75);
    box-shadow: 0 10px 24px rgba(15,23,42,.06);
}
.school-quick-actions,
.team-quick-actions {
    display:grid;
    grid-template-columns:minmax(0,auto) minmax(0,1fr);
    align-items:start;
    gap:10px 14px;
}
.quick-actions-hint {
    grid-column:1 / -1;
    margin:0;
    padding:8px 10px;
    border:1px solid #bfdbfe;
    border-radius:9px;
    background:#eff6ff;
    color:#1d4ed8;
    font-weight:800;
}
.quick-actions-hint.is-success {
    border-color:#abefc6;
    background:#ecfdf3;
    color:#067647;
}
.quick-actions-hint.is-warning {
    border-color:#fedf89;
    background:#fffaeb;
    color:#93370d;
}
.quick-actions-main,
.quick-actions-school,
.quick-actions-team,
.quick-actions-required {
    display:flex;
    gap:10px;
    align-items:flex-start;
    flex-wrap:wrap;
    justify-content:flex-start;
}
.quick-actions-school,
.quick-actions-team {
    min-width:0;
}
.quick-actions-school-selected {
    grid-column:1 / -1;
    width:100%;
}
.quick-actions-school-selected .school-required-toggle {
    margin-left:auto;
}
.quick-actions-school-selected .school-card-action {
    margin-left:auto;
}
.quick-actions-school-selected .school-required-toggle + .school-card-action {
    margin-left:0;
}
.quick-actions-required {
    grid-column:1 / -1;
}
.quick-delete-form {
    margin:0;
    display:inline-flex;
}
.quick-checkbox {
    min-height:var(--button-height);
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:var(--button-padding);
    border:1px solid #cfd6e3;
    border-radius:var(--button-radius);
    background:#fff;
    color:var(--ink);
    font-weight:800;
    line-height:1.2;
}
.quick-checkbox input {
    width:18px;
    height:18px;
    accent-color:var(--blue);
}
.admin-form[data-solo-form],
.admin-form[data-school-solo-form] {
    row-gap:7px;
}
.admin-form[data-solo-form] .solo-form-section-title,
.admin-form[data-school-solo-form] .solo-form-section-title {
    margin:0!important;
}
@media(max-width:1350px){
    .school-quick-actions,
    .team-quick-actions { grid-template-columns:1fr; }
    .quick-actions-main,
    .quick-actions-school,
    .quick-actions-team,
    .quick-actions-required { grid-column:1 / -1; }
}
.print-pdf-frame {
    position:fixed;
    right:0;
    bottom:0;
    width:0;
    height:0;
    border:0;
    opacity:0;
    pointer-events:none;
}
.share-choice-buttons { margin-top:12px; }
.quick-select-label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 800;
}
.quick-select-label select {
    min-width: 260px;
    padding: 10px 12px;
    border: 1px solid #cfd6e3;
    border-radius: 9px;
    background: #fff;
    font: inherit;
    font-weight: 500;
}
.school-toolbar { display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:start;gap:10px 8px;margin-bottom:18px; }
.school-search { display:flex;gap:10px;align-items:center;flex-wrap:wrap; }
.school-search input,.school-search select { min-width:280px;padding:12px;border:1px solid #cfd6e3;border-radius:9px;font:inherit;background:#fff; }
.table-pagination { display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--line); }
.table-pagination label { display:flex;align-items:center;gap:8px;font-weight:800; }
.table-pagination select { padding:8px 10px;border:1px solid #cfd6e3;border-radius:8px;background:#fff;font:inherit;font-weight:500; }
.table-pagination button:disabled { border-color:#cfd6e3;background:#fff;color:var(--muted);opacity:.55;cursor:not-allowed; }
.table-bottom-actions { margin-top:14px; }
.table-wrap table {
    border:1px solid var(--line);
}
.table-wrap th,
.table-wrap td {
    border-right:1px solid var(--line);
}
.table-wrap th:last-child,
.table-wrap td:last-child {
    border-right:0;
}
.table-wrap thead th {
    border-bottom:2px solid #98a2b3;
}
.table-wrap tbody tr:last-child td {
    border-bottom:0;
}
.table-wrap th[data-col="actions"],
.table-wrap td[data-col="actions"],
.table-wrap th[data-col="manage"],
.table-wrap td[data-col="manage"] {
    position:sticky;
    left:0;
    z-index:4;
    background:#fff;
    box-shadow:1px 0 0 var(--line), 8px 0 18px rgba(15,23,42,.06);
}
.table-wrap th[data-col="actions"],
.table-wrap th[data-col="manage"] {
    z-index:6;
    background:#f8fafc;
}
.table-wrap tbody tr:hover td[data-col="actions"],
.table-wrap tbody tr:hover td[data-col="manage"] {
    background:#f8fbff;
}
.back-to-top-panel { display:flex;justify-content:flex-end;margin:22px 0 4px; }
.column-picker { margin:8px 0 18px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc; }
.column-picker summary { cursor:pointer;font-weight:800; }
.column-picker-button { padding:0;border:0;background:transparent;box-shadow:none; }
.school-toolbar .column-picker-button { grid-column:2 / 4;grid-row:1;justify-self:end;position:static;display:grid;grid-template-columns:auto auto;align-items:start;gap:8px;margin:0; }
.school-toolbar > .muted { grid-column:1 / -1; }
.column-picker-button summary,
.column-picker-toggle { gap:9px;list-style:none; }
.column-picker-button summary::-webkit-details-marker { display:none; }
.column-picker-button[open] { padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc; }
.school-toolbar .column-picker-button[open] {
    display:contents;
    padding:0;
    border:0;
    background:transparent;
}
.school-toolbar .column-picker-button[open] summary {
    grid-column:2;
    grid-row:1;
    justify-self:end;
}
.school-toolbar .column-picker-button.is-open {
    display:contents;
}
.school-toolbar .column-picker-button.is-open .column-picker-toggle {
    grid-column:2;
    grid-row:1;
    justify-self:end;
}
.column-picker-dropdown {
    margin-top:10px;
}
.school-toolbar .column-picker-dropdown {
    grid-column:1 / -1;
    grid-row:2;
    position:static;
    width:100%;
    margin-top:0;
    padding:12px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#f8fafc;
    box-shadow:none;
}
.school-toolbar .column-picker-button.is-open > .column-picker-dropdown {
    grid-column:1 / -1;
    grid-row:2;
}
.column-picker p { margin:8px 0 0; }
.panel-title + .school-toolbar { margin-top:18px; }
.column-actions { margin-top:10px;align-items:stretch; }
.column-actions button,
.column-actions select {
    font-size:var(--button-font-size);
}
.column-actions select {
    min-width:180px;
    min-height:40px;
    padding:8px 34px 8px 12px;
    border:1px solid var(--blue);
    border-radius:var(--button-radius);
    background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23155eef' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 12px center / 14px 14px no-repeat;
    color:var(--blue);
    font-family:inherit;
    font-weight:800;
    line-height:1.2;
    appearance:none;
}
.column-actions select:hover,
.column-actions select:focus-visible {
    background-color:var(--button-soft-hover);
}
.column-toggle-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(180px,1fr));
    gap:8px 14px;
    align-items:start;
    margin-top:12px;
}
.column-toggle-grid label {
    display:grid;
    grid-template-columns:18px minmax(0,1fr);
    align-items:start;
    gap:8px;
    min-height:24px;
    font-size:13px;
    color:var(--muted);
    line-height:1.25;
}
.column-toggle-grid input {
    width:18px;
    height:18px;
    margin:0;
    accent-color:var(--blue);
}
.table-view-save-dialog label {
    display:grid;
    gap:7px;
    margin-bottom:14px;
    font-weight:800;
}
.table-view-save-dialog input {
    width:100%;
    padding:11px 12px;
    border:1px solid #cfd6e3;
    border-radius:9px;
    font:inherit;
}
@media(max-width:1100px){
    .column-toggle-grid { grid-template-columns:repeat(2,minmax(180px,1fr)); }
}
@media(max-width:680px){
    .column-toggle-grid { grid-template-columns:1fr; }
}
.table-wrap th[draggable="true"] { user-select:none; }
.table-wrap th[data-sort],
.table-wrap th.sortable-column {
    position:relative;
    cursor:pointer;
    padding-right:36px;
    vertical-align:middle;
}
.table-wrap th[data-sort]::after,
.table-wrap th.sortable-column::after {
    content:"\2195";
    position:absolute;
    top:50%;
    right:13px;
    transform:translateY(-50%);
    display:grid;
    place-items:center;
    width:18px;
    height:18px;
    border:1px solid #bfdbfe;
    border-radius:999px;
    background:#eff6ff;
    color:var(--blue);
    font-size:11px;
    line-height:1;
    letter-spacing:0;
}
.table-wrap th[data-direction="asc"]::after,
.table-wrap th[data-direction="desc"]::after {
    border-color:var(--blue);
    background:var(--blue);
    color:#fff;
}
.table-wrap th[data-sort]:hover::after,
.table-wrap th.sortable-column:hover::after {
    border-color:#93c5fd;
    background:#dbeafe;
    color:var(--blue);
}
.table-wrap th[data-direction="asc"]:hover::after,
.table-wrap th[data-direction="desc"]:hover::after {
    border-color:var(--blue);
    background:var(--blue);
    color:#fff;
}
.table-wrap th[data-direction="asc"]::after { content:"\2191"; }
.table-wrap th[data-direction="desc"]::after { content:"\2193"; }
.table-wrap th[data-col="actions"]::after,
.table-wrap th[data-col="manage"]::after {
    content:none!important;
}
.table-wrap th[data-col="actions"],
.table-wrap th[data-col="manage"] {
    cursor:default;
}
.table-wrap th.resizable-column { position:relative; }
.table-wrap th[data-col="actions"],
.table-wrap th[data-col="manage"] {
    position:sticky;
}
.column-resize-handle {
    position:absolute;
    top:8px;
    right:0;
    width:9px;
    height:calc(100% - 16px);
    cursor:col-resize;
    border-right:2px solid transparent;
    z-index:2;
}
.column-resize-handle:hover,
.column-resize-handle:focus { border-right-color:var(--blue); }
.table-selection-actions {
    align-items:center;
    margin:12px 0;
    padding:10px;
    border:1px solid #bfdbfe;
    border-radius:12px;
    background:#eff6ff;
}
.table-selection-actions[hidden] { display:none !important; }
.table-selection-count {
    color:var(--blue);
    font-weight:900;
    margin-right:auto;
}
.dragging-column { opacity:.45; }
.drag-over-column { box-shadow: inset 3px 0 0 var(--blue); background:#eff6ff; }
.storage-code { display:inline-block;max-width:190px;white-space:normal;overflow-wrap:anywhere;background:#f2f4f7;padding:3px 5px;border-radius:5px; }
.form-hint { align-self:center;margin:0;color:#155eef!important;font-weight:800; }
.field-hint { display:block;margin-top:4px;color:#155eef;font-size:12px;font-weight:700; }
.address-qr-preview { display:grid;grid-template-columns:repeat(2,minmax(0,160px));gap:14px; }
.address-qr-preview > div { display:grid;gap:8px;justify-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;text-align:center; }
.address-qr-preview img { width:132px;height:132px; }
.address-qr-preview a { color:var(--blue);font-weight:800;text-decoration:none; }
.sidebar-secondary { margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12); }
.sidebar {
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-color:#475467 var(--tenant-nav-bg, #101828);
}
.app-shell:has(.tenant-top-account) {
    --tenant-brand-width:260px;
    --tenant-header-height:96px;
    grid-template-columns:260px minmax(0,1fr);
}
.app-shell:has(.tenant-top-account)::before {
    content:"";
    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:calc(var(--tenant-fixed-z-index) - 1);
    height:var(--tenant-header-height);
    background:var(--tenant-nav-bg, #101828);
    border-bottom:1px solid rgba(255,255,255,.12);
}
.app-shell:has(.tenant-top-account) .content {
    position:relative;
    z-index:0;
    padding-top:calc(var(--tenant-header-height) + 36px);
}
.app-shell:has(.tenant-top-account) .quick-actions {
    top:var(--tenant-header-height);
    z-index:calc(var(--tenant-fixed-z-index) - 20);
}
.app-shell:has(.tenant-top-account) .campaign-step-menu {
    top:calc(var(--tenant-header-height) + 10px);
    z-index:calc(var(--tenant-fixed-z-index) - 30);
}
.app-shell:has(.tenant-top-account) .page-header {
    display:block;
    margin:-14px 0 18px;
    padding:0;
    border-bottom:0;
}
.app-shell:has(.tenant-top-account) .page-header > div {
    display:flex;
    align-items:center;
    gap:8px;
    min-width:0;
    flex-wrap:wrap;
    color:#667085;
    font-size:13px;
    font-weight:900;
}
.app-shell:has(.tenant-top-account) .page-header > div::before {
    content:attr(data-breadcrumb-root);
    color:#667085;
}
.app-shell:has(.tenant-top-account) .page-header > div:has(.breadcrumb-nav)::before {
    content:none;
    display:none;
}
.app-shell:has(.tenant-top-account) .page-header .eyebrow {
    display:none;
}
.app-shell:has(.tenant-top-account) .page-header .eyebrow::after {
    content:none;
}
.app-shell:has(.tenant-top-account) .page-header h1 {
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin:0;
    color:#155eef;
    font-size:13px;
    font-weight:900;
    line-height:1.25;
}
.app-shell:has(.tenant-top-account) .page-header h1::before {
    content:"/";
    color:#98a2b3;
    font-weight:900;
}
.breadcrumb-nav {
    display:flex;
    align-items:center;
    gap:8px;
    min-width:0;
    flex-wrap:wrap;
}
.breadcrumb-nav > * {
    display:inline-flex;
    align-items:center;
    gap:8px;
    min-height:20px;
    line-height:1.25;
}
.breadcrumb-nav > * + *::before {
    content:"/";
    color:#98a2b3;
    font-weight:900;
}
.breadcrumb-nav a {
    color:#155eef;
    font-weight:900;
    text-decoration:none;
}
.breadcrumb-nav .breadcrumb-current {
    margin:0;
    color:#155eef;
    font-size:13px;
    font-weight:900;
    line-height:1.25;
}
.breadcrumb-nav a:hover,
.breadcrumb-nav a:focus-visible {
    text-decoration:underline;
}
.app-shell:has(.tenant-top-account) .page-header .muted {
    flex-basis:100%;
    margin:4px 0 0;
    font-size:13px;
}
.app-shell:has(.tenant-top-account) .page-header .user-chip {
    display:none;
}
.sidebar:has(.tenant-top-account) {
    position:sticky;
    z-index:var(--tenant-fixed-z-index);
    display:flex;
    flex-direction:column;
    height:100vh;
    padding-top:calc(var(--tenant-header-height) + 24px);
    overflow-y:auto;
}
.sidebar:has(.tenant-top-account) .brand {
    position:fixed;
    top:0;
    left:0;
    z-index:var(--tenant-fixed-z-index);
    width:var(--tenant-brand-width);
    height:var(--tenant-header-height);
    justify-content:flex-start;
    align-content:center;
    flex-wrap:wrap;
    gap:10px;
    padding:0 24px;
    border-bottom:1px solid rgba(255,255,255,.12);
    background:var(--tenant-nav-bg, #101828);
    color:var(--tenant-nav-text, #fff);
}
.sidebar:has(.tenant-top-account) .brand strong {
    display:block;
    flex:1 1 110px;
    min-width:0;
    max-width:165px;
    overflow-wrap:anywhere;
    font-size:14px;
    line-height:1.2;
}
.tenant-brand .tenant-brand-logo {
    width:42px;
    height:42px;
    flex:0 0 42px;
    border-radius:50%;
    background:#fff url('/images/schoolphotohub-favicon.svg') center / contain no-repeat;
    color:transparent;
    font-size:0;
}
.tenant-brand img.tenant-brand-logo {
    display:block;
    object-fit:contain;
    padding:3px;
}
.tenant-brand img.tenant-brand-logo-platform {
    width:212px;
    height:54px;
    flex:0 0 212px;
    border-radius:0;
    background:transparent;
    object-position:left center;
    padding:0;
}
.tenant-brand img.tenant-brand-logo-full {
    width:212px;
    height:54px;
    flex:0 0 212px;
    border-radius:0;
    background:transparent;
    object-position:left center;
    padding:0;
}
.tenant-brand-name-only {
    display:block;
    max-width:212px;
    color:var(--tenant-nav-text, #fff);
    font-size:18px;
    line-height:1.15;
    overflow-wrap:anywhere;
}
.platform-brand {
    align-items:center;
}
.app-shell:has(.platform-brand) {
    --blue:#0bb7c3;
}
.app-shell:has(.platform-brand) .form-hint,
.app-shell:has(.platform-brand) .field-hint,
.app-shell:has(.platform-brand) .task-instruction-block {
    color:var(--blue)!important;
}
.app-shell:has(.platform-brand) .notice-info {
    background:#e6fbfd;
    color:#087f89;
}
.app-shell:has(.platform-brand) .login-form input:focus,
.app-shell:has(.platform-brand) input:focus,
.app-shell:has(.platform-brand) select:focus,
.app-shell:has(.platform-brand) textarea:focus {
    border-color:var(--blue);
    box-shadow:0 0 0 3px rgba(11,183,195,.14);
}
.platform-brand .platform-brand-logo {
    display:block;
    width:212px;
    max-width:100%;
    height:54px;
    object-fit:contain;
    object-position:left center;
}
.sidebar:has(.tenant-top-account) .tenant-context-panel {
    position:fixed;
    top:0;
    left:var(--tenant-brand-width);
    right:230px;
    z-index:var(--tenant-fixed-z-index);
    min-height:var(--tenant-header-height);
}
.sidebar:has(.tenant-top-account) .logout {
    display:none!important;
}
.tenant-top-account {
    position:fixed;
    top:0;
    right:0;
    z-index:var(--tenant-fixed-z-index);
    width:230px;
    min-height:var(--tenant-header-height);
    display:grid;
    align-content:center;
    justify-items:end;
    gap:8px;
    padding:12px 18px;
    border-bottom:1px solid rgba(255,255,255,.12);
    background:var(--tenant-nav-bg, #101828);
    color:var(--tenant-nav-text, #fff);
}
.tenant-top-user {
    max-width:100%;
    overflow:hidden;
    color:var(--tenant-nav-text, #fff);
    font-size:12px;
    font-weight:800;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.tenant-top-logout {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:8px 14px;
    border:1px solid rgba(255,255,255,.28);
    border-radius:8px;
    background:transparent;
    color:var(--tenant-nav-text, #fff);
    font:900 13px/1.2 inherit;
    text-decoration:none;
}
.tenant-top-logout:hover,
.tenant-top-logout:focus-visible {
    background:rgba(255,255,255,.10);
    color:var(--tenant-nav-text, #fff);
}
.tenant-context-panel {
    display:grid;
    grid-template-columns:minmax(180px,1fr) minmax(110px,.55fr) minmax(180px,1fr) auto;
    grid-template-areas:
        "title title title title"
        "school schoolyear campaign required";
    gap:7px 18px;
    align-items:center;
    margin:0;
    padding:12px 36px 12px 18px;
    border:0;
    border-bottom:1px solid rgba(255,255,255,.12);
    border-radius:0;
    background:var(--tenant-nav-bg, #101828);
    color:var(--tenant-nav-text, #fff);
}
.tenant-context-panel:not(:has(.tenant-context-required-toggle)) {
    grid-template-columns:minmax(180px,1fr) minmax(110px,.55fr) minmax(180px,1fr);
    grid-template-areas:
        "title title title"
        "school schoolyear campaign";
}
.tenant-context-title {
    grid-area:title;
    margin:0;
    color:var(--tenant-nav-text, #fff);
    font-size:11px;
    font-weight:900;
    letter-spacing:.08em;
    text-align:center;
    text-transform:uppercase;
}
.tenant-context-panel label {
    display:grid;
    grid-template-columns:max-content minmax(0,1fr);
    align-items:center;
    gap:8px;
    min-width:0;
    color:var(--tenant-nav-text, #aeb8c8);
    font-size:11px;
    font-weight:800;
}
.tenant-context-panel label:nth-of-type(1) {
    grid-area:school;
}
.tenant-context-panel label:nth-of-type(2) {
    grid-area:schoolyear;
}
.tenant-context-panel label:nth-of-type(3) {
    grid-area:campaign;
}
.tenant-context-required-toggle {
    grid-area:required;
    justify-self:end;
    align-self:center;
    display:inline-grid;
    grid-template-columns:18px max-content;
    gap:8px;
    min-height:34px;
    padding:8px 10px;
    border:1px solid rgba(96,165,250,.45);
    border-radius:8px;
    background:rgba(21,94,239,.14);
    color:var(--tenant-nav-text, #bfdbfe);
    white-space:nowrap;
}
.tenant-context-required-toggle input {
    width:18px;
    height:18px;
    margin:0;
    accent-color:var(--blue);
}
.tenant-context-required-toggle span {
    color:var(--tenant-nav-text, #bfdbfe);
    font-size:12px;
    font-weight:900;
}
.tenant-context-panel select {
    width:100%;
    min-height:34px;
    padding:7px 8px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:8px;
    background:color-mix(in srgb, var(--tenant-nav-bg, #101828) 86%, #000);
    color:var(--tenant-nav-text, #fff);
    font:800 12px inherit;
}
.tenant-menu-toggle {
    display:none;
}
.tenant-nav {
    display:grid;
    grid-template-columns:1fr;
    gap:24px;
}
.tenant-menu-account {
    display:none;
    gap:7px;
    margin:0 0 2px;
    padding:0 8px 14px;
    border-bottom:1px solid rgba(255,255,255,.12);
}
.tenant-menu-user {
    min-width:0;
    overflow:hidden;
    color:var(--tenant-nav-text, #cbd5e1);
    font-size:12px;
    font-weight:800;
    line-height:1.25;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.tenant-menu-account-logout {
    justify-self:start;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:8px 14px;
    border:1px solid rgba(255,255,255,.28);
    border-radius:8px;
    background:transparent;
    color:var(--tenant-nav-text, #fff);
    font:900 13px/1.2 inherit;
    text-decoration:none;
}
.tenant-menu-account-logout:hover,
.tenant-menu-account-logout:focus-visible {
    background:rgba(255,255,255,.10);
    color:var(--tenant-nav-text, #fff);
}
.app-shell:has(.tenant-top-account) .content::after { content:none; display:none; }
.tenant-menu-copyright {
    margin-top:12px;
    padding:16px 8px 0;
    border-top:1px solid rgba(255,255,255,.12);
    color:var(--tenant-nav-text, #98a2b3);
    font-size:12px;
    font-weight:800;
}
.tenant-nav-section {
    display:grid;
    gap:4px;
    padding-top:2px;
}
.tenant-nav-section-toggle {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    width:100%;
    margin:0 0 4px;
    padding:0 8px;
    border:0;
    background:transparent;
    color:var(--tenant-nav-text, #8fa0b9);
    cursor:pointer;
    font:inherit;
    font-size:11px;
    font-weight:900;
    letter-spacing:.08em;
    line-height:1.25;
    text-align:left;
    text-transform:uppercase;
    user-select:none;
}
.tenant-nav-section-toggle::after {
    content:"";
    flex:0 0 auto;
    width:7px;
    height:7px;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:rotate(45deg) translateY(-2px);
    transition:transform .16s ease;
}
.tenant-nav-section[data-tenant-nav-open="0"] .tenant-nav-section-toggle {
    margin-bottom:0;
}
.tenant-nav-section[data-tenant-nav-open="0"] .tenant-nav-section-toggle::after {
    transform:rotate(-45deg);
}
.tenant-nav-section-toggle:hover,
.tenant-nav-section-toggle:focus-visible {
    color:var(--tenant-nav-text, #fff);
}
.tenant-nav-section-body {
    display:grid;
    gap:4px;
}
.tenant-nav-section[data-tenant-nav-open="0"] .tenant-nav-section-body {
    display:none;
}
.sidebar nav.tenant-nav .tenant-nav-heading-link,
.tenant-nav-heading-link {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin:0;
    padding:6px 8px;
    border-radius:8px;
    color:var(--tenant-nav-text, #8fa0b9);
    font-size:11px;
    font-weight:900;
    letter-spacing:.08em;
    line-height:1.25;
    text-decoration:none;
    text-transform:uppercase;
}
.tenant-nav-heading-link::after {
    content:"";
    flex:0 0 auto;
    width:7px;
    height:7px;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:rotate(-45deg);
}
.sidebar nav.tenant-nav .tenant-nav-heading-link:hover,
.sidebar nav.tenant-nav .tenant-nav-heading-link.active {
    background:rgba(255,255,255,.08);
    color:var(--tenant-nav-text, #fff);
}
.sidebar nav.tenant-nav .tenant-nav-link,
.tenant-nav-link {
    display:grid;
    grid-template-columns:10px minmax(0,1fr);
    column-gap:9px;
    row-gap:1px;
    align-items:center;
    min-height:34px;
    padding:8px 10px;
    border-radius:8px;
    color:var(--tenant-nav-text, #d7dce5);
    text-decoration:none;
}
.sidebar nav.tenant-nav .tenant-nav-link:hover,
.sidebar nav.tenant-nav .tenant-nav-link.active {
    background:#243044;
    color:var(--tenant-nav-text, #fff);
}
.tenant-nav-status {
    width:8px;
    height:8px;
    border-radius:50%;
    background:#475467;
}
.tenant-nav-link-ready .tenant-nav-status { background:#12b76a; }
.tenant-nav-link-future { color:#7f8aa0; }
.tenant-nav-link-future .tenant-nav-status { background:#667085; }
.tenant-nav-link.is-disabled {
    cursor:default;
    opacity:.72;
}
.tenant-nav-text {
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-weight:800;
}
.tenant-nav-link small {
    grid-column:2;
    min-width:0;
    overflow:hidden;
    color:color-mix(in srgb, var(--tenant-nav-text, #98a2b3) 72%, transparent);
    font-size:11px;
    font-weight:700;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.copy-row { display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center; }
.copy-row button { white-space:nowrap; }
.action-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:22px; }
.action-card { display:grid;gap:6px;padding:18px;border:1px solid var(--line);border-radius:11px;text-decoration:none; }
.action-card:hover { border-color:var(--blue);box-shadow:0 0 0 3px rgba(21,94,239,.08); }
.action-card span { color:var(--muted);font-size:14px; }
.two-factor-setup { display:grid;grid-template-columns:280px minmax(0,520px);gap:28px;align-items:start;margin-top:24px; }
.two-factor-setup img { display:block;background:#fff;border:1px solid var(--line);border-radius:12px; }
.secret-code { display:block;max-width:100%;padding:10px;overflow-wrap:anywhere;background:#f2f4f7;border-radius:8px;user-select:all; }
.auth-card-header { text-align:center; }
.auth-card-header .brand-mark { margin:0 auto; }
.auth-card-header .muted { margin-bottom:0; }
.two-factor-reminder-overlay {
    position:fixed;
    inset:0;
    z-index:1000;
    display:grid;
    place-items:center;
    padding:24px;
    background:rgba(16,24,40,.46);
}
.two-factor-reminder-dismissed .two-factor-reminder-overlay { display:none; }
.two-factor-reminder-dialog {
    width:min(430px,100%);
    padding:24px;
    border:1px solid #fedf89;
    border-radius:8px;
    background:#fff;
    color:var(--ink);
    text-align:center;
    box-shadow:0 24px 70px rgba(16,24,40,.24);
}
.two-factor-reminder-dialog .eyebrow { margin-top:0;color:#b54708; }
.two-factor-reminder-dialog h2 { margin-bottom:8px;font-size:24px; }
.two-factor-reminder-dialog p { line-height:1.5; }
.two-factor-reminder-brand { display:flex;justify-content:center;margin-bottom:16px; }
.two-factor-reminder-brand img {
    width:var(--dialog-horizontal-logo-width);
    height:var(--dialog-horizontal-logo-height);
    object-fit:contain;
}
.two-factor-reminder-actions {
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:10px;
    margin-top:20px;
}
.two-factor-reminder-actions a { text-decoration:none; }
.two-factor-reminder-actions form { margin:0; }
.two-factor-reminder-actions a:focus-visible,
.two-factor-reminder-actions button:focus-visible {
    outline:2px solid rgba(21,94,239,.28);
    outline-offset:2px;
}
.auth-footer { margin:20px 0 0;text-align:center; }
.notice input { width:100%;margin-top:10px;padding:10px;border:1px solid #abefc6;border-radius:8px; }
.recovery-code-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:18px; }
.recovery-code-grid code { padding:12px;background:#f2f4f7;border-radius:8px;text-align:center;font-size:15px;user-select:all; }
.login-form input:not([type="checkbox"]) { width:100%;padding:13px;border:1px solid #cfd6e3;border-radius:9px;font:inherit;outline:none; }
.password-field { position:relative;display:block; }
.password-field input { padding-right:52px!important; }
.login-form .password-toggle {
    position:absolute;
    top:50%;
    right:6px;
    transform:translateY(-50%);
    width:40px;
    height:40px;
    display:grid;
    place-items:center;
    padding:0;
    border:0;
    border-radius:8px;
    background:transparent;
    color:var(--muted);
    cursor:pointer;
}
.login-form .password-toggle:hover,
.login-form .password-toggle:focus-visible {
    color:var(--blue);
    background:#eef4ff;
}
.login-form .password-toggle:focus-visible {
    outline:2px solid rgba(21,94,239,.28);
    outline-offset:2px;
}
.password-toggle-icon { width:20px;height:20px; }
.password-toggle-icon svg { width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round; }
.password-toggle-icon-hide { display:none; }
.password-toggle[aria-pressed="true"] .password-toggle-icon-show { display:none; }
.password-toggle[aria-pressed="true"] .password-toggle-icon-hide { display:block; }

.sales-url-list { display:grid;gap:12px;margin:22px 0; }
.sales-url-list > div { display:grid;gap:5px;padding:14px;border:1px solid var(--line);border-radius:10px; }
.sales-url-list a { color:var(--blue);overflow-wrap:anywhere; }
.sales-url-list small { color:var(--muted); }
.mail-editor-form { display:grid;gap:11px;margin-top:22px; }
.mail-editor-form label { font-weight:800; }
.mail-editor-form input,.mail-editor-form textarea { width:100%;padding:12px;border:1px solid #cfd6e3;border-radius:9px;font:inherit;font-weight:500; }
.mail-editor-form textarea { min-height:280px;resize:vertical;line-height:1.5; }
.mail-attachment-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px; }
.mail-attachment-grid label { display:grid;gap:8px;padding:12px;border:1px dashed #cfd6e3;border-radius:12px;background:#f8fafc; }
.mail-attachment-grid input[type=file] { background:#fff;font-weight:500; }
.readonly-form input[readonly],.readonly-form textarea[readonly],.readonly-form input:disabled,.readonly-form select:disabled { background:#f8fafc;color:var(--ink);cursor:default;opacity:1; }
.readonly-form input[type=checkbox]:disabled { opacity:.8;cursor:default; }
.readonly-form input[type=checkbox][data-readonly-lock],
.readonly-form input[type=radio][data-readonly-lock] {
    width:18px;
    height:18px;
    opacity:1;
    cursor:default;
    accent-color:var(--blue);
    filter:saturate(1.25) contrast(1.15);
}
.school-card-dialog { border:0;border-radius:18px;padding:24px;box-shadow:0 24px 80px rgba(16,24,40,.24);max-width:440px;width:calc(100% - 32px); }
.school-card-dialog::backdrop { background:rgba(16,24,40,.38); }
.school-card-dialog h3 { margin-bottom:8px; }
.card-dialog-hero { display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line);text-align:center; }
.card-dialog-hero > div { flex:0 1 auto; }
.card-dialog-hero img {
    width:var(--dialog-horizontal-logo-width);
    height:var(--dialog-horizontal-logo-height);
    object-fit:contain;
    border:0;
    border-radius:0;
    background:transparent;
    padding:0;
}
.card-dialog-hero .eyebrow { margin-bottom:3px; }
.card-dialog-hero h3 { margin:0 0 4px; }
.photo-session-dialog-hero { flex-direction:column;gap:10px; }
.photo-session-dialog-hero > div { flex:0 1 auto; }
.photo-session-dialog-hero .muted { max-width:360px;margin:0 auto; }
.dialog-brand-text {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:var(--dialog-horizontal-logo-width);
    min-height:var(--dialog-horizontal-logo-height);
    color:var(--ink);
    font-size:20px;
    font-weight:800;
    text-align:center;
}
.school-card-dialog > form > .muted { text-align:center; }
.dialog-actions-equal { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:stretch; }
.dialog-actions-two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.dialog-actions-single { grid-template-columns:minmax(0,1fr); }
.dialog-actions-equal > *, .dialog-actions-equal button, .dialog-actions-equal a { width:100%;box-sizing:border-box; }
.rich-source-fallback { display:none; }
.rich-toolbar { display:flex;flex-wrap:wrap;gap:8px;align-items:center; }
.rich-toolbar select { border:1px solid #cfd6e3;border-radius:var(--button-radius);background:#fff;color:var(--ink);font-weight:600; }
.rich-editor { min-height:280px;padding:14px;border:1px solid #cfd6e3;border-radius:10px;background:#fff;line-height:1.55;outline:none; }
.rich-editor:focus { border-color:var(--blue);box-shadow:0 0 0 3px rgba(21,94,239,.10); }
.rich-editor img { max-width:220px;height:auto; }
.is-readonly-field { background:#f8fafc!important;color:var(--muted)!important; }
.variable-buttons { display:flex;flex-wrap:wrap;gap:8px; }
.team-choice { display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid #cfd6e3;border-radius:999px;background:#fff;font-weight:700; }
.team-choice input { width:auto; }
.toolbar-note { align-self:center;font-size:13px; }

.form-wide { grid-column: 1 / -1; }
.contact-list { display:grid;gap:10px; }
.contact-row { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8fafc; }
.contact-row label { display:grid;gap:7px;font-weight:800; }
.contact-row .contact-copy-control { grid-column:1 / -1;max-width:360px; }
.contact-mode-actions { display:flex;gap:8px;align-items:center;flex-wrap:wrap; }
.contact-mode-help { margin-top:-6px; }
.contact-coordinator-summary {
    display:grid;
    gap:4px;
    padding:12px 14px;
    border:1px solid #bfdbfe;
    border-radius:12px;
    background:#eff6ff;
    color:var(--ink);
}
.contact-coordinator-summary[hidden] { display:none!important; }
.contact-coordinator-summary span { color:var(--muted);font-weight:700;line-height:1.4; }
.admin-form .contact-add-button { grid-column:1 / -1;justify-self:start; }
.admin-form .contact-copy-button { grid-column:1 / -1;justify-self:start; }
.admin-form .contact-single-button,
.admin-form .contact-restore-required-button { margin-right:8px;white-space:normal;text-align:center; }
.school-logo-preview {
    display:block;
    max-width:260px;
    max-height:150px;
    object-fit:contain;
    margin:0 0 10px;
    padding:10px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
}
.school-logo-preview.is-hidden { display:none; }

.tenant-logo-preview {
    display:block;
    max-width:180px;
    max-height:100px;
    object-fit:contain;
    padding:10px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
}

.action-form {
    display:grid;
    grid-template-columns: minmax(220px,2fr) minmax(190px,1fr) minmax(180px,1fr) repeat(3,minmax(130px,1fr));
    gap:12px;
    align-items:end;
    padding:14px;
    margin:18px 0;
    border:1px solid var(--line);
    border-radius:12px;
    background:#f8fafc;
}
.action-form label { display:grid;gap:7px;font-weight:800; }
.action-form input,.action-form select,.action-form textarea,
.action-table input,.action-table select,.action-table textarea {
    width:100%;
    padding:9px 10px;
    border:1px solid #cfd6e3;
    border-radius:8px;
    background:#fff;
    font:inherit;
    font-weight:400;
}
.readonly-field {
    display:block;
    padding:10px 12px;
    border:1px solid var(--line);
    border-radius:8px;
    background:#eef2ff;
    color:var(--ink);
    font-weight:700;
}
.action-form .checkbox-line,.action-notify-line { display:flex;align-items:center;gap:8px; }
.action-form .checkbox-line input,.action-notify-line input[type="checkbox"] { width:auto; }
.action-form .checkbox-line { grid-column:1 / -1;align-self:center; }
.action-form .action-notes { grid-column:1 / span 4; }
.action-table-wrap { margin-top:16px; }
.compact-action-form { display:grid;gap:8px;min-width:220px; }
.action-title-preview { display:block;margin-bottom:8px; }
.action-table td { vertical-align:top; }
.action-table textarea { min-width:220px;resize:vertical; }
.action-table input[type="date"] { min-width:150px; }
.action-table input[type="number"] { max-width:92px;margin:6px 0; }
.notify-days-field { display:flex;align-items:center;gap:7px;white-space:nowrap; }
.action-document-field { display:grid;gap:7px;margin-top:8px; }
.school-action-filter { margin: 8px 0 14px; }
.school-action-filter label { display:flex;align-items:center;gap:10px;font-weight:800;flex-wrap:wrap; }
.school-action-filter select { padding:9px 10px;border:1px solid #cfd6e3;border-radius:8px;background:#fff;font:inherit; }
.class-filter-bar,.campaign-filter-bar { align-items:flex-start; }
.campaign-sales-actions { display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:18px; }
.campaign-sales-actions form { display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap; }
.campaign-sales-actions input[type="date"] { min-height:41px;padding:9px 10px;border:1px solid #cfd6e3;border-radius:9px;background:#fff;font:inherit;font-weight:400; }
.campaign-current-chip {
    display:grid;
    gap:2px;
    min-width:min(360px,100%);
    padding:10px 14px;
    border:1px solid #dbe4f0;
    border-radius:14px;
    background:#f8fbff;
}
.campaign-current-chip span {
    color:var(--blue);
    font-size:11px;
    font-weight:1000;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.campaign-current-chip strong { font-size:17px;line-height:1.15; }
.campaign-current-chip small { color:var(--muted);font-weight:800; }
.campaign-info-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0; }
.campaign-info-grid > section { padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8fafc; }
.campaign-info-grid h3 { margin:0 0 8px;font-size:16px; }
.campaign-print-sheet { margin-top:22px;padding:20px;border:1px solid var(--line);border-radius:14px;background:#fff; }
.campaign-checklist { display:grid;gap:7px;margin:12px 0 0;padding:0;list-style:none; }
.campaign-checklist li::before { content:"\2610";margin-right:8px;color:var(--blue);font-weight:900; }
.campaign-workbook { display:grid;gap:18px; }
.campaign-legacy-panel { display:none!important; }
.campaign-step-menu {
    position:sticky;
    top:86px;
    z-index:18;
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(138px,1fr));
    gap:8px;
    padding:10px;
    border:1px solid #dbe4f0;
    border-radius:16px;
    background:rgba(255,255,255,.96);
    box-shadow:0 12px 30px rgba(15,23,42,.08);
    backdrop-filter:blur(8px);
}
.campaign-step-link {
    display:flex;
    align-items:center;
    gap:9px;
    min-height:54px;
    padding:9px 10px;
    border:1px solid #dbe4f0;
    border-radius:13px;
    background:#f8fafc;
    color:var(--ink);
    text-decoration:none;
}
.campaign-step-link strong,
.campaign-step-link small { display:block;line-height:1.15; }
.campaign-step-link small { margin-top:3px;color:var(--muted);font-weight:800;font-size:11px; }
.campaign-step-dot {
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    border-radius:999px;
    font-weight:1000;
}
.campaign-step-link.is-ready {
    border-color:#bbf7d0;
    background:#f0fdf4;
}
.campaign-step-link.is-ready .campaign-step-dot {
    background:#dcfce7;
    color:#15803d;
}
.campaign-step-link.is-open {
    border-color:#fed7aa;
    background:#fff7ed;
}
.campaign-step-link.is-open .campaign-step-dot {
    background:#ffedd5;
    color:#b45309;
}
.campaign-step-link:hover { transform:translateY(-1px);box-shadow:0 8px 18px rgba(15,23,42,.08); }
.campaign-workbook-hero { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px; }
.campaign-workbook-card,
.campaign-workbook-section,
.campaign-fast-lane {
    border:1px solid var(--line);
    border-radius:16px;
    background:#fff;
    padding:16px;
    box-shadow:0 8px 22px rgba(15,23,42,.035);
}
.campaign-workbook-card span,
.campaign-fast-lane .eyebrow,
.campaign-workbook-section .eyebrow { color:var(--blue);font-weight:900;letter-spacing:.08em;text-transform:uppercase;font-size:12px; }
.campaign-workbook-card strong { display:block;margin:6px 0 2px;font-size:30px;line-height:1;color:var(--ink); }
.campaign-workbook-card small { color:var(--muted);font-weight:800; }
.campaign-workbook-card.is-warning { border-color:#fed7aa;background:#fff7ed; }
.campaign-fast-lane { display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:18px;align-items:center;background:#f8fbff; }
.campaign-fast-lane h3 { margin:3px 0 6px;font-size:20px; }
.campaign-fast-lane p { margin:0; }
.campaign-fast-checks { display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px; }
.campaign-fast-check {
    display:flex;
    align-items:center;
    gap:8px;
    min-height:44px;
    padding:10px 12px;
    border:1px solid #cfd6e3;
    border-radius:12px;
    background:#fff;
    color:var(--ink);
    text-decoration:none;
    font-weight:900;
}
.campaign-fast-check::before { content:"\2022";display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#eef2ff;color:var(--blue); }
.campaign-fast-check.is-done::before { content:"\2713";background:#dcfce7;color:#15803d; }
.campaign-fast-check.is-open::before { content:"!";background:#fef3c7;color:#b45309; }
.campaign-workbook-grid { display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:16px;align-items:start; }
.campaign-workbook-section { display:grid;gap:12px; }
.campaign-workbook-section.is-wide { grid-row:span 4; }
.campaign-section-heading { display:flex;justify-content:space-between;align-items:flex-start;gap:12px; }
.campaign-section-heading h3 { margin:2px 0 0;font-size:20px; }
.campaign-task-cards { display:grid;gap:10px; }
.campaign-task-card {
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    gap:12px;
    padding:12px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
}
.campaign-task-card.is-done { border-color:#bbf7d0;background:#f0fdf4; }
.campaign-task-card.is-overdue { border-color:#fed7aa;background:#fff7ed; }
.campaign-subtask h4 { margin:2px 0 4px; }
.campaign-soft-warning { grid-column:1 / -1;margin:0; }
.campaign-subtask-list { display:grid;gap:12px; }
.campaign-subtask {
    display:grid;
    gap:12px;
    padding:14px;
    border:1px solid #dbe4f0;
    border-radius:14px;
    background:#fff;
}
.campaign-subtask.is-done { border-color:#bbf7d0;background:#f0fdf4; }
.campaign-subtask-head { display:flex;align-items:flex-start;justify-content:space-between;gap:12px; }
.campaign-subtask-head > div { flex:1; }
.campaign-subtask-head .status { white-space:nowrap; }
.campaign-classlist-mail-form { margin-top:4px; }
.campaign-subtask-actions { display:flex;gap:10px;align-items:center;flex-wrap:wrap; }
.campaign-quality-note {
    padding:12px 14px;
    border:1px solid #dbe4f0;
    border-radius:12px;
    background:#f8fafc;
}
.campaign-quality-note ul { margin:8px 0 0;padding-left:18px;display:grid;gap:5px;color:var(--muted); }
.campaign-school-check-grid { display:grid;grid-template-columns:minmax(280px,.42fr) minmax(0,1fr);gap:16px;align-items:start; }
.campaign-readiness-list {
    display:grid;
    gap:12px;
    padding:14px;
    border:1px solid #dbe4f0;
    border-radius:14px;
    background:#fff;
}
.campaign-readiness-list h4 { margin:0; }
.campaign-readiness-list ul { display:grid;gap:7px;margin:0;padding:0;list-style:none; }
.campaign-readiness-list li {
    display:flex;
    align-items:center;
    gap:8px;
    padding:8px 10px;
    border:1px solid #e5e7eb;
    border-radius:10px;
    background:#f8fafc;
}
.campaign-readiness-list li span {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:22px;
    height:22px;
    border-radius:999px;
    font-weight:1000;
}
.campaign-readiness-list li.is-done { border-color:#bbf7d0;background:#f0fdf4; }
.campaign-readiness-list li.is-done span { background:#dcfce7;color:#15803d; }
.campaign-readiness-list li.is-missing { border-color:#fed7aa;background:#fff7ed; }
.campaign-readiness-list li.is-missing span { background:#ffedd5;color:#b45309; }
.campaign-readiness-list li em { margin-left:auto;color:#b42318;font-size:12px;font-style:normal;font-weight:900;text-transform:uppercase; }
.campaign-school-profile-form { padding:14px;border:1px solid #dbe4f0;border-radius:14px;background:#fff; }
.campaign-assignment-plan-form h4,
.campaign-school-profile-form h4 {
    margin:0;
    font-size:16px;
}
.assignment-source-note,
.assignment-warning,
.assignment-roster-card,
.assignment-planning-mode,
.assignment-overview,
.assignment-planning-board {
    display:grid;
    gap:12px;
    padding:14px;
    border:1px solid #dbe4f0;
    border-radius:14px;
    background:#f8fbff;
}
.assignment-source-note {
    grid-template-columns:minmax(160px,auto) minmax(0,1fr) auto;
    align-items:center;
}
.assignment-source-note strong { font-weight:1000; }
.assignment-source-note span {
    color:var(--muted);
    font-size:14px;
    font-weight:800;
}
.assignment-source-actions {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    justify-content:flex-end;
}
.assignment-class-list-dialog {
    max-width:820px;
}
.assignment-class-list-table-wrap {
    max-height:min(58vh,620px);
    overflow:auto;
}
.assignment-class-list-table {
    min-width:620px;
}
.assignment-class-list-table select {
    min-width:230px;
}
.assignment-warning {
    border-color:#fed7aa;
    background:#fff7ed;
}
.assignment-warning p { margin:0;color:#7c2d12; }
.assignment-section-heading {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
}
.assignment-section-heading h4,
.assignment-section-heading p { margin:0; }
.assignment-section-heading .muted { max-width:520px;text-align:right; }
.assignment-roster-table-wrap table { min-width:780px; }
.assignment-overview-table-wrap table { min-width:980px; }
.assignment-roster-table th,
.assignment-roster-table td,
.assignment-overview-table th,
.assignment-overview-table td { vertical-align:top; }
.assignment-overview-table tfoot td {
    border-top:2px solid #cfd6e3;
    background:#f8fbff;
}
.assignment-type-heading,
.assignment-type-cell {
    border-left:4px solid transparent;
}
.assignment-type-heading.is-individual,
.assignment-type-cell.is-individual {
    border-left-color:#2563eb;
    background:#eff6ff;
}
.assignment-type-heading.is-class-photo,
.assignment-type-cell.is-class-photo {
    border-left-color:#f97316;
    background:#fff7ed;
}
.assignment-type-heading.is-class-group-photo,
.assignment-type-cell.is-class-group-photo {
    border-left-color:#a855f7;
    background:#faf5ff;
}
.assignment-type-heading.is-product,
.assignment-type-cell.is-product {
    border-left-color:#16a34a;
    background:#f0fdf4;
}
.assignment-roster-lessons,
.assignment-class-chip-list {
    display:flex;
    flex-wrap:wrap;
    gap:6px;
}
.assignment-roster-lessons span,
.assignment-class-chip-list span {
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:5px 8px;
    border:1px solid #dbe4f0;
    border-radius:8px;
    background:#fff;
    color:#334155;
    font-size:12px;
    font-weight:900;
}
.assignment-roster-lessons span.is-available {
    border-color:#bbf7d0;
    background:#f0fdf4;
    color:#166534;
}
.assignment-roster-lessons span.is-break {
    border-color:#e2e8f0;
    background:#f1f5f9;
    color:#64748b;
    border-style:dashed;
}
.assignment-unit-editor {
    margin-top:8px;
    padding:8px;
    border:1px solid #dbe4f0;
    border-radius:10px;
    background:#f8fbff;
}
.assignment-unit-editor summary {
    color:var(--blue);
    cursor:pointer;
    font-size:12px;
    font-weight:1000;
}
.assignment-unit-editor-grid {
    display:grid;
    grid-template-columns:minmax(92px,.45fr) minmax(140px,1fr) minmax(70px,.34fr);
    gap:6px;
    margin-top:8px;
    align-items:center;
}
.assignment-unit-editor-grid > span {
    color:#667085;
    font-size:10px;
    font-weight:1000;
    letter-spacing:.05em;
    text-transform:uppercase;
}
.assignment-unit-editor-grid input,
.assignment-unit-editor-grid select {
    min-width:0;
    min-height:34px;
    padding:6px 8px;
    font-size:12px;
}
.assignment-unit-editor .muted {
    margin:8px 0 0;
    font-size:12px;
}
.assignment-mode-options {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.assignment-choice {
    display:flex!important;
    align-items:flex-start;
    gap:10px;
    min-height:76px;
    padding:12px;
    border:1px solid #dbe4f0;
    border-radius:12px;
    background:#fff;
    cursor:pointer;
}
.assignment-choice:hover { border-color:#bcd2ff;background:#f8fbff; }
.assignment-choice input { width:auto!important;margin-top:4px; }
.assignment-choice span { display:grid;gap:3px; }
.assignment-choice small { color:var(--muted);font-weight:700; }
.assignment-day-selector {
    display:grid;
    gap:8px;
    padding:12px;
    border:1px solid #dbe4f0;
    border-radius:12px;
    background:#fff;
}
.assignment-day-selector-head,
.assignment-day-selector-row {
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}
.assignment-day-selector-head { justify-content:space-between; }
.assignment-day-selector-row {
    padding:8px;
    border:1px solid #edf2f7;
    border-radius:10px;
    background:#f8fafc;
}
.assignment-day-selector-row label {
    display:grid!important;
    gap:4px;
    min-width:180px;
    font-size:12px;
    font-weight:900;
}
.assignment-day-selector-row input,
.assignment-day-selector-row select {
    width:100%;
    min-width:0;
    padding:8px 10px;
}
.assignment-day-selector-row > span {
    color:var(--muted);
    font-size:13px;
    font-weight:900;
}
.assignment-day-team-panel {
    flex:1 0 100%;
    display:grid;
    gap:10px;
    width:100%;
    padding:10px;
    border:1px solid #dbe4f0;
    border-radius:12px;
    background:#fff;
}

.tenant-brand-preview-grid {
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:14px;
    margin:14px 0 10px;
}

.tenant-brand-preview {
    display:grid;
    gap:10px;
    margin:0;
    padding:14px;
    border:1px solid var(--line);
    border-radius:12px;
}

.tenant-brand-preview span {
    color:var(--muted);
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
}

.tenant-brand-preview img {
    display:block;
    width:100%;
    max-width:320px;
    height:120px;
    object-fit:contain;
}

.tenant-brand-preview-light {
    background:#fff;
}

.tenant-brand-preview-dark {
    background:var(--tenant-nav-bg, #101828);
    color:var(--tenant-nav-text, #fff);
}

.tenant-brand-preview-dark span {
    color:var(--tenant-nav-text, #d7dce5);
}

.tenant-brand-preview-dark strong {
    color:var(--tenant-nav-text, #fff);
}

.tenant-favicon-preview {
    display:block;
    width:48px;
    height:48px;
    object-fit:contain;
    padding:6px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
}

.tenant-branding-form {
    margin-top:18px;
    padding-top:18px;
    border-top:1px solid var(--line);
}

.form-help {
    margin:0;
    line-height:1.45;
}

.tenant-theme-form {
    align-items:center;
}

.color-control {
    display:grid;
    grid-template-columns:54px minmax(120px, 180px);
    gap:10px;
    align-items:center;
}

.color-control input[type="color"] {
    width:54px;
    height:40px;
    padding:2px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#fff;
    cursor:pointer;
}

.color-control input[readonly] {
    min-height:40px;
    padding:9px 10px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#f8fafc;
    color:var(--ink);
    font:800 13px inherit;
}

.tenant-theme-preview {
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:minmax(190px, .8fr) minmax(280px, 1.2fr);
    min-height:230px;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:14px;
    background:var(--preview-page-bg, #f6f8fb);
    color:var(--preview-page-text, #172033);
}

.tenant-theme-preview-nav {
    display:grid;
    align-content:start;
    gap:12px;
    padding:18px;
    background:var(--preview-nav-bg, #101828);
    color:var(--preview-nav-text, #fff);
}

.tenant-theme-preview-nav strong {
    font-size:15px;
    font-weight:1000;
}

.tenant-theme-preview-nav span {
    color:color-mix(in srgb, var(--preview-nav-text, #fff) 74%, transparent);
    font-size:11px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.tenant-theme-preview-nav button,
.tenant-theme-preview-page button {
    min-height:36px;
    padding:7px 11px;
    border:1px solid var(--preview-primary, #155eef);
    border-radius:8px;
    background:#fff;
    color:var(--preview-primary, #155eef);
    font:900 13px inherit;
}

.tenant-theme-preview-page {
    display:grid;
    align-content:start;
    gap:9px;
    padding:18px;
    background:var(--preview-page-bg, #f6f8fb);
    color:var(--preview-page-text, #172033);
}

.tenant-theme-preview-page h3,
.tenant-theme-preview-page p {
    margin:0;
}

.tenant-theme-preview-label {
    color:var(--preview-primary, #155eef);
    font-size:11px;
    font-weight:1000;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.tenant-theme-preview-fiche {
    margin-top:7px;
    overflow:hidden;
    border:1px solid color-mix(in srgb, var(--preview-primary, #155eef) 22%, #dbe4f0);
    border-radius:10px;
    background:#fff;
    color:#172033;
}

.tenant-theme-preview-fiche-head {
    display:grid;
    gap:3px;
    padding:16px;
    background:color-mix(in srgb, var(--preview-primary, #155eef) 16%, #fff);
    text-align:center;
}

.tenant-theme-preview-fiche-head p {
    color:var(--preview-primary, #155eef);
    font-size:11px;
    font-weight:1000;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.tenant-theme-preview-fiche-head strong {
    font-size:18px;
    font-weight:1000;
}

.tenant-theme-preview-fiche-row {
    display:flex;
    justify-content:space-between;
    gap:12px;
    padding:11px 14px;
    border-top:1px solid #e5e9f0;
    color:#344054;
    font-size:13px;
    font-weight:800;
}

.tenant-theme-preview-warning {
    padding:9px 10px;
    border:1px solid #fda29b;
    border-radius:8px;
    background:#fef3f2;
    color:#b42318;
    font-size:13px;
    font-weight:800;
}

@media (max-width:720px) {
    .tenant-brand-preview-grid {
        grid-template-columns:1fr;
    }
    .tenant-theme-preview {
        grid-template-columns:1fr;
    }
}
.assignment-day-team-choices {
    display:grid;
    gap:8px;
}
.assignment-day-team-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    flex-wrap:wrap;
}
.assignment-day-team-head strong {
    font-size:14px;
    font-weight:1000;
}
.assignment-day-team-choices > div,
.assignment-preset-list {
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}
.assignment-day-team-choices label,
.assignment-preset-list label {
    display:inline-flex!important;
    align-items:center;
    gap:6px;
    min-height:34px;
    padding:6px 9px;
    border:1px solid #dbe4f0;
    border-radius:9px;
    background:#f8fbff;
    font-size:12px;
    font-weight:900;
}
.assignment-day-team-choices input,
.assignment-preset-list input {
    width:auto!important;
}
.assignment-day-member-grid {
    display:grid;
    gap:8px;
}
.assignment-day-member-assignment {
    display:grid;
    grid-template-columns:minmax(180px,.35fr) minmax(0,1fr);
    gap:10px;
    align-items:start;
    padding:8px;
    border:1px solid #edf2f7;
    border-radius:10px;
    background:#f8fafc;
}
.assignment-day-member-assignment strong,
.assignment-day-member-assignment small {
    display:block;
}
.assignment-day-member-assignment small {
    color:var(--muted);
    font-size:12px;
    font-weight:800;
}
.assignment-member-availability {
    display:grid!important;
    gap:4px;
    margin-top:7px;
    color:var(--muted);
    font-size:11px;
    font-weight:900;
}
.assignment-member-availability select {
    min-height:34px;
    padding:6px 28px 6px 8px;
    font-size:12px;
}
.assignment-overview-table .compact-check {
    min-height:34px;
    padding:6px 8px;
    border:0;
    background:transparent;
}
.assignment-inline-input {
    display:grid!important;
    grid-template-columns:auto minmax(64px,92px) auto;
    align-items:center;
    gap:7px;
    font-weight:900;
}
.assignment-inline-input input[type="checkbox"] { width:auto!important; }
.assignment-inline-input input[type="text"] {
    width:100%;
    min-width:0;
    padding:7px 8px;
}
.assignment-inline-input-stacked {
    margin-top:6px;
}
.assignment-inline-input-stacked small {
    white-space:normal;
}
.assignment-count-input {
    width:86px!important;
    min-width:0!important;
    padding:7px 8px!important;
}
.assignment-inline-input small {
    color:var(--muted);
    font-weight:900;
}
.assignment-cell-total {
    display:block;
    margin-top:6px;
    color:#475569;
    font-size:12px;
    font-weight:1000;
}
.assignment-day-overview-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}
.assignment-day-overview-head h4,
.assignment-day-overview-head p { margin:0; }
.assignment-board-actions {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    flex-wrap:wrap;
}
.team-planning-print-list {
    display:grid;
    gap:8px;
    margin:12px 0;
}
.team-planning-print-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:10px;
    border:1px solid #dbe4f0;
    border-radius:8px;
    background:#f8fafc;
}
.team-planning-print-row > div:first-child {
    display:grid;
    gap:2px;
}
.team-planning-print-row span {
    color:#667085;
    font-size:12px;
    font-weight:900;
}
.assignment-planning-board-grid {
    display:grid;
    grid-template-columns:minmax(250px,.65fr) repeat(auto-fit,minmax(320px,1fr));
    gap:12px;
    align-items:start;
    overflow-x:auto;
    padding-bottom:4px;
}
.assignment-plan-column {
    display:grid;
    gap:10px;
    min-width:250px;
    padding:12px;
    border:1px solid #dbe4f0;
    border-radius:12px;
    background:#fff;
}
.assignment-plan-column.is-unplanned { background:#f8fafc; }
.assignment-plan-column.is-tight {
    border-color:#fed7aa;
    background:#fff7ed;
}
.assignment-plan-day-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
}
.assignment-plan-day-head h5 {
    margin:0;
    font-size:15px;
    font-weight:1000;
}
.assignment-plan-day-head small {
    color:var(--muted);
    font-weight:900;
}
.assignment-plan-day-total {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:8px 10px;
    border-radius:10px;
    background:#eef2ff;
    font-size:13px;
    font-weight:900;
}
.assignment-plan-column.is-tight .assignment-plan-day-total { background:#ffedd5;color:#9a3412; }
.assignment-override-line {
    display:flex!important;
    align-items:center;
    gap:8px;
    padding:8px 10px;
    border:1px solid #dbe4f0;
    border-radius:10px;
    background:#fff;
    color:var(--muted);
    font-size:12px;
    font-weight:900;
}
.assignment-override-line input { width:auto!important; }
.assignment-plan-block-list {
    display:grid;
    gap:8px;
    min-height:70px;
}
.assignment-timeline-layout {
    display:grid;
    grid-template-columns:minmax(120px,.48fr) minmax(160px,1fr);
    gap:10px;
    align-items:start;
}
.assignment-timeline-layout-team {
    grid-template-columns:minmax(118px,.24fr) minmax(420px,1fr);
}
.assignment-timeline-hours,
.assignment-timeline-drop {
    display:grid;
    align-content:start;
    gap:0;
    min-height:80px;
}
.assignment-timeline-drop {
    position:relative;
    padding:0 56px 8px 8px;
    border:1px dashed #bcd2ff;
    border-radius:12px;
    background:#f8fbff;
}
.assignment-timeline-drop.is-scaled {
    background-color:#f8fbff;
    background-image:
        repeating-linear-gradient(
            to bottom,
            rgba(37,99,235,.18) 0,
            rgba(37,99,235,.18) 1px,
            transparent 1px,
            transparent var(--assignment-hour-height,240px)
        ),
        repeating-linear-gradient(
            to bottom,
            rgba(100,116,139,.13) 0,
            rgba(100,116,139,.13) 1px,
            transparent 1px,
            transparent var(--assignment-quarter-height,60px)
        );
}
.assignment-timeline-drop.is-free-placement {
    display:block;
    position:relative;
    overflow:hidden;
}
.assignment-team-columns {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:10px;
    align-items:start;
}
.assignment-member-column {
    display:grid;
    gap:8px;
    min-width:220px;
    padding:8px;
    border:1px solid #dbe4f0;
    border-radius:12px;
    background:#fff;
}
.assignment-member-column.is-tight {
    border-color:#fed7aa;
    background:#fff7ed;
}
.assignment-member-column.is-unassigned {
    background:#f8fafc;
}
.assignment-member-column-head {
    display:grid;
    gap:2px;
    height:72px;
    align-content:start;
    overflow:hidden;
}
.assignment-time-scale-head {
    box-sizing:border-box;
    display:grid;
    align-content:start;
    gap:2px;
    height:88px;
    padding:8px;
    color:#64748b;
}
.assignment-time-scale-head strong,
.assignment-time-scale-head small { display:block; }
.assignment-time-scale-head strong {
    color:#0f172a;
    font-size:13px;
    font-weight:1000;
}
.assignment-time-scale-head small {
    color:var(--muted);
    font-size:11px;
    font-weight:800;
}
.assignment-member-column-head strong,
.assignment-member-column-head small,
.assignment-member-column-head span { display:block; }
.assignment-member-column-head small {
    color:var(--muted);
    font-size:12px;
    font-weight:800;
}
.assignment-member-column-head span {
    color:var(--blue);
    font-size:12px;
    font-weight:1000;
}
.assignment-timeline-segment {
    box-sizing:border-box;
    display:grid;
    align-content:center;
    gap:2px;
    padding:8px;
    border:1px solid #dbe4f0;
    border-radius:10px;
    background:#f8fafc;
    font-size:12px;
}
.assignment-timeline-segment.is-available {
    border-color:#bbf7d0;
    background:#f0fdf4;
    color:#166534;
}
.assignment-timeline-segment.is-break {
    border-color:#e2e8f0;
    background:#f1f5f9;
    color:#64748b;
    border-style:dashed;
}
.assignment-timeline-segment strong,
.assignment-timeline-segment span,
.assignment-timeline-segment small { display:block; }
.assignment-timeline-segment small,
.assignment-empty-roster { color:var(--muted);font-weight:800; }
.assignment-drop-scale {
    position:absolute;
    inset:0 0 auto 0;
    height:100%;
    pointer-events:none;
    z-index:2;
}
.assignment-scale-marker {
    position:absolute;
    left:0;
    right:0;
    height:0;
    border-top:1px solid rgba(100,116,139,.16);
    z-index:2;
}
.assignment-scale-marker.is-hour {
    border-top-color:rgba(37,99,235,.32);
}
.assignment-scale-marker.is-quarter {
    border-top-style:dotted;
}
.assignment-scale-marker.is-lesson {
    border-top-color:rgba(22,101,52,.38);
    border-top-style:dashed;
}
.assignment-scale-marker em {
    position:absolute;
    right:4px;
    top:-9px;
    min-width:39px;
    padding:2px 4px;
    border-radius:999px;
    background:#fff;
    border:1px solid rgba(191,219,254,.95);
    box-shadow:0 2px 6px rgba(15,23,42,.08);
    color:#2563eb;
    font-size:10px;
    font-style:normal;
    font-weight:1000;
    line-height:1.1;
    text-align:center;
    z-index:4;
}
.assignment-plan-block {
    box-sizing:border-box;
    display:grid;
    align-content:center;
    gap:2px;
    position:relative;
    padding:7px 9px;
    border:1px solid #cfd6e3;
    border-left:4px solid var(--blue);
    border-radius:10px;
    background:#fff;
    box-shadow:0 5px 14px rgba(15,23,42,.06);
    cursor:grab;
    overflow:hidden;
    z-index:1;
}
.assignment-plan-block.is-individual {
    border-left-color:#2563eb;
    background:#eff6ff;
}
.assignment-plan-block.is-class-photo {
    border-left-color:#f97316;
    background:#fff7ed;
}
.assignment-plan-block.is-class-group-photo {
    border-left-color:#a855f7;
    background:#faf5ff;
}
.assignment-plan-block.is-product {
    border-left-color:#16a34a;
    background:#f0fdf4;
}
.assignment-plan-block.is-pause {
    border-left-color:#64748b;
    background:#f8fafc;
}
.assignment-plan-block.is-pause-template {
    cursor:grab;
    border-style:dashed;
}
.assignment-plan-block.is-selected {
    outline:2px solid #2563eb;
    outline-offset:2px;
    box-shadow:0 0 0 5px rgba(37,99,235,.12),0 5px 14px rgba(15,23,42,.06);
}
.assignment-plan-block.is-free-positioned {
    position:absolute;
    left:8px;
    right:56px;
    z-index:1;
}
.assignment-plan-block.has-time-pins {
    padding-right:54px;
}
.assignment-block-time {
    position:absolute;
    right:6px;
    padding:0 3px;
    border-radius:999px;
    background:rgba(255,255,255,.92);
    color:#1d4ed8;
    font-size:9px;
    font-weight:1000;
    line-height:1.25;
    z-index:2;
}
.assignment-block-time.is-start { top:2px; }
.assignment-block-time.is-end { bottom:2px; }
.assignment-plan-block.is-compact {
    align-content:center;
    padding-top:2px;
    padding-bottom:2px;
}
.assignment-plan-block.is-compact strong {
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.assignment-plan-block.is-compact small { display:none; }
.assignment-plan-block.is-over-limit {
    border-color:#fed7aa;
    border-left-color:#f97316;
    background:#fff7ed;
}
.assignment-plan-block.is-overridden {
    border-color:#bbf7d0;
    border-left-color:#16a34a;
    background:#f0fdf4;
}
.assignment-plan-block strong,
.assignment-plan-block span,
.assignment-plan-block small { display:block; }
.assignment-plan-block strong {
    color:#0f172a;
    font-size:13px;
    line-height:1.15;
}
.assignment-plan-block span,
.assignment-plan-block small {
    color:var(--muted);
    font-size:11px;
    font-weight:800;
}
.assignment-plan-block-actions {
    display:none;
    gap:5px;
    flex-wrap:wrap;
    margin-top:4px;
}
.assignment-plan-block:hover,
.assignment-plan-block:focus-within {
    overflow:visible;
    z-index:3;
}
body.assignment-planner-dragging .sidebar:has(.tenant-top-account) .brand,
body.assignment-planner-dragging .sidebar:has(.tenant-top-account) .tenant-context-panel,
body.assignment-planner-dragging .quick-actions,
body.assignment-planner-dragging .campaign-step-menu,
body.assignment-planner-dragging .tenant-menu-toggle {
    z-index:var(--tenant-fixed-z-index);
}
body.assignment-planner-dragging .assignment-plan-block:hover,
body.assignment-planner-dragging .assignment-plan-block:focus-within {
    overflow:hidden;
    z-index:1;
}
.assignment-drag-ghost {
    position:fixed;
    top:0;
    left:0;
    z-index:var(--assignment-drag-z-index);
    width:min(260px, calc(100vw - 24px));
    pointer-events:none;
    display:grid;
    gap:3px;
    padding:10px 12px;
    border:2px solid #2563eb;
    border-left-width:6px;
    border-radius:10px;
    background:#eff6ff;
    box-shadow:0 18px 42px rgba(15,23,42,.28);
    color:#0f172a;
    opacity:.96;
}
.assignment-drag-ghost.is-class-photo {
    border-color:#f97316;
    background:#fff7ed;
}
.assignment-drag-ghost.is-product {
    border-color:#16a34a;
    background:#f0fdf4;
}
.assignment-drag-ghost.is-pause {
    border-color:#64748b;
    background:#f8fafc;
}
.assignment-drag-ghost strong {
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:13px;
    font-weight:1000;
}
.assignment-drag-ghost span {
    color:#475569;
    font-size:11px;
    font-weight:900;
}
.assignment-drag-ghost em {
    justify-self:start;
    padding:3px 7px;
    border-radius:999px;
    background:#fff;
    color:#1d4ed8;
    font-size:12px;
    font-style:normal;
    font-weight:1000;
    box-shadow:inset 0 0 0 1px rgba(191,219,254,.95);
}
.assignment-plan-block:hover .assignment-plan-block-actions,
.assignment-plan-block:focus-within .assignment-plan-block-actions {
    display:flex;
    position:absolute;
    left:8px;
    right:8px;
    bottom:5px;
    padding-top:4px;
    background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.96) 28%);
}
.assignment-pause-template {
    display:grid;
    gap:8px;
    padding:10px;
    border:1px solid #dbe4f0;
    border-radius:10px;
    background:#fff;
}
.assignment-pause-template label {
    display:flex!important;
    align-items:center;
    gap:8px;
    margin:0;
    color:#0f172a;
    font-size:12px;
    font-weight:900;
}
.assignment-pause-template input {
    width:74px!important;
    min-height:34px;
}
.assignment-pause-template span {
    color:var(--muted);
    font-size:12px;
    font-weight:900;
}
@media (max-width:900px) {
    .assignment-source-note,
    .assignment-section-heading,
    .assignment-day-overview-head,
    .assignment-timeline-layout { grid-template-columns:1fr; }
    .assignment-source-note,
    .assignment-section-heading,
    .assignment-day-overview-head { display:grid; }
    .assignment-source-actions { justify-content:flex-start; }
    .assignment-section-heading .muted { max-width:none;text-align:left; }
    .assignment-mode-options,
    .assignment-planning-board-grid { grid-template-columns:1fr; }
    .assignment-day-member-assignment,
    .assignment-timeline-layout-team { grid-template-columns:1fr; }
}
.school-regime-table { margin-top:8px; }
.school-regime-table table { min-width:880px; }
.school-rooster-actions {
    align-items:center;
    margin-top:4px;
}
.school-rooster-actions select {
    min-height:41px;
    width:auto;
    min-width:320px;
    flex:0 1 360px;
    padding:8px 34px 8px 10px;
    border:1px solid #cfd6e3;
    border-radius:9px;
    background:#fff;
    font:inherit;
    font-weight:700;
}
.school-rooster-actions input {
    min-height:41px;
    width:220px;
    flex:0 1 220px;
    max-width:100%;
    padding:8px 10px;
    border:1px solid #cfd6e3;
    border-radius:9px;
    background:#fff;
    font:inherit;
}
.school-rooster-save-dialog label {
    display:grid;
    gap:7px;
    margin-bottom:14px;
    font-weight:800;
}
.school-rooster-save-dialog input {
    width:100%;
    padding:11px 12px;
    border:1px solid #cfd6e3;
    border-radius:9px;
    font:inherit;
}
.school-rooster-table table { min-width:1700px; }
.school-regime-table th,
.school-regime-table td { vertical-align:middle; }
.school-rooster-table th,
.school-rooster-table td {
    padding:8px 6px;
}
.school-regime-table input,
.school-regime-table select { min-width:0;width:100%;padding:7px 26px 7px 8px; }
.school-regime-table input { min-width:0;width:100%;padding:7px 8px; }
.school-rooster-settings { align-items:end; }
.school-rooster-period-cell { min-width:110px; }
.school-rooster-period-cell input + input { margin-top:5px; }
.school-rooster-day-cell { min-width:44px;max-width:52px;white-space:nowrap; }
.school-rooster-available-cell { min-width:108px;font-weight:800;white-space:nowrap; }
.school-rooster-type-cell { min-width:92px; }
.school-rooster-mode-cell { min-width:124px; }
.school-rooster-count-cell { min-width:72px;max-width:82px; }
.school-rooster-count-cell input { text-align:center; }
.school-rooster-table [hidden] { display:none!important; }
.school-rooster-table input[readonly],
.school-rooster-table input[data-rooster-locked="1"] {
    background:#f1f5f9;
    color:#475569;
    cursor:not-allowed;
}
.school-rooster-table th small {
    color:#64748b;
    font-size:11px;
}
.school-regime-table .compact-checkbox {
    display:flex!important;
    align-items:center;
    justify-content:center;
    gap:7px;
    white-space:nowrap;
    font-weight:800;
}
.school-regime-table .compact-checkbox input { width:auto!important; }
.inline-action-form { margin:0; }
.campaign-task-cards-simple { margin-top:2px; }
.campaign-task-card details { width:100%; }
.campaign-task-card summary {
    display:flex;
    justify-content:space-between;
    gap:12px;
    cursor:pointer;
    font-weight:1000;
    list-style:none;
}
.campaign-task-card summary::-webkit-details-marker { display:none; }
.campaign-task-meta { display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end; }
.campaign-task-detail-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line); }
.campaign-task-detail-grid p { margin:0; }
.detail-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px; }
.detail-grid > div { padding:12px;border:1px solid var(--line);border-radius:8px;background:#f8fafc; }
.detail-grid strong { display:block;margin-bottom:4px;color:var(--ink); }
.detail-grid span { color:var(--muted); }
.campaign-mini-list { display:grid;gap:9px;margin:0;padding:0;list-style:none; }
.campaign-mini-list li { padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#f8fafc; }
.compact-empty { padding:16px;border:1px dashed #cfd6e3;border-radius:14px;background:#f8fafc; }
.task-instruction-block { max-width:360px;color:#155eef;font-weight:800;white-space:pre-wrap; }
.campaign-task-form { margin-top:18px; }
.campaign-task-form .admin-form { margin-top:0; }
.table-live-search { width:100%;max-width:420px;margin:0 0 14px;padding:12px;border:1px solid #cfd6e3;border-radius:9px;font:inherit; }
.inline-edit-form { display:none!important; }
.inline-edit-form input,.inline-edit-form select { width:100%;padding:8px;border:1px solid #cfd6e3;border-radius:8px;background:#fff;font:inherit;font-weight:400; }
.table-wrap td > form:not(.inline-edit-form) { display:inline-block;margin:0 0 0 7px;vertical-align:middle; }
.editable-row { cursor:pointer; }
.editable-row:hover td { background:#f8fbff; }
.edit-dialog {
    width:min(760px, calc(100vw - 32px));
    padding:0;
    border:0;
    border-radius:18px;
    box-shadow:0 28px 90px rgba(16,24,40,.28);
}
.edit-dialog::backdrop { background:rgba(16,24,40,.45);backdrop-filter:blur(3px); }
.modal-form { display:grid;gap:13px;padding:24px; }
.modal-form label { display:grid;gap:7px;font-weight:800; }
.modal-form input,.modal-form select,.modal-form textarea {
    width:100%;
    padding:11px 12px;
    border:1px solid #cfd6e3;
    border-radius:9px;
    background:#fff;
    font:inherit;
    font-weight:400;
}
.modal-header { display:flex;align-items:center;justify-content:flex-start;gap:18px;padding-bottom:14px;border-bottom:1px solid var(--line); }
.modal-header h3 { margin:0; }
.modal-brand-logo {
    width:var(--dialog-horizontal-logo-width);
    height:var(--dialog-horizontal-logo-height);
    object-fit:contain;
}
.modal-brand-text {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:var(--dialog-horizontal-logo-width);
    min-height:var(--dialog-horizontal-logo-height);
    font-weight:800;
    color:var(--ink);
    text-align:center;
}
.dialog-close {
    margin-left:auto;
    width:36px;
    height:36px;
    border:1px solid #cfd6e3;
    border-radius:50%;
    background:#fff;
    cursor:pointer;
    font-size:22px;
    line-height:1;
}
.modal-actions { display:flex;justify-content:flex-end;gap:10px;padding-top:14px;border-top:1px solid var(--line); }
.class-selection-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px; }
.class-selection-grid article { padding:16px;border:1px solid var(--line);border-radius:14px;background:#f8fafc; }
.class-selection-grid ul { margin:12px 0 0;padding-left:20px;display:grid;gap:8px; }
.qr-layout-inline { display:grid;gap:16px;margin-top:10px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff; }
.qr-layout-summary { display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#f8fafc; }
.qr-layout-editor { display:grid;grid-template-columns:1fr;gap:18px;align-items:start; }
.qr-layout-controls { display:grid;gap:12px; }
.qr-layout-controls label { display:grid;gap:6px;font-weight:800; }
.qr-layout-controls input,.qr-layout-controls select { width:100%;padding:10px 12px;border:1px solid #cfd6e3;border-radius:9px;font:inherit;font-weight:400;background:#fff; }
.compact-form-row { grid-template-columns:repeat(4,minmax(0,1fr)); }
.qr-layout-tools { display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end; }
.qr-layout-tools .secondary-button { align-self:flex-end; }
.qr-layout-tools .qr-template-select { display:grid;gap:6px;min-width:230px;margin:0;font-weight:800; }
.qr-layout-tools .qr-template-select select { min-height:41px; }
.qr-preview-actions { display:flex;justify-content:flex-start;margin-top:-8px; }
.qr-size-before-layout { display:flex;justify-content:flex-start; }
.qr-size-before-layout label,.print-scale-before-button { display:grid;gap:6px;font-weight:800;min-width:240px; }
.qr-size-before-layout input,.print-scale-before-button input { padding:10px 12px;border:1px solid #cfd6e3;border-radius:9px;font:inherit;font-weight:400;background:#fff; }
.qr-field-toggle-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 14px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8fafc; }
.qr-field-scale-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff; }
.qr-layout-preview-wrap { overflow:auto;padding:18px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,#f8fafc 25%,#eef2f7 25%,#eef2f7 50%,#f8fafc 50%,#f8fafc 75%,#eef2f7 75%);background-size:18px 18px; }
.qr-sheet-preview-meta { display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px;color:var(--muted); }
.qr-sheet-preview-meta strong { color:var(--ink); }
.qr-sheet-preview { width:var(--qr-sheet-width, 102mm);height:var(--qr-sheet-height, 50mm);padding:var(--qr-sheet-margin, 0);box-sizing:border-box;background:#fff;border:1px solid #d0d5dd;box-shadow:0 12px 32px rgba(16,24,40,.18);transform-origin:top left; }
.qr-sheet-preview-grid { display:grid;grid-template-columns:repeat(var(--qr-sheet-columns, 1), var(--qr-card-width, 102mm));grid-auto-rows:var(--qr-card-height, 50mm);column-gap:var(--qr-sheet-column-gap, var(--qr-sheet-gap, 0));row-gap:var(--qr-sheet-row-gap, var(--qr-sheet-gap, 0));justify-content:center;align-content:center;min-width:100%;min-height:100%; }
.qr-sheet-preview-cell { position:relative;width:var(--qr-card-width,102mm);height:var(--qr-card-height,50mm);box-sizing:border-box;background:#fff;outline:1px dashed #cfd6e3;outline-offset:-1px;overflow:hidden; }
.qr-sheet-preview-cell-live { outline-color:rgba(37,99,235,.85); }
.qr-sheet-preview-cell-copy { display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#64748b;background:#f8fafc;font-weight:800; }
.qr-sheet-preview-cell-copy small { margin-top:4px;font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.08em; }
.qr-layout-preview,.qr-card { position:relative;width:var(--qr-card-width, 102mm);height:var(--qr-card-height, 50mm);max-width:none;overflow:hidden;box-sizing:border-box;background:#fff; }
.qr-layout-preview { box-shadow:none; }
.qr-layout-item,.qr-field { position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);box-sizing:border-box;overflow:hidden; }
.qr-layout-item { display:flex;align-items:center;padding:1mm;border:1px dashed rgba(37,99,235,.7);border-radius:5px;background:rgba(239,246,255,.86);color:var(--ink);font-size:calc(12px * var(--qr-scale, 1) * var(--field-scale, 1));font-weight:800;cursor:grab;user-select:none;touch-action:none; }
.qr-layout-item.is-dragging { cursor:grabbing;box-shadow:0 10px 24px rgba(37,99,235,.22);z-index:5; }
.qr-layout-item.is-hidden { display:none; }
.qr-layout-item-qr { justify-content:center;padding:0;background:#fff; }
.qr-layout-item-qr img { width:100%;height:100%;object-fit:contain;pointer-events:none; }
.qr-layout-item-code { align-items:flex-start;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:calc(10px * var(--qr-scale, 1) * var(--field-scale, 1));line-height:1.15;overflow-wrap:anywhere;white-space:normal; }
.qr-sheet { display:grid;grid-template-columns:repeat(auto-fill,minmax(min(var(--qr-card-width, 102mm), 100%),1fr));gap:18px;align-items:start; }
.qr-page { position:relative;width:var(--qr-card-width, 102mm);height:var(--qr-card-height, 50mm); }
.qr-card { border:1px solid #d0d5dd;border-radius:10px;box-shadow:0 8px 24px rgba(16,24,40,.08); }
.qr-field { display:flex;align-items:center;color:#000;line-height:1.08; }
.qr-field-type { justify-content:center;padding:.7mm 1.2mm;border-radius:999px;background:#eff6ff;color:var(--blue);font-size:calc(9px * var(--qr-scale, 1) * var(--field-scale, 1));font-weight:900;text-transform:uppercase;letter-spacing:.08em; }
.qr-field-qr { object-fit:contain; }
.qr-field-first-name,.qr-field-last-name { font-size:calc(15px * var(--qr-scale, 1) * var(--field-scale, 1));font-weight:900; }
.qr-field-class,.qr-field-school,.qr-field-number { font-size:calc(11px * var(--qr-scale, 1) * var(--field-scale, 1));font-weight:800;color:#344054; }
.qr-field-code { align-items:flex-start;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:calc(7.5px * var(--qr-scale, 1) * var(--field-scale, 1));line-height:1.08;overflow-wrap:anywhere;white-space:normal;color:#000; }
.qr-sheet-multi { display:grid;grid-template-columns:1fr;gap:24px;justify-items:start; }
.qr-page-sheet { width:var(--qr-sheet-width, 210mm);height:var(--qr-sheet-height, 297mm);padding:var(--qr-sheet-margin, 0);box-sizing:border-box;background:#fff;border:1px solid #d0d5dd;box-shadow:0 8px 24px rgba(16,24,40,.08);display:flex;align-items:center;justify-content:center; }
.qr-sheet-grid { display:grid;grid-template-columns:repeat(var(--qr-sheet-columns, 1), var(--qr-card-width, 102mm));grid-auto-rows:var(--qr-card-height, 50mm);column-gap:var(--qr-sheet-column-gap, var(--qr-sheet-gap, 0));row-gap:var(--qr-sheet-row-gap, var(--qr-sheet-gap, 0));justify-content:center;align-content:center; }
.qr-sheet-grid .qr-card { width:var(--qr-card-width, 102mm);height:var(--qr-card-height, 50mm); }

.photo-filter-bar .school-search { align-items:end; }
.photo-filter-bar label { display:grid;gap:7px;font-weight:800; }
.photo-workflow-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:22px; }
.photo-workflow-grid article { padding:18px;border:1px solid var(--line);border-radius:14px;background:#f8fafc; }
.photo-source-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0; }
.photo-source-card { display:flex;gap:9px;align-items:flex-start;padding:12px;border:1px solid #d0d5dd;border-radius:12px;background:#fff;font-weight:800; }
.photo-source-card small { display:block;margin-top:3px;color:var(--muted);font-weight:600; }
.photo-source-form { display:grid;grid-template-columns:1.4fr .8fr .7fr;gap:12px;align-items:end; }
.photo-source-form label { display:grid;gap:7px;font-weight:800; }
.photo-source-form small { color:var(--muted);font-weight:600; }
.photo-check-list { margin:12px 0 0;padding-left:20px;color:var(--muted); }
.photo-check-list li { margin:6px 0; }
.photo-review-board { display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:14px;margin-top:22px;align-items:start; }
.photo-qr-lane { border:1px solid var(--line);border-radius:14px;background:#f8fafc;overflow:hidden; }
.photo-qr-lane-title { display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:14px;border-bottom:1px solid var(--line);background:#fff; }
.photo-qr-lane-title small { display:block;margin-top:3px;color:var(--muted);font-weight:600; }
.photo-dropzone { min-height:176px;display:flex;gap:10px;flex-wrap:wrap;align-content:flex-start;padding:14px;transition:.15s ease; }
.photo-dropzone.is-drop-target { background:#dbeafe;outline:2px dashed var(--blue);outline-offset:-8px; }
.photo-thumb { width:96px;height:118px;display:grid;place-items:center;align-content:center;gap:6px;border:1px solid #d0d5dd;border-radius:12px;background:linear-gradient(135deg,#fff,#eef2ff);box-shadow:0 8px 20px rgba(16,24,40,.08);font-weight:900;cursor:grab;user-select:none; }
.photo-thumb small { color:var(--muted);font:700 11px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
.photo-thumb-qr { background:linear-gradient(135deg,#fff,#ecfdf3);border-color:#abefc6; }
.photo-thumb.is-dragging { opacity:.55;cursor:grabbing; }
.photo-thumb.is-relinked { outline:3px solid rgba(18,183,106,.28); }
.photo-manual-code { display:flex;gap:8px;padding:12px 14px 14px;border-top:1px solid var(--line); }
.photo-manual-code input { min-width:0;flex:1; }

.button-link,
.primary-button,
.secondary-button,
.danger,
.danger-button,
.link-button,
.column-picker-button summary,
.column-picker-toggle,
input[type="button"],
input[type="submit"],
input[type="reset"],
.two-factor-reminder-actions a,
.dialog-actions-equal a,
button:where(:not(.password-toggle):not(.tenant-menu-toggle):not(.tenant-nav-section-toggle):not(.icon-button):not(.solo-form-section-toggle):not(.panel-collapse-toggle):not(.dialog-close)) {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:var(--button-height);
    padding:var(--button-padding);
    border:1px solid transparent;
    border-radius:var(--button-radius);
    font-family:inherit;
    font-size:var(--button-font-size);
    font-weight:var(--button-font-weight);
    line-height:1.2;
    text-decoration:none;
    cursor:pointer;
    white-space:nowrap;
    box-sizing:border-box;
}

.button-link,
.primary-button,
input[type="submit"],
button[type="submit"]:where(:not(.secondary-button):not(.danger):not(.danger-button)),
.admin-form > button,
.action-form button,
.task-edit-form button,
.inline-edit-form button,
.campaign-sales-actions button,
.login-form button,
.sales-code-row button,
.two-factor-reminder-actions a,
.modal-actions button:where(:not(.secondary-button):not(.danger):not(.danger-button)),
.dialog-actions-equal .primary-button {
    border-color:var(--blue);
    background:var(--blue);
    color:var(--tenant-nav-text, #fff);
}

.secondary-button,
.link-button,
.soft-action-button,
.column-picker-button summary,
.column-picker-toggle,
.school-search button,
.table-pagination button:where(:not(:disabled)),
.column-actions button:where(:not(.danger-button)),
.copy-row button,
.rich-toolbar button,
.variable-buttons button,
.photo-qr-lane-title button,
.photo-manual-code button,
.assignment-plan-block-actions button,
.row-actions button:where(:not(.primary-button):not(.danger):not(.danger-button)),
.row-actions a.secondary-button,
.table-wrap .row-actions a.primary-button.soft-action-button,
.table-wrap .row-actions button.primary-button.soft-action-button,
.table-wrap td > button[data-open-dialog],
.table-wrap td > form:not(.inline-edit-form) button:where(:not(.danger)),
.two-factor-reminder-actions button,
.dialog-actions-equal button:where(:not(.primary-button):not(.danger):not(.danger-button)),
.dialog-actions-equal a:where(:not(.primary-button):not(.danger):not(.danger-button)) {
    border-color:var(--blue);
    background:#fff;
    color:var(--blue);
}

.danger,
.danger-button,
button.danger,
.secondary-button.danger-button,
.inline-delete-form button,
.quick-actions .danger,
.row-actions button.danger,
.table-wrap td > form:not(.inline-edit-form) button.danger {
    border-color:var(--button-danger-border);
    background:#fff;
    color:var(--button-danger);
}

.button-link:hover,
.primary-button:hover,
button[type="submit"]:where(:not(.secondary-button):not(.danger):not(.danger-button)):hover,
.action-form button:hover,
.task-edit-form button:hover,
.inline-edit-form button:hover,
.campaign-sales-actions button:hover,
.login-form button:hover,
.sales-code-row button:hover,
.two-factor-reminder-actions a:hover,
.two-factor-reminder-actions a:focus-visible,
.modal-actions button:where(:not(.secondary-button):not(.danger):not(.danger-button)):hover {
    background:#0f4bd8;
}

.secondary-button:hover,
.link-button:hover,
.soft-action-button:hover,
.column-picker-button summary:hover,
.column-picker-toggle:hover,
.school-search button:hover,
.table-pagination button:where(:not(:disabled)):hover,
.column-actions button:where(:not(.danger-button)):hover,
.copy-row button:hover,
.rich-toolbar button:hover,
.variable-buttons button:hover,
.photo-qr-lane-title button:hover,
.photo-manual-code button:hover,
.assignment-plan-block-actions button:hover,
.row-actions button:where(:not(.primary-button):not(.danger):not(.danger-button)):hover,
.row-actions a.secondary-button:hover,
.table-wrap td > button[data-open-dialog]:hover,
.table-wrap td > form:not(.inline-edit-form) button:where(:not(.danger)):hover,
.two-factor-reminder-actions button:hover,
.two-factor-reminder-actions button:focus-visible,
.dialog-actions-equal button:where(:not(.primary-button):not(.danger):not(.danger-button)):hover,
.dialog-actions-equal a:where(:not(.primary-button):not(.danger):not(.danger-button)):hover {
    background:var(--button-soft-hover);
}

.danger:hover,
.danger-button:hover,
button.danger:hover,
.secondary-button.danger-button:hover,
.inline-delete-form button:hover,
.quick-actions .danger:hover,
.row-actions button.danger:hover,
.table-wrap td > form:not(.inline-edit-form) button.danger:hover {
    background:var(--button-danger-hover);
}

.secondary-button.is-disabled,
button:disabled,
.danger-button:disabled {
    opacity:.55;
    cursor:not-allowed;
}

@media(max-width:1100px){
    .school-quick-actions,
    .team-quick-actions { grid-template-columns:1fr; }
    .quick-actions-main,
    .quick-actions-school,
    .quick-actions-team,
    .quick-actions-required { grid-column:1 / -1; }
    .campaign-workbook-hero { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .campaign-fast-lane,
    .campaign-workbook-grid,
    .campaign-school-check-grid,
    .campaign-task-detail-grid,
    .photo-workflow-grid,.photo-review-board { grid-template-columns:1fr; }
    .photo-source-form { grid-template-columns:1fr; }
}

@media(max-width:900px){
    .team-material-row {
        grid-template-columns:1fr;
        align-items:stretch;
    }
    .team-material-check {
        white-space:normal;
    }
    .team-documents-grid {
        grid-template-columns:1fr;
    }
}

.brand-mark {
    display: block;
    width: 86px;
    height: 86px;
    object-fit: contain;
    border-radius: 0;
    background: transparent;
}
.brand-mark.brand-mark-platform {
    width: min(350px, 94%);
    height: auto;
    max-height: 116px;
}
.auth-brand-text {
    margin:0 auto 18px;
    color:var(--ink);
    font-size:28px;
    font-weight:850;
    line-height:1.15;
    text-align:center;
    overflow-wrap:anywhere;
}

.brand span {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border-radius: 50%;
    background: #fff url('/images/schoolphotohub-favicon.svg') center / contain no-repeat;
    color: transparent;
    font-size: 0;
}

@media (max-width: 980px) {
    .app-shell:has(.tenant-top-account) {
        --tenant-brand-height:78px;
        --tenant-context-height:216px;
        --tenant-menu-toggle-height:54px;
        --tenant-header-height:calc(var(--tenant-brand-height) + var(--tenant-context-height) + var(--tenant-menu-toggle-height));
        display:block;
        grid-template-columns:1fr;
    }
    .app-shell:has(.tenant-context-required-toggle) {
        --tenant-context-height:260px;
    }
    .app-shell:has(.tenant-top-account) .content {
        padding:calc(var(--tenant-header-height) + 22px) 20px 24px;
    }
    .sidebar:has(.tenant-top-account) {
        position:static;
        display:block;
        height:auto;
        padding:0;
        background:transparent;
        overflow:visible;
    }
    .sidebar:has(.tenant-top-account) .brand {
        position:fixed;
        top:0;
        left:0;
        right:0;
        z-index:var(--tenant-fixed-z-index);
        width:auto;
        height:var(--tenant-brand-height);
        flex-direction:row;
        align-items:center;
        justify-content:flex-start;
        padding:18px 210px 12px 20px;
        border-bottom:0;
        background:var(--tenant-nav-bg, #101828);
        color:var(--tenant-nav-text, #fff);
    }
    .sidebar:has(.tenant-top-account) .brand strong {
        max-width:none;
    }
    .tenant-brand img.tenant-brand-logo-platform {
        width:188px;
        height:46px;
        flex:0 0 188px;
    }
    .tenant-brand img.tenant-brand-logo-full {
        width:188px;
        height:46px;
        flex:0 0 188px;
    }
    .tenant-brand-name-only {
        max-width:188px;
    }
    .app-shell:has(.tenant-top-account) .page-header .user-chip {
        top:13px;
        right:20px;
        max-width:min(180px, 38vw);
        font-size:11px;
        text-align:right;
    }
    .sidebar:has(.tenant-top-account) .tenant-context-panel {
        position:fixed;
        top:var(--tenant-brand-height);
        left:0;
        right:0;
        z-index:var(--tenant-fixed-z-index);
        min-height:var(--tenant-context-height);
        grid-template-columns:1fr;
        grid-template-areas:
            "title"
            "school"
            "schoolyear"
            "campaign"
            "required";
        gap:8px;
        margin:0;
        padding:10px 20px 12px;
        border:0;
        border-bottom:1px solid rgba(255,255,255,.12);
        border-radius:0;
        background:var(--tenant-nav-bg, #101828);
        color:var(--tenant-nav-text, #fff);
    }
    .tenant-top-account {
        display:none;
    }
    .sidebar:has(.tenant-top-account) .tenant-context-panel:not(:has(.tenant-context-required-toggle)) {
        grid-template-areas:
            "title"
            "school"
            "schoolyear"
            "campaign";
    }
    .sidebar:has(.tenant-top-account) .tenant-context-title {
        line-height:1.25;
    }
    .sidebar:has(.tenant-top-account) .tenant-context-panel label {
        grid-template-columns:1fr;
        gap:4px;
    }
    .sidebar:has(.tenant-top-account) .tenant-context-required-toggle {
        grid-template-columns:18px minmax(0,1fr);
        justify-self:stretch;
    }
    .sidebar:has(.tenant-top-account) .tenant-menu-toggle {
        position:fixed;
        top:calc(var(--tenant-brand-height) + var(--tenant-context-height));
        left:0;
        right:0;
        z-index:var(--tenant-fixed-z-index);
        display:flex;
        align-items:center;
        justify-content:center;
        gap:10px;
        height:var(--tenant-menu-toggle-height);
        margin:0;
        padding:0 20px;
        border:0;
        border-bottom:1px solid rgba(255,255,255,.12);
        border-radius:0;
        background:var(--tenant-nav-bg, #101828);
        color:var(--tenant-nav-text, #fff);
        cursor:pointer;
        font:900 13px inherit;
        letter-spacing:.08em;
        text-transform:uppercase;
    }
    .tenant-menu-toggle-icon {
        display:grid;
        gap:4px;
        width:20px;
    }
    .tenant-menu-toggle-icon span {
        display:block;
        height:2px;
        border-radius:999px;
        background:currentColor;
    }
    .sidebar:has(.tenant-top-account) nav.tenant-nav {
        position:fixed;
        top:var(--tenant-header-height);
        left:0;
        right:0;
        bottom:0;
        z-index:calc(var(--tenant-fixed-z-index) - 1);
        display:none;
        grid-template-columns:1fr;
        gap:20px;
        padding:18px 20px 90px;
        overflow-y:auto;
        overscroll-behavior:contain;
        background:var(--tenant-nav-bg, #101828);
        scrollbar-color:#475467 var(--tenant-nav-bg, #101828);
    }
    .tenant-menu-account {
        display:grid;
    }
    .sidebar:has(.tenant-top-account) .logout {
        display:none!important;
    }
    body.tenant-menu-open {
        overflow:hidden;
    }
    body.tenant-menu-open .sidebar:has(.tenant-top-account) nav.tenant-nav {
        display:grid;
    }
}

@media (max-width: 560px) {
    .app-shell:has(.tenant-top-account) {
        --tenant-brand-height:98px;
    }
    .sidebar:has(.tenant-top-account) .brand {
        padding-right:190px;
    }
    .sidebar:has(.tenant-top-account) .brand strong {
        flex-basis:100px;
        font-size:13px;
    }
}

@media (max-width: 700px) {
    .admin-form,
    .solo-form-section-body { grid-template-columns: 1fr; }
    .two-factor-reminder-overlay { align-items:end;padding:14px; }
    .two-factor-reminder-dialog { padding:20px; }
    .two-factor-reminder-actions { flex-direction:column; }
    .two-factor-reminder-actions a,
    .two-factor-reminder-actions button { width:100%; }
    .admin-form button,
    .admin-form .form-bottom-actions { grid-column: 1; }
    .action-grid,.two-factor-setup,.recovery-code-grid,.copy-row,.form-row,.form-row.count-row,.column-toggle-grid,.contact-row,.action-form,.inline-edit-form,.campaign-info-grid,.qr-layout-editor,.compact-form-row,.qr-field-toggle-grid,.qr-field-scale-grid,.campaign-mail-recipient-grid { grid-template-columns:1fr; }
    .campaign-workbook-hero { grid-template-columns:1fr; }
    .campaign-subtask-head { flex-direction:column;align-items:stretch; }
    .campaign-task-card summary { flex-direction:column;align-items:flex-start; }
    .action-form .action-notes { grid-column:1; }
    .school-search input,.school-search select { min-width:0;width:100%; }
    .school-toolbar {
        grid-template-columns:1fr;
    }
    .school-toolbar .school-search {
        grid-column:1;
        grid-row:1;
    }
    .school-toolbar .column-picker-button {
        grid-column:1;
        grid-row:2;
    }
    .school-toolbar .column-picker-button {
        justify-self:start;
        width:100%;
    }
    .school-toolbar .column-picker-button[open],
    .school-toolbar .column-picker-button.is-open {
        display:grid;
        grid-template-columns:minmax(0,1fr) auto;
        align-items:start;
        gap:8px;
    }
    .school-toolbar .column-picker-button[open] summary,
    .school-toolbar .column-picker-button.is-open .column-picker-toggle {
        grid-column:1;
        grid-row:1;
        justify-self:start;
    }
    .school-toolbar .column-picker-button[open] > .column-picker-dropdown,
    .school-toolbar .column-picker-button.is-open > .column-picker-dropdown {
        grid-column:1 / -1;
        grid-row:2;
    }
}

@media print {
    @page { margin:0; }
    body { background:#fff;color:#000; }
    .sidebar,.topbar,.quick-actions,.button-link,.secondary-button,.primary-button,.campaign-filter-bar,.campaign-task-form,.flash-list,.column-picker,.row-actions { display:none!important; }
    .main { display:block; }
    .content { padding:0; }
    .panel { box-shadow:none;border:0;padding:0;page-break-inside:avoid; }
    .campaign-print-sheet { border:0;padding:0;margin:0; }
    .campaign-info-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    a { color:#000;text-decoration:none; }
    .qr-print-panel { display:block!important; }
    .qr-print-panel > .panel-title { display:none!important; }
    body:has(.qr-sheet) .panel:not(.qr-print-panel), body:has(.qr-sheet) .page-header { display:none!important; }
    .qr-sheet { display:block; }
    .qr-page { width:var(--qr-card-width, 102mm);height:var(--qr-card-height, 50mm);margin:0;break-after:page;page-break-after:always;overflow:hidden;display:flex;align-items:center;justify-content:center; }
    .qr-page-sheet { width:var(--qr-sheet-width, 210mm);height:var(--qr-sheet-height, 297mm);padding:var(--qr-sheet-margin, 0);margin:0;border:0;box-shadow:none;break-after:page;page-break-after:always;overflow:hidden;display:flex;align-items:center;justify-content:center; }
    .qr-sheet-grid { display:grid;grid-template-columns:repeat(var(--qr-sheet-columns, 1), var(--qr-card-width, 102mm));grid-auto-rows:var(--qr-card-height, 50mm);column-gap:var(--qr-sheet-column-gap, var(--qr-sheet-gap, 0));row-gap:var(--qr-sheet-row-gap, var(--qr-sheet-gap, 0));justify-content:center;align-content:center; }
    .qr-card { width:var(--qr-card-width, 102mm);height:var(--qr-card-height, 50mm);margin:0;box-shadow:none;border:0;border-radius:0;break-after:auto;page-break-after:auto;transform:scale(var(--qr-print-scale, 1));transform-origin:center center; }
}
