/*
 * 9000INC Teams bundle.
 *
 * Patch 562 splits Teams-only styling out of Core.css so non-team pages do not
 * carry schedule, payroll, geo, map, and team-chat UI rules.
 */

/* Patch 313: Teams geo override, account settings single container, and badge hub readability */
.teams-geo-override[hidden] {display: none !important;}

.teams-geo-override {width: 100%; display: grid; gap: .65rem; margin-top: .5rem; padding: .8rem; border-radius: 1rem; border: 1px solid color-mix(in srgb, var(--warning, #f59e0b), transparent 38%); background: color-mix(in srgb, var(--warning, #f59e0b), transparent 88%);}

.teams-geo-status {justify-content: center;}

.teams-geo-point-form {align-items:center;gap:.5rem;margin-top:.8rem;}

.teams-geo-override {display:inline-flex;gap:.45rem;align-items:center;flex-wrap:wrap;}

.teams-geo-override[hidden] {display:none!important;}

.teams-geo-status.is-danger {border-color: color-mix(in srgb, var(--danger, #ef4444), transparent 25%);
    background: color-mix(in srgb, var(--danger, #ef4444), transparent 88%);}

.teams-geo-override input,
.teams-geo-override textarea {width: 100%;
    max-width: 100%;}

.teams-geo-status.is-good,
.teams-badge.is-good {border-color: color-mix(in srgb, var(--success, #22c55e), transparent 25%);
    background: color-mix(in srgb, var(--success, #22c55e), transparent 88%);}

/* Patch 366: Teams recurring schedule, month calendar, reactions, and payroll review polish */
.teams-month-calendar {display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: .5rem;
    margin-top: .75rem;}

.teams-month-calendar.is-day-view {grid-template-columns: minmax(260px, 520px);}

.teams-month-spacer {visibility: hidden; min-height: 0; pointer-events: none;}

.teams-month-head {font-weight: 800;
    text-align: center;
    color: var(--muted, #667085);
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .06em;}

.teams-month-day {min-height: 8rem;
    border: 1px solid rgba(148, 163, 184, .35);
    border-radius: 1rem;
    padding: .65rem;
    background: rgba(255,255,255,.72);
    overflow: visible;}

.teams-month-day.is-outside {opacity: .45;}

.teams-month-day.is-today {box-shadow: 0 0 0 2px rgba(255, 78, 175, .35) inset;}

.teams-month-day h4 {margin: 0 0 .35rem; font-size: .9rem;}

.teams-month-pill {display: block;
    border-radius: .7rem;
    padding: .35rem .45rem;
    margin-bottom: .35rem;
    background: rgba(96, 165, 250, .16);
    border: 1px solid rgba(96, 165, 250, .25);
    text-decoration: none;
    font-size: .78rem;
    width: 100%;
    text-align: left;
    color: inherit;
    cursor: pointer;}

.teams-month-pill.is-open {background: rgba(34, 197, 94, .15); border-color: rgba(34, 197, 94, .25);}

.teams-month-pill strong,
.teams-month-pill span {display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}

.teams-recurring-card,
.teams-payroll-suggestions .teams-warning-card {border: 1px solid rgba(148, 163, 184, .32);
    border-radius: 1rem;
    padding: .9rem;
    background: rgba(255,255,255,.75);}

.teams-chat-reactions {display: flex;
    flex-wrap: wrap;
    gap: .25rem;
    margin-top: .45rem;}

.teams-chat-reactions form {margin: 0;}

.teams-reaction-button {border: 1px solid rgba(148, 163, 184, .4);
    background: rgba(255,255,255,.75);
    border-radius: 999px;
    padding: .18rem .5rem;
    font-size: .78rem;
    cursor: pointer;}

.teams-reaction-button.is-mine {background: rgba(255, 78, 175, .16);
    border-color: rgba(255, 78, 175, .4);
    font-weight: 800;}

.teams-read-receipts {margin-top: .25rem;
    font-size: .72rem;
    color: var(--muted, #667085);}

@media (max-width: 760px) {.teams-month-calendar,
.teams-month-calendar.is-day-view {grid-template-columns: 1fr;}

.teams-month-head {display: none;}

.teams-month-day {min-height: auto;}}

/* Patch 367: Teams manager/user view isolation polish */
.teams-manager-only-panel {border-color: rgba(255, 205, 90, .38);}

.teams-month-request {display: block;
    border-radius: .7rem;
    padding: .35rem .45rem;
    margin-bottom: .35rem;
    background: rgba(251, 191, 36, .16);
    border: 1px solid rgba(251, 191, 36, .28);
    font-size: .78rem;}

.teams-month-request strong,
.teams-month-request span {display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;}

.teams-attachment-link {display:inline-flex;align-items:center;gap:.35rem;padding:.42rem .6rem;border:1px solid rgba(86,71,140,.18);border-radius:999px;background:rgba(255,255,255,.82);box-shadow:0 6px 14px rgba(38,28,75,.08);font-weight:700;text-decoration:none;max-width:100%}

.teams-attachment-link span {max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.teams-attachment-link small {font-weight:600;opacity:.7;font-size:.72rem}

.teams-chat-reactions {display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;margin-top:.45rem}

.teams-reaction-counts {display:flex;align-items:center;flex-wrap:wrap;gap:.25rem}

.teams-reaction-button {border:1px solid rgba(86,71,140,.2);background:rgba(255,255,255,.88);border-radius:999px;padding:.2rem .5rem;font-weight:800;line-height:1.2;cursor:pointer;box-shadow:0 4px 10px rgba(38,28,75,.08)}

.teams-reaction-button.is-mine {border-color:rgba(49,178,116,.55);background:rgba(49,178,116,.14)}

.teams-reaction-picker {display:inline-flex;align-items:center;gap:.25rem;margin:0;max-width:max-content}

.teams-reaction-picker select {min-width:4.8rem;max-width:5.8rem;padding:.2rem .45rem;border-radius:999px;font-size:.82rem;font-weight:800;line-height:1.2;cursor:pointer}

.teams-reaction-picker select:disabled {opacity:.65;cursor:wait}

.teams-file-preview {display:flex;flex-wrap:wrap;gap:.35rem;min-height:.25rem;margin:.25rem 0 .5rem}

/* Patch 395: Schedule calendar day action popups and scoped day/week/month views */
.teams-month-day.is-expanded {z-index: 80;}

.teams-calendar-day-panel {position: absolute;
    top: calc(100% - .15rem);
    left: .35rem;
    right: .35rem;
    min-width: min(360px, calc(100vw - 2rem));
    max-height: 72vh;
    overflow: auto;
    z-index: 90;
    border: 1px solid rgba(90,180,255,.34);
    border-radius: 1rem;
    padding: .75rem;
    background: rgba(10,18,30,.98);
    color: #fff;
    box-shadow: 0 22px 60px rgba(0,0,0,.42);
    display: grid;
    gap: .65rem;}

.teams-calendar-day-panel[hidden] {display: none !important;}

.teams-calendar-day-panel-head {display: flex; justify-content: space-between; gap: .5rem; align-items: flex-start;}

.teams-calendar-mini-form {border: 1px solid rgba(255,255,255,.12); border-radius: .85rem; padding: .6rem; background: rgba(255,255,255,.045); display: grid; gap: .45rem;}

@media (max-width: 760px) {.teams-calendar-day-panel {position: fixed; left: .75rem; right: .75rem; top: auto; bottom: 1rem; max-height: 72vh;}}

/* Patch 396: core chat reaction placement and membership shop perk cleanup */
.teams-chat-message-wrap {display:grid; gap:.28rem; max-width:min(760px,100%); width:max-content;}

.teams-chat-message-wrap.self,
.teams-chat-message-wrap.is-own {margin-left:auto; justify-items:end;}

.teams-chat-message-wrap.user {justify-items:start;}

.teams-chat-message-wrap > .chat-message,
.teams-chat-message-wrap > .teams-chat-message {margin:0; max-width:100%; width:fit-content;}

.teams-chat-message-wrap.self .chat-message-actions,
.teams-chat-message-wrap.is-own .chat-message-actions {justify-items:end;}

.teams-chat-message-wrap.user .chat-message-actions {justify-items:start;}

.chat-message-actions .teams-chat-reactions {margin-top:0; padding:.12rem 0;}

.teams-reaction-picker select {min-width:3.4rem; max-width:3.9rem; text-align:center;}

@media (max-width:700px) {.teams-chat-message-wrap {width:100%;}

.teams-chat-message-wrap > .chat-message,
.teams-chat-message-wrap > .teams-chat-message {width:100%;}}

/* Patch 397: real calendar cells, native date popups, and inline schedule actions. */
.teams-calendar-month-title {grid-column:1/-1;text-align:center;font-size:1.25rem;font-weight:1000;letter-spacing:.02em;border:1px solid rgba(90,180,255,.26);border-radius:1rem;padding:.55rem .75rem;background:rgba(90,180,255,.08)}

details.teams-calendar-native-day {display:block}

details.teams-calendar-native-day>summary {list-style:none;display:grid;gap:.38rem;min-height:100%;cursor:pointer}

details.teams-calendar-native-day>summary::-webkit-details-marker {display:none}

.teams-calendar-native-day[open] {z-index:90}

.teams-calendar-date-stack {display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.4rem}

.teams-calendar-cell-month,
.teams-calendar-cell-weekday {font-size:.72rem;font-weight:900;opacity:.72;text-transform:uppercase;letter-spacing:.06em}

.teams-calendar-cell-day {font-size:1.7rem;line-height:1}

.teams-calendar-day-open-pill,
.teams-calendar-more-pill {display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(90,180,255,.35);border-radius:999px;padding:.28rem .55rem;background:rgba(90,180,255,.1);font-size:.76rem;font-weight:1000}

.teams-calendar-native-day[open] .teams-calendar-day-open-pill {background:rgba(80,220,140,.14);border-color:rgba(80,220,140,.42)}

.teams-calendar-native-day .teams-month-pill {display:grid;border:1px solid rgba(90,180,255,.26);border-radius:.75rem;padding:.42rem .5rem;background:rgba(90,180,255,.07);text-decoration:none}

.teams-calendar-native-day .teams-month-pill.is-open {border-color:rgba(80,220,140,.42);background:rgba(80,220,140,.10)}

.teams-calendar-native-day .teams-calendar-day-panel {display:grid}

.teams-calendar-native-day:not([open]) .teams-calendar-day-panel {display:none}

.teams-calendar-native-day .teams-calendar-mini-form textarea {min-height:4.5rem}

@media(max-width:760px) {.teams-calendar-date-stack {grid-template-columns:1fr auto;gap:.2rem}

.teams-calendar-cell-month {grid-column:1/-1}

.teams-calendar-cell-day {font-size:1.45rem}}

/* Patch 398: final chat reaction dock + cleaner membership perk cards. */
.teams-chat-message-wrap {display: flex;
    flex-direction: column;
    gap: .24rem;
    max-width: min(760px, 100%);}

.teams-chat-message-wrap.self,
.teams-chat-message-wrap.is-own {align-items: flex-end; margin-left: auto;}

.teams-chat-message-wrap.user {align-items: flex-start;}

.teams-chat-message-wrap > .chat-message,
.teams-chat-message-wrap > .teams-chat-message {margin: 0;}

.teams-chat-message-wrap.self .chat-message-actions,
.teams-chat-message-wrap.is-own .chat-message-actions {align-items: flex-end;}

.teams-chat-message-wrap.user .chat-message-actions {align-items: flex-start;}

.chat-message-actions .teams-chat-reactions {margin: 0;
    padding: .12rem 0 0;
    background: transparent;
    border: 0;}

.teams-chat-message .teams-chat-reactions {margin-top: .4rem;}

.teams-reaction-picker select {width: 3.4rem;
    min-width: 3.4rem;
    max-width: 3.4rem;
    text-align: center;}

.teams-chat-message-wrap {width: fit-content;}

@media (max-width:700px) {.teams-chat-message-wrap {width: 100%;}}

/* Patch 399: Schedule command-center calendar popup replacement. */
.teams-calendar-guidance {display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;border:1px solid rgba(90,180,255,.24);border-radius:1rem;padding:.7rem .85rem;background:rgba(90,180,255,.07);margin:.45rem 0 .75rem}

.teams-schedule-calendar-grid {align-items:stretch}

.teams-schedule-calendar-grid.is-week-view,
.teams-schedule-calendar-grid.is-month-view {grid-template-columns:repeat(7,minmax(0,1fr))}

.teams-schedule-calendar-grid.is-day-view {grid-template-columns:minmax(280px,720px)}

.teams-calendar-day-card {position:relative;display:grid;gap:.5rem;align-content:start}

.teams-calendar-date-button {appearance:none;border:0;background:transparent;color:inherit;text-align:left;display:grid;gap:.42rem;width:100%;min-height:100%;padding:0;cursor:pointer;font:inherit}

.teams-calendar-date-button:focus-visible,
.teams-calendar-day-open-pill:focus-visible {outline:2px solid rgba(90,180,255,.85);outline-offset:3px}

.teams-calendar-day-badges {display:flex;flex-wrap:wrap;gap:.28rem}

.teams-calendar-day-card.is-expanded {z-index:120}

.teams-calendar-day-card.is-expanded .teams-calendar-date-button {filter:brightness(1.08)}

.teams-calendar-day-card>.teams-calendar-day-open-pill {width:max-content;border-color:rgba(80,220,140,.35);background:rgba(80,220,140,.10);cursor:pointer}

.teams-calendar-day-panel.is-schedule-popup {position:fixed;top:6vh;left:50%;right:auto;bottom:auto;transform:translateX(-50%);width:min(860px,calc(100vw - 2rem));max-height:86vh;overflow:auto;z-index:999;border:1px solid rgba(90,180,255,.42);border-radius:1.15rem;padding:1rem;background:rgba(9,15,26,.98);color:#fff;box-shadow:0 28px 90px rgba(0,0,0,.58);display:grid;gap:.85rem}

.teams-calendar-day-panel.is-schedule-popup[hidden] {display:none!important}

.teams-calendar-action-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.75rem}

.teams-calendar-action-card {border:1px solid rgba(255,255,255,.13);border-radius:1rem;padding:.8rem;background:rgba(255,255,255,.055);display:grid;gap:.55rem}

.teams-calendar-action-card h4 {margin:.05rem 0}

.teams-calendar-saved-list {display:grid;gap:.4rem;border:1px solid rgba(255,255,255,.1);border-radius:.85rem;padding:.55rem;background:rgba(255,255,255,.04)}

.teams-calendar-saved-row {display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}

.teams-calendar-shift-panel {margin-top:.2rem}

.teams-calendar-shift-panel .section-head {margin-bottom:.25rem}

.teams-month-day .teams-muted.small {font-size:.78rem}

.teams-calendar-native-day,
.teams-calendar-native-day[open] {z-index:auto}

.teams-calendar-native-day .teams-calendar-day-panel {display:initial}

.teams-calendar-native-day:not([open]) .teams-calendar-day-panel {display:initial}

@media(max-width:920px) {.teams-schedule-calendar-grid.is-week-view,
.teams-schedule-calendar-grid.is-month-view {grid-template-columns:repeat(2,minmax(0,1fr))}

.teams-month-head,
.teams-month-spacer {display:none}

.teams-calendar-day-panel.is-schedule-popup {top:3vh;max-height:91vh}}

@media(max-width:620px) {.teams-schedule-calendar-grid.is-week-view,
.teams-schedule-calendar-grid.is-month-view,
.teams-schedule-calendar-grid.is-day-view {grid-template-columns:1fr}

.teams-calendar-day-panel.is-schedule-popup {left:.65rem;right:.65rem;top:2.5vh;width:auto;transform:none;padding:.75rem}

.teams-calendar-action-grid {grid-template-columns:1fr}}

/* Patch 401: real schedule calendar day action modals. */
.teams-schedule-command-center .teams-calendar-guidance {display:none!important}

.teams-schedule-command-center .teams-calendar-date-button {border:1px solid transparent;border-radius:.95rem;text-decoration:none;color:inherit;padding:.2rem;transition:border-color .16s ease,background .16s ease,transform .16s ease}

.teams-schedule-command-center .teams-calendar-date-button:hover,
.teams-schedule-command-center .teams-calendar-date-button:focus-visible {border-color:rgba(90,180,255,.42);background:rgba(90,180,255,.08);transform:translateY(-1px)}

.teams-schedule-command-center .teams-calendar-day-open-pill {margin-top:.3rem;width:max-content;color:inherit;text-decoration:none}

.teams-calendar-target-modal {display:none!important;position:fixed!important;top:5vh!important;left:50%!important;right:auto!important;bottom:auto!important;transform:translateX(-50%)!important;width:min(980px,calc(100vw - 2rem))!important;max-height:88vh!important;overflow:auto!important;z-index:4000!important;border:1px solid rgba(90,180,255,.48)!important;border-radius:1.15rem!important;padding:1rem!important;background:rgba(9,15,26,.985)!important;color:#fff!important;box-shadow:0 30px 90px rgba(0,0,0,.68)!important;gap:.85rem!important}

.teams-calendar-target-modal:target {display:grid!important}

.teams-calendar-target-modal:target::before {content:"";position:fixed;inset:0;z-index:-1;background:rgba(0,0,0,.35)}

.teams-calendar-target-modal .teams-calendar-action-grid {grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}

.teams-calendar-target-modal .teams-calendar-action-card {align-content:start}

.teams-calendar-target-modal .teams-calendar-shift-panel {grid-column:1/-1}

.teams-calendar-target-modal .teams-calendar-mini-form textarea {min-height:4.5rem}

.teams-calendar-day-card:has(.teams-calendar-target-modal:target) {z-index:4100}

@media(max-width:760px) {.teams-calendar-target-modal {left:.6rem!important;right:.6rem!important;top:2.5vh!important;transform:none!important;width:auto!important;max-height:93vh!important;padding:.75rem!important}

.teams-calendar-target-modal .teams-calendar-action-grid {grid-template-columns:1fr}}

/* Patch 402: real schedule command calendar, CSS-target day modals, and no timezone date ghosting. */
.teams-real-schedule-calendar {display:grid;gap:.75rem;margin-top:.85rem}

.teams-real-schedule-weekdays {display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.55rem}

.teams-real-schedule-weekdays span {text-align:center;font-size:.8rem;font-weight:1000;text-transform:uppercase;letter-spacing:.08em;color:var(--muted,#756f91)}

.teams-real-schedule-grid {display:grid;gap:.55rem;align-items:stretch}

.teams-real-schedule-grid.is-month-view,
.teams-real-schedule-grid.is-week-view {grid-template-columns:repeat(7,minmax(0,1fr))}

.teams-real-schedule-grid.is-day-view {grid-template-columns:minmax(280px,760px)}

.teams-real-schedule-spacer {min-height:0;visibility:hidden;pointer-events:none}

.teams-real-schedule-day {min-height:10rem;border:1px solid rgba(90,180,255,.22);border-radius:1rem;background:rgba(255,255,255,.035);overflow:visible}

.teams-real-schedule-day.is-today {box-shadow:0 0 0 2px rgba(255,78,175,.28) inset}

.teams-real-schedule-day.is-focused-day {border-color:rgba(90,180,255,.55)}

.teams-real-schedule-day-button {display:grid;gap:.45rem;align-content:start;width:100%;height:100%;min-height:10rem;padding:.75rem;color:inherit;text-decoration:none}

.teams-real-schedule-day-button:hover,
.teams-real-schedule-day-button:focus-visible {background:rgba(90,180,255,.08);outline:2px solid rgba(90,180,255,.5);outline-offset:2px}

.teams-real-schedule-date {display:flex;align-items:center;justify-content:space-between;gap:.5rem}

.teams-real-schedule-date strong {font-size:1.75rem;line-height:1}

.teams-real-schedule-date small {font-weight:1000;text-transform:uppercase;letter-spacing:.06em;color:var(--muted,#756f91)}

.teams-real-schedule-counts {display:flex;flex-wrap:wrap;gap:.28rem}

.teams-real-schedule-item {display:grid;gap:.05rem;border:1px solid rgba(90,180,255,.22);border-radius:.72rem;padding:.38rem .5rem;background:rgba(90,180,255,.07);font-size:.82rem}

.teams-real-schedule-item.is-open {border-color:rgba(80,220,140,.38);background:rgba(80,220,140,.10)}

.teams-real-schedule-item.is-request {border-color:rgba(255,205,90,.42);background:rgba(255,205,90,.10)}

.teams-real-schedule-item strong,
.teams-real-schedule-item small {overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.teams-real-schedule-empty {font-size:.82rem;color:var(--muted,#756f91)}

.teams-real-schedule-open {justify-self:start;margin-top:auto;border:1px solid rgba(80,220,140,.38);border-radius:999px;padding:.28rem .58rem;background:rgba(80,220,140,.10);font-size:.76rem;font-weight:1000}

.teams-real-schedule-modal {display:none}

.teams-real-schedule-modal:target {position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:1rem;background:rgba(5,8,16,.62);backdrop-filter:blur(4px)}

.teams-real-schedule-modal-card {width:min(1080px,calc(100vw - 2rem));max-height:90vh;overflow:auto;border:1px solid rgba(90,180,255,.42);border-radius:1.25rem;background:rgba(12,18,30,.98);color:#fff;box-shadow:0 30px 90px rgba(0,0,0,.55);padding:1rem;display:grid;gap:.9rem}

.teams-real-schedule-modal-head {display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}

.teams-real-schedule-modal-head h3 {margin:.05rem 0}

.teams-real-schedule-actions {display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem}

.teams-real-schedule-modal .teams-calendar-action-card {background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.13)}

.teams-real-schedule-modal .teams-calendar-mini-form input,
.teams-real-schedule-modal .teams-calendar-mini-form select,
.teams-real-schedule-modal .teams-calendar-mini-form textarea {width:100%}

@media(max-width:920px) {.teams-real-schedule-weekdays {display:none}

.teams-real-schedule-grid.is-month-view,
.teams-real-schedule-grid.is-week-view {grid-template-columns:repeat(2,minmax(0,1fr))}

.teams-real-schedule-day {min-height:8.5rem}

.teams-real-schedule-day-button {min-height:8.5rem}

.teams-real-schedule-modal-card {max-height:92vh}}

@media(max-width:620px) {.teams-real-schedule-grid.is-month-view,
.teams-real-schedule-grid.is-week-view,
.teams-real-schedule-grid.is-day-view {grid-template-columns:1fr}

.teams-real-schedule-actions {grid-template-columns:1fr}

.teams-real-schedule-modal {padding:.55rem}

.teams-real-schedule-modal-card {width:100%;padding:.75rem}

.teams-real-schedule-modal-head {display:grid}

.teams-real-schedule-date strong {font-size:1.45rem}}

/* Patch 403: real schedule viewer/action modal cleanup. */
.teams-schedule-filter-card {display:grid;gap:.65rem;border:1px solid rgba(90,180,255,.24);border-radius:1rem;padding:.75rem .85rem;background:rgba(90,180,255,.06);margin:.75rem 0 1rem}

.teams-schedule-filter-card form {display:flex;flex-wrap:wrap;gap:.65rem;align-items:end}

.teams-schedule-filter-card label {min-width:180px}

.teams-schedule-filter-note {font-size:.82rem;color:var(--muted,#756f91)}

.teams-real-schedule-day {background:rgba(255,255,255,.92)!important;border-color:rgba(25,35,75,.16)!important;box-shadow:0 8px 22px rgba(20,28,58,.06)}

.teams-real-schedule-day-button {color:#241b49}

.teams-real-schedule-date {justify-content:flex-start}

.teams-real-schedule-date small,
.teams-real-schedule-open {display:none!important}

.teams-real-schedule-empty {color:#6d6684}

.teams-real-schedule-modal-card {background:#fff!important;color:#241b49!important;border-color:rgba(90,180,255,.38)}

.teams-real-schedule-modal-card .teams-muted {color:#6d6684}

.teams-schedule-action-menu {display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.65rem}

.teams-schedule-action-choice {display:grid;gap:.25rem;text-align:left;border:1px solid rgba(90,180,255,.24);border-radius:1rem;padding:.8rem;background:rgba(90,180,255,.07);text-decoration:none;color:inherit;font-weight:900}

.teams-schedule-action-choice:hover,
.teams-schedule-action-choice:focus-visible {border-color:rgba(90,180,255,.55);background:rgba(90,180,255,.13)}

.teams-schedule-action-choice small {font-weight:700;color:#6d6684}

.teams-calendar-action-card {background:#fff;border-color:rgba(25,35,75,.12);color:#241b49}

.teams-calendar-saved-list {background:rgba(90,180,255,.06);border-color:rgba(90,180,255,.18)}

.teams-calendar-mini-form {background:rgba(90,180,255,.04);border-color:rgba(90,180,255,.18)}

/* Patch 404: theme identity styling and same-side chat messages. */
.teams-chat-message-wrap[data-sender-theme] > .chat-message,
.teams-chat-message-wrap[data-sender-theme] > .teams-chat-message {box-shadow: inset 4px 0 0 var(--chat-sender-accent, #60a5fa), 0 8px 24px rgba(0,0,0,.16);}

.teams-chat-message-wrap.user,
.teams-chat-message-wrap.system {align-items: flex-start; margin-left: 0; margin-right: auto;}

/* Patch 406: Teams focused subview controls and break-rule inputs. */
.teams-section-jump-nav {display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: .85rem 0 1.05rem;
    padding: .7rem;
    border: 1px solid rgba(90,180,255,.24);
    border-radius: 1rem;
    background: rgba(90,180,255,.07);}

.teams-section-jump-nav::before {content: 'Jump to section';
    align-self: center;
    font-size: .78rem;
    font-weight: 1000;
    letter-spacing: .06em;
    text-transform: uppercase;
    opacity: .78;
    margin-right: .2rem;}

.teams-section-anchor {scroll-margin-top: 7rem;}

.teams-pay-rules-table th,
.teams-pay-rules-table td {vertical-align: top;}

.teams-break-rule-mini {display: grid; gap: .35rem; min-width: 170px;}

.teams-break-rule-mini label {display: grid; gap: .18rem; font-size: .82rem; font-weight: 800;}

.teams-break-rule-mini select,
.teams-break-rule-mini input {width: 100%; min-width: 0;}

@media (max-width: 760px) {.teams-section-jump-nav::before {width: 100%;}

.teams-section-jump-nav .button {flex: 1 1 140px; text-align: center;}}

/* Patch 407: core chat search + team chat presence/clock chips */
.teams-chat-search-form {display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: .5rem;
    align-items: end;
    margin: .65rem 0;}

.teams-chat-search-form label {display: grid;
    gap: .25rem;
    margin: 0;}

.teams-chat-search-form input {width: 100%;}

.teams-chat-main.chat-panel {min-width: 0;}

.teams-chat-messages.chat-log {max-height: 620px;
    overflow: auto;}

@media (max-width: 720px) {.teams-chat-search-form {grid-template-columns: 1fr;}}

/* Patch 410: restore compact chat reactions, full schedule day view, and unified payroll position cards. */
.chat-reaction-adders .teams-reaction-button.is-add {display:none!important}

.teams-real-schedule-modal:target {position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100vw!important;height:100vh!important;height:100dvh!important;display:grid!important;place-items:start center!important;overflow:auto!important;padding:clamp(.55rem,2vw,1.25rem)!important;z-index:2147483000!important;overscroll-behavior:contain}

.teams-real-schedule-modal-card {max-height:none!important;margin:auto 0!important;box-sizing:border-box}

.teams-real-schedule-grid.is-day-view {grid-template-columns:minmax(280px,min(100%,980px))}

.teams-payroll-position-shell {display:grid;gap:1rem}

.teams-payroll-position-form {display:grid;gap:1rem}

.teams-payroll-position-grid {display:grid;gap:1rem}

.teams-payroll-position-card {border:1px solid rgba(90,180,255,.22);border-radius:1.1rem;padding:1rem;background:rgba(90,180,255,.06);display:grid;gap:.85rem}

.teams-payroll-position-card.is-create {background:rgba(80,220,140,.08);border-color:rgba(80,220,140,.28)}

.teams-position-create-form {display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr);gap:.8rem;align-items:end}

.teams-position-create-form>div,
.teams-position-create-form .teams-permission-grid {grid-column:1/-1}

.teams-position-pay-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.65rem;align-items:end}

.teams-position-pay-grid label,
.teams-payroll-position-card label {display:grid;gap:.28rem;font-weight:800}

.teams-break-rule-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem}

.teams-break-rule-grid section {border:1px solid rgba(255,255,255,.12);border-radius:.9rem;padding:.75rem;background:rgba(255,255,255,.045)}

.teams-break-rule-grid h4 {margin:.05rem 0 .55rem}

.teams-permission-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.45rem}

.teams-permission-pill {display:flex!important;align-items:center;gap:.45rem;border:1px solid rgba(90,180,255,.24);border-radius:.85rem;padding:.55rem .65rem;background:rgba(255,255,255,.065);font-weight:900}

.teams-permission-pill input {width:auto!important;min-width:1rem}

.teams-permission-pill:has(input:checked),
.teams-permission-pill.is-on {border-color:rgba(80,220,140,.45);background:rgba(80,220,140,.12)}

/* Patch 543: position manager quick views, collapsed cards, and level color coding. */
.teams-position-view-toggle {display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;margin:.15rem 0 .85rem}

.teams-position-view-radio {position:absolute;opacity:0;pointer-events:none}

.teams-position-view-button {border:1px solid rgba(90,180,255,.25);border-radius:999px;padding:.55rem .85rem;background:rgba(255,255,255,.08);font-weight:900;cursor:pointer;box-shadow:0 8px 18px rgba(20,15,45,.08)}

.teams-payroll-position-shell:has(.teams-position-view-radio[data-view="edit"]:checked) .teams-position-view-button[data-view="edit"],
.teams-payroll-position-shell:has(.teams-position-view-radio[data-view="create"]:checked) .teams-position-view-button[data-view="create"] {background:linear-gradient(135deg,rgba(67,214,255,.25),rgba(255,82,176,.18));border-color:rgba(67,214,255,.45)}

.teams-position-view-panel {display:none}

.teams-position-view-panel.is-static {display:grid}

.teams-position-view-radio[data-view="edit"]:checked~.teams-position-view-panel.is-edit {display:grid}

.teams-position-view-radio[data-view="create"]:checked~.teams-position-view-panel.is-create {display:block}

.teams-payroll-position-card {position:relative;overflow:hidden}

.teams-payroll-position-card summary {cursor:pointer;list-style:none}

.teams-payroll-position-card summary::-webkit-details-marker {display:none}

.teams-payroll-position-card.is-collapsible {display:block;padding:0}

.teams-payroll-position-card.is-collapsible>summary {padding:1rem;display:flex;align-items:center;justify-content:space-between;gap:.8rem}

.teams-payroll-position-card.is-collapsible[open]>summary {border-bottom:1px solid rgba(255,255,255,.14)}

.teams-payroll-position-card.is-collapsible>summary .teams-position-summary-main {display:grid;gap:.2rem}

.teams-position-expand-badge {white-space:nowrap}

.teams-payroll-position-card.is-collapsible:not([open]) .teams-position-expand-badge::after {content:'Expand'}

.teams-payroll-position-card.is-collapsible[open] .teams-position-expand-badge::after {content:'Collapse'}

.teams-position-card-body {padding:1rem;display:grid;gap:.85rem}

.teams-position-card-actions {display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;margin-top:.25rem}

.teams-position-remove-form {display:inline-flex}

.teams-position-level-line {height:5px;border-radius:999px;background:rgba(90,180,255,.35);margin:0 1rem}

.teams-payroll-position-card.level-trainee {border-color:rgba(148,163,184,.42);background:rgba(148,163,184,.08)}

.teams-payroll-position-card.level-entry_level {border-color:rgba(59,130,246,.35);background:rgba(59,130,246,.08)}

.teams-payroll-position-card.level-staff {border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.08)}

.teams-payroll-position-card.level-team_lead {border-color:rgba(234,179,8,.42);background:rgba(234,179,8,.10)}

.teams-payroll-position-card.level-manager {border-color:rgba(249,115,22,.42);background:rgba(249,115,22,.10)}

.teams-payroll-position-card.level-director {border-color:rgba(168,85,247,.42);background:rgba(168,85,247,.10)}

.teams-payroll-position-card.level-founder {border-color:rgba(236,72,153,.50);background:rgba(236,72,153,.10)}

.teams-payroll-position-card.level-trainee .teams-position-level-line {background:linear-gradient(90deg,#94a3b8,#cbd5e1)}

.teams-payroll-position-card.level-entry_level .teams-position-level-line {background:linear-gradient(90deg,#3b82f6,#93c5fd)}

.teams-payroll-position-card.level-staff .teams-position-level-line {background:linear-gradient(90deg,#22c55e,#86efac)}

.teams-payroll-position-card.level-team_lead .teams-position-level-line {background:linear-gradient(90deg,#eab308,#fde68a)}

.teams-payroll-position-card.level-manager .teams-position-level-line {background:linear-gradient(90deg,#f97316,#fdba74)}

.teams-payroll-position-card.level-director .teams-position-level-line {background:linear-gradient(90deg,#a855f7,#d8b4fe)}

.teams-payroll-position-card.level-founder .teams-position-level-line {background:linear-gradient(90deg,#ec4899,#f9a8d4)}

@media(max-width:720px) {.teams-position-create-form {grid-template-columns:1fr}

.teams-real-schedule-grid.is-day-view {grid-template-columns:1fr}}

.teams-attachment-link.has-preview {border-radius: .9rem;
    padding: .35rem .55rem;}

.teams-file-preview {align-items: center;}

/* Patch 412 - core chat reaction alignment and compact message menu */
.teams-chat-message-wrap {position: relative;}

/* Patch 437: reusable map pin labels and clearer route visibility. */
.teams-google-geo-marker-wrap {overflow:visible!important;z-index:10}

.teams-google-geo-marker {overflow:visible!important;width:58px!important;height:58px!important;margin-top:22px!important;isolation:isolate}

.teams-google-geo-marker img {position:relative!important;z-index:2!important;width:100%!important;height:100%!important;border-radius:999px!important;object-fit:cover!important}

.teams-google-geo-marker em {position:relative!important;z-index:2!important}

.teams-google-geo-marker-tag {position:absolute!important;left:50%!important;top:-1.55rem!important;right:auto!important;bottom:auto!important;transform:translateX(-50%)!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;width:max-content!important;min-width:2.65rem!important;max-width:none!important;height:auto!important;min-height:1.05rem!important;padding:.2rem .5rem!important;border:2px solid #fff!important;border-radius:999px!important;background:var(--nk-pin-edge,#0f172a)!important;color:#fff!important;font-family:Arial,sans-serif!important;font-size:.58rem!important;font-weight:1000!important;letter-spacing:.06em!important;line-height:1!important;text-align:center!important;text-transform:uppercase!important;white-space:nowrap!important;word-break:normal!important;overflow:visible!important;writing-mode:horizontal-tb!important;text-orientation:mixed!important;box-shadow:0 6px 14px rgba(15,23,42,.32)!important;pointer-events:none!important;z-index:5!important}

.teams-google-geo-marker>span {position:absolute!important;left:50%!important;right:auto!important;bottom:-.7rem!important;transform:translateX(-50%)!important;z-index:4!important;min-width:1.9rem!important;width:max-content!important;max-width:none!important;height:1.2rem!important;padding:0 .42rem!important;border-radius:999px!important;border:2px solid #fff!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;background:#0f172a!important;color:#fff!important;font-family:Arial,sans-serif!important;font-size:.61rem!important;font-weight:1000!important;letter-spacing:.04em!important;line-height:1!important;white-space:nowrap!important;word-break:normal!important;writing-mode:horizontal-tb!important;text-orientation:mixed!important;box-shadow:0 4px 12px rgba(0,0,0,.28)!important}

.teams-google-geo-marker.is-clock-in .teams-google-geo-marker-tag,
.teams-google-geo-marker.is-clock-in>span {background:#16a34a!important}

.teams-google-geo-marker.is-clock-out .teams-google-geo-marker-tag,
.teams-google-geo-marker.is-clock-out>span {background:#dc2626!important}

.teams-google-geo-marker.is-current .teams-google-geo-marker-tag,
.teams-google-geo-marker.is-current>span {background:#ea580c!important}

.teams-google-geo-marker.is-teammate .teams-google-geo-marker-tag,
.teams-google-geo-marker.is-teammate>span {background:#2563eb!important}

.teams-osm-path polyline {filter:drop-shadow(0 2px 2px rgba(15,23,42,.28));stroke-width:4.5!important;opacity:.9!important}

.teams-osm-pin {overflow:visible!important}

.teams-osm-pin.is-clock-in::before,
.teams-osm-pin.is-clock-out::before,
.teams-osm-pin.is-route-point::before {display:inline-flex!important;align-items:center!important;justify-content:center!important;width:max-content!important;min-width:2.55rem!important;max-width:none!important;white-space:nowrap!important;word-break:normal!important;writing-mode:horizontal-tb!important;text-orientation:mixed!important;top:-1.12rem!important;z-index:8!important;line-height:1!important}

.teams-osm-pin.is-clock-in::before {content:"START"!important;background:#16a34a!important}

.teams-osm-pin.is-clock-out::before {content:"END"!important;background:#dc2626!important}

.teams-osm-pin.is-route-point::before {content:"GPS"!important;background:#083344!important;color:#fff!important}

/* Patch 455: Teams inline shift tasks and timesheet charts */
.teams-template-inline-tasks {display: grid;
    gap: 0.85rem;
    margin: 1rem 0;
    padding: 0.9rem;
    border: 1px solid color-mix(in srgb, var(--border, rgba(255,255,255,.2)), transparent 10%);
    border-radius: 1rem;
    background: color-mix(in srgb, var(--panel, rgba(255,255,255,.08)), transparent 8%);}

.teams-inline-task-list {display: grid;
    gap: 0.75rem;}

.teams-inline-task-row {display: grid;
    gap: 0.65rem;
    padding: 0.75rem;
    border: 1px solid color-mix(in srgb, var(--border, rgba(255,255,255,.2)), transparent 15%);
    border-radius: 0.9rem;
    background: color-mix(in srgb, var(--panel-strong, rgba(255,255,255,.1)), transparent 12%);}

.teams-timesheet-chart-grid {margin-top: 1rem;}

.teams-pay-adjustment-box {margin-top: 1rem;}

/* Patch 456: route Server Statistics and Teams charts through the shared Analytics renderer. */
.teams-chart-grid .analytics-chart-card,
.teams-timesheet-chart-grid .analytics-chart-card {min-width: 0;}

.teams-analytics-chart-card .analytics-chart-head {gap: .75rem;}

.teams-chart-display-settings {margin-bottom: .75rem;}

.teams-chart-display-settings select {max-width: 16rem;}

.teams-timesheet-chart-grid,
.teams-chart-grid {align-items: stretch;}

.teams-analytics-chart-card .analytics-canvas-wrap {min-height: 250px;}

.teams-analytics-chart-card .teams-chart-fallback {margin-top: .75rem;}

/* Patch 462: Teams schedule persistent today marker. */
.teams-real-schedule-day.is-today,
html[data-theme] .teams-real-schedule-day.is-today {border-color: rgba(255, 78, 175, .62) !important;
    box-shadow: 0 0 0 2px rgba(255, 78, 175, .16), 0 18px 38px rgba(255, 78, 175, .1) !important;}

.teams-real-schedule-day.is-today .teams-real-schedule-date,
html[data-theme] .teams-real-schedule-day.is-today .teams-real-schedule-date {color: var(--ink, #2d214d) !important;}

.teams-real-schedule-day.is-today .teams-real-schedule-date::after,
html[data-theme] .teams-real-schedule-day.is-today .teams-real-schedule-date::after {content: 'TODAY';
    display: inline-flex;
    align-items: center;
    margin-left: .45rem;
    padding: .1rem .42rem;
    border-radius: 999px;
    font-size: .64rem;
    font-weight: 900;
    letter-spacing: .08em;
    color: #fff;
    background: linear-gradient(135deg, #ff4eaf, #36c5f0);}

.teams-real-schedule-day.is-temporary-today,
html[data-theme] .teams-real-schedule-day.is-temporary-today {animation: teamsTodayPulse462 1s ease-in-out 0s 4;}

@keyframes teamsTodayPulse462 {0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-3px); box-shadow: 0 0 0 5px rgba(255, 78, 175, .24), 0 22px 42px rgba(54, 197, 240, .18); }}

/* Patch 548: member-position cards mirror the position/pay-rule editor */
.teams-member-position-shell {margin-top:.75rem}

.teams-member-position-grid {grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}

.teams-member-position-card .teams-position-card-body {gap:.75rem}

.teams-member-position-form {display:grid;gap:.75rem}

.teams-readonly-field {display:flex;align-items:center;min-height:44px;border:1px solid rgba(90,180,255,.25);border-radius:.9rem;padding:.55rem .75rem;background:rgba(255,255,255,.06);font-weight:900;color:inherit}

.teams-member-position-card .teams-position-remove-form {margin-top:-.25rem}

@media(max-width:720px) {.teams-member-position-grid {grid-template-columns:1fr}

.teams-member-position-card summary {align-items:flex-start;flex-direction:column}}

.teams-member-pay-shell {display: grid; gap: 1rem;}

.teams-member-view-radio {position: absolute; opacity: 0; pointer-events: none;}

.teams-member-view-panel {display: none;}

.teams-member-view-radio[data-view="members"]:checked ~ .teams-member-view-panel.is-members,
.teams-member-view-radio[data-view="adjustments"]:checked ~ .teams-member-view-panel.is-adjustments {display: grid;}

.teams-member-pay-shell .teams-position-view-button {cursor: pointer;}

.teams-member-view-radio[data-view="members"]:checked ~ .teams-member-view-toggle .teams-position-view-button[data-view="members"],
.teams-member-view-radio[data-view="adjustments"]:checked ~ .teams-member-view-toggle .teams-position-view-button[data-view="adjustments"] {background: linear-gradient(135deg, rgba(67,214,255,.25), rgba(255,82,176,.18));
    border-color: rgba(67,214,255,.45);}

.teams-member-position-shell {margin-top: .35rem;}

.teams-member-position-grid {grid-template-columns: 1fr !important; gap: .75rem !important;}

.teams-member-position-card {min-width: 0; width: 100%;}

.teams-member-position-card.is-collapsible > summary {display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .78rem 1rem !important;
    min-width: 0;}

.teams-member-summary-main {display: grid; gap: .22rem; min-width: 0; flex: 1 1 auto;}

.teams-member-summary-name {display: flex; align-items: center; gap: .55rem; min-width: 0; flex-wrap: wrap;}

.teams-member-summary-name strong {display: block;
    min-width: 0;
    max-width: 38rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow-wrap: normal !important;
    word-break: normal !important;}

.teams-member-summary-name .teams-badge {max-width: 16rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}

.teams-member-summary-meta {display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; overflow-wrap: normal !important; word-break: normal !important;}

.teams-member-position-card .teams-position-expand-badge {flex: 0 0 auto;}

.teams-member-position-card-body {gap: .75rem;}

.teams-member-position-form {display: grid; gap: .75rem;}

.teams-member-position-fields {grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));}

.teams-readonly-field {display: flex;
    align-items: center;
    min-height: 44px;
    border: 1px solid rgba(90,180,255,.25);
    border-radius: .9rem;
    padding: .55rem .75rem;
    background: rgba(255,255,255,.06);
    font-weight: 900;
    color: inherit;
    line-height: 1.25;}

.teams-member-card-actions {margin-top: 0;}

.teams-member-remove-form {margin-top: -.15rem;}

.teams-member-remove-form .button {border-color: rgba(239,68,68,.24); color: #7f1d1d;}

.teams-member-pay-shell .teams-pay-adjustment-box {margin-top: .25rem;}

@media (max-width: 720px) {.teams-member-position-card.is-collapsible > summary {align-items: flex-start; flex-direction: column;}

.teams-member-summary-name strong {max-width: 100%;}

.teams-member-summary-name .teams-badge {max-width: 100%;}}

/* Patch 584: keep the manager schedule board usable with seven real columns. */
.teams-week-calendar{overflow-x:auto!important;grid-template-columns:repeat(7,minmax(170px,1fr))!important;padding-bottom:.35rem}.teams-week-calendar .teams-day-card{min-width:170px}.teams-week-calendar .teams-day-card h3,.teams-week-calendar .teams-calendar-shift-card,.teams-week-calendar .teams-badge{word-break:normal!important;overflow-wrap:break-word!important;white-space:normal}.teams-shift-template-actions{align-items:center}.teams-template-delete-form{margin-top:-.35rem}.teams-template-delete-form[hidden],.teams-flow-note[hidden],[data-save-shift-template-copy][hidden],[data-shift-template-new][hidden]{display:none!important}.teams-session-pay-table td{vertical-align:top}@media(max-width:720px){.teams-week-calendar{grid-template-columns:repeat(7,minmax(160px,1fr))!important}}

/* Patch 585: manager scheduling uses the normal schedule calendar. */
.teams-manager-schedule-page .teams-real-schedule-calendar,
.teams-manager-schedule-page .teams-schedule-view-panels,
.teams-manager-schedule-page .teams-schedule-view-panel {width:100%;min-width:0;}
.teams-manager-schedule-page .teams-real-schedule-grid.is-week-view,
.teams-manager-schedule-page .teams-real-schedule-grid.is-month-view {min-width:min(100%,960px);}
.teams-calendar-manager-action {display:grid;gap:.9rem;}
.teams-calendar-assign-form {display:grid;gap:.9rem;}
.teams-calendar-assign-form fieldset {border:1px solid rgba(90,180,255,.18);border-radius:1rem;padding:.85rem;background:rgba(90,180,255,.045);}
.teams-calendar-assign-form legend {font-weight:900;padding:0 .35rem;}
.teams-calendar-assign-form .teams-scheduled-detail-box {border:1px solid rgba(255,255,255,.12);border-radius:1rem;padding:.85rem;background:rgba(255,255,255,.04);}
.teams-manager-assign-fallback .section-head {align-items:flex-start;}
.teams-real-schedule-modal .teams-scheduled-shift-grid {display:grid;gap:.75rem;}
.teams-real-schedule-modal .teams-scheduled-shift-card {border:1px solid rgba(90,180,255,.22);border-radius:1rem;padding:.75rem;background:rgba(90,180,255,.055);}
.teams-real-schedule-modal .teams-scheduled-shift-card summary {cursor:pointer;display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;}
.teams-real-schedule-modal .teams-duplicate-box {margin-top:.85rem;border-top:1px solid rgba(255,255,255,.12);padding-top:.85rem;}
.teams-schedule-action-choice span {font-weight:1000;}
@media(max-width:760px){.teams-manager-schedule-page .teams-real-schedule-grid.is-week-view,.teams-manager-schedule-page .teams-real-schedule-grid.is-month-view{min-width:720px}.teams-manager-schedule-page .teams-real-schedule-calendar{overflow-x:auto}.teams-real-schedule-modal .teams-scheduled-shift-card summary{flex-direction:column}}

/* Patch 586: clock-in schedule attachment and visible pay status. */
.teams-clock-attach-select{display:grid;gap:.35rem;margin:.15rem 0 .75rem;padding:.75rem;border:1px solid color-mix(in srgb,var(--accent,#7cf) 35%,var(--border-color,#cbd5e1));border-radius:1rem;background:color-mix(in srgb,var(--accent,#7cf) 9%,var(--panel-bg,#fff));font-weight:900}.teams-clock-attach-select>span{font-size:.95rem}.teams-clock-attach-select select{width:100%;min-height:2.75rem}.teams-clock-attach-select small{font-weight:700;line-height:1.35}.teams-pay-status-card{border-color:color-mix(in srgb,var(--accent,#7cf) 28%,var(--border-color,#cbd5e1));background:color-mix(in srgb,var(--accent,#7cf) 7%,var(--panel-bg,#fff))}.teams-pay-status-card .teams-badge{margin:.25rem 0}.teams-pay-status-card strong{display:block;margin-bottom:.25rem}.teams-overview-clock-form .teams-clock-attach-select{align-self:stretch;text-align:left}.teams-clock-form-clean .teams-clock-attach-select{max-width:360px;margin-left:auto;margin-right:auto;text-align:left}@media(max-width:700px){.teams-clock-form-clean .teams-clock-attach-select{max-width:none;width:100%}}

/* Patch 587: live Teams action requests */
.teams-shell.is-teams-live-action-busy{position:relative;}
.teams-shell.is-teams-live-action-busy::after{content:'Saving…';position:fixed;right:1rem;bottom:1rem;z-index:80;border:1px solid rgba(90,180,255,.45);border-radius:999px;padding:.55rem .9rem;background:rgba(10,18,30,.88);box-shadow:0 12px 28px rgba(0,0,0,.24);font-weight:900;letter-spacing:.02em;}
.teams-live-action-message{margin:.75rem 0;}
.teams-live-action-message.is-error{border-left-color:#ff6b6b;background:rgba(255,100,100,.12);}

/* Patch 588: Teams home, live schedule actions, and shift capacity controls. */
.teams-home-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:.85rem}.teams-home-card{border:1px solid color-mix(in srgb,var(--accent,#7cf) 26%,var(--border-color,#cbd5e1));border-radius:1.2rem;padding:1rem;background:color-mix(in srgb,var(--accent,#7cf) 6%,var(--panel-bg,#fff));display:grid;gap:.75rem}.teams-home-card.is-selected{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent,#7cf) 40%,transparent)}.teams-standalone-link{align-self:center}.teams-open-shift-options,.teams-bulk-shift-form{border:1px solid rgba(90,180,255,.22);border-radius:1rem;padding:.85rem;background:rgba(90,180,255,.055);margin:.5rem 0}.teams-bulk-shift-form .teams-form-grid{max-height:220px;overflow:auto}.teams-bulk-shift-form label{align-items:flex-start}.teams-real-schedule-item strong{white-space:normal}.teams-real-schedule-item.is-open{border-left-color:rgba(34,197,94,.55)}.teams-scheduled-shift-card [data-shift-duration-wrap][hidden],.teams-scheduled-shift-card [data-shift-end-wrap][hidden],.teams-scheduled-shift-card [data-shift-start-wrap][hidden],.teams-open-shift-options[hidden]{display:none!important}@media(max-width:760px){.teams-home-card .teams-row{align-items:stretch}.teams-home-card .button{width:100%;justify-content:center}.teams-bulk-shift-form .teams-actions{align-items:stretch}.teams-bulk-shift-form .button{width:100%;}}

/* Patch 589: completed-shift locks */
.teams-calendar-shift-card.is-locked,.teams-scheduled-shift-card.is-locked{opacity:.86;border-style:dashed}.teams-calendar-shift-card.is-locked .button,.teams-scheduled-shift-card.is-locked .button{pointer-events:none;opacity:.55}.teams-shift-locked-note{border-radius:.85rem;padding:.55rem .7rem;background:rgba(148,163,184,.14);font-size:.9rem;font-weight:800}

/* Patch 592: integrated schedule multi-select without per-day test controls. */
.teams-real-schedule-day.can-multiselect{position:relative;touch-action:pan-y;user-select:none}
.teams-real-schedule-day.can-multiselect .teams-real-schedule-day-button{cursor:pointer}
.teams-real-schedule-day.can-multiselect::after{content:'Select range';position:absolute;right:.55rem;top:.5rem;z-index:4;max-width:7.5rem;padding:.22rem .45rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent,#7cf) 32%,var(--border-color,#cbd5e1));background:color-mix(in srgb,var(--panel-bg,#fff) 92%,var(--accent,#7cf));font-size:.68rem;font-weight:900;line-height:1;opacity:0;transform:translateY(-2px);pointer-events:none;transition:opacity .15s ease,transform .15s ease}
.teams-real-schedule-day.can-multiselect:hover::after,.teams-real-schedule-calendar.is-multiday-dragging .teams-real-schedule-day.can-multiselect::after{opacity:.88;transform:translateY(0)}
.teams-schedule-selection-mark{position:absolute;right:.55rem;top:.55rem;z-index:5;width:1.05rem;height:1.05rem;border-radius:999px;border:2px solid color-mix(in srgb,var(--accent,#7cf) 44%,var(--border-color,#cbd5e1));background:color-mix(in srgb,var(--panel-bg,#fff) 88%,var(--accent,#7cf));box-shadow:0 3px 10px rgba(15,23,42,.12);opacity:.55;pointer-events:none}
.teams-real-schedule-day.is-multiday-selected{outline:3px solid color-mix(in srgb,var(--accent,#7cf) 58%,transparent);outline-offset:2px;box-shadow:0 0 0 5px color-mix(in srgb,var(--accent,#7cf) 16%,transparent)}
.teams-real-schedule-day.is-multiday-selected .teams-real-schedule-day-button{background:color-mix(in srgb,var(--accent,#7cf) 14%,var(--panel-bg,#fff))}
.teams-real-schedule-day.is-multiday-selected .teams-schedule-selection-mark{opacity:1;border-color:color-mix(in srgb,var(--success,#22c55e) 62%,var(--accent,#7cf));background:color-mix(in srgb,var(--success,#22c55e) 20%,var(--panel-bg,#fff))}
.teams-real-schedule-day.is-multiday-selected .teams-schedule-selection-mark::after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;font-size:.72rem;font-weight:1000;color:color-mix(in srgb,var(--success,#22c55e) 75%,#102033)}
.teams-real-schedule-calendar.is-multiday-dragging .teams-real-schedule-day.can-multiselect{cursor:crosshair}
.teams-schedule-multiday-tray[hidden]{display:none!important}
.teams-schedule-multiday-tray{position:sticky;bottom:.75rem;z-index:25;margin:1rem auto 0;max-width:min(980px,calc(100vw - 2rem));border:1px solid color-mix(in srgb,var(--accent,#7cf) 34%,var(--border-color,#cbd5e1));border-radius:1.25rem;padding:.9rem;background:color-mix(in srgb,var(--panel-bg,#fff) 92%,var(--accent,#7cf));box-shadow:0 22px 60px rgba(15,23,42,.18);backdrop-filter:blur(10px)}
.teams-schedule-multiday-tray-head{display:flex;align-items:center;justify-content:space-between;gap:.85rem;margin-bottom:.75rem}
.teams-schedule-multiday-tray-head>div{display:grid;gap:.16rem;min-width:0}.teams-schedule-multiday-tray-head strong{font-size:1rem;font-weight:1000}.teams-schedule-multiday-tray-head small{display:block;color:var(--muted,#667085);font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:58rem}
.teams-schedule-multiday-tray .teams-schedule-multiday-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem;margin-top:0}
.teams-schedule-multiday-tray .teams-schedule-multiday-card{border:1px solid color-mix(in srgb,var(--accent,#7cf) 22%,var(--border-color,#cbd5e1));border-radius:1rem;padding:.75rem;background:color-mix(in srgb,var(--panel-bg,#fff) 96%,var(--accent,#7cf));min-width:0}
.teams-schedule-multiday-tray .teams-schedule-multiday-card>summary{cursor:pointer;font-weight:1000;list-style:none}.teams-schedule-multiday-tray .teams-schedule-multiday-card>summary::-webkit-details-marker{display:none}.teams-schedule-multiday-tray .teams-schedule-multiday-card>summary::after{content:'▾';float:right;opacity:.75}.teams-schedule-multiday-tray .teams-schedule-multiday-card:not([open])>summary::after{content:'▸'}
.teams-schedule-multiday-tray .teams-form-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.teams-schedule-multiday-tray .button.is-disabled,.teams-schedule-multiday-tray .button:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:760px){.teams-real-schedule-day.can-multiselect::after{display:none}.teams-schedule-selection-mark{width:.95rem;height:.95rem;right:.45rem;top:.45rem}.teams-schedule-multiday-tray{position:fixed;left:.75rem;right:.75rem;bottom:.75rem;max-height:70vh;overflow:auto;margin:0;padding:.75rem}.teams-schedule-multiday-tray-head{align-items:flex-start}.teams-schedule-multiday-tray-head small{white-space:normal}.teams-schedule-multiday-tray .teams-schedule-multiday-grid{grid-template-columns:1fr}}
.teams-real-schedule-day.is-multiday-selected .teams-real-schedule-day-button{background:color-mix(in srgb,var(--accent,#7cf) 14%,var(--panel-bg,#fff))!important}

/* Patch 599: smarter payroll review tabs and Assign Shift schedule tools. */
.teams-pay-review-toggle{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.teams-pay-review-toggle .teams-position-view-button{cursor:pointer}.teams-pay-review-panels{min-width:0}.teams-pay-review-panel{min-width:0}.teams-pay-review-panel .teams-table-wrap{max-width:100%;overflow:auto}.teams-assign-shift-smart-shell{display:grid;gap:1rem}.teams-assign-shift-smart-shell .teams-calendar-action-card,.teams-assign-tool-card{min-width:0}.teams-assign-tool-card{border:1px solid rgba(90,180,255,.22);border-radius:1rem;padding:.75rem;background:rgba(90,180,255,.055)}.teams-assign-tool-card.is-primary{border-color:rgba(40,210,150,.28);background:rgba(40,210,150,.055)}.teams-assign-extra-tools{border:1px solid rgba(255,255,255,.12);border-radius:1rem;padding:.75rem;background:rgba(255,255,255,.035)}.teams-assign-extra-tools>summary{cursor:pointer;font-weight:1000;display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.teams-assign-extra-tools>summary small{font-weight:700;color:var(--muted,#6d6684)}.teams-assign-tool-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.75rem;margin-top:.75rem}.teams-assign-tool-card .section-head{margin-bottom:.45rem}.teams-assign-tool-card h4{margin:0}.teams-assign-tool-card form{min-width:0}
@media(max-width:760px){.teams-assign-extra-tools>summary{align-items:flex-start}.teams-assign-tool-grid{grid-template-columns:1fr}}



/* Patch 600: member pay tabs and permanent hourly raise cards */
.teams-member-pay-shell[data-member-pay-tabs] {display:grid;gap:1rem}
.teams-member-pay-shell[data-member-pay-tabs] .teams-member-view-radio {display:none!important}
.teams-member-pay-shell[data-member-pay-tabs] .teams-member-view-panel {display:none!important;min-width:0}
.teams-member-pay-shell[data-member-pay-tabs] .teams-member-view-panel.is-active {display:grid!important;gap:1rem}
.teams-member-view-toggle .teams-position-view-button {appearance:none;border:1px solid rgba(90,180,255,.25);border-radius:999px;padding:.55rem .9rem;background:rgba(255,255,255,.08);font:inherit;font-weight:1000;color:inherit;cursor:pointer;box-shadow:0 8px 18px rgba(20,15,45,.08)}
.teams-member-view-toggle .teams-position-view-button.is-active,
.teams-member-view-toggle .teams-position-view-button[aria-selected="true"] {background:linear-gradient(135deg,rgba(67,214,255,.25),rgba(255,82,176,.18));border-color:rgba(67,214,255,.45)}
.teams-member-pay-summary {display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:.55rem;margin:.1rem 0 .35rem}
.teams-member-pay-summary article {border:1px solid rgba(90,180,255,.2);border-radius:.9rem;padding:.7rem .8rem;background:rgba(255,255,255,.055);display:grid;gap:.18rem;min-width:0}
.teams-member-pay-summary article.is-total {border-color:rgba(80,220,140,.35);background:rgba(80,220,140,.08)}
.teams-member-pay-summary span {font-size:.78rem;font-weight:1000;letter-spacing:.04em;text-transform:uppercase;color:var(--muted,#6d6684)}
.teams-member-pay-summary strong {font-size:1.05rem;line-height:1.1}
.teams-member-pay-summary small {font-weight:800;color:var(--muted,#6d6684)}
.teams-member-position-fields input[name="pay_raise_per_hour"] {font-weight:900}
.teams-member-summary-name .teams-badge.is-good {white-space:nowrap}


/* Patch 605: Team time, work-log previews, and visible pending edit controls. */
.teams-team-time-banner time{font-variant-numeric:tabular-nums}.teams-worklog-attachment-list{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(170px,240px));gap:.65rem!important;align-items:start;margin-top:.45rem}.teams-worklog-attachment-card{display:grid;gap:.35rem;min-width:0}.teams-worklog-attachment-preview{display:grid!important;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:.55rem;border-radius:1rem!important;padding:.45rem!important;white-space:normal!important}.chat-attachment-preview{display:grid;place-items:center;width:72px;height:58px;border-radius:.8rem;background:rgba(90,180,255,.12);overflow:hidden;flex:0 0 auto}.chat-attachment-preview img,.chat-attachment-preview video{width:100%;height:100%;object-fit:cover;display:block}.chat-attachment-preview.is-file{font-size:1.35rem}.teams-worklog-edit-box{margin-top:.8rem;border:1px solid rgba(90,180,255,.22);border-radius:1rem;padding:.75rem;background:rgba(90,180,255,.055)}.teams-worklog-edit-box>summary{cursor:pointer;font-weight:1000;margin-bottom:.55rem}.teams-worklog-detail-card .teams-attachment-link span{white-space:normal;overflow-wrap:anywhere}@media(max-width:680px){.teams-worklog-attachment-list{grid-template-columns:1fr}.teams-worklog-attachment-preview{grid-template-columns:62px minmax(0,1fr)}}

/* Generic show/hide support for reusable shift time and break fields. Core label styling uses display:grid, so these fields need an explicit hidden rule. */
[data-shift-start-time][hidden],
[data-shift-end-time][hidden],
[data-shift-duration][hidden],
[data-shift-start-wrap][hidden],
[data-shift-end-wrap][hidden],
[data-shift-duration-wrap][hidden],
[data-paid-break-field][hidden],
[data-unpaid-break-field][hidden]{display:none!important}

/* Hard hide mode-switched Shift Builder fields even when older/global label display rules are present. */
.teams-mode-hidden,
[data-shift-start-time][hidden],
[data-shift-end-time][hidden],
[data-shift-duration][hidden],
[data-shift-start-wrap][hidden],
[data-shift-end-wrap][hidden],
[data-shift-duration-wrap][hidden],
[data-paid-break-field][hidden],
[data-unpaid-break-field][hidden]{display:none!important;visibility:hidden!important}
