.function-filters{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin:24px 0}.function-filters label{display:grid;gap:7px;font-size:12px;color:var(--muted)}.function-filters input:not([type=checkbox]),.function-filters select{width:100%;min-width:0;border:1px solid var(--line);border-radius:9px;padding:11px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px}.function-filters .function-optional{display:flex;align-items:center;gap:8px;grid-column:1/-1}.function-legend{display:flex;flex-wrap:wrap;gap:10px;font-size:12px}.function-legend>span{padding:9px 12px;border-radius:8px}.function-assigned{background:#e3f1eb!important;color:#245b44!important}.function-possible{background:#fbf0d4!important;color:#755516!important}.function-open{background:#f7e5e7!important;color:#8b3440!important}.function-summary{font-size:13px;color:var(--muted);margin:18px 0}.function-table-wrap{overflow:auto;max-height:75vh;border:1px solid var(--line);border-radius:14px;isolation:isolate}.function-table{width:100%;min-width:1250px;border-collapse:separate;border-spacing:0;font-size:12px}.function-table th,.function-table td{padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:top;background:var(--surface)}.function-table thead th{position:sticky;top:0;z-index:3;padding:16px 10px;text-align:left;background:var(--bg)}.function-table tr>th:first-child{position:sticky;left:0;z-index:2;width:220px;min-width:220px;text-align:left}.function-table thead th:first-child{z-index:4;background:var(--bg)}.function-table th small{display:block;font-weight:400;color:var(--muted);margin-top:5px}.function-table .function-area-row th{background:var(--bg);padding:12px;color:var(--muted);font-weight:600;position:static}.function-cell{display:grid;gap:5px;width:100%;min-width:125px;padding:10px;border:0;border-radius:8px;text-align:left;margin:0 0 6px;cursor:pointer;font:inherit;line-height:1.4}.function-cell:last-child{margin-bottom:0}.function-cell span{font-size:10px}.function-cell strong{font-size:12px;font-weight:600}.function-cell:focus-visible{outline:3px solid #4078b0;outline-offset:1px}.function-absent{color:var(--muted);display:block;text-align:center;padding:12px}.function-dialog-status{padding:12px;border-radius:10px}#function-cell-dialog{max-width:460px}#function-dialog-body p{line-height:1.7}.dark .function-assigned{background:#234c3c!important;color:#cbebd9!important}.dark .function-possible{background:#544522!important;color:#f6e3aa!important}.dark .function-open{background:#572f36!important;color:#f5d0d5!important}@media(max-width:700px){.function-filters{grid-template-columns:1fr}.function-table tr>th:first-child{min-width:145px;width:145px}.function-table{min-width:1150px}}
.function-table{table-layout:fixed;min-width:1000px}.function-cell{min-width:0;overflow-wrap:anywhere}.function-table tr>th:first-child{width:200px;min-width:200px}.function-table thead th:not(:first-child){width:auto}@media(max-width:700px){.function-table{min-width:1150px}.function-table tr>th:first-child{width:145px;min-width:145px}}
.function-qualification{display:block;font-size:11px!important;font-weight:600;opacity:.85;margin-top:3px}.function-abbreviations{font-size:12px;color:var(--muted);line-height:1.8;margin-top:16px}.function-abbreviations summary{cursor:pointer}.function-picker-label{display:block;font-size:13px;margin:20px 0 8px}#function-cell-dialog{width:min(520px,calc(100% - 32px));max-width:520px;max-height:85vh;overflow:auto}#function-assignment-picker .helper-choices{position:static;margin-top:8px;max-height:260px}#function-assignment-picker .helper-search{font-size:16px;padding:12px}#function-assignment-picker .attendance-mini,#function-assignment-picker .override-mark,#function-assignment-picker .attendance-mark{display:none}
/* Compact transposed roster */
#personnel-functions .directory-heading{margin-bottom:12px}#personnel-functions h2{font-size:20px}#personnel-functions .directory-heading p{font-size:12px}.function-filters{gap:10px;margin:12px 0;grid-template-columns:1fr 1fr 1fr}.function-filters label{font-size:11px}.function-filters select,.function-filters input:not([type=checkbox]){padding:7px;font-size:12px}.function-filters .function-optional,.function-preview-toggle{display:flex;gap:8px;align-items:center;grid-column:auto}.function-days{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.function-days label{display:flex;gap:5px;align-items:center;font-size:11px;padding:5px 8px;border:1px solid var(--line);border-radius:7px}.function-legend{gap:5px;font-size:10px}.function-legend>span{padding:5px 7px}#personnel-functions>.qualification-footnote{font-size:10px;line-height:1.5;margin:10px 0}.function-abbreviations{font-size:10px;margin-top:8px}.function-summary{font-size:11px;margin:10px 0}.function-table{table-layout:auto;min-width:0;width:max-content;font-size:10px}.function-table th,.function-table td{padding:3px}.function-table tr>th:first-child{min-width:100px;width:100px}.function-table thead tr:first-child th{top:0;height:28px;padding:6px}.function-table thead tr:nth-child(2) th{top:28px;z-index:3;width:112px;min-width:112px;max-width:112px;position:sticky;padding:7px 5px;font-size:10px}.function-table thead tr:nth-child(2) th:first-child{left:auto;z-index:3;width:112px;min-width:112px}.function-table thead tr:first-child th:first-child{z-index:5}.function-table th small{font-size:9px;margin-top:3px}.function-table tbody th{font-size:11px;padding:8px}.function-cell{padding:5px 6px;border-radius:5px;min-width:106px;max-width:120px;min-height:37px;gap:1px}.function-cell strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.function-cell .function-qualification{font-size:9px!important;margin:0}.function-absent{padding:8px}.function-table-wrap{max-height:65vh;border-radius:8px}.function-delete{border:1px solid #d4a2a9;color:#8b3440;background:#f7e5e7;padding:9px 12px;border-radius:8px}#function-dialog-body>label{display:grid;gap:6px;margin:14px 0}#function-dialog-body select{font:inherit;font-size:16px;padding:10px;max-width:100%;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:7px}.function-batch-day{display:flex;gap:8px;padding:6px}.function-preview-toggle input{appearance:none;width:32px;height:20px;border-radius:12px;background:#9ba9b8;position:relative;cursor:pointer}.function-preview-toggle input:before{content:'';position:absolute;top:3px;left:3px;width:14px;height:14px;background:#fff;border-radius:50%;transition:transform .15s}.function-preview-toggle input:checked{background:#245787}.function-preview-toggle input:checked:before{transform:translateX(12px)}.function-preview-toggle input:focus-visible{outline:2px solid #4078b0;outline-offset:2px}@media(max-width:700px){.function-filters{grid-template-columns:1fr 1fr}.function-table{min-width:0}.function-filters label:nth-child(3){grid-column:1/-1}.function-table tr>th:first-child{min-width:90px;width:90px}.function-table thead tr:nth-child(2) th:first-child{width:112px;min-width:112px}}
#function-quick-open{font:inherit;font-size:11px;padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);margin:8px 0}#function-batch-open{margin:12px 0}
.function-cell[draggable=true]{cursor:grab}.function-cell[draggable=true]:active{cursor:grabbing}.function-dragging{opacity:.45;outline:2px dashed #4078b0}
.function-filters .function-preview-toggle{display:flex;flex-direction:row;align-items:center;gap:8px}.function-filters .function-preview-toggle input{flex-shrink:0}
/* Qualification-only mode: one compact line per slot. */
#personnel-functions.function-no-names .function-table{min-width:0;width:max-content}
#personnel-functions.function-no-names .function-table thead tr:nth-child(2) th,
#personnel-functions.function-no-names .function-table thead tr:nth-child(2) th:first-child{width:76px;min-width:76px;max-width:76px;padding:5px 3px;font-size:9px;overflow-wrap:anywhere}
#personnel-functions.function-no-names .function-table thead tr:nth-child(2) th strong{display:block;line-height:1.25}
#personnel-functions.function-no-names .function-table th small{font-size:8px;line-height:1.25}
#personnel-functions.function-no-names .function-table td{padding:2px}
#personnel-functions.function-no-names .function-cell{display:flex;align-items:center;justify-content:center;min-width:70px;max-width:none;width:100%;min-height:26px;padding:3px 4px;margin:0;border-radius:4px;line-height:1.2}
#personnel-functions.function-no-names .function-cell .function-qualification{font-size:10px!important;white-space:nowrap;margin:0;font-weight:600}
#personnel-functions.function-no-names .function-cell>span{font-size:12px;opacity:.7}
#personnel-functions.function-no-names .function-table tbody th{padding:5px 7px}
#personnel-functions.function-no-names .function-absent{padding:4px}
@media(max-width:900px),(pointer:coarse){#personnel-functions.function-no-names .function-cell{min-height:44px}}
