:root{--brand-magenta:#b71db5;--brand-pink:#f42aa7;--brand-gradient:linear-gradient(135deg,#6d1c96 0%,#ad20b5 62%,#f42aa7 100%);--ink:#30213e;--muted:#807089;--primary:#6d1c96;--primary-hover:#551572;--primary-soft:#f2e9f9;--line:#ece4f1;--bg:#faf8fc;--accent:#f42aa7;--orange:#c28435;--red:#bc6961;--shadow:0 8px 24px #4f1b7206;font-family:Inter,"Segoe UI",Arial,sans-serif;font-synthesis:none;color:var(--ink);font-size:14px}
:root:not([data-theme="dark"]){--muted:#55495e;--light-secondary:var(--muted)}
*{box-sizing:border-box}
body{margin:0;background:var(--bg)}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,a{transition:background .17s,color .17s,transform .17s}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.4}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #d99be8;outline-offset:3px}
a{color:var(--primary);text-decoration:none}
button{border:0;color:inherit}
svg{display:block;width:19px;height:19px;flex-shrink:0;stroke-width:1.7}
h1,h2,h3,p{margin:0}
h1{font-size:29px;font-weight:650;letter-spacing:-1px}
h2{font-size:17px;letter-spacing:-.4px;font-weight:650}
h3{font-size:14px}
small{font-size:11px}
.muted{color:var(--muted)}
.loading{height:100vh;display:grid;place-items:center;color:var(--primary)}
.layout{display:grid;grid-template-columns:222px minmax(0,1fr);min-height:100vh}
.sidebar{background:var(--theme-surface, #fff);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:32px 19px 20px;position:fixed;inset:0 auto 0 0;width:222px;z-index:20}
.brand{display:flex;align-items:center;gap:10px;padding:0 11px;font-weight:700;font-size:24px;letter-spacing:-1px}
.brand-mark{width:34px;height:34px;border-radius:10px;background:var(--primary);color:#fff;display:grid;place-items:center}
.brand-mark svg{width:24px;height:24px}
.brand span:last-child{color:var(--primary)}
.workspace-label{margin:33px 12px 14px;font-size:10px;font-weight:650;color:var(--light-secondary, #8b7a94);letter-spacing:1.5px}
.nav{display:flex;flex-direction:column;gap:6px}
.nav button{width:100%;display:flex;align-items:center;gap:12px;background:none;text-align:left;padding:12px 13px;border-radius:8px;color:var(--light-secondary, #877691);font-size:12.5px;font-weight:550}
.nav button:hover{background:#f7f3f9;color:var(--primary)}
.nav button.active{background:var(--primary-soft);color:var(--primary);font-weight:650}
.nav .count{background:var(--primary);color:#fff;border-radius:5px;min-width:19px;height:19px;font-size:10px;display:grid;place-items:center;margin-left:auto}
.sidebar-bottom{margin-top:auto}
.side-help{margin:25px 2px;background:#f6f1f8;padding:16px;border-radius:10px;position:relative;overflow:hidden}
.side-help svg{color:var(--primary);margin-bottom:12px}
.side-help h3{font-size:12px}
.side-help p{font-size:11px;line-height:1.65;color:var(--light-secondary, #8b7a94);margin-top:6px}
.side-help .mini-link{margin-top:12px;font-weight:600;color:var(--primary);display:flex;align-items:center;gap:8px;background:none;padding:0;font-size:11px}
.side-help .mini-link svg{margin:0;width:13px}
.side-footer{display:flex;gap:8px;align-items:center;margin:18px 10px 0;font-size:10px;color:var(--light-secondary, #8b7a94)}
.side-footer .live-dot{width:5px;height:5px}
.main{grid-column:2;min-width:0}
.topbar{height:78px;padding:0 36px;background:var(--theme-surface, #fff);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}
.breadcrumbs{display:flex;align-items:center;gap:12px;color:var(--light-secondary, #8b7a94);font-size:11px}
.breadcrumbs svg{width:13px;height:13px}
.breadcrumbs span:last-child{color:#594565}
.top-right{display:flex;align-items:center;gap:18px}
.connection{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--light-secondary, #8b7a94)}
.live-dot{height:6px;width:6px;background:#7e638d;border-radius:50%;display:inline-block}
.icon-btn{padding:9px;border-radius:7px;background:transparent;display:flex;align-items:center;justify-content:center;position:relative;color:#8b7a94}
.icon-btn:hover{background:#f3ecf7}
.notification-dot{width:5px;height:5px;background:var(--accent);border:1px solid white;position:absolute;top:7px;right:9px;border-radius:50%}
.user-menu{border-left:1px solid var(--line);padding-left:18px;display:flex;gap:10px;align-items:center}
.avatar{width:34px;height:34px;border-radius:50%;background:#e7daef;display:grid;place-items:center;font-size:11px;font-weight:650;color:#6e557d;flex-shrink:0}
.user-name{font-size:11px;font-weight:600}
.user-role{font-size:10px;color:var(--light-secondary, #8b7a94);margin-top:3px}
.user-menu button{padding:5px;background:none;color:#8b7a94}
.user-menu svg{width:15px}
.content{padding:31px 36px 25px;max-width:1700px;margin:auto}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:26px}
.eyebrow{display:flex;align-items:center;gap:6px;color:var(--primary);font-size:10px;letter-spacing:1.5px;font-weight:650;margin-bottom:9px}
.page-head p{color:var(--light-secondary, #8b7a94);font-size:12px;margin-top:9px}
.head-actions{display:flex;gap:10px;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:7px;padding:11px 16px;font-size:11px;font-weight:600;white-space:nowrap}
.btn svg{width:15px;height:15px}
.btn.primary{background:var(--primary);color:#fff;box-shadow:0 3px 5px #42195912}
.btn.primary:hover{background:var(--primary-hover)}
.btn.outline{background:var(--theme-surface, #fff);border:1px solid #e4d6ec;color:#6e557d}
.btn.outline:hover{background:#f2eaf6}
.btn.quiet{background:#f2eaf6;color:var(--primary)}
.btn.danger{background:#faefed;color:#b15d55}
.date-control{display:flex;align-items:center;border:1px solid #e4d6ec;background:var(--theme-surface, #fff);border-radius:7px;height:37px;padding:0 7px;gap:6px}
.date-control button{display:flex;align-items:center;justify-content:center;background:none;color:#887692;padding:5px}
.date-control svg{width:13px;height:13px}
.date-control input{border:0;background:none;font-size:11px;font-weight:550;color:#654e73;width:119px;outline:0}
.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:25px}
.stat{padding:20px 19px 16px;background:var(--theme-surface, #fff);border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);min-width:0}
.stat-top{display:flex;align-items:center;justify-content:space-between;color:var(--light-secondary, #8b7a94);font-size:11px}
.stat-icon{background:#f3ecf7;border-radius:7px;padding:7px;color:#8a7993}
.stat-icon svg{width:16px;height:16px}
.stat-value{font-size:30px;font-weight:650;letter-spacing:-1px;margin-top:9px;line-height:1.1}
.stat-value small{font-size:13px;font-weight:450;letter-spacing:0;color:var(--light-secondary, #8b7a94);margin-left:4px}
.stat-foot{font-size:10px;color:var(--light-secondary, #8b7a94);margin-top:12px;display:flex;align-items:center;gap:5px}
.stat-foot .good{color:#6e3f89;font-weight:600}
.stat.highlight{background:var(--primary);color:white;border-color:var(--primary)}
.stat.highlight .stat-top,.stat.highlight .stat-foot{color:#8c7698}
.stat.highlight .stat-icon{background:#ffffff15;color:#8d729d}
.stat.highlight .stat-value small{color:#8c7798}
.stat.highlight .good{color:#9068a7}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 278px;gap:21px;align-items:start}
.panel{background:var(--theme-surface, white);border:1px solid var(--line);border-radius:11px;overflow:hidden;box-shadow:var(--shadow)}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:21px 22px;gap:15px}
.panel-sub{font-size:10px;color:var(--light-secondary, #8b7a94);margin-top:6px}
.live-label{font-size:9px;display:flex;align-items:center;gap:6px;color:var(--light-secondary, #8b7a94);background:#f4eef7;padding:6px 9px;border-radius:20px}
.table-toolbar{padding:0 21px 17px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.tabs{display:flex;gap:18px;align-items:center;border-bottom:1px solid var(--line);padding:0 23px}
.tabs button{position:relative;background:none;color:var(--light-secondary, #8b7a94);font-size:11px;padding:0 0 14px;font-weight:550}
.tabs button.active{color:var(--primary);font-weight:650}
.tabs button.active:after{content:"";position:absolute;height:2px;background:var(--primary);bottom:-1px;left:0;right:0}
.tab-count{margin-left:5px;font-size:9px;background:#f1eaf5;color:var(--light-secondary, #8b7a94);padding:2px 5px;border-radius:4px}
.tabs button.active .tab-count{color:var(--primary);background:var(--primary-soft)}
.filter-row{padding:17px 21px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.search{position:relative;display:flex;align-items:center;max-width:240px;flex:1}
.search svg{position:absolute;left:11px;width:14px;height:14px;color:#8b7a94}
.search input{width:100%;border:1px solid #e9ddf0;background:#fcfbfd;border-radius:6px;padding:9px 10px 9px 33px;font-size:10px;color:var(--ink)}
.search input::placeholder{color:var(--light-secondary, #8b7a94)}
.segments{display:flex;background:#f5f0f8;border:1px solid #ede4f3;border-radius:6px;padding:3px;gap:2px}
.segments button{background:none;border-radius:4px;padding:5px 10px;font-size:10px;color:var(--light-secondary, #8b7a94)}
.segments button.active{background:white;box-shadow:0 1px 4px #2f24360b;color:#614b6e;font-weight:600}
.table-scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:11px}
th{text-align:right;font-size:9px;text-transform:uppercase;letter-spacing:.6px;color:var(--theme-muted, var(--light-secondary, #8b7a94));font-weight:550;background:var(--theme-subtle, #faf7fb);padding:12px 15px;border-block:1px solid var(--theme-line, #ede4f3)}
th:first-child{text-align:left;padding-left:23px}
th:last-child{padding-right:22px}
td{padding:14px 15px;border-bottom:1px solid #f0e8f4;text-align:right;font-variant-numeric:tabular-nums}
td:first-child{text-align:left;padding-left:23px}
td:last-child{padding-right:22px}
tr.mine{background:#f6f2f9}
.operator-cell{display:flex;align-items:center;gap:10px}
.operator-cell .avatar{width:29px;height:29px;font-size:9px;background:var(--avatar-bg,#ece2f2);color:var(--avatar-ink,#82708c)}
.operator-name{font-size:11px;font-weight:550}
.operator-city{font-size:9px;margin-top:4px;color:var(--light-secondary, #8b7a94)}
.operator-work-shift{font-size:12px;line-height:1.5;margin-top:3px;color:var(--muted)}
.mine .operator-work-shift,.mine .operator-work-shift strong{color:#efd3fa}
.profile-assignment-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:580px){.profile-assignment-grid{grid-template-columns:1fr;gap:0}}
.mine-tag{font-size:8px;color:var(--primary);background:#e9ddf0;padding:2px 4px;border-radius:3px;margin-left:5px}
.hours-lock{display:inline-flex;align-items:center;justify-content:flex-end;gap:5px;color:#6b5379}
.hours-lock svg{width:10px;height:10px;color:#8b7a94}
.lead-value{font-weight:650}
.rate{display:inline-flex;align-items:center;gap:5px;border-radius:5px;padding:4px 7px;min-width:43px;justify-content:center;font-size:10px}
.rate.good{color:#3c8967;background:#edf6ed}
.rate.warn{color:#b68c45;background:#fbf5e8}
.rate.low{color:#bd7767;background:#fbefea}
.rate.none{color:var(--light-secondary, #8b7a94);background:#f3edf7}
.closure-value{font-weight:600;color:#786882}
.status{font-size:9px;color:var(--light-secondary, #8b7a94);display:inline-flex;align-items:center;gap:6px}
.status .live-dot{height:5px;width:5px;background:#92b27b}
.status.waiting{color:var(--light-secondary, #8b7a94)}
.status.waiting .live-dot{background:#8b7a94}
.table-actions{display:inline-flex;align-items:center;gap:4px;min-width:20px;justify-content:flex-end}
.table-actions button{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;background:#f2ebf6;border:1px solid #e6d9ee;color:var(--primary);border-radius:5px}
.table-actions svg{width:12px;height:12px}
.table-actions .locked{width:12px;height:12px;color:#8b7a94}
.row-edit{border:0;background:none;display:inline-flex;align-items:center;gap:5px;padding:0;color:var(--primary);font-weight:650}
.row-edit svg{width:10px;height:10px;color:#8b7a94}
.totals td{background:#f8f4fa;color:#554161;border:0;font-weight:650;padding-block:15px}
.totals td:first-child{font-size:10px}
.table-footer{padding:15px 22px;font-size:9px;color:var(--light-secondary, #8b7a94);display:flex;justify-content:space-between;border-top:1px solid #efe6f4}
.table-footer span{display:flex;align-items:center;gap:5px}
.table-footer svg{width:11px;height:11px}
.right-column{display:flex;flex-direction:column;gap:18px}
.summary-panel{padding:21px}
.summary-panel h2{font-size:13px}
.summary-top{display:flex;justify-content:space-between;align-items:center}
.summary-top svg{width:15px;height:15px;color:#8b7a94}
.summary-title{font-size:10px;color:var(--light-secondary, #8b7a94);margin-top:7px}
.performance-number{font-size:37px;letter-spacing:-1.5px;font-weight:600;margin-top:22px;color:var(--primary)}
.performance-number small{font-size:12px;letter-spacing:0;font-weight:450;color:var(--light-secondary, #8b7a94);margin-left:3px}
.target-row{display:flex;justify-content:space-between;font-size:9px;color:var(--light-secondary, #8b7a94);margin-top:12px}
.progress-track{height:6px;background:#efe7f4;overflow:hidden;border-radius:5px;margin-top:9px}
.progress-fill{height:100%;background:#84728e;border-radius:5px;max-width:100%}
.performance-note{font-size:9px;color:var(--light-secondary, #8b7a94);margin-top:10px;display:flex;gap:5px;align-items:center}
.performance-note svg{width:12px;height:12px}
.mini-divider{border-top:1px solid var(--line);margin:20px 0 16px}
.city-row{display:grid;grid-template-columns:1fr auto;gap:5px;margin:13px 0}
.city-name{font-size:10px;display:flex;align-items:center;gap:6px}
.city-dot{width:6px;height:6px;background:#d6b876;border-radius:2px}
.city-dot.blue{background:#8c749a}
.city-metric{font-size:10px;font-weight:550}
.city-note{color:var(--light-secondary, #8b7a94);font-size:9px}
.city-mini{display:flex;gap:7px;font-size:9px;color:var(--light-secondary, #8b7a94)}
.legend{display:flex;flex-direction:column;gap:10px}
.legend-row{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--light-secondary, #8b7a94)}
.legend-label{display:flex;align-items:center;gap:8px}
.legend-dot{width:6px;height:6px;border-radius:50%;background:#6aa17b}
.legend-dot.warn{background:#d5b16e}
.legend-dot.low{background:#d6a08b}
.activity-card{background:#efe7f4;border-color:#eadff0;padding:20px}
.activity-card h2{font-size:13px;display:flex;gap:8px;align-items:center}
.activity-card h2 svg{width:16px;height:16px;color:#735982}
.activity-card p{font-size:10px;line-height:1.8;color:var(--light-secondary, #8b7a94);margin-top:10px}
.activity-card button{margin-top:15px;font-size:10px;padding:9px 12px;background:var(--theme-surface, #fff);color:#6c537a;border:1px solid #e1d1eb;display:flex;gap:6px;align-items:center;border-radius:6px;width:100%;justify-content:center}
.activity-card button svg{width:12px;height:12px}
.bottom-bar{margin-top:19px;display:flex;justify-content:space-between;align-items:center;color:var(--light-secondary, #8b7a94);font-size:9px}
.bottom-bar span{display:flex;align-items:center;gap:5px}
.bottom-bar svg{width:11px;height:11px}
.demo-banner{padding:8px 36px;background:#faf0df;border-bottom:1px solid #f0e4cf;color:#a18a61;display:flex;align-items:center;justify-content:space-between;font-size:10px;gap:10px}
.demo-banner div{display:flex;align-items:center;gap:7px}
.demo-banner svg{width:13px;height:13px}
.demo-banner select{border:1px solid #eadcc2;border-radius:4px;background:#fff9ee;padding:3px 6px;color:#8c7752;font-size:10px}
.demo-banner button{font-size:10px;background:none;text-decoration:underline;color:#8c7752}
.my-strip{display:flex;justify-content:space-between;gap:20px;align-items:center;background:#f1e9f5;border:1px solid #e5d8ed;border-radius:10px;padding:16px 20px;margin-bottom:22px}
.my-strip p{font-size:11px;color:var(--light-secondary, #8b7a94);margin-top:5px}
.my-strip h3{display:flex;align-items:center;gap:7px}
.my-strip h3 svg{width:15px;height:15px}
.counter{display:flex;align-items:center;gap:12px}
.counter strong{font-size:25px;font-weight:600;min-width:35px;text-align:center}
.counter button{display:grid;place-items:center;background:#fff;border:1px solid #8d6f9f;color:var(--primary);border-radius:7px;width:34px;height:34px}
.counter button svg{width:15px;height:15px}
.counter .plus{background:var(--primary);color:#fff;border-color:var(--primary)}
.empty{text-align:center;padding:45px 25px;color:var(--light-secondary, #8b7a94);font-size:12px;white-space:normal}
.empty svg{margin:0 auto 13px;width:30px;height:30px;color:#8b7a94}
.requests-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.request-card{padding:23px}
.request-card .operator-cell{margin-bottom:20px}
.request-card p{font-size:12px;line-height:1.7;color:var(--light-secondary, #8b7a94);margin:15px 0}
.hours-change{display:flex;align-items:center;gap:12px;background:#f7f3f9;padding:14px;border-radius:7px;font-size:19px;font-weight:600}
.hours-change svg{width:15px;color:#8b7a94}
.hours-change span:last-child{color:var(--primary)}
.request-actions{display:flex;gap:8px}
.request-status{font-size:10px;padding:5px 8px;border-radius:5px;background:#f6f1df;color:#a88e53}
.request-status.approved{background:#edf5e8;color:#6c9657}
.request-status.rejected{background:#faeeea;color:#b47e68}
.request-status.superseded{background:#f0f1ed;color:#8a957f}
.requests-head{display:flex;gap:14px;align-items:center;margin-bottom:20px;color:var(--light-secondary, #8b7a94);font-size:11px}
.month-chart{padding:23px;margin-bottom:22px}
.chart-head{display:flex;align-items:center;justify-content:space-between}
.chart-head span{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--light-secondary, #8b7a94)}
.chart-plot{height:125px;display:flex;gap:8px;align-items:flex-end;margin-top:25px;border-bottom:1px solid #e9dcf0;padding:0 5px}
.chart-bar-wrap{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}
.chart-bar{background:#8c7599;width:100%;max-width:40px;min-height:2px;border-radius:4px 4px 0 0}
.chart-bar-wrap:last-child .chart-bar{background:var(--primary)}
.chart-bar-wrap small{position:absolute;bottom:-18px;font-size:8px;color:var(--light-secondary, #8b7a94)}
.chart-bar-wrap:hover .chart-bar{background:#8c7599}
.chart-spacer{height:18px}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.settings-panel{padding:25px}
.settings-panel p{color:var(--light-secondary, #8b7a94);font-size:11px;line-height:1.7;margin:10px 0 22px}
.settings-panel li{font-size:12px;color:var(--light-secondary, #877691);line-height:2}
.badge{font-size:9px;padding:4px 7px;background:#f0e8f5;color:#775e86;border-radius:4px}
.badge.inactive{background:#f4ede7;color:#a09082}
.audit-list{padding:0 22px}
.audit-item{display:flex;gap:13px;padding:17px 0;border-bottom:1px solid var(--line)}
.audit-item .audit-icon{padding:8px;border-radius:7px;height:34px;background:#f2eaf6;color:#8b7a94}
.audit-item svg{width:16px;height:16px}
.audit-item strong{font-size:11px;font-weight:600}
.audit-item p{font-size:10px;color:var(--light-secondary, #8b7a94);margin-top:6px}
.audit-item time{margin-left:auto;font-size:9px;color:var(--light-secondary, #8b7a94);white-space:nowrap}
.modal-overlay{position:fixed;inset:0;z-index:100;background:#2c1a3655;backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px}
.modal{width:min(440px,100%);background:var(--theme-surface, white);border-radius:14px;padding:28px;box-shadow:0 30px 100px #1f0f2925;max-height:90vh;overflow:auto}
.modal.large{width:min(530px,100%)}
.modal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.modal-top h2{font-size:20px}
.modal p{font-size:12px;line-height:1.7;color:var(--light-secondary, #8b7a94);margin-bottom:22px}
.modal-close{background:#f3ecf7;border-radius:50%;padding:5px;color:#8b7a94}
.modal-close svg{width:16px;height:16px}
.form-field{display:flex;flex-direction:column;gap:7px;margin-bottom:17px}
.form-field label{font-size:11px;font-weight:600;color:#7a6a84}
.form-field input,.form-field select,.form-field textarea{width:100%;padding:11px 12px;background:var(--theme-subtle, #fbf9fd);border:1px solid #e3d4eb;border-radius:6px;font-size:12px;color:#4d365b;min-width:0}
.form-field textarea{resize:vertical;min-height:85px}
.form-field input[readonly]{background:#f2e9f9;color:var(--primary);font-weight:600}
.form-field small{font-size:10px;line-height:1.5;color:var(--light-secondary, #8b7a94)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-error{font-size:11px;color:#b86a59;background:#fff5ef;padding:10px 12px;border-radius:6px;margin-bottom:14px;display:none}
.form-error:not(:empty){display:block}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}
.modal-notice{display:flex;gap:9px;background:#f4eef8;border:1px solid #e7daee;color:var(--light-secondary, #8b7a94);border-radius:7px;padding:12px;font-size:11px;line-height:1.65;margin-bottom:20px}
.modal-notice svg{width:16px;height:16px;margin-top:1px}
.full-width{width:100%}
#toast{position:fixed;bottom:25px;left:calc(50% + 80px);transform:translateX(-50%) translateY(100px);opacity:0;z-index:150;background:#6d1c96;color:#fff;padding:13px 20px;border-radius:9px;font-size:12px;box-shadow:0 6px 30px #6d1c9622;transition:all .25s;max-width:90vw}
#toast.show{transform:translateX(-50%) translateY(0);opacity:1}
#toast.error{background:#a96853}
.operator-dashboard-filters{display:flex;align-items:center;gap:17px;flex-wrap:wrap}
.operator-shift-tabs{flex-shrink:0;background:#f3edf8;border-color:#e8dcef}
.operator-shift-tabs button{padding:6px 10px;font-size:10px}
.operator-shift-tabs button.active{color:var(--primary);background:#fff;box-shadow:0 1px 5px #6d1c9612}
.operator-grid .panel-head{flex-wrap:wrap}
.operator-grid .operator-city strong{font-weight:550;color:#8c699e}
.operator-grid .start-day-note{max-width:275px;white-space:normal;line-height:1.5}
.operator-page-head p{line-height:1.7;max-width:700px}
@media(max-width:580px){.operator-dashboard-filters{width:100%;gap:14px}.operator-dashboard-filters .operator-site-tabs{width:auto;gap:17px}.operator-shift-tabs button{padding-inline:8px}}
.operator-heading-group{flex:1;min-width:0}
.operator-title-row{display:flex;align-items:center;gap:27px;flex-wrap:wrap}
.operator-site-tabs{padding:0;gap:18px;flex-shrink:0;align-self:center}
.operator-site-tabs button{padding:10px 0;font-size:11px;white-space:nowrap}
.operator-page-head>.date-control{flex-shrink:0}
@media(max-width:1100px){.operator-title-row{gap:10px 22px}.operator-site-tabs{gap:15px}}
@media(max-width:800px){.operator-page-head{flex-wrap:wrap}.operator-heading-group{flex-basis:100%}.operator-title-row{gap:12px 22px}.operator-page-head>.date-control{margin-left:0}}
@media(max-width:580px){.operator-title-row{align-items:flex-start;gap:12px}.operator-site-tabs{width:100%;gap:22px}.operator-site-tabs button{padding:8px 0 11px}}
.auth-shell{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}
.auth-story{background:#6d1c96;color:white;padding:45px 11%;display:flex;flex-direction:column;position:relative;overflow:hidden}
.auth-story .brand{padding:0}
.auth-story .brand span:last-child{color:#ede4f3}
.auth-story .brand-mark{background:#ffffff15}
.auth-story:after{content:"";width:600px;height:600px;border:1px solid #ffffff0b;border-radius:50%;position:absolute;bottom:-250px;left:-170px;box-shadow:0 0 0 65px #ffffff04,0 0 0 130px #ffffff03;pointer-events:none}
.auth-copy{margin:auto 0;position:relative;z-index:1;padding:55px 0}
.auth-copy .eyebrow{color:#8c7699;letter-spacing:2px}
.auth-copy h1{font-size:clamp(36px,3.5vw,58px);letter-spacing:-2px;line-height:1.12;font-weight:500;margin-top:20px}
.auth-copy h1 em{font-family:Georgia,serif;font-weight:400;color:#8e6ca2}
.auth-copy p{color:#8c7798;font-size:13px;line-height:1.9;margin-top:22px;max-width:330px}
.auth-preview{margin-top:35px;padding:22px;border:1px solid #ffffff15;border-radius:12px;background:#ffffff08;max-width:340px;display:flex;justify-content:space-between}
.auth-preview strong{font-weight:500;font-size:26px;letter-spacing:-1px}
.auth-preview p{font-size:9px;margin:6px 0 0;color:#8c7599;letter-spacing:.6px}
.auth-footer{font-size:10px;color:#8b7797;padding-bottom:10px}
.auth-form-side{display:flex;align-items:center;justify-content:center;padding:50px;background:var(--theme-subtle, #fbf9fd)}
.auth-box{width:100%;max-width:345px}
.auth-box .eyebrow{font-size:10px}
.auth-box h2{font-size:28px;letter-spacing:-.8px;margin:14px 0 12px}
.auth-box>p{font-size:12px;color:var(--light-secondary, #8b7a94);line-height:1.8;margin-bottom:28px}
.auth-box .btn{padding:13px}
.auth-divider{display:flex;align-items:center;gap:12px;font-size:9px;color:var(--light-secondary, #8b7a94);margin:25px 0}
.auth-divider:before,.auth-divider:after{content:"";flex:1;border-top:1px solid #e6d8ee}
.demo-explainer{font-size:10px;line-height:1.75;color:var(--light-secondary, #8b7a94);text-align:center;margin:14px 12px}
.auth-footnote{text-align:center;font-size:9px;color:var(--light-secondary, #8b7a94);margin-top:30px;display:flex;gap:5px;align-items:center;justify-content:center}
.auth-footnote svg{width:11px;height:11px}
.error-panel{padding:35px;text-align:center}
.error-panel p{margin:15px;color:#a27459}
.mobile-brand{display:none}

.operator-grid table{font-size:12px}
.operator-grid th{font-size:10px}
.operator-grid th:first-child{width:32%}
.operator-grid th:nth-child(2){width:23%}
.operator-grid th:nth-child(3){width:25%}
.operator-grid td{height:62px;padding-block:14px}
.operator-grid .operator-name{font-size:12px}
.operator-grid .operator-city{font-size:10px}
.operator-grid tr.mine{background:#f2ecf6}
.operator-grid tr.mine td{padding-block:18px}
.operator-grid .mine td:first-child{box-shadow:inset 3px 0 var(--primary)}
.operator-grid .panel-head{padding-block:19px}
.operator-grid .panel-head h2{font-size:14px}
.operator-grid .hours-lock{font-size:12px}
.operator-page-head h1{font-size:27px}
.operator-page-head{margin-bottom:23px}
.inline-entry{display:flex;align-items:center;justify-content:flex-end;gap:6px}
.inline-entry input{width:67px;min-width:0;height:35px;padding:7px 8px;border:1px solid #8d739b;border-radius:6px;background:var(--theme-surface, #fff);color:var(--theme-link, var(--primary));font-size:13px;text-align:center;font-variant-numeric:tabular-nums}
.inline-entry input:disabled{background:#f2eaf6;border-color:#e2d3eb;color:#8b7a94}
.inline-save{display:inline-flex;align-items:center;justify-content:center;background:var(--primary);color:#fff;padding:9px 11px;height:35px;border-radius:6px;font-size:10px;font-weight:600;white-space:nowrap}
.inline-save:hover{background:var(--primary-hover)}
.inline-step{width:30px;height:35px;display:grid;place-items:center;border:1px solid #8d739b;border-radius:6px;background:white;color:var(--primary)}
.inline-step.plus{background:var(--primary);color:#fff;border-color:var(--primary)}
.inline-step svg,.inline-save svg{width:13px;height:13px}
.icon-save{width:30px;padding:0;background:#e7daee;color:var(--primary)}
.icon-save:hover{background:#8e6da1}
.personal-hours{display:flex;flex-direction:column;align-items:flex-end;gap:7px}
.hours-request{font-size:9px;color:var(--light-secondary, #8b7a94);background:none;padding:0;text-decoration:underline;text-underline-offset:3px}
.start-day-note{font-size:10px;color:var(--primary);margin-top:6px}
.operator-grid .form-error{white-space:normal;text-align:left;max-width:245px;font-size:10px;margin:8px 0 0 auto;padding:7px}
.operator-grid input:focus-visible{outline:2px solid #8c7599;outline-offset:2px}
.operator-grid input::-webkit-inner-spin-button,.operator-grid input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.operator-grid input[type=number]{appearance:textfield;-moz-appearance:textfield}

@media(max-width:800px){.operator-grid th:first-child{min-width:175px}
.operator-grid .inline-entry{gap:4px}
.operator-grid .inline-entry input{width:53px}
.operator-grid .operator-name{font-size:11px}
.operator-grid td,.operator-grid th{padding-inline:12px}
.operator-page-head>.date-control{margin-left:auto}
}

@media(max-width:580px){.operator-grid table{min-width:650px}
.operator-grid th:first-child{min-width:180px}
.operator-grid th:nth-child(2){min-width:160px}
.operator-grid th:nth-child(3){min-width:180px}
.operator-grid td{height:58px}
.operator-grid .inline-entry input{width:57px}
.operator-page-head>.date-control{margin-left:0}
.operator-grid .operator-city{font-size:9px}
}

@media(min-width:1550px){.content{padding-top:38px}
.stat{padding:23px}
.dashboard-grid{grid-template-columns:minmax(0,1fr) 310px}
td{padding-block:16px}
.summary-panel{padding:24px}
}

@media(max-width:1250px){.layout{grid-template-columns:190px minmax(0,1fr)}
.sidebar{width:190px;padding-inline:12px}
.brand{font-size:22px}
.topbar{padding-inline:25px}
.content{padding:28px 25px}
.dashboard-grid{grid-template-columns:minmax(0,1fr) 245px;gap:15px}
.stats{gap:10px}
.stat{padding:16px 14px}
.stat-value{font-size:27px}
.stat-top{font-size:10px}
.stat-icon{padding:5px}
.table-toolbar,.filter-row{padding-inline:16px}
th,td{padding-inline:10px}
.user-name{max-width:110px}
.top-right{gap:10px}
.status-column{display:none}
.panel-head{padding-inline:18px}
.demo-banner{padding-inline:25px}
}

@media(max-width:1080px){.dashboard-grid{grid-template-columns:minmax(0,1fr)}
.right-column{display:grid;grid-template-columns:1fr 1fr}
.right-column .activity-card{display:none}
.summary-panel .mini-divider{margin:15px 0}
.summary-panel .performance-number{margin-top:15px}
.right-column .performance-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.summary-panel .city-section .mini-divider{display:none}
.stats{gap:9px}
.head-actions{gap:6px}
.head-actions .btn{padding-inline:11px}
.page-head{gap:12px}
h1{font-size:26px}
.connection{display:none}
}

@media(max-width:800px){.layout{grid-template-columns:70px minmax(0,1fr)}
.sidebar{width:70px;padding:25px 9px 18px}
.brand{padding:0;justify-content:center}
.sidebar .brand>span:last-child,.workspace-label,.nav button>span,.sidebar-bottom{display:none}
.nav{margin-top:35px;gap:10px}
.nav button{padding:12px;justify-content:center}
.nav button svg{width:21px;height:21px}
.nav .count{display:none}
.content{padding:24px 19px}
.topbar{padding:0 20px;height:66px}
.breadcrumbs{font-size:10px;gap:8px}
.user-name{font-size:10px}
.user-menu{padding-left:10px}
.page-head{align-items:flex-start}
.page-head p{max-width:260px;font-size:11px;line-height:1.6}
.head-actions{flex-wrap:wrap;justify-content:flex-end}
.stats{grid-template-columns:repeat(3,1fr);gap:10px}
.stat:nth-child(4),.stat:nth-child(5){grid-column:auto}
.stat{padding:16px}
.stat-value{font-size:27px}
.stat.highlight{grid-column:span 2}
.stat:nth-child(3){grid-column:span 1}
.stat:nth-child(4){grid-column:span 1}
.stat:nth-child(5){grid-column:span 1}
.demo-banner{padding-inline:18px}
.demo-banner .demo-description{display:none}
.settings-grid{grid-template-columns:1fr}
.auth-shell{grid-template-columns:.9fr 1fr}
.auth-story{padding-inline:14%}
.auth-form-side{padding-inline:30px}
.auth-copy h1{font-size:39px}
.auth-preview{padding:15px}
.auth-preview strong{font-size:22px}
#toast{left:50%}
.top-right{gap:2px}
}

@media(max-width:580px){.layout{display:block;padding-bottom:68px}
.sidebar{inset:auto 0 0;width:100%;height:62px;padding:5px 12px;border-right:0;border-top:1px solid var(--line)}
.sidebar .brand{display:none}
.nav{flex-direction:row;justify-content:space-around;margin:0;gap:0}
.nav button{width:auto;padding:14px}
.nav button>span{display:none}
.nav button svg{width:20px;height:20px}
.main{width:100%}
.topbar{height:64px;padding:0 17px}
.breadcrumbs{display:none}
.mobile-brand{display:flex;font-size:20px;gap:8px}
.mobile-brand .brand-mark{width:29px;height:29px}
.mobile-brand svg{width:20px;height:20px}
.top-right>.icon-btn{display:none}
.user-menu{border:0;padding:0}
.user-menu .avatar{width:30px;height:30px;font-size:10px}
.user-menu .user-name{font-size:10px}
.user-role{font-size:9px}
.content{padding:23px 16px}
.page-head{flex-wrap:wrap;gap:18px;margin-bottom:20px}
.page-head p{max-width:100%;font-size:11px}
.page-head h1{font-size:28px}
.head-actions{justify-content:space-between;width:100%;flex-wrap:nowrap}
.head-actions .btn{flex:1}
.head-actions .date-control{flex:1;justify-content:center}
.stats{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px}
.stat{padding:15px}
.stat.highlight{grid-column:span 2}
.stat-top{font-size:11px}
.stat-value{font-size:29px}
.right-column{grid-template-columns:1fr}
.right-column .panel:nth-child(2){display:none}
.tabs{gap:20px;padding-inline:18px}
.filter-row{padding:14px;gap:8px}
.search{max-width:180px}
.segments button{padding:5px 8px}
.panel-head{padding:19px 17px}
.panel-head h2{font-size:16px}
.table-footer{padding:14px}
.table-footer span:last-child{display:none}
th:first-child,td:first-child{padding-left:16px}
.table-scroll{max-width:100%}
table{font-size:10px}
th,td{padding-inline:12px}
.operator-cell{gap:7px}
.operator-name{font-size:10px}
.operator-cell .avatar{width:26px;height:26px;font-size:8px}
.table-actions{min-width:24px}
.bottom-bar{line-height:1.7;gap:15px}
.bottom-bar span:last-child{display:none}
.my-strip{padding:14px;gap:10px}
.my-strip h3{font-size:12px}
.my-strip p{font-size:10px}
.counter{gap:8px}
.counter button{height:30px;width:30px}
.counter strong{font-size:22px;min-width:24px}
.demo-banner{padding:8px 16px;font-size:9px}
.demo-banner div{gap:5px}
.demo-banner select{max-width:135px;font-size:9px}
.demo-banner>button{font-size:9px}
.auth-shell{grid-template-columns:1fr}
.auth-story{padding:27px 30px 32px}
.auth-copy{padding:34px 0 0}
.auth-copy h1{font-size:35px;line-height:1.12;max-width:330px}
.auth-copy .eyebrow,.auth-copy>p,.auth-preview,.auth-footer{display:none}
.auth-story .brand{justify-content:flex-start;font-size:22px}
.auth-form-side{padding:35px 27px 40px}
.auth-box{max-width:390px}
.auth-box h2{font-size:25px}
.modal{padding:24px}
.modal p{font-size:11px}
.form-row{gap:10px}
.settings-panel{padding:20px}
.audit-item time{max-width:70px;line-height:1.5;white-space:normal}
.requests-grid{grid-template-columns:1fr}
.request-card{padding:20px}
.mobile-hide{display:none}
}


/* Flipp brand palette: violet #6D1C96, magenta #B71DB5, pink #F42AA7. */
.brand-mark{background:var(--brand-gradient);box-shadow:0 4px 12px #6d1c961a}
.brand span:last-child{color:var(--primary)}
.nav button.active{background:var(--primary-soft);color:var(--primary);box-shadow:inset 3px 0 var(--accent)}
.nav button:hover,.icon-btn:hover{background:#f7f1fb}
.btn.primary,.inline-save,.inline-step.plus{background:var(--primary);color:#fff}
.btn.primary:hover,.inline-save:hover,.inline-step.plus:hover{background:var(--primary-hover)}
.btn.primary{box-shadow:0 3px 8px #6d1c9618}
.stat.highlight{background:var(--brand-gradient);border-color:#8830aa}
.stat.highlight .stat-top,.stat.highlight .stat-foot,.stat.highlight .stat-value small{color:#f1dbf4}
.stat.highlight .stat-icon,.stat.highlight .good{color:#fff}
.stat-icon{background:#f6effa;color:#9966b0}
.live-label{background:#f4edf9;color:#8b589f}
.live-dot{background:#a95dc0}
.mine-tag{background:#ead9f4;color:var(--primary)}
tr.mine,.operator-grid tr.mine{background:#f5edfa}
.operator-grid tr.mine{background:linear-gradient(90deg,#f2e7f9,#fcf6fd)}
.operator-grid tr.mine td{background:transparent}
.operator-grid .mine td:first-child{box-shadow:inset 3px 0 var(--primary)}
.inline-entry input{border-color:#d9c5e6;color:var(--primary)}
.inline-entry input:disabled{background:#f3eff6;border-color:#e6ddec;color:#b0a3ba}
.inline-step{border-color:#dfcde9;color:var(--primary)}
.icon-save{background:#ebdff4;color:var(--primary)}
.icon-save:hover{background:#dfcaed}
.operator-grid input:focus-visible{outline-color:#b564cd}
.hours-request{color:#8d5ba2}
.demo-banner{background:#faf0f8;border-bottom-color:#f0dfee;color:#946289}
.demo-banner select{background:#fff9fe;border-color:#e9d3e9;color:#855180}
.demo-banner button{color:#855180}
.chart-bar{background:#c49bd9}
.chart-bar-wrap:last-child .chart-bar{background:var(--primary)}
.chart-bar-wrap:hover .chart-bar{background:#a85cc3}
.progress-track{background:#f0e7f6}
.progress-fill{background:linear-gradient(90deg,var(--primary),var(--brand-magenta))}
.city-dot{background:#d968be}
.city-dot.blue{background:#9d70c4}
.avatar{background:#eee4f5;color:#86579f}
.auth-story{background:linear-gradient(145deg,#48115f 0%,#6d1c96 62%,#a323af 100%)}
.auth-story .brand-mark{background:#ffffff15;box-shadow:none}
.auth-story .brand span:last-child{color:#fff}
.auth-copy .eyebrow,.auth-copy p,.auth-preview p{color:#e5c6ed}
.auth-copy h1 em{color:#ffb5e6}
.auth-footer{color:#d5b0e0}
.auth-form-side{background:var(--theme-subtle, #fcfaff)}
.auth-minimal .auth-story{align-items:center;justify-content:center;min-height:100vh;min-height:100svh;padding:56px}
.auth-minimal .auth-story::before{content:"";position:absolute;left:50%;top:50%;width:min(580px,120%);aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,#fffffff5 0%,#ffffffe8 25%,#ffffffb3 43%,#ffffff57 58%,#ffffff00 73%);filter:blur(3px);pointer-events:none}
.auth-minimal .auth-story::after{border-color:#ffffff1f;box-shadow:0 0 0 65px #ffffff0e,0 0 0 130px #ffffff09}
.auth-brand-lockup{position:relative;z-index:1;width:100%;max-width:320px;text-align:center}
.auth-minimal .auth-story .flipp-brand{width:100%;padding:0;flex-direction:column;align-items:center;gap:10px}
.auth-minimal .auth-story .flipp-logo-window{width:min(100%,260px)}
.auth-minimal .auth-story .flipp-brand .brand-name{display:block;width:auto;padding:0;border:0;color:var(--primary);font-size:11px;font-weight:650;line-height:16px;letter-spacing:.3em;text-indent:.3em}
.auth-minimal .auth-box{max-width:360px}
.auth-minimal .auth-box h1{font-size:30px;line-height:1.25;letter-spacing:-.8px;margin:0 0 32px}
.auth-secondary-actions{display:flex;flex-direction:column;align-items:center;gap:10px;border-top:1px solid var(--line);margin-top:28px;padding-top:20px}
.auth-text-button{background:transparent;padding:5px 3px;font-size:12px;line-height:18px;color:var(--muted);border-radius:4px}
.auth-text-button:hover{color:var(--primary);text-decoration:underline;text-underline-offset:3px}
.auth-return{display:block;margin:22px auto 0}
.password-input{position:relative}
.password-input input{padding-right:52px}
.password-toggle{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:36px;height:36px;display:grid;place-items:center;border-radius:6px;background:transparent;color:var(--primary)}
.password-toggle:hover{background:var(--primary-soft)}
.password-toggle svg{width:19px;height:19px}
@media(max-width:760px){
 .auth-shell.auth-minimal{grid-template-columns:1fr;grid-template-rows:auto 1fr}
 .auth-minimal .auth-story{min-height:220px;padding:30px 24px}
 .auth-minimal .auth-story .flipp-brand{gap:16px}
 .auth-minimal .auth-story .flipp-logo-window{width:180px}
 .auth-minimal .auth-story .flipp-brand .brand-name{width:auto;padding:0;font-size:10px}
 .auth-minimal .auth-form-side{padding:36px 24px;min-height:calc(100svh - 220px)}
 .auth-minimal .auth-box h1{font-size:27px;margin-bottom:26px}
}
#toast{background:var(--primary);box-shadow:0 6px 30px #6d1c9622}
#toast.error{background:#a96853}

/* Shared type scale, based on the operator dashboard. */
:root{--text-name:17px;--text-value:18px;--text-rate:16px;--text-body:14px;--text-meta:13px;--text-heading:16px;--text-column:11px}

/* Larger grid content within the existing row dimensions. */
.operator-grid table{table-layout:fixed;font-size:var(--text-value)}
.operator-grid th:first-child{width:280px}
.operator-grid th:nth-child(n+2){width:auto}
.operator-grid th{font-size:11px;font-weight:600;line-height:15px}
.operator-grid th:not(:first-child),.operator-grid td:not(:first-child){text-align:center}
.operator-grid td{height:63px;padding-block:10px;line-height:24px}
.operator-grid tr.mine td{height:72px;padding-block:14px}
.operator-grid tr.mine:has(.start-day-note) td{height:92px}
.operator-grid .operator-cell{gap:12px}
.operator-grid .operator-cell .avatar{width:35px;height:35px;font-size:11px}
.operator-grid .operator-name{font-size:var(--text-name);font-weight:600;line-height:21px}
.operator-grid .operator-city{font-size:var(--text-meta);line-height:16px;margin-top:3px}
.operator-grid .operator-city strong{font-size:13px;font-weight:550}
.operator-grid .mine-tag{font-size:10px;line-height:13px;padding:2px 5px;vertical-align:middle}
.operator-grid .start-day-note{font-size:11px;line-height:14px;margin-top:4px;max-width:100%}
.operator-grid .hours-lock{font-size:var(--text-value);font-weight:600;line-height:24px}
.operator-grid .hours-lock svg{width:12px;height:12px}
.operator-grid .personal-hours{align-items:center;gap:4px}
.operator-grid .hours-request{font-size:11px;line-height:14px}
.operator-grid .inline-entry{justify-content:center}
.operator-grid .inline-entry input{font-size:18px;font-weight:600;line-height:21px;padding-block:6px}
.operator-grid .inline-save{font-size:12px;line-height:17px}
.operator-grid .inline-step,.operator-grid .icon-save{width:34px;flex-shrink:0}
.operator-grid .inline-step svg,.operator-grid .icon-save svg{width:16px;height:16px}
.operator-grid .lead-value,.operator-grid .closure-value{font-size:18px;font-weight:600;line-height:24px}
.operator-grid .rate{font-size:var(--text-rate);font-weight:600;line-height:20px;min-width:57px;padding:4px 9px}
.operator-grid .panel-head h2{font-size:16px}
.operator-grid tr.mine,.monthly-report tr.mine{background:#971879;color:#fff}
.operator-grid tr.mine td,.monthly-report tr.mine td{background:transparent;color:#fff;border-bottom-color:#ae4595}
.operator-grid .mine td:first-child,.monthly-report .mine td:first-child{box-shadow:inset 4px 0 #ef53bc}
.operator-grid .mine .operator-name,.monthly-report .mine .operator-name{color:#fff}
.operator-grid .mine .operator-city,.operator-grid .mine .operator-city strong,.operator-grid .mine .start-day-note,.monthly-report .mine .operator-city{color:#efd3fa}
.operator-grid .mine .hours-lock,.operator-grid .mine .lead-value,.operator-grid .mine .closure-value,.monthly-report .mine .lead-value,.monthly-report .mine .closure-value{color:#fff}
.operator-grid .mine .hours-lock svg,.operator-grid .mine .hours-request{color:#efd3fa}
.operator-grid .mine .operator-cell .avatar,.monthly-report .mine .operator-cell .avatar{background:#ffffff24;color:#fff}
.operator-grid .mine .mine-tag,.monthly-report .mine .mine-tag{background:#f0d7f8;color:#6d1c96}
.operator-grid .mine .inline-entry input{background:var(--theme-surface, #fff);color:var(--theme-link, var(--primary));border-color:#e5bfef}
.operator-grid .mine .inline-entry input:disabled{background:#f4e5f1;color:#8f6b99;border-color:#e5bfef}
.operator-grid .mine .inline-step{border-color:#e5bfef}
.operator-grid .mine .icon-save{background:#f0d7f8;color:var(--primary)}
.monthly-report .conversion{min-width:54px}
.month-view-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}
.month-view-toolbar>span{font-size:11px;color:var(--muted)}
.month-view-toolbar .segments button{display:flex;align-items:center;gap:7px;padding:10px 14px}
.month-view-toolbar svg{width:15px;height:15px}
.calendar-tools{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 24px 18px;flex-wrap:wrap}
.calendar-unit{font-size:var(--text-body);font-weight:600;color:var(--muted)}
.personal-calendar-filters{justify-content:flex-end}
.calendar-legend{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted);flex-wrap:wrap}
.attendance-tag{display:inline-flex;align-items:center;font-size:10px;font-weight:600;line-height:16px;border-radius:5px;padding:2px 6px;white-space:nowrap}
.attendance-tag.absent,.attendance-symbol.absent{color:#a03666;background:#fce6ef}
.attendance-tag.training,.attendance-symbol.training{color:#755600;background:#fff2a8}
.attendance-tag.late,.attendance-symbol.late{color:#96631c;background:#fff0cc}
.calendar-scroll{overflow:auto;max-height:640px;scrollbar-color:#c9acd7 #f8f3fb;position:relative;border-top:1px solid var(--line);isolation:isolate}
.month-calendar{border-collapse:separate;border-spacing:0;table-layout:fixed;width:max-content;min-width:100%;font-variant-numeric:tabular-nums}
.month-calendar th,.month-calendar td{text-align:center;width:67px;min-width:67px;padding:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.month-calendar th{height:57px;background:#f7f1fa;position:sticky;top:0;z-index:3;font-size:13px;letter-spacing:0}
.month-calendar th small{display:block;font-size:10px;font-weight:400;text-transform:none;margin-top:4px;color:var(--muted)}
.month-calendar th:first-child,.month-calendar td:first-child{position:sticky;left:0;width:180px;min-width:180px;max-width:180px;text-align:left;padding:12px 14px;white-space:normal;background:var(--theme-surface, #fff);z-index:2}
.month-calendar .calendar-total-heading,.month-calendar .calendar-person-total{position:sticky;left:180px;width:174px;min-width:174px;max-width:174px;text-align:left;padding:10px 12px;background:var(--theme-subtle, #fcf9fe);z-index:2;box-shadow:4px 0 6px #5d316310}
.month-calendar thead th:first-child,.month-calendar thead .calendar-total-heading{background:#f3e9f8;z-index:5}
.month-calendar .operator-name{font-size:13px;line-height:20px}
.month-calendar .operator-city{font-size:10px;line-height:16px}
.calendar-person-total strong{display:block;font-size:14px;color:var(--primary);line-height:21px}
.calendar-person-total strong span{font-size:10px;font-weight:500;color:var(--muted)}
.calendar-person-total small{display:block;font-size:10px;line-height:17px;color:var(--muted);white-space:nowrap}
.month-calendar td.weekend,.month-calendar th.weekend{background:#f2f1f4;color:#a89cac}
.month-calendar td.today-column{background:#fcf2fa;box-shadow:inset 1px 0 #edbadf,inset -1px 0 #edbadf}
.month-calendar th.today-column{background:#ead8f4;color:var(--primary)}
.month-calendar .calendar-day{width:100%;min-height:77px;height:100%;padding:9px 3px;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:inherit}
.calendar-day:hover{background:#6d1c960c;box-shadow:inset 0 0 0 2px #d2a9e4}
.calendar-day:focus-visible{outline-offset:-3px}
.calendar-day:disabled{opacity:.5}
.calendar-day strong{font-size:14px;font-weight:600;line-height:20px}
.month-calendar .calendar-day.is-late strong{color:#956800}
.month-calendar .mine .calendar-day.is-late strong{color:#ffe05c}
.calendar-markers{display:flex;flex-direction:column;align-items:center;gap:3px}
.attendance-symbol{border-radius:4px;padding:1px 4px;font-size:9px;line-height:14px;font-weight:600}
.month-calendar .rate{font-size:12px;min-width:45px;padding:3px 5px}
.month-calendar tbody tr.mine td{background:#971879;color:#fff;border-color:#ae4595}
.month-calendar tr.mine .calendar-person-total strong,.month-calendar tr.mine .calendar-person-total small{color:#fff}
.month-calendar tr.mine .calendar-person-total strong span{color:#efd3fa}
.month-calendar tr.mine td.weekend{background:#84206f}
.month-calendar tr.mine td.today-column{background:#b02390;box-shadow:inset 1px 0 #ef8fd4,inset -1px 0 #ef8fd4}
.month-calendar tfoot td{position:sticky;bottom:0;z-index:3;background:#f3e9f8;color:var(--primary);font-size:12px;font-weight:650;height:80px}
.month-calendar tfoot td:first-child,.month-calendar tfoot .calendar-person-total{z-index:4;background:#f3e9f8}
.calendar-foot{align-items:flex-start;flex-direction:column;gap:7px}
.calendar-dialog{width:min(780px,95vw);max-width:780px}
.day-session{padding:20px 0 5px;border-top:1px solid var(--line);margin-top:18px}
.day-session-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:15px}
.day-session-head h3{font-size:14px;margin-right:auto;color:var(--primary)}
.day-session-values{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;background:var(--theme-subtle, #faf6fc);border:1px solid var(--line);border-radius:8px;padding:12px;margin-bottom:18px}
.day-session-values>span{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.day-session-values b{font-size:14px;color:var(--ink)}
.day-session-values b.late-hours{color:#956800}
.session-arrival{font-size:var(--text-meta);color:var(--muted)}
.session-delay{
  display:inline-flex;
  padding:4px 10px;
  border:1px solid #d58920;
  border-radius:999px;
  background:#fff1c6;
  color:#784600;
  font-size:16px;
  font-weight:700;
}
.attendance-form-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:12px}
.attendance-form-grid input:disabled{background:#f4eff7;color:#9e8ca8}
.attendance-note{font-size:12px;line-height:1.5;white-space:pre-wrap;color:var(--muted)}
.planning-notice,.shift-alert-banner{display:flex;align-items:center;gap:15px;padding:17px 20px;border:1px solid #e6d1ef;border-radius:10px;background:#f5ecfa;margin-bottom:23px}
.planning-notice>span,.shift-alert-symbol{display:grid;place-items:center;width:37px;height:37px;background:#fff;border-radius:9px;color:var(--primary);flex-shrink:0}
.planning-notice>div,.shift-alert-banner>div{flex:1}
.planning-notice strong,.shift-alert-banner strong{font-size:13px;color:var(--primary)}
.planning-notice p,.shift-alert-banner p{font-size:11px;color:var(--muted);line-height:1.65;margin-top:5px}
.shift-alert-banner{background:#fff6ef;border-color:#efd8c4}
.shift-alert-banner strong{color:#8f512c}
.shift-alert-symbol{color:#9a613e}
.shift-alert-button{position:relative}
#shift-alert-count{position:absolute;right:-2px;top:0;background:#b73180;color:#fff;font-size:9px;min-width:16px;height:16px;display:grid;place-items:center;border-radius:9px;padding:1px 3px;border:1px solid #fff}
#shift-alert-count[hidden],.resolution-hours[hidden]{display:none}
.planning-period{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.planning-period .btn{padding:8px 10px}
.planning-period input{color:var(--primary);border:1px solid var(--line);border-radius:6px;padding:7px;font-size:11px;max-width:145px}
.planning-counter{font-size:11px;color:var(--muted)}
.weekly-planning table{min-width:970px}
.weekly-planning th{font-size:10px;letter-spacing:.3px}
.weekly-planning th small{display:block;text-transform:none;font-weight:400;margin-top:5px;font-size:10px}
.weekly-planning td,.weekly-planning th{text-align:center}
.weekly-planning td:first-child,.weekly-planning th:first-child{text-align:left;min-width:175px}
.weekly-planning .operator-name{font-size:13px;white-space:normal}
.weekly-planning tbody td{height:83px}
.weekly-planning tr.mine{background:#971879;color:#fff}
.weekly-planning tr.mine td{background:transparent;border-color:#ae4595}
.weekly-planning tr.mine .operator-name{color:#fff}
.weekly-planning tr.mine .operator-city{color:#efd3fa}
.weekly-planning tr.mine td:first-child{box-shadow:inset 4px 0 #ef53bc}
.weekly-planning .mine-tag{margin-left:5px;background:#f0d7f8;color:var(--primary);border-radius:4px;padding:2px 4px;font-size:9px}
.plan-chip{display:inline-flex;flex-direction:column;align-items:center;gap:4px;border-radius:6px;padding:6px 9px;font-size:11px;font-weight:650;white-space:nowrap;background:#f3edf6;color:var(--light-secondary, #8b7a94)}
.plan-chip small{font-size:9px;font-weight:400;line-height:12px}
.plan-chip small:empty{display:none}
.plan-am{background:#faecd5;color:#936525}
.plan-pm{background:#eee3f9;color:#7d3aa4}
.plan-both{background:#f8e2f3;color:#9c367f}
.plan-empty{font-size:10px;color:var(--muted)}
.weekly-planning tr.mine .plan-empty{color:#efd3fa}
.employment-link{display:block;font-size:10px;color:var(--muted);background:transparent;margin:8px auto 0;padding:2px;text-decoration:underline;text-underline-offset:3px}
.modal.employment-dialog{width:min(720px,100%)}
.employment-data{display:grid;grid-template-columns:200px 1fr;gap:16px}
.employment-data textarea{min-height:70px}
.employment-dialog .form-field{margin-bottom:12px}
.employment-dialog .modal-actions{margin-top:16px}
.modal.employment-dialog>p{margin-bottom:16px}
.employment-email-choice{display:flex;align-items:flex-start;gap:9px;font-size:var(--text-body);line-height:20px;color:var(--primary);font-weight:600;margin:12px 0}
.employment-email-choice input{margin:3px 0 0;accent-color:var(--primary);flex-shrink:0}
.employment-email-fields{border:1px solid var(--line);border-radius:8px;padding:12px;margin:0 0 8px;min-width:0}
.employment-email-fields[hidden]{display:none}
.employment-email-fields legend{font-size:var(--text-body);font-weight:600;color:var(--primary);padding:0 5px}
.employment-email-fields textarea,.employment-dialog textarea[name="email_body"]{min-height:170px;font-size:14px;line-height:1.6}
.modal .employment-email-help{font-size:12px;margin:0;line-height:1.6}
@media(max-width:580px){.employment-data{grid-template-columns:1fr;gap:0}}
.plan-dialog{width:min(590px,95vw)}
.plan-form-days{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.plan-form-days .form-field:last-child{grid-column:1/-1}
.weekly-planning table{table-layout:fixed;min-width:920px;width:100%}
.weekly-planning th:first-child{width:20%}
.weekly-planning th:nth-last-child(2),.weekly-planning th:last-child{width:10%}
.weekly-planning td,.weekly-planning th{padding-inline:12px}
.plan-day-select{width:100%;min-width:74px;padding:9px 5px;border:1px solid #decce9;border-radius:6px;background:var(--theme-surface, #fff);color:var(--theme-link, var(--primary));font-size:12px;font-weight:550}
.weekly-planning .mine .plan-day-select{border-color:#edc7e8}
.weekly-planning .mine .btn.primary{background:#fff;color:var(--primary)}
.weekly-planning .plan-notes-row td{height:auto;text-align:left;padding:17px 22px 20px;white-space:normal;background:var(--theme-subtle, #faf7fc);border-bottom:2px solid #e8dced}
.plan-inline-form label,.plan-request-note strong,.plan-review-note strong{display:block;font-size:12px;font-weight:600;color:var(--primary)}
.plan-inline-form textarea{display:block;width:100%;border:1px solid #decee8;border-radius:7px;padding:11px 12px;background:var(--theme-surface, #fff);color:var(--ink);font-size:13px;line-height:1.6;resize:vertical;margin:8px 0 12px;min-height:70px}
.plan-save-help{font-size:11px;color:var(--muted);line-height:1.6;margin-top:8px}
.plan-request-note,.plan-review-note{background:var(--theme-surface, #fff);border:1px solid var(--line);border-left:3px solid #b58bce;border-radius:6px;padding:12px 14px;margin-bottom:12px}
.plan-request-note p,.plan-review-note p{font-size:13px;line-height:1.65;margin-top:5px;white-space:pre-wrap;overflow-wrap:anywhere}
.plan-review-note{border-left-color:#d866ad;background:#fbf0f8}
.plan-save-status{display:flex;gap:6px;align-items:center;color:var(--muted);font-size:11px;line-height:1.6;margin-top:10px;white-space:normal}
.plan-save-status svg{width:13px;height:13px}
.plan-locked{display:inline-flex;gap:5px;align-items:center;font-size:11px;color:var(--muted)}
.plan-locked svg{width:12px;height:12px}
.weekly-planning .mine .plan-locked{color:#efd3fa}
.alert-counts{display:flex;gap:22px;padding:0 24px 20px;color:var(--muted);font-size:11px;flex-wrap:wrap}
.alert-counts b{color:var(--primary);font-size:19px;margin-right:5px}
.unplanned-warning{margin:0 24px 20px;padding:14px;border:1px solid var(--line);border-radius:8px;display:flex;gap:15px;align-items:center;background:var(--theme-subtle, #faf7fc)}
.unplanned-warning p{font-size:11px;line-height:1.7;color:var(--muted);flex:1}
.unplanned-warning b{color:var(--primary)}
.shift-alert-list{padding:0 24px 15px}
.shift-alert-card{display:flex;align-items:center;gap:15px;border:1px solid var(--line);padding:18px;border-radius:10px;margin-bottom:12px;background:var(--theme-surface, #fff)}
.shift-alert-card>div{flex:1}
.shift-alert-card h3{display:flex;gap:10px;align-items:center;font-size:14px}
.shift-alert-card .plan-chip{padding:3px 7px;font-size:10px}
.shift-alert-card p{font-size:11px;color:var(--muted);margin-top:6px}
.shift-alert-card strong{display:block;font-size:11px;margin-top:10px;font-weight:600}
.missing-label{color:#a03666}
.late-label{color:#96631c}
.popup-shift-person{display:flex;justify-content:space-between;gap:15px;padding:14px 0;border-top:1px solid var(--line);font-size:12px}
.popup-shift-person span{font-size:11px;color:var(--muted);white-space:nowrap}
.resolution-note{font-size:11px;line-height:1.7;color:var(--muted);margin-bottom:15px}
@media(max-width:800px){.planning-notice,.shift-alert-banner{flex-wrap:wrap}.planning-notice .btn,.shift-alert-banner .btn{margin-left:52px}.planning-period{margin-top:10px}.weekly-planning .panel-head{flex-wrap:wrap}.shift-alert-card{flex-wrap:wrap}.shift-alert-card>.btn{margin-left:49px}.unplanned-warning{flex-wrap:wrap}.plan-form-days{grid-template-columns:1fr}.plan-form-days .form-field:last-child{grid-column:auto}.popup-shift-person{flex-wrap:wrap;gap:5px}}
@media(max-width:800px){.month-view-toolbar{align-items:flex-start;flex-direction:column;gap:10px}.calendar-tools{padding-inline:16px}.month-calendar th:first-child,.month-calendar td:first-child{width:145px;min-width:145px;max-width:145px}.month-calendar .calendar-total-heading,.month-calendar .calendar-person-total{left:145px;width:160px;min-width:160px;max-width:160px}.attendance-form-grid{grid-template-columns:1fr 1fr}.attendance-form-grid>.form-field:first-child{grid-column:1/-1}.day-session-values{grid-template-columns:1fr 1fr}}
@media(max-width:800px){.operator-grid td,.operator-grid th{padding-inline:10px}.operator-grid th:first-child{padding-left:16px}.operator-grid td:first-child{padding-left:16px}.operator-grid .inline-entry{gap:4px}.operator-grid .inline-step,.operator-grid .icon-save{width:30px}}
@media(max-width:580px){.operator-grid td{height:58px;padding-block:7px}.operator-grid tr.mine td{height:72px;padding-block:13px}.operator-grid tr.mine:has(.start-day-note) td{height:92px}.operator-grid th{font-size:10px;letter-spacing:.3px}.operator-grid .operator-name{font-size:15px;line-height:19px}.operator-grid .operator-city,.operator-grid .operator-city strong{font-size:12px;line-height:15px}.operator-grid .operator-cell .avatar{width:29px;height:29px;font-size:9px}.operator-grid .operator-cell{gap:8px}.operator-grid .hours-lock,.operator-grid .lead-value,.operator-grid .closure-value,.operator-grid .inline-entry input{font-size:16px}.operator-grid .rate{font-size:14px;min-width:47px;padding-inline:6px}.operator-grid .inline-save{font-size:11px}}
@media(max-width:580px){.month-calendar th:first-child,.month-calendar td:first-child{width:115px;min-width:115px;max-width:115px;padding-inline:8px}.month-calendar .calendar-total-heading,.month-calendar .calendar-person-total{left:115px;width:135px;min-width:135px;max-width:135px;padding-inline:8px}.month-calendar .operator-name{font-size:12px}.calendar-person-total small{font-size:9px}.calendar-person-total strong{font-size:12px}.month-view-toolbar .segments button{padding:9px 10px}}

/* Use the dashboard's name, value and secondary text sizes throughout the CRM. */
.layout .nav button{font-size:var(--text-body);gap:9px}
.breadcrumbs,.connection,.user-role,.side-footer{font-size:var(--text-meta)}
.user-name{font-size:var(--text-body)}
.demo-banner,.demo-banner select,.demo-banner button{font-size:var(--text-meta)}
.content .page-head h1{font-size:27px}
.content .page-head p{font-size:var(--text-body);line-height:1.7}
.content h2{font-size:var(--text-heading)}
.content h3{font-size:var(--text-name)}
.content .eyebrow,.workspace-label{font-size:var(--text-column)}
.btn{font-size:var(--text-body)}
.date-control{height:41px}
.date-control input{font-size:var(--text-meta);width:137px}
.panel-sub,.live-label,.table-footer,.bottom-bar{font-size:var(--text-meta);line-height:1.6}
.table-footer{gap:10px 18px;flex-wrap:wrap;white-space:normal}
.table-footer span{min-width:0}
.bottom-bar{gap:12px;flex-wrap:wrap}
.tabs button,.operator-site-tabs button,.segments button,.operator-shift-tabs button{font-size:var(--text-body)}
.tab-count,.nav .count{font-size:var(--text-column)}
.search input{font-size:var(--text-body)}
.search{max-width:280px}
.content table{font-size:var(--text-value)}
.content th,.weekly-planning th{font-size:var(--text-column);line-height:1.5}
.content th small{font-size:var(--text-meta);letter-spacing:0}
.operator-name,.weekly-planning .operator-name,.month-calendar .operator-name{font-size:var(--text-name);font-weight:600;line-height:21px}
.operator-city,.month-calendar .operator-city{font-size:var(--text-meta);line-height:16px}
.content .operator-cell{gap:12px}
.content .operator-cell .avatar{width:35px;height:35px;font-size:11px}
.mine-tag,.weekly-planning .mine-tag{font-size:10px;line-height:13px;padding:2px 5px;vertical-align:middle}
.rate,.month-calendar .rate{font-size:var(--text-rate);font-weight:600;line-height:20px;min-width:57px;padding:4px 9px}
.totals td:first-child{font-size:var(--text-body)}
.status,.badge,.request-status{font-size:var(--text-meta)}
.table-actions button{width:32px;height:32px}
.table-actions svg{width:15px;height:15px}
.row-edit,.hours-lock{font-size:var(--text-value)}

.monthly-report .table-scroll table{min-width:1160px}
.monthly-report>.tabs,.operator-grid>.tabs{align-items:stretch}
.monthly-report>.tabs button,.operator-grid>.tabs button{display:inline-flex;align-items:center;padding:8px 0;line-height:20px}
.monthly-report>.tabs .tab-count,.operator-grid>.tabs .tab-count{line-height:16px}
.filter-row.no-search{justify-content:flex-end}
.monthly-report .table-scroll .report-summary-table{min-width:880px;table-layout:fixed}
.report-summary-table th:first-child{width:280px}
.report-summary-table th:nth-last-child(4),.report-summary-table td:nth-last-child(4),.report-summary-table th:nth-last-child(2),.report-summary-table td:nth-last-child(2),.operator-grid th:nth-child(3),.operator-grid td:nth-child(3),.operator-grid th:nth-child(5),.operator-grid td:nth-child(5){border-left:1px solid #dfcfe9}
.report-summary-table .mine td:nth-last-child(4),.report-summary-table .mine td:nth-last-child(2),.operator-grid .mine td:nth-child(3),.operator-grid .mine td:nth-child(5){border-left-color:#ffffff40}
.report-summary-table .technical-hours-heading{font-size:9px;line-height:11px;letter-spacing:.15px;padding:6px 8px}
.technical-hours-heading span{display:block}
.hours-disclosure{display:inline-flex;align-items:center;gap:7px;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;padding:0;min-height:24px;white-space:nowrap}
.hours-disclosure svg{width:17px;height:17px;padding:2px;border:1px solid #d8bee6;border-radius:4px;color:var(--primary);background:var(--primary-soft);flex:none}
.hours-disclosure:hover{color:var(--primary)}
.hours-disclosure:focus-visible{outline:2px solid var(--primary);outline-offset:5px;border-radius:2px}
.monthly-report .table-scroll th:first-child{min-width:230px}
.monthly-report .table-scroll th:first-child,.monthly-report .table-scroll td:first-child{position:sticky;left:0;z-index:1;box-shadow:1px 0 var(--line)}
.monthly-report .table-scroll th:first-child{z-index:2;background:var(--theme-subtle, #faf7fb)}
.monthly-report .table-scroll td:first-child{background:var(--theme-surface, #fff)}
.monthly-report .table-scroll .mine td:first-child{background:#971879}
.monthly-report .table-scroll tfoot td:first-child{background:#f3e9f8}
.monthly-report td{line-height:24px}
.monthly-report .conversion{min-width:68px}
.operator-grid th:not(:first-child),.operator-grid td:not(:first-child),.report-summary-table th:not(:first-child),.report-summary-table td:not(:first-child){padding-inline:10px;text-align:center;white-space:normal}
.operator-grid .sort-heading,.report-summary-table .sort-heading{max-width:100%;min-width:0;white-space:normal;justify-content:center;text-align:center;gap:6px}
.operator-grid th:first-child .sort-heading,.report-summary-table th:first-child .sort-heading{justify-content:flex-start;text-align:left}
.operator-grid .sort-indicator,.report-summary-table .sort-indicator{flex:0 0 12px;width:12px;text-align:center}
.report-summary-table th.technical-hours-heading{padding-inline:6px}
.report-summary-table .conversion{min-width:57px;max-width:100%}
.month-view-toolbar>span,.calendar-legend{font-size:var(--text-meta);line-height:1.6}
.month-calendar th{font-size:var(--text-value)}
.month-calendar th small{font-size:var(--text-meta)}
.calendar-person-total strong,.calendar-day strong{font-size:var(--text-value);line-height:24px}
.calendar-person-total small,.calendar-person-total strong span{font-size:var(--text-meta)}
.attendance-tag,.attendance-symbol{font-size:var(--text-meta);line-height:18px}
.month-calendar tfoot td{font-size:var(--text-value)}
.day-session-head h3{font-size:var(--text-name)}
.day-session-values>span,.attendance-note{font-size:var(--text-body);line-height:1.6}
.day-session-values b{font-size:var(--text-value)}

.planning-notice strong,.shift-alert-banner strong{font-size:var(--text-heading);line-height:1.5}
.planning-notice p,.shift-alert-banner p{font-size:var(--text-meta)}
.planning-period input{font-size:var(--text-meta);max-width:152px}
.planning-counter,.plan-save-help,.plan-save-status,.plan-locked,.plan-empty,.employment-link{font-size:var(--text-meta)}
.weekly-planning .panel-head{flex-wrap:wrap}
.weekly-planning .panel-head>div:first-child{flex:1 1 320px}
.weekly-planning td,.weekly-planning th{padding-inline:8px}
.weekly-planning th:first-child,.weekly-planning td:first-child{padding-left:16px}
.weekly-planning .btn{padding:10px 12px}
.weekly-planning thead th{font-size:var(--text-meta);font-weight:700;color:var(--ink)}
.weekly-planning thead th small{font-size:var(--text-meta);font-weight:600;color:var(--ink)}
.weekly-planning.personal-planning table{min-width:760px}
.weekly-planning.personal-planning th{width:14%}
.weekly-planning.personal-planning th:nth-last-child(2),.weekly-planning.personal-planning th:last-child{width:15%}
.weekly-planning.personal-planning th:first-child,.weekly-planning.personal-planning tr:not(.plan-notes-row)>td:first-child{min-width:0;text-align:center;padding-left:8px}
.plan-day-select{font-size:var(--text-value);line-height:24px;min-width:90px}
.plan-chip,.shift-alert-card .plan-chip{font-size:var(--text-value);line-height:24px}
.plan-chip small{font-size:var(--text-meta);line-height:17px}
.plan-inline-form label,.plan-request-note strong,.plan-review-note strong{font-size:var(--text-body);line-height:1.6}
.plan-inline-form textarea,.plan-request-note p,.plan-review-note p{font-size:var(--text-rate);line-height:1.6}
.plan-save-status svg,.plan-locked svg{width:15px;height:15px}

.stat-top,.stat-foot,.summary-title,.target-row,.performance-note,.city-name,.city-metric,.city-note,.city-mini,.legend-row,.chart-head span,.chart-bar-wrap small{font-size:var(--text-meta)}
.stat-value small,.performance-number small{font-size:var(--text-rate)}
.summary-panel h2,.activity-card h2,.side-help h3{font-size:var(--text-heading)}
.activity-card p,.activity-card button,.side-help p,.side-help .mini-link,.my-strip p{font-size:var(--text-meta)}
.request-card p,.requests-head,.settings-panel p,.settings-panel li,.empty{font-size:var(--text-body)}
.audit-item strong,.shift-alert-card h3{font-size:var(--text-name)}
.audit-item p,.audit-item time,.alert-counts,.unplanned-warning p,.shift-alert-card p,.shift-alert-card strong,.popup-shift-person,.popup-shift-person span,.resolution-note{font-size:var(--text-meta);line-height:1.6}
.modal p,.modal-notice,.form-field label,.form-error,#toast{font-size:var(--text-body)}
.form-field input,.form-field select,.form-field textarea{font-size:var(--text-rate)}
.form-field small{font-size:var(--text-meta)}

@media(max-width:800px){.page-head,.chart-head{flex-wrap:wrap}.chart-head{gap:10px}.planning-notice,.shift-alert-banner{align-items:flex-start}.content .operator-cell{gap:10px}}
@media(max-width:580px){:root{--text-name:15px;--text-value:16px;--text-rate:14px;--text-meta:12px}.content .page-head h1{font-size:27px}.demo-banner{flex-wrap:wrap}.demo-banner select{max-width:150px}.content .operator-cell{gap:8px}.content .operator-cell .avatar{width:29px;height:29px;font-size:9px}.operator-grid th{font-size:10px}.calendar-person-total strong{font-size:var(--text-value)}.day-session-values{grid-template-columns:1fr 1fr}}

/* Flipp is drawn as vectors so the wordmark stays sharp at every size. */
.flipp-brand{flex-direction:column;gap:4px;padding:0;letter-spacing:0;color:var(--primary)}
.flipp-logo-window{display:block;width:190px;aspect-ratio:264/112;flex-shrink:0;background:transparent}
.flipp-logo-window>svg{display:block;width:100%;height:100%;max-width:100%}
.flipp-logo-window>.flipp-monogram{display:none}
.flipp-dot{fill:var(--flipp-dot,var(--accent))}
.flipp-brand .brand-name{font-size:9px;line-height:14px;font-weight:650;letter-spacing:2.8px;text-indent:2.8px;color:inherit}
.auth-story .flipp-brand{width:max-content;gap:9px}
.auth-story .flipp-logo-window{width:210px}
.mobile-brand.flipp-brand{display:none}
.sidebar .flipp-logo-window{width:100px}
.sidebar .flipp-brand .brand-name{font-size:9px;line-height:14px}

/* Keep controls close to the table and reserve the row height for operator data. */
.operator-page-head{margin-bottom:16px}
.operator-grid td{height:57px;padding-block:8px}
.operator-grid tr.mine td{height:64px;padding-block:8px}
.operator-grid tr.mine:has(.start-day-note) td{height:88px}
.operator-page-head .live-label{white-space:normal;line-height:20px;text-align:left;justify-content:flex-start}
.operator-grid .operator-grid-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px 18px}
.operator-grid-head .date-control{justify-self:end}
.operator-grid-head .live-label{justify-self:start;white-space:normal;text-align:left;justify-content:flex-start}
#work-schedule-status.is-active{background:#e5f4eb;color:#247447}
#work-schedule-status.is-active .live-dot{background:#2b985a}
.sort-heading{display:inline-flex;align-items:center;gap:5px;background:none;padding:0;min-height:20px;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;white-space:nowrap}
.sort-heading:hover,.sort-heading.sorted{color:var(--primary)}
.sort-indicator{font-size:12px;line-height:1;color:var(--primary);opacity:.55}
.sort-heading.sorted .sort-indicator{opacity:1}
.report-page-head{margin-bottom:16px;align-items:center}
.report-page-head .month-view-toolbar{margin:0;flex-direction:row}
.calendar-tools{padding:14px 18px;gap:12px}
.calendar-unit{margin-right:6px}
.calendar-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.month-calendar thead th:not(.weekend),.month-calendar thead th:not(.weekend) small{color:#111;font-weight:600}
.weekly-planning .planning-controls{justify-content:center;padding-block:14px}
.weekly-planning .planning-controls>.planning-period{flex:0 1 auto;justify-content:center;margin:0}

.monthly-hours{background:var(--theme-surface, #fff);border:1px solid var(--line);border-radius:11px;margin-bottom:16px;padding:17px 20px;box-shadow:var(--shadow)}
.monthly-hours-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px;flex-wrap:wrap}
.monthly-hours-heading>div{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.monthly-hours-heading h2{font-size:var(--text-heading);letter-spacing:0}
.monthly-hours-heading p,.monthly-person-select{font-size:var(--text-meta);line-height:1.6;color:var(--muted)}
.monthly-person-select{display:flex;align-items:center;gap:9px}
.monthly-person-select select{max-width:240px;border:1px solid var(--line);border-radius:6px;padding:8px;color:var(--ink);background:var(--theme-surface, #fff)}
.monthly-hours-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.monthly-hours-values>div+div{border-left:1px solid var(--line);padding-left:18px}
.monthly-hours-values span{display:block;font-size:var(--text-meta);line-height:1.6;color:var(--muted)}
.monthly-hours-values strong{display:block;font-size:var(--text-value);line-height:1.7;font-weight:700;color:var(--primary);font-variant-numeric:tabular-nums}
.monthly-hours-values strong small{font-size:var(--text-meta);font-weight:500}
.monthly-hours-values .monthly-limit-status{display:inline-block;border-radius:5px;padding:1px 7px;background:#e5f4eb;color:#247447;font-weight:600;margin-top:3px}
.monthly-hours-progress{height:5px;border-radius:5px;background:var(--primary-soft);overflow:hidden;margin-top:15px}
.monthly-hours-progress>span{display:block;height:100%;background:var(--brand-gradient);border-radius:5px}
.monthly-presence-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;border-top:1px solid var(--line);padding-top:13px;margin-top:14px;font-size:var(--text-meta)}
.monthly-presence-values>div{display:flex;flex-direction:column;gap:3px;align-items:flex-start}
.monthly-presence-values span{color:var(--muted)}
.monthly-presence-values b{color:var(--ink)}
.monthly-presence-values .monthly-limit-status{display:inline-block;border-radius:5px;padding:1px 7px;background:#e5f4eb;color:#247447;font-weight:600;margin-top:3px}
.training-progress{margin-top:15px;padding:12px 14px;border-radius:7px;background:#f5eef9;color:var(--primary);font-size:var(--text-meta)}
.training-progress>div{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.training-progress progress{display:block;width:100%;height:7px;margin-top:9px;accent-color:var(--primary)}
.training-progress.completed{background:#eaf5ee;color:#247447}
.training-progress.completed progress{accent-color:#247447}
.shift-hours-breakdown{display:block;white-space:normal;font-size:11px;line-height:1.5;color:var(--muted);margin-top:5px}
.mine .shift-hours-breakdown{color:#efd3fa}
.queue-edit{display:block;margin:4px 0 0 auto;color:var(--primary)}
.attendance-tag.queue{background:#e8f2fa;color:#2b6488}
.session-production{display:flex;gap:22px;flex-wrap:wrap;align-items:center;font-size:var(--text-meta);margin-bottom:15px}
.attendance-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:580px){.monthly-presence-values{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.training-progress>div{gap:4px}.day-session-values{grid-template-columns:repeat(2,minmax(0,1fr))}}
.monthly-hours.over-limit{border-color:#e8b8b8}
.monthly-hours.over-limit .monthly-limit-status{background:#fcebea;color:#a23b39}
.competitions-head .date-control input{width:137px}
.race-period-status{display:inline-flex;align-items:center;gap:7px;font-size:var(--text-meta);color:var(--primary);padding:6px 10px;background:var(--primary-soft);border:1px solid transparent;border-radius:6px}
.race-period-status svg{width:14px;height:14px}
.race-period-status:hover{background:#e9dcf3;border-color:#d7bce7}
.modal.competition-report-dialog{width:min(1120px,100%);padding:0;display:flex;flex-direction:column;overflow:hidden}
.competition-report-dialog>.modal-top{padding:20px 22px 10px;margin:0;gap:12px;flex-shrink:0}
.modal.competition-report-dialog>p{padding:0 22px;margin:0 0 14px;font-size:var(--text-meta);flex-shrink:0}
.competition-report-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 22px;border-top:1px solid var(--line);color:var(--muted);font-size:var(--text-meta);flex-shrink:0}
.competition-report-meta .btn{font-size:12px;padding:8px 10px;flex-shrink:0}
.competition-report-scroll{overflow:auto;min-height:0;flex:1}
.competition-report-dialog .race-ranking{table-layout:fixed;min-width:980px;width:100%;font-size:var(--text-value)}
.competition-report-dialog .race-ranking th{position:sticky;top:0;z-index:2;font-size:var(--text-column);line-height:1.5}
.competition-report-dialog .race-ranking th:first-child,.competition-report-dialog .race-ranking td:first-child{width:56px;min-width:56px}
.competition-report-dialog .race-ranking th:nth-child(2),.competition-report-dialog .race-ranking td:nth-child(2){width:250px;min-width:250px}
.competition-report-dialog .race-ranking th:last-child{width:190px}
.competition-report-dialog .race-ranking tbody td{height:64px;padding-block:10px}
.competition-report-dialog .race-ranking .race-divider td,.competition-report-dialog .race-ranking .race-empty{height:auto}
.competition-report-dialog .race-ranking .race-empty{padding:20px}
.competition-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.competition-tabs>button{display:flex;align-items:center;gap:12px;text-align:left;background:var(--theme-surface, #fff);border:1px solid var(--line);padding:15px 16px;border-radius:9px;color:var(--muted)}
.competition-tabs>button:hover{border-color:#d4b6e1}
.competition-tabs>button.active{background:var(--primary-soft);border-color:#bd8cd2;color:var(--primary);box-shadow:inset 0 -3px var(--brand-magenta)}
.competition-tabs strong{display:block;font-size:var(--text-name);font-weight:650;line-height:1.5}
.competition-tabs small{display:block;font-size:var(--text-meta);line-height:1.5;margin-top:2px}
.race-tab-icon{display:grid;place-items:center;background:#faf6fc;border-radius:8px;padding:8px;color:var(--primary)}
.race-tab-icon svg{width:21px;height:21px}
.race-admitted-count{margin-left:auto;align-self:flex-start;font-size:var(--text-meta);line-height:20px;padding:1px 6px;background:#f4edf8;border-radius:5px;color:var(--primary)}
.race-rules{padding:19px 21px;border-bottom:1px solid var(--line)}
.race-rules p{font-size:var(--text-body);line-height:1.7;color:var(--ink)}
.race-podium-wrap{padding:23px 21px 25px}
.content .race-podium-wrap h3{font-size:var(--text-body);font-weight:650;margin-bottom:17px}
.race-podium{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.race-podium-place{display:grid;grid-template-columns:150px minmax(0,1fr) 135px;align-items:center;gap:20px;min-height:108px;padding:15px 18px;border:1px solid var(--line);border-radius:10px;background:var(--theme-surface, #fff)}
.race-podium-place.place-1{border-color:#e5d8b9;background:#fffdf7}
.race-podium-position{display:flex;align-items:center;gap:12px;font-size:var(--text-body)}
.race-podium-position strong{font-weight:650}
.race-podium-rank{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;font-size:21px;font-weight:700;background:#f8eac5;color:#906315}
.place-2 .race-podium-rank{background:#edf0f4;color:#6a7484}
.place-3 .race-podium-rank{background:#f7e7db;color:#986440}
.race-podium-people{display:grid;gap:9px;min-height:48px;min-width:0}
.race-podium-person{padding:10px;border-radius:8px;min-width:0}
.race-podium-person>div{min-width:0}
.race-podium-person .operator-name{white-space:normal;line-height:1.5}
.race-podium-person .operator-city{white-space:normal;line-height:1.5}
.race-podium-person.mine{background:#971879;color:#fff}
.race-podium-person.mine .operator-city{color:#efd3fa}
.race-podium-prize{text-align:right;display:grid;gap:4px;justify-items:end;font-variant-numeric:tabular-nums}
.race-podium-prize>span{color:var(--muted);font-size:var(--text-meta)}
.race-podium-prize>strong{color:var(--primary);font-size:21px;line-height:1.4;white-space:nowrap}
.race-podium-prize>small{font-size:11px;line-height:1.5;color:#8f651c;max-width:135px}
.race-table-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:16px 21px;font-size:var(--text-meta);color:var(--muted)}
.race-table-meta strong{color:var(--ink);font-size:var(--text-body)}
.race-ranking{min-width:825px;font-variant-numeric:tabular-nums}
.race-ranking th{white-space:nowrap}
.race-ranking th:first-child,.race-ranking td:first-child{text-align:center;width:73px;min-width:73px;padding-inline:10px}
.race-ranking th:nth-child(2),.race-ranking td:nth-child(2){text-align:left;min-width:228px}
.race-ranking tbody td{height:72px;white-space:nowrap;padding-block:14px}
.race-ranking td:last-child{min-width:150px}
.competition-panel .race-ranking.race-no-position{table-layout:fixed;min-width:880px}
.race-ranking.race-no-position th:first-child,.race-ranking.race-no-position td:first-child{width:250px;min-width:250px;text-align:left;padding-left:23px}
.race-ranking.race-no-position th:nth-child(2),.race-ranking.race-no-position td:nth-child(2){width:auto;min-width:0;text-align:right}
.race-position{display:inline-flex;justify-content:center;align-items:center;min-width:29px;height:29px;font-size:var(--text-value);font-weight:650;color:var(--primary)}
.race-position.podium{background:#f5ebd9;color:#8f651c;border-radius:50%;font-size:var(--text-rate)}
.race-tie{display:block;font-size:11px;line-height:1.5;white-space:normal;color:var(--muted);margin-top:3px}
.race-score,.race-reward{font-size:var(--text-value);color:var(--primary)}
.race-presence{font-size:var(--text-meta);padding:4px 6px;border-radius:5px;white-space:nowrap}
.race-presence.qualified{background:#e5f4eb;color:#247447}
.race-presence.insufficient{background:#fcebea;color:#a23b39}
.race-ineligible,.race-prize-pending{font-size:var(--text-meta);display:inline-block;white-space:normal;line-height:1.5;max-width:155px}
.race-ineligible{color:var(--muted)}
.race-prize-pending{color:#8f651c;background:#fbf1df;border-radius:5px;padding:4px 7px}
.race-ranking tr.mine td{background:#971879;color:#fff;border-color:#ae4595}
.race-ranking tr.mine td:first-child{box-shadow:inset 4px 0 #ef53bc}
.race-ranking tr.mine .operator-name,.race-ranking tr.mine .race-score,.race-ranking tr.mine .race-reward{color:#fff}
.race-ranking tr.mine .operator-city,.race-ranking tr.mine .race-ineligible,.race-ranking tr.mine .race-tie,.race-ranking tr.mine .muted{color:#efd3fa}
.race-ranking tr.mine .race-position:not(.podium){color:#fff}
.race-ranking .race-divider td{height:auto;background:#f8f3fb;color:var(--muted);font-size:var(--text-meta);font-weight:600;text-align:left;padding:10px 21px}
.race-ranking .race-empty{height:auto;padding:21px;font-size:var(--text-body);color:var(--muted);text-align:center;white-space:normal}
.race-step-rules{display:flex;align-items:center;justify-content:space-between;gap:25px}
.race-step-rules>div{max-width:420px}
.race-tiers{min-width:290px;max-width:340px;width:100%;font-variant-numeric:tabular-nums}
.content .race-tiers{font-size:var(--text-rate)}
.race-tiers th,.race-tiers td{padding:7px 12px;text-align:right}
.race-tiers th:first-child,.race-tiers td:first-child{text-align:left}
.race-tiers tbody tr:last-child td{border-bottom:0}
@media(max-width:1050px){.competition-tabs>button{padding:13px 12px;gap:8px}.race-tab-icon{display:none}.race-step-rules{gap:15px}.race-tiers{min-width:260px}}
@media(max-width:800px){.race-podium-place{grid-template-columns:130px minmax(0,1fr) 105px;gap:10px;padding:13px}.race-podium-position{gap:8px}.race-podium-rank{width:34px;height:34px;font-size:18px}.race-podium-prize>strong{font-size:19px}}
@media(max-width:580px){.competition-tabs{gap:7px}.competition-tabs>button{padding:10px 8px;gap:4px;flex-wrap:wrap}.competition-tabs strong{font-size:14px}.competition-tabs small{font-size:11px}.race-admitted-count{display:none}.race-step-rules{flex-direction:column;align-items:stretch}.race-tiers{max-width:100%}.race-rules,.race-table-meta{padding-inline:15px}.race-podium-wrap{padding:20px 15px}.race-podium-place{grid-template-columns:minmax(0,1fr) auto;gap:12px}.race-podium-position{grid-column:1;grid-row:1}.race-podium-prize{grid-column:2;grid-row:1}.race-podium-people{grid-column:1/-1;grid-row:2;min-height:28px}.competitions-head .head-actions{flex-wrap:wrap}.nav button{padding-inline:11px}}
@media(max-width:580px){.sidebar .nav{overflow-x:auto;justify-content:flex-start;scrollbar-width:none}.sidebar .nav button{flex:1 0 40px}}
@media(max-width:800px){.monthly-hours-values{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.monthly-hours-values>div:nth-child(3){border:0;padding:0}}
@media(max-width:580px){.monthly-hours{padding:15px}.monthly-hours-heading>div{gap:4px}.monthly-person-select{width:100%;flex-wrap:wrap}.monthly-person-select select{max-width:100%;flex:1}.monthly-hours-values{gap:12px}.monthly-hours-values>div+div{padding-left:12px}.monthly-hours-values>div:nth-child(3){padding-left:0}}

@media(max-width:800px){
 .sidebar .flipp-logo-window{width:50px}
 .sidebar .flipp-brand .brand-name{display:none}
 .operator-grid .operator-grid-head{grid-template-columns:minmax(0,1fr) auto;gap:10px 14px}
 .operator-grid-head .live-label{justify-self:start;text-align:left}
 .report-page-head{flex-direction:row;align-items:center;flex-wrap:wrap}
}
@media(max-width:580px){
 .mobile-brand.flipp-brand{display:flex;flex-direction:row;gap:8px}
 .mobile-brand .flipp-logo-window{width:69px}
 .mobile-brand.flipp-brand .brand-name{font-size:9px;letter-spacing:1.5px}
 .operator-grid .operator-grid-head{grid-template-columns:1fr;gap:10px}
 .operator-grid-head .live-label{grid-column:auto;justify-self:start;text-align:left}
 .report-page-head{justify-content:center;gap:12px}
 .report-page-head .month-view-toolbar .segments button{padding:9px 10px}
 .calendar-tools,.calendar-actions{justify-content:center}
}

/* The team leader's live table uses the available width and compact rows. */
.content.leader-dashboard{padding-top:18px}
.leader-dashboard .leader-page-head{margin-bottom:12px;gap:12px;align-items:center}
.content .leader-page-head h1{font-size:24px;line-height:30px}
.leader-dashboard .planning-notice,.leader-dashboard .shift-alert-banner{padding:10px 14px;margin-bottom:12px;gap:10px;align-items:center}
.leader-dashboard .planning-notice>span,.leader-dashboard .shift-alert-symbol{width:30px;height:30px;flex-basis:30px}
.leader-dashboard .planning-notice strong,.leader-dashboard .shift-alert-banner strong{font-size:14px;line-height:18px}
.leader-dashboard .planning-notice p,.leader-dashboard .shift-alert-banner p{font-size:12px;line-height:16px;margin-top:2px}
.leader-dashboard .planning-notice .btn,.leader-dashboard .shift-alert-banner .btn{padding:7px 10px;font-size:12px}
.leader-dashboard .stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:12px}
.leader-dashboard .stat{padding:10px 12px}
.leader-dashboard .stat-top{font-size:12px;line-height:17px;gap:6px}
.leader-dashboard .stat-icon{padding:3px;border-radius:5px}
.leader-dashboard .stat-icon svg{width:14px;height:14px}
.leader-dashboard .stat-value{font-size:25px;line-height:28px;margin-top:3px}
.leader-dashboard .stat-value small{font-size:13px}
.leader-dashboard .stat-foot{font-size:11px;line-height:14px;margin-top:4px;align-items:flex-start}
.leader-dashboard .stat-foot svg{width:12px;height:12px;margin-top:1px}
.leader-dashboard .stat.highlight .stat-top,.leader-dashboard .stat.highlight .stat-foot{color:#f3ddf7}
.projection-card .stat-value{display:flex;gap:18px;flex-wrap:wrap}
.projection-card .stat-value:has(.projection-shift){font-size:21px;column-gap:10px}
.projection-shift{display:inline-flex;align-items:baseline;gap:5px}
.leader-dashboard .projection-shift small{font-size:12px;margin:0;color:#f3ddf7}
.leader-table-tools{display:flex;align-items:center;gap:14px;padding:10px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.leader-table-tools>.tabs{border:0;padding:0;margin-right:auto;gap:18px;align-self:stretch}
.leader-table-tools>.tabs button{display:inline-flex;align-items:center;padding:6px 0;line-height:20px}
.leader-table-tools .tab-count{line-height:16px}
.leader-table-tools>.search{flex:0 1 220px}
.leader-table-tools .search input{padding-block:7px}
.leader-table-tools>.segments{flex-shrink:0}
.leader-live-panel table{table-layout:fixed;min-width:800px}
.leader-live-panel th:first-child{width:250px}
.leader-live-panel th,.leader-live-panel td{padding:7px 10px;white-space:normal;text-align:center}
.leader-live-panel th:first-child,.leader-live-panel td:first-child{text-align:left;padding-left:16px}
.leader-live-panel th.status-column{width:110px}
#daily-table .operator-status{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;max-width:100%}
#daily-table .operator-status>.status{max-width:100%;font-size:11px;line-height:14px;gap:4px;white-space:normal;overflow-wrap:anywhere;justify-content:center}
#daily-table .operator-status .live-dot{flex-shrink:0}
#daily-table .operator-status-tags{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:3px;min-width:0;max-width:100%}
#daily-table .operator-status-tags:empty{display:none}
#daily-table .operator-status .attendance-tag{max-width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;justify-content:center;text-align:center;font-size:10px;line-height:13px;padding:2px 5px;border-radius:4px}
#daily-table .operator-status .attendance-tag.late,#daily-table .operator-status .attendance-tag.early{width:74px}
.leader-live-panel th:last-child,.leader-live-panel td:last-child:not([colspan]){display:none}
.leader-live-panel tbody td{height:55px;line-height:22px}
.leader-live-panel .operator-cell{gap:10px}
.leader-live-panel .operator-cell .avatar{width:30px;height:30px;font-size:10px}
.leader-live-panel .operator-name{line-height:20px}
.leader-live-panel .operator-city{line-height:16px;margin-top:2px}
.leader-live-panel .sort-heading{max-width:100%;min-width:0;white-space:normal;justify-content:center;gap:6px;text-align:center}
.leader-live-panel th:first-child .sort-heading{justify-content:flex-start;text-align:left}
.leader-live-panel .sort-indicator{flex:0 0 12px;width:12px;text-align:center}
.leader-live-panel th:nth-child(3),.leader-live-panel td:nth-child(3),.leader-live-panel th:nth-child(5),.leader-live-panel td:nth-child(5){border-left:1px solid #dfcfe9}
.leader-live-panel .queue-edit{display:inline-flex;margin:0 0 0 6px;font-size:11px;line-height:16px}
.leader-live-panel .shift-hours-breakdown{font-size:10px;line-height:13px;margin-top:2px}
.start-request-time{display:block;font-size:11px;line-height:15px;color:var(--muted);margin-top:2px}
.pending-start-note{font-size:12px;line-height:17px;display:inline-block;color:var(--muted)}
.operator-grid .mine .pending-start-note{color:#efd3fa}
.request-start{font-size:12px;padding:8px 10px}
.alert-section-title{margin:15px 0 12px}
.leader-session-tag{display:inline-flex;align-items:center;justify-content:center;font-size:10px;line-height:16px;padding:1px 4px;margin-right:6px;border-radius:4px;background:var(--primary-soft);color:var(--primary);vertical-align:middle}
.leader-live-panel tfoot td{padding-block:10px}
.leader-live-panel .table-footer{padding:8px 16px;font-size:12px}
@media(max-width:800px){.leader-dashboard .leader-page-head{flex-wrap:wrap}.leader-table-tools{gap:10px}.leader-table-tools>.tabs{flex:1 1 100%}.leader-table-tools>.search{flex:1 1 160px}.leader-dashboard .stat{padding:9px}.leader-dashboard .planning-notice,.leader-dashboard .shift-alert-banner{flex-wrap:wrap}.leader-dashboard .planning-notice .btn,.leader-dashboard .shift-alert-banner .btn{margin-left:auto}}
@media(max-width:580px){.leader-dashboard .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.leader-stats .stat:last-child{grid-column:1/-1}.leader-dashboard .stat-foot{display:none}.leader-dashboard .stat-value{font-size:23px}.leader-dashboard .planning-notice p,.leader-dashboard .shift-alert-banner p{display:none}.leader-live-panel th:first-child{width:230px}.leader-table-tools>.tabs{gap:15px}}

/* Shared administration and team-leader structure. */
.structure-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 14px}
.structure-head h2{font-size:var(--text-heading)}
.structure-head>span{font-size:var(--text-meta);color:var(--muted)}
.structure-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.structure-tabs button{display:flex;align-items:center;justify-content:center;gap:9px;border:1px solid var(--line);border-radius:8px;background:var(--theme-surface, #fff);color:var(--muted);padding:14px 10px;font-size:var(--text-body);font-weight:600}
.structure-tabs button svg{width:18px;height:18px}
.structure-tabs button.active{color:var(--primary);background:var(--primary-soft);border-color:#c49bd9;box-shadow:inset 0 -3px var(--brand-magenta)}
.structure-tools{padding:12px 18px;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:center}
.structure-tools .segments span{font-size:11px;opacity:.75;margin-left:4px}
.staff-panel .structure-tools{flex-wrap:wrap}
.staff-role-filters{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}
.staff-role-filters button{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid var(--line);border-radius:6px;background:var(--theme-surface, #fff);color:var(--muted);font-size:12px;line-height:18px}
.staff-role-filters button.active{background:var(--primary-soft);border-color:#c49bd9;color:var(--primary)}
.staff-role-filters button span{font-size:11px;line-height:16px;padding:0 4px;border-radius:3px;background:var(--primary-soft)}
.staff-role-filters button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
@media(max-width:800px){.staff-role-filters{flex-basis:100%;margin-left:0}}
.staff-counts{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.staff-status{display:inline-flex;align-items:center;padding:3px 8px;border-radius:5px;font-size:12px;line-height:18px;white-space:nowrap}
.staff-active{color:#247447;background:#eaf5ee}
.staff-training{color:#755600;background:#fff2a8}
.staff-ended,.staff-inactive{color:var(--muted);background:#f1ebf5}
.content table.staff-table{font-size:var(--text-body);width:100%;min-width:980px;table-layout:fixed}
.staff-table th,.staff-table td{padding:9px 14px;text-align:left;vertical-align:middle;white-space:normal;overflow-wrap:anywhere}
.staff-table .staff-col-name{width:22%}
.staff-table .staff-col-role{width:16%}
.staff-table .staff-col-room{width:10%}
.staff-table .staff-col-shift{width:6%}
.staff-table .staff-col-status{width:14%}
.staff-table .staff-col-password{width:13%}
.staff-table .staff-col-actions{width:19%}
.staff-table tbody tr{height:64px}
.staff-table tbody td{height:auto;line-height:18px}
.staff-table .staff-status{max-width:100%;white-space:normal}
.staff-table .staff-password-cell,.staff-table .staff-actions-cell{border-left:1px solid var(--line)}
.staff-table .employment-link{max-width:100%;min-width:0;margin:0;font-size:12px;line-height:18px;text-align:left;white-space:normal;overflow-wrap:anywhere}
.staff-table .operator-cell .avatar{width:30px;height:30px;font-size:10px;flex-shrink:0}
.staff-table .operator-cell{gap:10px}
.staff-table .operator-cell>div:last-child{min-width:0}
.staff-table .operator-name{font-size:var(--text-body);line-height:20px}
.staff-table .operator-city{font-size:12px;line-height:16px;overflow-wrap:anywhere;margin-top:1px}
.staff-actions{display:flex;align-items:flex-start;flex-direction:column;gap:4px;min-width:0;max-width:100%}
.staff-actions .employment-link{display:inline-flex;flex-shrink:0;min-height:22px;height:auto;margin:0;padding:2px 0;font-size:12px;white-space:normal}
.staff-actions .btn{flex-shrink:0;max-width:100%;min-height:26px;height:auto;font-size:11px;line-height:16px;padding:4px 7px;text-align:left;white-space:normal;overflow-wrap:anywhere}
.structure-races{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.structure-card{padding:22px}
.structure-card h2{font-size:var(--text-heading);margin-top:10px}
.structure-card p{font-size:var(--text-body);line-height:1.7;color:var(--muted);margin-top:7px}
.structure-icon{display:inline-flex;padding:9px;border-radius:8px;background:var(--primary-soft);color:var(--primary)}
.structure-icon svg{width:21px;height:21px}
.structure-prizes{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}
.structure-prizes span{background:#faf6fc;border:1px solid var(--line);padding:5px 8px;border-radius:5px;font-size:12px;color:var(--primary)}
.structure-race-tiers{grid-column:1/-1}
.structure-race-tiers table th,.structure-race-tiers table td{text-align:left}
.structure-roles article{display:flex;align-items:center;gap:15px;padding:20px;border-bottom:1px solid var(--line)}
.structure-roles article:last-child{border-bottom:0}
.structure-roles article>div{flex:1;min-width:0}
.structure-roles h3{font-size:var(--text-body)}
.structure-roles p{font-size:var(--text-meta);color:var(--muted);line-height:1.7;margin-top:4px}
.structure-room-table th,.structure-room-table td{text-align:left}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:650px){.structure-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.structure-races{grid-template-columns:1fr}.staff-panel .panel-head{flex-wrap:wrap;gap:12px}.structure-roles article{align-items:flex-start;flex-wrap:wrap}.structure-roles article>.badge{margin-left:54px}}

/* KPI cards share the same compact layout in live views and monthly reports. */
.content .compact-stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:12px}
.compact-stats .stat{padding:10px 12px;min-height:78px}
.compact-stats .stat.highlight{grid-column:auto}
.compact-stats .stat-top{font-size:12px;line-height:17px;gap:6px}
.compact-stats .stat-icon{padding:3px;border-radius:5px}
.compact-stats .stat-icon svg{width:14px;height:14px}
.compact-stats .stat-value{font-size:25px;line-height:28px;margin-top:5px}
.compact-stats .stat-value small{font-size:13px}
.compact-stats .stat.closures-card{background:#e7f5eb;border-color:#c2e3cd;color:#205d39}
.compact-stats .closures-card .stat-top,.compact-stats .closures-card .stat-value{color:#205d39}
.compact-stats .closures-card .stat-icon{background:#d2ebdb;color:#205d39}
.analytics-head{align-items:center;gap:16px}
.analytics-head input{width:150px}
.dashboard-kind-tabs{display:inline-flex;gap:6px;padding:4px;max-width:100%}
.dashboard-kind-tabs>button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;font-size:14px;white-space:nowrap}
.dashboard-kind-tabs svg{width:17px;height:17px}
.analytics-filters>.report-filter-tools{width:100%;padding:0;border:0}
.analytics-filters{margin-bottom:12px}
.analytics-filters>.tabs{margin-right:auto}
.analytics-filters+.compact-stats{margin-top:0}
.chart-scroll{overflow-x:auto;padding-bottom:3px}
.chart-scroll .chart-plot{min-width:620px;height:190px}
.chart-scroll .empty{flex:1}
@media(max-width:650px){.content .compact-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.compact-stats .stat:last-child{grid-column:1/-1}.compact-stats .stat-value{font-size:23px}.analytics-head{flex-wrap:wrap}}

.monthly-person-controls{display:flex;align-items:center;gap:8px;min-width:0}
.monthly-person-close{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;border-radius:6px;background:var(--primary-soft);color:var(--primary)}
.monthly-person-close svg{width:15px;height:15px}
.monthly-person-inspector.is-collapsed{padding:10px 16px;margin-bottom:12px}
.monthly-person-inspector.is-collapsed .monthly-hours-heading{margin:0}
.monthly-person-inspector.is-open{display:grid;grid-template-columns:minmax(190px,230px) minmax(0,1fr);gap:20px;align-items:start}
.monthly-person-inspector.is-open .monthly-hours-heading{flex-direction:column;align-items:stretch;justify-content:flex-start;margin:0;gap:12px}
.monthly-person-inspector.is-open .monthly-person-controls{align-items:flex-end}
.monthly-person-inspector.is-open .monthly-person-select{flex:1;flex-direction:column;align-items:stretch;gap:5px;min-width:0}
.monthly-person-inspector.is-open .monthly-person-select select{width:100%;max-width:none;min-width:0}
.monthly-person-inspector.is-open .monthly-person-close{margin-bottom:3px}
.monthly-hours-details{min-width:0}
.monthly-person-period{font-size:var(--text-meta);color:var(--muted);line-height:1.6;margin-bottom:12px}
.monthly-person-inspector .monthly-hours-values,.monthly-person-inspector .monthly-presence-values{gap:12px}
.monthly-person-inspector .monthly-hours-values>div+div{padding-left:12px}
@media(max-width:800px){.monthly-person-inspector.is-open{grid-template-columns:1fr;gap:15px}.monthly-person-inspector.is-open .monthly-hours-heading{flex-direction:row;align-items:center;flex-wrap:wrap}.monthly-person-inspector.is-open .monthly-person-select{flex-direction:row;align-items:center}.monthly-person-inspector.is-open .monthly-person-close{margin:0}}
@media(max-width:580px){.monthly-person-inspector .monthly-person-controls{width:100%}.monthly-person-inspector .monthly-person-select{flex:1}.monthly-person-inspector.is-open .monthly-person-select{flex-wrap:wrap}.monthly-person-inspector .monthly-hours-values{grid-template-columns:repeat(2,minmax(0,1fr))}.monthly-person-inspector .monthly-hours-values>div:nth-child(3){padding-left:0;border-left:0}}

.structure-tabs{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.structure-tabs button{padding:12px 6px;font-size:13px;line-height:18px;gap:6px}
.structure-tabs button svg{flex-shrink:0;width:16px;height:16px}
.content .structure-catalog-table{font-size:14px;min-width:780px}
.structure-catalog-table th,.structure-catalog-table td{text-align:left;padding:12px 14px;white-space:normal;vertical-align:middle}
.structure-catalog-table td:last-child{min-width:155px}
.catalog-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.catalog-actions .btn{padding:6px 8px;font-size:12px;gap:5px}
.catalog-actions .btn svg{width:13px;height:13px}
.catalog-actions .employment-link{font-size:12px;margin:0}
.catalog-tag{display:inline-block;font-size:12px;padding:3px 6px;border-radius:4px;background:var(--primary-soft);color:var(--primary);margin:2px 5px 2px 0}
.structure-roles small{font-size:12px;color:var(--muted);display:block;margin-top:5px}
.catalog-products{border:1px solid var(--line);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.catalog-products legend{font-size:13px;color:var(--muted);padding:0 4px}
.catalog-products label{display:flex;align-items:center;gap:8px;font-size:14px}
.catalog-products input{width:16px;height:16px;accent-color:var(--primary)}
.assignment-fields select{min-width:0;width:100%}
@media(max-width:1050px){.structure-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.structure-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.structure-roles .catalog-actions{margin-left:54px}}

/* Weekly presence matrix for managers; operators keep their own Thursday form. */
.weekly-team-head{gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.weekly-team-head h1{font-size:24px}
.weekly-team-head .planning-period{margin:0}
.weekly-team-head .btn.selected{background:var(--primary-soft);border-color:#c49bd9;color:var(--primary)}
.weekly-team-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line)}
.weekly-team-tools .search{width:250px;max-width:65%}
.weekly-team-tools .search input{padding-block:7px}
.content table.weekly-presence-grid{font-size:13px;table-layout:fixed;min-width:900px;width:100%;border-collapse:separate;border-spacing:0}
.weekly-presence-grid .weekly-name-col{width:20%}
.weekly-presence-grid .weekly-note-col{width:24%}
.weekly-presence-grid .weekly-slot-col{width:5.6%}
.team-weekly-planning .weekly-presence-grid th{width:auto;min-width:0;font-size:11px;letter-spacing:0;text-transform:none}
.team-weekly-planning .weekly-presence-grid th,.team-weekly-planning .weekly-presence-grid td{padding:6px 5px;white-space:normal;text-align:center;line-height:17px}
.weekly-presence-grid thead th{background:#f2e8f8;color:var(--primary);border-bottom:1px solid #e4d5ed}
.weekly-presence-grid thead tr:first-child th{font-size:12px;font-weight:650}
.weekly-presence-grid thead th small{margin-top:1px;font-size:10px;line-height:14px}
.weekly-presence-grid thead tr:last-child th{padding-block:4px;background:var(--theme-subtle, #faf6fc)}
.team-weekly-planning .weekly-presence-grid th.weekly-person-heading,.team-weekly-planning .weekly-presence-grid th.weekly-notes-heading{text-align:left;padding-left:12px}
.weekly-presence-grid thead .day-start,.weekly-presence-grid tbody .weekly-presence:nth-child(2n+3),.weekly-presence-grid tfoot td:nth-child(2n){border-left:1px solid #dfcfe9}
.team-weekly-planning .weekly-presence-grid tbody td{height:42px}
.team-weekly-planning .weekly-presence-grid td.weekly-person,.team-weekly-planning .weekly-presence-grid td.weekly-note{text-align:left;background:var(--theme-surface, #fff);padding:5px 10px}
.weekly-person-top{display:flex;align-items:center;gap:4px}
.weekly-person-top strong{font-size:13px;line-height:17px;font-weight:600;flex:1;overflow-wrap:anywhere}
.weekly-person>small{font-size:10px;line-height:14px;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.weekly-edit{display:grid;place-items:center;width:24px;height:24px;flex-shrink:0;border-radius:5px;color:var(--primary);background:transparent}
.weekly-edit:hover,.weekly-edit:focus-visible{background:var(--primary-soft)}
.weekly-edit svg{width:13px;height:13px}
.weekly-note>button{display:block;text-align:left;width:100%;padding:0;background:transparent;color:var(--primary);font-size:12px;line-height:17px}
.weekly-note>button>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;white-space:pre-wrap}
.weekly-note small{display:block;font-size:10px;color:var(--muted)}
.weekly-presence.is-present{background:#f0f8f3;color:#287447;font-weight:650}
.weekly-presence.is-full{background:#f8e7f4;color:#8e247c;font-weight:650}
.weekly-presence.is-partial{background:#fff2d7;color:#8b5a13;font-weight:650}
.weekly-presence.is-partial small{display:block;font-size:9px;line-height:11px;font-weight:500}
.plan-am_first,.plan-am_last{background:#faecd5;color:#936525}
.plan-pm_first,.plan-pm_last{background:#eee3f9;color:#7d3aa4}
.plan-am_pm_first,.plan-am_pm_last,.plan-am_first_pm,.plan-am_last_pm{background:#f8e2f3;color:#9c367f}
.weekly-presence.is-absent{background:#fff0f4;color:#b13f69;font-size:11px}
.weekly-presence.is-off{color:#cfbfd8}
.weekly-presence.is-unfilled{background:#fcfafc;color:#b9a9c3}
.team-weekly-planning .weekly-presence-grid .weekly-room-divider th{text-align:left;padding:5px 12px;background:#f7f0fa;border-block:1px solid #e5d7ed;color:var(--primary);font-size:12px;line-height:17px}
.weekly-room-divider span{font-size:11px;font-weight:400;color:var(--muted);margin-left:10px}
.team-weekly-planning .weekly-presence-grid tfoot th{text-align:left;padding-left:12px}
.weekly-presence-grid tfoot td,.weekly-presence-grid tfoot th{font-weight:650;border-top:1px solid var(--line);height:32px}
.weekly-telemarketing th,.weekly-telemarketing td{background:#f3eaf9;color:var(--primary)}
.weekly-teleselling th,.weekly-teleselling td{background:#eaf3fb;color:#356185}
.weekly-difference th{background:#f5f1f8;color:var(--ink)}
.weekly-difference .coverage-balanced{background:#e5f4e9;color:#25613b}
.weekly-difference .coverage-surplus{background:#fff3d6;color:#8a631b}
.weekly-difference .coverage-shortage{background:#fce8ef;color:#a33359}
.weekly-coverage-help{gap:10px;padding:10px 16px;font-size:11px;flex-wrap:wrap}
.weekly-edit:focus-visible,.weekly-note>button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
@media(max-width:650px){.weekly-team-head{align-items:flex-start;flex-direction:column}.weekly-team-head h1{font-size:22px}.weekly-team-tools{padding-inline:12px}.weekly-team-tools .planning-counter{font-size:10px}.weekly-presence-grid .weekly-person,.weekly-presence-grid .weekly-person-heading{position:sticky;left:0;z-index:1;box-shadow:1px 0 #dfcfe9}}

/* Magenta navigation shared by every role, including the compact mobile menu. */
.sidebar{--sidebar-magenta:#a21a8c;background:var(--sidebar-magenta);border-color:#8e126f;color:#fff}
.sidebar .nav button{color:#fff}
.sidebar .nav button:hover{background:#ffffff1c;color:#fff}
.sidebar .nav button.active,.sidebar .nav button.active:hover{background:linear-gradient(110deg,#f2e9f9,#ffe6f5);color:var(--primary);box-shadow:inset 3px 0 var(--accent),0 4px 12px #4f0e6330}
.sidebar .nav button:focus-visible{outline:2px solid #fff;outline-offset:2px}
.sidebar .nav .count{background:#fff;color:#941078}
.sidebar .nav button.active .count{background:#941078;color:#fff}
.sidebar .workspace-label,.sidebar .side-footer{color:#ffe1f5}
.sidebar .side-footer .live-dot{background:#ffb4e3}
.sidebar .flipp-brand{color:#fff;--flipp-dot:#ffb4e3}
.sidebar .flipp-brand .brand-name{color:inherit}

/* Selected rooms and shifts share the violet/pink selection and soft elevation. */
.tabs[role="group"]{gap:8px;padding-block:4px}
.tabs[role="group"]>button[data-city]{display:inline-flex;align-items:center;padding:4px 9px;border:1px solid transparent;border-radius:7px;line-height:20px;transition:background .17s,color .17s,border-color .17s,box-shadow .17s}
.tabs[role="group"]>button[data-city]:hover{background:#f8f0fb;color:var(--primary)}
.tabs[role="group"]>button[data-city].active{background:linear-gradient(110deg,#f2e9f9,#ffe6f5);border-color:#d9bce7;color:var(--primary);box-shadow:inset 0 -2px var(--accent),0 3px 8px #6d1c961c}
.tabs[role="group"]>button[data-city].active:after{display:none}
.tabs[role="group"]>button[data-city].active .tab-count{background:var(--primary);color:#fff}
.segments>button.active,.operator-shift-tabs>button.active{background:linear-gradient(110deg,#f2e9f9,#ffe6f5);color:var(--primary);box-shadow:inset 0 0 0 1px #d9bce7,0 2px 6px #6d1c9620}

/* Dense monthly calendar: reserve the width for dates rather than fixed columns. */
.calendar-panel .month-calendar{--calendar-name-width:140px;--calendar-total-width:64px;--calendar-day-width:32px}
.content table.month-calendar{font-size:12px}
.calendar-panel .month-calendar th,.calendar-panel .month-calendar td{width:var(--calendar-day-width);min-width:var(--calendar-day-width);max-width:var(--calendar-day-width);padding:0}
.calendar-panel .month-calendar th{height:40px;font-size:12px;line-height:16px}
.calendar-panel .month-calendar th small{font-size:9px;line-height:12px;margin-top:1px}
.calendar-panel .month-calendar th:first-child,.calendar-panel .month-calendar td:first-child{width:var(--calendar-name-width);min-width:var(--calendar-name-width);max-width:var(--calendar-name-width);padding:4px 8px}
.calendar-panel .month-calendar .calendar-total-heading,.calendar-panel .month-calendar .calendar-person-total{left:var(--calendar-name-width);width:var(--calendar-total-width);min-width:var(--calendar-total-width);max-width:var(--calendar-total-width);padding:4px 5px;text-align:center}
.calendar-panel .month-calendar th:first-child,.calendar-panel .month-calendar .calendar-total-heading{font-size:10px;line-height:13px;letter-spacing:0;white-space:normal}
.calendar-panel .month-calendar .operator-name{font-size:12px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-panel .month-calendar .operator-city{font-size:10px;line-height:13px;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-panel .month-calendar .mine-tag{font-size:8px;line-height:11px;padding:1px 3px;margin-left:3px}
.calendar-panel .month-calendar .calendar-day{min-height:42px;padding:4px 2px;gap:2px}
.calendar-panel .month-calendar .calendar-day strong,.calendar-panel .month-calendar .calendar-person-total strong{font-size:12px;line-height:16px}
.calendar-panel .month-calendar .calendar-markers{gap:2px;max-width:100%}
.calendar-panel .month-calendar .attendance-symbol{font-size:8.5px;line-height:12px;padding:0 2px;border-radius:3px;white-space:nowrap}
.calendar-panel .month-calendar tfoot td{height:32px;font-size:11px;line-height:15px}
@media(max-width:800px){.calendar-panel .month-calendar{--calendar-name-width:126px;--calendar-total-width:60px;--calendar-day-width:31px}}
@media(max-width:580px){.calendar-panel .month-calendar{--calendar-name-width:110px;--calendar-total-width:56px;--calendar-day-width:30px}.calendar-panel .month-calendar .operator-name{font-size:11px}.calendar-panel .month-calendar .operator-city{font-size:9px}.calendar-panel .month-calendar .calendar-day strong,.calendar-panel .month-calendar .calendar-person-total strong{font-size:11px}}

.operator-performance{margin:18px 0 22px}
.performance-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.performance-heading h2{font-size:17px}
.analytics-person-select select{max-width:300px;border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:var(--theme-surface, #fff);color:var(--theme-link, var(--primary));font-size:12px}
.performance-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.performance-basis{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.performance-sample{font-size:11px;color:var(--muted);margin-left:auto}
.operator-rankings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.operator-ranking-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.content .operator-ranking-head h3{font-size:15px}
.operator-ranking-head>span{font-size:11px;padding:3px 7px;border-radius:5px;white-space:nowrap}
.ranking-support .operator-ranking-head>span{background:#fff0d8;color:#82591b}
.ranking-best .operator-ranking-head>span{background:#e8f5eb;color:#28643e}
.operator-ranking-scroll{overflow:auto;max-height:340px}
.content .operator-ranking table{font-size:13px;table-layout:auto;min-width:350px}
.operator-ranking th{font-size:10px;letter-spacing:.2px;position:sticky;top:0;z-index:1}
.operator-ranking th,.operator-ranking td{padding:8px 9px;text-align:right;white-space:nowrap}
.operator-ranking th:first-child,.operator-ranking td:first-child{padding-left:16px;text-align:left;width:100%;white-space:normal}
.operator-ranking th:last-child,.operator-ranking td:last-child{padding-right:16px}
.analytics-person{font-size:13px;font-weight:600;color:var(--primary);background:transparent;text-align:left;padding:0;line-height:19px}
.analytics-person:hover{text-decoration:underline;text-underline-offset:3px}
.operator-ranking td:first-child small{display:block;font-size:11px;line-height:16px;color:var(--muted);margin-top:2px}
.operator-ranking .ranking-count{font-weight:700;color:var(--ink)}
.operator-ranking.ranking-by-rates .ranking-count{font-weight:400}
.operator-ranking.ranking-by-rates td:last-child{font-weight:700;color:var(--primary)}
.ranking-foot{font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding:8px 16px}
.operator-ranking .empty{padding:20px 14px;white-space:normal;font-size:12px}
.modal.analytics-operator-dialog{width:min(1000px,96vw);padding:22px}
.analytics-operator-dialog>.modal-top h2{font-size:20px}
.analytics-operator-dialog>.compact-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}
.operator-daily-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}
.operator-daily-chart{border:1px solid var(--line);border-radius:8px;padding:14px;min-width:0}
.operator-daily-chart h3{font-size:14px}
.operator-daily-chart .chart-plot{height:125px;margin-top:18px;gap:5px}
.operator-daily-chart .chart-bar{max-width:22px}
.operator-daily-chart .chart-bar.is-zero{min-height:0}
.operator-daily-chart .chart-bar-wrap small{font-size:9px}
.operator-closures-chart .chart-bar,.operator-closures-chart .chart-bar-wrap:last-child .chart-bar{background:#7ebd90}
.operator-closures-chart .chart-bar-wrap:hover .chart-bar{background:#357b4d}
.calendar-closure-entry{background:#eef8f0;border:1px solid #c2e3cd;border-radius:12px;padding:18px;margin:8px 0 16px}
.calendar-closure-entry h3{display:flex;align-items:center;gap:8px;color:#205d39;margin:0 0 16px}
.calendar-closure-entry h3 svg{width:20px;height:20px}
.closure-date-note{font-size:12px;line-height:1.6;color:#487256}
.calendar-presence-details>summary{padding:12px 0;color:var(--primary);font-weight:600;cursor:pointer}
.calendar-panel .calendar-closure-count{background:#d9efdf;color:#205d39}
.attendance-tag.early,.attendance-symbol.early{background:#fff0d0;color:#8b5d0a}
.calendar-day.is-early{box-shadow:inset 0 -3px #e8b648}
.btn.early-departure-button{background:#fff0c6;color:#79540d;border:1px solid #e7c973;width:100%;justify-content:center;margin:8px 0 14px}
.early-departure-preview{padding:16px;border:1px solid #e7c973;border-radius:9px;background:#fffaf0;color:#654b1d;font-size:14px;line-height:1.7;margin-bottom:18px}
#celebration-root{position:fixed;inset:0;z-index:1300;pointer-events:none;overflow:hidden}
.closure-celebration{position:absolute;inset:0;background:linear-gradient(180deg,#e94dba16,transparent 40%);animation:closure-wash 4.2s ease both}
.closure-celebration-card{pointer-events:auto;position:relative;display:flex;align-items:center;gap:16px;max-width:520px;width:calc(100% - 32px);margin:90px auto 0;padding:22px 24px;border:1px solid #e8b1db;border-radius:18px;background:linear-gradient(120deg,#fff5fc,#f0fff3);box-shadow:0 16px 55px #5c1a7c30;animation:closure-card-in .45s ease-out both}
.closure-celebration-icon{display:grid;place-items:center;flex:none;width:58px;height:58px;border-radius:50%;background:#ffe895;color:#8c6209}
.closure-celebration-icon svg{width:30px;height:30px}
.closure-celebration-card strong{display:block;font-size:22px;line-height:1.3;color:#55166e;margin-top:3px}
.closure-celebration-kicker{color:#8c2785;font-size:12px;font-weight:700;letter-spacing:.04em}
.closure-celebration-card p{font-size:13px;color:#3b6a49;margin:7px 0 0}
.closure-celebration-card button{align-self:flex-start;padding:3px;color:#7e608b;background:transparent;margin-left:auto}
.closure-celebration-card button svg{width:18px;height:18px}
.closure-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.closure-confetti i{position:absolute;top:-20px;left:var(--x);width:8px;height:15px;background:var(--color);border-radius:2px;animation:closure-confetti-fall 3.7s var(--delay) ease-in both}
@keyframes closure-confetti-fall{0%{transform:translateY(-25px) rotate(0);opacity:0}10%{opacity:1}100%{transform:translateY(100vh) rotate(var(--tilt));opacity:0}}
@keyframes closure-card-in{from{transform:translateY(-20px) scale(.96);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}
@keyframes closure-wash{0%,100%{opacity:0}12%,85%{opacity:1}}
@media(prefers-reduced-motion:reduce){.closure-confetti{display:none}.closure-celebration,.closure-celebration-card{animation:none}}
@media(max-width:580px){.closure-celebration-card{margin-top:65px;padding:16px;gap:12px}.closure-celebration-card strong{font-size:18px}.closure-celebration-icon{width:42px;height:42px}}
.operator-detail-scroll{overflow:auto;max-height:270px;border:1px solid var(--line);border-radius:8px}
.operator-detail-table{font-size:13px;min-width:620px}
.operator-detail-table th{position:sticky;top:0;font-size:11px}
.operator-detail-table th,.operator-detail-table td{padding:9px 12px}
.analytics-operator-dialog p.operator-detail-note{font-size:11px;line-height:17px;margin:12px 0 0}
@media(max-width:950px){.operator-rankings{grid-template-columns:1fr}.operator-ranking-scroll{max-height:300px}}
@media(max-width:650px){.analytics-person-select,.analytics-person-select select{max-width:100%;width:100%}.performance-sample{margin-left:0;width:100%}.operator-daily-charts{grid-template-columns:1fr}.analytics-operator-dialog>.compact-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-operator-dialog>.compact-stats .stat:last-child{grid-column:auto}.modal.analytics-operator-dialog{padding:16px}.analytics-operator-dialog>.modal-top h2{font-size:18px}}

.monthly-report>.tabs,.analytics-filters>.tabs{overflow-x:auto;min-width:0;max-width:100%;scrollbar-width:thin}
.monthly-report>.tabs button,.analytics-filters>.tabs button{flex-shrink:0;white-space:nowrap}
.analytics-filters>.tabs{flex:1 1 360px}

/* Expand the live table within the app; polling can replace rows without exiting. */
.leader-live-panel .leader-table-tools{flex-wrap:nowrap;gap:10px}
.leader-live-panel .leader-table-tools>.tabs{flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:thin;gap:8px}
.leader-live-panel .leader-table-tools>.tabs>button{flex-shrink:0;white-space:nowrap}
.leader-live-panel .leader-table-tools>.search{flex:0 1 190px;min-width:140px}
.leader-live-panel .table-expand-toggle{flex-shrink:0;background:#ffdb58;color:#654800;border:1px solid #e8bf35;padding:8px 11px;font-size:11px;font-weight:750;box-shadow:0 2px 5px #a77a0d1c}
.leader-live-panel .table-expand-toggle:hover{background:#ffd036;box-shadow:0 3px 8px #a77a0d30}
.leader-live-panel .table-expand-toggle:focus-visible{outline-color:#866000}
.row-edit.register-hours-button{background:#ffdb58;color:#654800;border:1px solid #e8bf35;border-radius:6px;padding:5px 8px;font-size:12px;line-height:16px;box-shadow:0 2px 5px #a77a0d1c;white-space:nowrap}
.row-edit.register-hours-button:hover{background:#ffd036;box-shadow:0 3px 8px #a77a0d30}
.row-edit.register-hours-button:focus-visible{outline:2px solid #866000;outline-offset:2px}
.sidebar .nav .nav-dashboard{margin-bottom:14px}
.sidebar>.nav{margin-top:28px}
.commission-filter{display:flex;align-items:center;gap:14px;padding:8px 12px;margin-bottom:12px;background:var(--theme-surface, #fff);border:1px solid var(--line);border-radius:10px;min-width:0}
.commission-filter>span{font-size:12px;color:var(--muted);flex-shrink:0}
.commission-tabs{display:flex;align-items:center;gap:8px;min-width:0;overflow-x:auto;scrollbar-width:thin;padding:3px}
.commission-tabs button{flex-shrink:0;padding:7px 16px;border:1px solid var(--line);border-radius:7px;background:var(--theme-subtle, #faf7fc);color:var(--theme-link, var(--primary));font-size:12px;font-weight:650;white-space:nowrap}
.commission-tabs button:hover{background:#f7e8f6;border-color:#d99ee0}
.commission-tabs button.active{background:linear-gradient(110deg,#efe2f8,#ffe2f4);border-color:#d99ee0;box-shadow:inset 0 -2px var(--accent),0 3px 7px #8b208522}
.commission-tabs button:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
.page-head.dashboard-filter-head{align-items:center;gap:12px;margin-bottom:12px}
.dashboard-filter-head>.commission-filter{flex:1 1 auto;min-width:0;margin:0;padding:0;background:transparent;border:0;border-radius:0}
.dashboard-filter-head>.date-control{flex-shrink:0;margin-left:auto}
.dashboard-filter-head>#work-schedule-status{flex-shrink:0;margin-left:auto;font-size:11px;line-height:16px;padding:7px 10px;white-space:nowrap}
.dashboard-filter-head>#work-schedule-status+.date-control{margin-left:0}
.table-expanded .leader-live-panel>.commission-filter{flex-shrink:0;margin:0;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:5px 16px}
@media(max-width:650px){.page-head.dashboard-filter-head{flex-wrap:wrap}.dashboard-filter-head>.commission-filter{flex:1 1 250px}}
@media(max-width:580px){.sidebar>.nav{margin-top:0}.sidebar .nav .nav-dashboard{margin-bottom:0;margin-right:14px}.commission-filter{gap:8px}.commission-tabs button{padding-inline:12px}}
.table-expand-toggle svg{width:15px;height:15px}
.modal .catalog-room-preview{margin-top:10px;padding:9px 12px;border-radius:6px;background:var(--primary-soft);color:var(--primary);font-size:13px;font-weight:650}
.layout.table-expanded{height:100vh;height:100dvh;min-height:0;overflow:hidden;grid-template-columns:minmax(0,1fr)}
.layout.table-expanded>.sidebar,.layout.table-expanded>.main>.topbar,.layout.table-expanded>.main>.demo-banner{display:none}
.layout.table-expanded>.main{grid-column:1;min-height:0}
.layout.table-expanded .leader-dashboard{height:100%;max-width:none;padding:0}
.layout.table-expanded .leader-dashboard>:not(.leader-live-panel){display:none}
.layout.table-expanded .leader-live-panel{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;border:0;border-radius:0;box-shadow:none}
.table-expanded .leader-live-panel>.leader-table-tools{flex-shrink:0;background:var(--theme-surface, #fff)}
.table-expanded .leader-live-panel>#daily-table{display:flex;flex:1;flex-direction:column;min-height:0}
.table-expanded #daily-table>.table-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain}
.table-expanded .leader-live-panel thead th{position:sticky;top:0;z-index:2;background:var(--theme-subtle, #faf7fb)}
.table-expanded .leader-live-panel tfoot td{position:sticky;bottom:0;z-index:2;background:#f3e9f8;padding-block:8px}
.table-expanded .leader-live-panel tbody td{height:44px;padding-block:4px;line-height:18px}
.table-expanded .leader-live-panel .operator-name{font-size:14px;line-height:18px}
.table-expanded .leader-live-panel .operator-city{font-size:11px;line-height:14px;margin-top:1px}
.table-expanded .leader-live-panel .operator-cell .avatar{width:26px;height:26px;font-size:9px}
.table-expanded .leader-live-panel>.table-footer{display:none}
@media(max-width:650px){
 .leader-live-panel .leader-table-tools{flex-wrap:wrap;gap:8px;padding:8px 12px}
 .leader-live-panel .leader-table-tools>.tabs{flex:1 1 100%}
 .leader-live-panel .leader-table-tools>.search{flex:1 1 100px;min-width:100px;max-width:none}
 .leader-live-panel .leader-table-tools>.segments button{padding-inline:7px;font-size:12px}
 .leader-live-panel .table-expand-toggle{padding-inline:9px;gap:6px}
}
.assignment-access{margin:20px 0 0;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.assignment-access[hidden]{display:none}
[data-assignment-admin][hidden],[data-assignment-training-note][hidden],[data-tls-training][hidden]{display:none}
.assignment-access legend{font-size:12px;font-weight:650;color:var(--primary);padding:0 5px}
.assignment-access label{display:flex;align-items:center;gap:9px;padding:7px 0;cursor:pointer}
.assignment-access input{accent-color:var(--primary);width:16px;height:16px;margin:0}
.assignment-access p{font-size:11px;line-height:1.6;color:var(--muted);margin-top:9px}
.calendar-page-title{font-size:19px;letter-spacing:-.4px}
.performance-history{margin:20px 0}
.performance-history .panel-head{flex-wrap:wrap;gap:14px}
.history-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.history-period{font-size:11px;color:var(--muted);margin:4px 0 0}
.post-training-button{display:inline-flex;align-items:center;gap:4px;padding:3px 6px;margin-top:4px;border:1px solid var(--line);border-radius:5px;color:var(--primary);background:var(--primary-soft);font-size:10px;line-height:14px;white-space:nowrap}
.post-training-button svg{width:12px;height:12px;flex:none}
.modal.post-training-dialog{width:min(1000px,96vw);padding:22px}
.post-training-dialog>.post-training-notice{padding:10px 12px;background:var(--bg);border:1px solid var(--line);border-radius:7px;font-size:12px;line-height:18px;margin-bottom:16px}
.post-training-dialog>.post-training-stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:18px}
.post-training-stats .stat{padding:12px;min-width:0}
.post-training-stats .stat-value{font-size:24px}
.post-training-heading{font-size:14px;margin:0 0 10px}
.post-training-scroll{overflow:auto;max-height:360px;border:1px solid var(--line);border-radius:8px}
.post-training-scroll table{min-width:660px;font-size:12px}
.post-training-scroll th,.post-training-scroll td{padding:9px 10px;text-align:right}
.post-training-scroll th:first-child{text-align:left}
.post-training-scroll thead th{position:sticky;top:0;z-index:1;background:var(--bg);white-space:normal}
.post-training-scroll small{display:block;font-size:10px;line-height:15px;color:var(--muted);font-weight:400}
.post-training-dialog>.post-training-note{font-size:11px;line-height:17px;color:var(--muted);margin:12px 0 0}
.post-training-empty{padding:25px 12px;font-size:13px;line-height:20px}
@media(max-width:650px){.modal.post-training-dialog{padding:16px}.post-training-dialog>.post-training-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.post-training-stats .stat:last-child{grid-column:1/-1}}
.performance-history table{width:100%;font-size:12px}
.performance-history th,.performance-history td{min-width:92px;text-align:right;white-space:nowrap}
.performance-history th:first-child{min-width:190px;text-align:left;position:sticky;left:0;background:var(--theme-surface, #fff);z-index:1}
.performance-history thead th:first-child,.performance-history tfoot th:first-child{background:var(--bg)}
.performance-history small{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-top:4px;text-transform:none;letter-spacing:0}
.history-note{padding:12px 16px;color:var(--muted);font-size:11px;line-height:1.5}
@media(min-width:581px) and (hover:hover){
 .operator-layout{grid-template-columns:64px minmax(0,1fr)}
 .operator-layout>.sidebar{width:64px;padding-inline:8px;overflow-x:hidden;transition:width .2s,padding .2s;box-shadow:5px 0 20px #30213e08}
 .operator-layout>.sidebar .brand{width:48px;height:73px;min-height:73px;flex-shrink:0;justify-content:center;padding:0;margin-inline:0}
 .operator-layout>.sidebar .flipp-logo-window{width:42px}
 .operator-layout>.sidebar .brand-name,.operator-layout>.sidebar .nav button>span,.operator-layout>.sidebar .sidebar-bottom{opacity:0;width:0;min-width:0;overflow:hidden;white-space:nowrap}
 .operator-layout>.sidebar .nav button{gap:0;padding-inline:14px;min-height:44px}
 .operator-layout>.sidebar:hover,.operator-layout>.sidebar:focus-within{width:222px;padding-inline:19px;box-shadow:8px 0 24px #30213e20}
 .operator-layout>.sidebar:hover .brand,.operator-layout>.sidebar:focus-within .brand{width:auto;margin-inline:auto}
 .operator-layout>.sidebar:hover .flipp-logo-window,.operator-layout>.sidebar:focus-within .flipp-logo-window{width:136px}
 .operator-layout>.sidebar:hover .brand-name,.operator-layout>.sidebar:focus-within .brand-name,.operator-layout>.sidebar:hover .nav button>span,.operator-layout>.sidebar:focus-within .nav button>span,.operator-layout>.sidebar:hover .sidebar-bottom,.operator-layout>.sidebar:focus-within .sidebar-bottom{opacity:1;width:auto;overflow:visible}
 .operator-layout>.sidebar:hover .nav button,.operator-layout>.sidebar:focus-within .nav button{gap:12px;padding-inline:13px}
}
@media(prefers-reduced-motion:reduce){.operator-layout>.sidebar{transition:none}}
.competition-settings-period{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;padding:20px 22px;margin-bottom:16px}
.competition-settings-period>div>p{font-size:12px;color:var(--primary);margin-top:7px}
.competition-settings-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.competition-settings-actions input{width:143px;max-width:100%}
.competition-inheritance-note{flex:1 1 100%;font-size:12px;line-height:1.65;color:var(--muted)}
.structure-card .structure-prizes{max-height:230px;overflow:auto;padding:3px}
.modal.competition-rules-dialog{width:min(820px,100%)}
.modal.competition-steps-dialog{width:min(880px,100%)}
.competition-step-products{border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin:16px 0}
.competition-step-products legend{font-size:13px;font-weight:650;padding:0 5px}
.competition-step-products label{display:inline-flex;align-items:center;gap:7px;margin:4px 22px 6px 0;font-size:13px}
.competition-step-products input{width:16px;height:16px;margin:0;accent-color:var(--primary)}
.competition-step-products p,.competition-step-help{font-size:12px;line-height:18px;color:var(--muted)}
.competition-step-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px;margin:10px 0;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.competition-step-row>strong{grid-column:1/-1;font-size:12px;color:var(--primary)}
.competition-step-row label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:var(--muted)}
.competition-step-row input{width:100%;min-width:0;padding:9px;border:1px solid var(--line);border-radius:6px;background:var(--theme-surface, #fff);color:var(--ink)}
@media(max-width:650px){.competition-step-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
.competition-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px}
.competition-rule-card{min-width:0;border:1px solid var(--line);border-radius:10px;padding:18px;background:var(--bg)}
.competition-rule-card legend{padding:0 7px;font-weight:650;font-size:15px;color:var(--primary)}
.competition-position-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0}
.competition-position-tools strong{font-size:12px}
.competition-position-tools>div{display:flex;gap:4px}
.competition-position-tools button{border:1px solid var(--line);background:var(--theme-surface, #fff);color:var(--theme-link, var(--primary));border-radius:6px}
.competition-prize-fields{display:grid;gap:8px;max-height:38vh;overflow:auto;padding:4px}
.competition-prize-input{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}
.competition-prize-input>span:last-child{display:flex;align-items:center;gap:8px;color:var(--muted);flex:0 1 150px;min-width:0}
.competition-prize-input input{width:100%;min-width:0;border:1px solid var(--line);border-radius:6px;padding:9px 10px;background:var(--theme-surface, #fff);color:var(--ink);font-variant-numeric:tabular-nums}
.race-podium-place:not(.place-1):not(.place-2):not(.place-3) .race-podium-rank{background:var(--primary-soft);color:var(--primary)}
@media(max-width:650px){.competition-rule-grid{grid-template-columns:1fr;gap:16px}.competition-settings-actions{width:100%}.competition-settings-actions .btn{flex:1}.competition-settings-period{padding:16px}.competition-rules-dialog .modal-actions{flex-wrap:wrap}}
.sidebar .flipp-logo-window{width:100px}
.report-filter-tools{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line);min-width:0}
.report-filter-tools>.tabs{flex:1 1 auto;min-width:0;max-width:100%;overflow-x:auto;margin:0;padding:0;border:0;scrollbar-width:thin;gap:14px}
.report-filter-tools>.filter-row{flex:0 1 auto;display:flex;gap:10px;margin:0;padding:0;border:0;min-width:0}
.report-filter-tools .search{min-width:120px;max-width:180px}
.operator-grid .operator-cell>div{min-width:0}
.operator-grid .operator-city{white-space:normal}
.operator-attendance-notes{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin-top:6px;line-height:1.3}
.operator-attendance-notes .attendance-tag{font-size:10px;line-height:16px;padding:1px 5px;white-space:nowrap;max-width:100%}
.performance-history .table-scroll{max-height:520px;overflow:auto}
.performance-history th,.performance-history td{height:auto;padding:6px 9px;line-height:16px;min-width:68px}
.performance-history tbody tr{height:36px}
.performance-history th:first-child{min-width:175px;max-width:210px}
.performance-history tbody .employment-link{padding:0;margin:0;font-size:12px;line-height:16px;text-align:left;width:auto}
.performance-history small{margin-top:1px;line-height:12px;font-size:9px}
.performance-history thead th{position:sticky;top:0;background:var(--bg);z-index:2}
.performance-history thead th:first-child{z-index:3}
.performance-history .history-rate{font-weight:650}
.performance-history .sort-heading{white-space:normal;max-width:100%;text-align:right;justify-content:flex-end}
.performance-history th:first-child .sort-heading{justify-content:flex-start;text-align:left}
.performance-history .history-hours{color:var(--muted)}
.performance-history tfoot td,.performance-history tfoot th{font-weight:650;border-top:1px solid var(--line)}
.team-weekly-planning{margin-top:12px}
.planning-group-tabs{margin:0 16px 12px;width:max-content;max-width:calc(100% - 32px)}
.weekly-total th button{background:transparent;color:inherit;font:inherit;width:100%;padding:5px;text-align:left;text-decoration:underline;text-underline-offset:3px}
.weekly-total th button[aria-pressed="true"]{background:var(--primary-soft);color:var(--primary);border-radius:5px}
.personal-planning-commission{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted);margin-bottom:12px}
.personal-planning-commission strong{color:var(--primary)}
@media(min-width:581px) and (hover:hover){
 .operator-layout>.sidebar:hover .flipp-logo-window,.operator-layout>.sidebar:focus-within .flipp-logo-window{width:100px}
 .operator-layout.sidebar-collapsed>.sidebar{width:64px;padding-inline:8px;transition:none;box-shadow:5px 0 20px #30213e08}
 .operator-layout.sidebar-collapsed>.sidebar .brand{width:48px;margin-inline:0}
 .operator-layout.sidebar-collapsed>.sidebar .flipp-logo-window{width:42px}
 .operator-layout.sidebar-collapsed>.sidebar .brand-name,.operator-layout.sidebar-collapsed>.sidebar .nav button>span,.operator-layout.sidebar-collapsed>.sidebar .sidebar-bottom{opacity:0;width:0;min-width:0;overflow:hidden}
 .operator-layout.sidebar-collapsed>.sidebar .nav button{padding-inline:14px;gap:0}
}
@media(max-width:800px){.sidebar .flipp-logo-window{width:25px}}
@media(max-width:650px){.report-filter-tools{flex-wrap:wrap;padding:9px 12px}.report-filter-tools>.tabs{flex-basis:100%}.report-filter-tools>.filter-row{margin-left:auto}.performance-history .panel-head{padding:14px}.history-controls{gap:8px}.history-controls .segments{flex-wrap:wrap}.history-controls .segments button{padding:6px 8px}}
.performance-history thead tr:first-child th{height:42px}
/* Training decisions and optional daily notes remain compact in the live table. */
#training-alert-slot:empty{display:none}
.topbar .training-alert-button{position:relative;width:36px;height:36px;border:1px solid #e3b74a;border-radius:10px;background:#fff0b5;color:#855600;flex-shrink:0}
.topbar .training-alert-button:hover{background:#ffe58a}
:root[data-theme="dark"] #training-alert-slot .training-alert-button{color:#855600;border-color:#e3b74a}
.training-alert-count{position:absolute;right:-5px;top:-6px;min-width:18px;height:18px;padding:0 4px;display:grid;place-items:center;border-radius:10px;background:#e5ab21;color:#332300;font-size:11px;font-weight:700;line-height:18px}
.training-inbox-list{display:grid;gap:10px}
.training-inbox-row{display:grid;grid-template-columns:1fr auto;gap:4px 12px;width:100%;padding:14px;text-align:left;border:1px solid var(--line);border-radius:8px;background:var(--theme-subtle,#faf7fc);color:var(--ink)}
.training-inbox-row span{grid-column:1;color:var(--muted);font-size:12px;line-height:1.5}
.training-inbox-row svg{grid-column:2;grid-row:1/3;align-self:center;width:18px;height:18px}
.training-email-choice{display:flex;gap:8px;align-items:flex-start;font-weight:600;font-size:13px;line-height:1.6;margin-bottom:12px}
.training-email-choice input{flex-shrink:0;accent-color:var(--primary);margin:4px 0 0}
.training-email-choice+[data-training-email-preview][hidden]{display:none}
.training-decision-options{display:grid;gap:18px}
.training-decision-options>section{border:1px solid var(--border,#e9dff1);border-radius:10px;padding:16px}
.training-decision-options h3{margin:0 0 8px}
.contract-preview{margin:12px 0}
.contract-preview summary{cursor:pointer;font-weight:600}
.contract-preview pre{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--theme-subtle, #faf7fc);padding:12px;border-radius:8px;line-height:1.5}
.attendance-day-note{display:block;font-size:10px;max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted,#81708e)}
.staff-training-days{display:block;margin-top:4px;color:var(--muted,#81708e);font-size:11px}
.administration-tools{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:12px 20px;border-bottom:1px solid var(--border,#e9dff1)}
.administration-tools label{display:flex;align-items:center;gap:10px;font-weight:600}
.administration-tools select{min-width:180px;padding:8px;border:1px solid var(--border,#e9dff1);border-radius:6px;background:var(--theme-surface, white);color:inherit}
.administration-holidays{margin-top:18px}
.page-head.administration-filter-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:20px;margin-bottom:14px}
.administration-filter-head>.commission-filter{margin:0;padding:0;border:0;background:transparent;gap:10px}
.administration-filter-head>.date-control{justify-self:end}
.administration-filter-head>.date-control input{width:150px}
.administration-filter-head .dashboard-kind-tabs>button{padding:9px 12px;font-size:13px;gap:6px}
@media(max-width:1000px){.page-head.administration-filter-head{grid-template-columns:minmax(0,1fr) auto;gap:12px}.administration-filter-head>.commission-filter{grid-column:1/-1;grid-row:2}.administration-filter-head>.date-control{grid-column:2;grid-row:1}}
@media(max-width:650px){.page-head.administration-filter-head{grid-template-columns:minmax(0,1fr)}.administration-filter-head>.date-control{grid-column:1;grid-row:3}.administration-filter-head>.commission-filter{grid-column:1;grid-row:2}}
.administration-holidays .panel-head>div{max-width:650px}
.calendar-day.is-holiday,.weekly-presence.is-holiday{background:#f4edf9;color:#6d1c96}
.calendar-day.is-holiday strong{font-size:11px}
@media(max-width:650px){.administration-holidays .panel-head{align-items:flex-start;gap:12px;flex-direction:column}.administration-tools{padding:12px}}

/* Employment boundaries leave entry history blank and the terminated days grey. */
.month-calendar td.employment-before,.month-calendar tbody tr.mine td.employment-before{background:var(--theme-surface, #fff);box-shadow:none}
.month-calendar td.employment-ended,.month-calendar tbody tr.mine td.employment-ended{background:#e1e1e7;color:#73737f;box-shadow:none}
.staff-scheduled{background:#eef0f7;color:#5f6280}

/* Use the F mark in narrow navigation; restore the full name on expansion. */
@media(min-width:581px) and (max-width:800px){
 .sidebar .flipp-logo-window{width:38px;aspect-ratio:1}
 .sidebar .flipp-logo-window>.flipp-wordmark{display:none}
 .sidebar .flipp-logo-window>.flipp-monogram{display:block}
}
@media(min-width:581px) and (hover:hover){
 .operator-layout>.sidebar .flipp-logo-window{width:40px;aspect-ratio:1}
 .operator-layout>.sidebar .flipp-wordmark{display:none}
 .operator-layout>.sidebar .flipp-monogram{display:block}
 .operator-layout>.sidebar:hover .flipp-logo-window,.operator-layout>.sidebar:focus-within .flipp-logo-window{width:100px;aspect-ratio:264/112}
 .operator-layout>.sidebar:hover .flipp-wordmark,.operator-layout>.sidebar:focus-within .flipp-wordmark{display:block}
 .operator-layout>.sidebar:hover .flipp-monogram,.operator-layout>.sidebar:focus-within .flipp-monogram{display:none}
 .operator-layout.sidebar-collapsed>.sidebar .flipp-logo-window{width:40px;aspect-ratio:1}
 .operator-layout.sidebar-collapsed>.sidebar .flipp-wordmark{display:none}
 .operator-layout.sidebar-collapsed>.sidebar .flipp-monogram{display:block}
}

/* Distinct reporting groups share the same navigation and common team tools. */
.sidebar>.nav.has-groups{flex:1;min-height:0;margin-top:20px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#ffffff50 transparent;gap:4px}
.sidebar .nav-utilities{display:flex;flex-direction:column;gap:4px;margin-top:auto;padding-top:24px;flex-shrink:0}
.sidebar>.brand,.sidebar>.sidebar-bottom{flex-shrink:0}
.nav.has-groups>.nav-dashboard{margin-bottom:4px}
.nav.has-groups>button{min-height:40px;padding-block:9px}
.nav-group{margin-bottom:7px}
.sidebar .nav button.nav-group-title{display:flex;align-items:center;gap:7px;min-height:35px;padding:7px 8px;background:#6d1c96;border:1px solid #ffffff20;border-radius:7px;color:#fff;font-size:11px;line-height:18px;font-weight:600}
.sidebar .nav button.nav-group-title:hover{background:#7c28a4}
.nav-group-title strong{display:inline-block;min-width:29px;padding:0 4px;background:#ffffff12;border:1px solid #ffffff40;border-radius:4px;font-size:10px;letter-spacing:.6px;text-align:center}
.nav-group-title>.nav-group-chevron{width:13px;height:13px;margin-left:auto;transition:transform .15s}
.sidebar .nav button.nav-group-title.nav-group-current[aria-expanded="false"]{box-shadow:inset 3px 0 #ff9bd6;border-color:#ffc3e6}
.sidebar .nav button.nav-group-title[aria-expanded="true"]{background:#fbe6f5;color:#561277;border-color:#e9b5da}
.sidebar .nav button.nav-group-title[aria-expanded="true"]:hover{background:#f5d9ed;color:#561277}
.nav-group-title[aria-expanded="true"] strong{background:#56127712;border-color:#56127736}
.nav-group-title[aria-expanded="true"]>.nav-group-chevron{transform:rotate(90deg)}
.nav-group-links{display:flex;flex-direction:column;gap:3px;margin-left:8px;padding-left:5px;border-left:1px solid #ffffff35}
.nav-group-links[hidden]{display:none}
.nav-group-links:not([hidden]){margin-top:5px}
.sidebar .nav-group-links>button{min-height:36px;padding:8px 9px;font-size:13px}
.content .reporting-kicker,.teleselling-page-head .teleselling-kicker{display:flex;align-items:center;gap:8px;margin:0 0 12px;color:var(--primary);font-size:11px;font-weight:650;letter-spacing:.3px}
.reporting-kicker>span,.teleselling-kicker>span{padding:3px 6px;border-radius:4px;background:var(--primary-soft);font-size:10px;letter-spacing:.6px}
.teleselling-preparation{display:flex;align-items:flex-start;gap:20px;padding:32px;min-height:220px}
.teleselling-section-icon{display:grid;place-items:center;flex:0 0 48px;height:48px;border-radius:12px;background:var(--primary-soft);color:var(--primary)}
.teleselling-section-icon>svg{width:24px;height:24px}
.teleselling-status{display:inline-block;padding:4px 7px;border-radius:5px;background:var(--bg);color:var(--muted);font-size:10px;font-weight:600}
.teleselling-preparation h2{margin:12px 0 8px;font-size:17px;line-height:1.4}
.teleselling-preparation p{max-width:560px;color:var(--muted);font-size:13px;line-height:1.7}
@media(min-width:581px) and (max-width:800px){
 .sidebar .nav button.nav-group-title{justify-content:center;gap:2px;padding:6px 2px}
 .nav-group-title>.nav-group-chevron{width:10px;height:10px;margin-left:0}
 .nav-group-title>span{display:none}
 .nav-group-links{margin:0;padding:0;border:0}
 .sidebar .nav-group-links>button{padding:10px;min-height:40px}
}
@media(max-width:650px){.teleselling-preparation{padding:22px;gap:14px}.teleselling-section-icon{flex-basis:40px;height:40px}}
@media(max-width:580px){
 .sidebar>.nav.has-groups{flex:none;width:100%;height:100%;margin:0;overflow-y:hidden;gap:3px}
 .nav.has-groups>.nav-dashboard{margin:0 7px 0 0}
 .sidebar .nav-utilities{flex-direction:row;margin:0 0 0 12px;padding:0 0 0 12px;border-left:1px solid #ffffff35;gap:3px}
 .nav-group{display:flex;align-items:center;flex:0 0 auto;gap:2px;margin:0 5px 0 0;padding-right:5px;border-right:1px solid #ffffff35}
 .sidebar .nav button.nav-group-title{flex:0 0 48px;width:48px;min-height:40px;gap:2px;padding:6px 3px}
 .nav-group-title>.nav-group-chevron{width:10px;height:10px;margin-left:0}
 .nav-group-title>span{display:none}
 .nav-group-title strong{min-width:25px;font-size:8px;padding:0 3px}
 .nav-group-links{flex-direction:row;gap:0;margin:0;padding:0;border:0}
 .nav-group-links:not([hidden]){margin-top:0}
 .sidebar .nav-group-links>button{flex:0 0 40px;width:40px;min-height:40px;padding:10px}
}
@media(prefers-reduced-motion:reduce){.nav-group-title>.nav-group-chevron{transition:none}}
.tls-attendance-notice{display:flex;align-items:flex-start;gap:9px;padding:12px 14px;margin-bottom:14px;border:1px solid var(--line);border-radius:8px;background:var(--primary-soft);color:var(--primary);font-size:12px;line-height:1.6}
.tls-attendance-notice>svg{width:16px;height:16px;margin-top:2px}
.tls-attendance-panel{margin-top:14px}
.tls-attendance-panel td{padding:12px 16px;vertical-align:middle}
.tls-attendance-panel .work-hours-form{max-width:225px}
.tls-attendance-panel .operator-status{align-items:flex-start}
.tls-attendance-panel .operator-status-tags{justify-content:flex-start}
.operator-page-head .teleselling-kicker{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:11px;color:var(--primary)}
.tls-attendance-panel table{min-width:650px}
.tls-attendance-panel th:first-child{width:40%}
.tls-attendance-panel th:nth-child(n+2),.tls-attendance-panel td:nth-child(n+2){text-align:right}
.tls-attendance-panel .operator-status-tags{margin-top:4px}
.tls-attendance-panel .queue-edit{max-width:240px;white-space:normal;line-height:15px}
.tls-attendance-panel .tls-revenue-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:7px 9px;border:1px solid var(--line);border-radius:6px;background:var(--primary-soft);color:var(--primary);font-size:12px;white-space:nowrap}
.tls-revenue-button.has-value{font-size:15px;font-weight:650}
.tls-contract-count{display:block;margin-top:3px;font-size:10px;line-height:14px;font-weight:400;color:var(--muted)}
.tls-contract-builder{border:0;padding:0;margin:0 0 12px;min-width:0}
.tls-contract-builder legend{margin-bottom:10px;font-size:13px;font-weight:600;color:var(--muted)}
.tls-contract-options{display:grid;gap:8px;margin-bottom:16px}
.tls-contract-option{display:grid;grid-template-columns:minmax(0,1fr) 64px 32px;align-items:center;gap:8px}
.tls-contract-option>.btn{justify-content:flex-start}
.tls-contract-option label{margin:0}
.tls-contract-option input{width:100%;min-height:38px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);text-align:center}
.tls-contract-preview{font-size:12px;color:var(--muted);margin:6px 0}
.tls-unassigned-contracts:not([hidden]){display:grid;gap:8px;padding:10px 12px;margin:8px 0;background:#fff6d8;border:1px solid #eadb9a;border-radius:7px;font-size:12px;color:#755600}
.tls-unassigned-contracts>div{display:flex;gap:8px;flex-wrap:wrap}
.tls-unassigned-contracts .btn{font-size:11px;padding:6px 9px}
.tls-calendar-contracts{display:block;font-size:8px;line-height:10px;font-weight:400;color:var(--muted)}
.tls-revenue-button>svg{width:13px;height:13px}
.tls-revenue-yield{display:inline-flex;align-items:baseline;gap:3px;padding:5px 8px;border-radius:6px;background:var(--primary-soft);color:var(--primary);font-size:15px;font-weight:650;white-space:nowrap}
.tls-revenue-yield small{font-size:10px;font-weight:400}
.tls-revenue-yield.good,.tls-yield-card.good{color:#3c8967;background:#edf6ed}
.tls-revenue-yield.warn,.tls-yield-card.warn{color:#b68c45;background:#fbf5e8}
.tls-revenue-yield.low,.tls-yield-card.low{color:#bd7767;background:#fbefea}
.tls-yield-card.good{border-color:#b9dfc7}
.tls-yield-card.warn{border-color:#ecd7ae}
.tls-yield-card.low{border-color:#e6c0b7}
.tls-yield-card:not(.none) .stat-top,.tls-yield-card:not(.none) .stat-value{color:inherit}
.tls-yield-card:not(.none) .stat-icon{background:#ffffff80;color:inherit}
.tls-threshold-legend{display:flex;gap:8px;flex-wrap:wrap}
.tls-monthly-head{margin-bottom:14px;align-items:center}
.content .tls-monthly-head .reporting-kicker{margin:0}
.tls-shift-pause,.tls-hours-status{display:block;margin-top:3px;font-size:10px;line-height:15px;color:var(--muted)}
.tls-daily-compact table{min-width:840px;table-layout:fixed}
.tls-daily-compact th:first-child{width:38%}
.tls-daily-compact th:nth-child(2){width:18%}
.tls-daily-compact th:nth-child(3){width:26%}
.tls-daily-compact th:nth-child(4){width:18%}
.tls-daily-compact td{padding:7px 12px}
.tls-daily-compact tbody>tr>td{height:52px;vertical-align:middle}
.tls-daily-compact .tls-person-line{display:flex;align-items:center;justify-content:space-between;gap:24px;min-width:0}
.tls-daily-compact .tls-person-line>.operator-cell{flex:1 1 auto;min-width:0}
.tls-daily-compact .tls-person-line .avatar{flex-shrink:0}
.tls-daily-compact .tls-person-line .operator-cell>div{min-width:0}
.tls-daily-compact .tls-person-line .operator-name,.tls-daily-compact .tls-person-line .operator-city{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tls-training-indicators{display:flex;align-items:center;gap:6px;flex:0 0 auto;white-space:nowrap}
.tls-training-indicators .attendance-tag{font-size:13px;line-height:18px;padding:3px 7px}
.structure-race-kinds,.tls-work-sections{display:inline-flex;gap:5px;margin-bottom:16px}
.structure-race-kinds>button,.tls-work-sections>button{padding:9px 14px}
.tls-race-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.tls-race-toolbar>label{flex:1 1 340px;min-width:0}
.tls-race-toolbar select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--theme-surface, #fff);color:var(--theme-link, var(--primary))}
.tls-race-toolbar>.btn{margin-left:auto}
.tls-race-summary,.tls-race-ranking{margin-bottom:16px}
.tls-race-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tls-race-record-tools{display:flex;flex-direction:column;align-items:stretch;gap:7px}
.tls-race-record-tools>.btn{padding:8px 12px}
.tls-race-actions .tls-race-running{font-size:14px;line-height:20px;font-weight:650;padding:6px 11px;border-radius:6px;border:1px solid #b8dfc8;background:#e7f5ec;color:#237347}
.tls-race-rule-list{display:flex;flex-wrap:wrap;gap:10px;padding:0 20px 16px}
.tls-race-rule{display:grid;grid-template-columns:auto auto;gap:3px 8px;padding:9px 12px;background:var(--primary-soft);color:var(--primary);border-radius:8px;font-size:14px}
.tls-race-rule small{grid-column:1/-1;font-size:10px}
.tls-race-rule.excluded{color:var(--muted);background:#f3f0f5}
.tls-race-requirement{margin:0;padding:0 20px 18px;font-size:12px;line-height:19px;color:var(--muted)}
.tls-race-ranking th,.tls-race-ranking td{text-align:center;white-space:nowrap}
.tls-race-ranking th:nth-child(2),.tls-race-ranking td:nth-child(2){text-align:left}
.tls-race-ranking td small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.tls-race-ranking tbody tr.mine{background:#f5ecfa}
.tls-race-monthly table{width:100%}
.tls-race-monthly tfoot th{text-align:right;padding:12px 18px}
.tls-race-monthly tfoot td{padding:12px 18px;color:var(--primary)}
.tls-race-prize-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:5px 10px;border-radius:7px;color:var(--primary);background:var(--primary-soft);font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}
.tls-race-prize-button:hover{background:#e8d6f4}
.tls-race-prize-button svg{width:14px;height:14px}
.tls-race-month-note{padding:10px 20px;border-top:1px solid var(--line);font-size:11px;line-height:1.6;color:var(--muted)}
.tls-race-month-toolbar>.date-control{margin-right:auto}
.tls-race-month-toolbar .tls-race-toggle.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 3px 8px #6d1c9626}
.tls-race-month-toolbar .tls-race-toggle.active:hover{background:var(--primary-hover);border-color:var(--primary-hover)}
.modal.tls-race-prize-dialog{width:min(620px,96vw)}
.tls-race-prize-total{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;background:var(--primary-soft);color:var(--primary);border-radius:8px}
.tls-race-prize-total strong{font-size:23px;font-variant-numeric:tabular-nums}
.tls-race-prize-counts{margin:10px 0 14px;font-size:12px;color:var(--muted)}
.tls-race-prize-entry{padding:12px 0;border-top:1px solid var(--line)}
.tls-race-prize-entry-head,.tls-race-prize-entry-status{display:flex;align-items:center;justify-content:space-between;gap:12px}
.tls-race-prize-entry-head>div{min-width:0;overflow-wrap:anywhere}
.tls-race-prize-entry-head small{display:block;margin-top:4px;color:var(--muted);line-height:1.5}
.tls-race-prize-entry-head>.race-reward{font-size:16px;white-space:nowrap;flex-shrink:0}
.tls-race-prize-entry-status{margin-top:8px;font-size:12px;flex-wrap:wrap}
.tls-race-won{color:#277960;font-weight:600}
.tls-race-prize-notes{display:block;margin-top:5px;color:var(--muted)}
.tls-race-grid .panel-head>span{font-size:11px;color:var(--muted)}
.tls-race-grid table{width:100%;border-collapse:separate;border-spacing:0}
.tls-race-grid th,.tls-race-grid td{min-width:105px;text-align:center;white-space:nowrap;font-size:12px;padding:12px}
.tls-race-grid th:first-child{position:sticky;left:0;z-index:1;min-width:190px;max-width:240px;text-align:left;background:var(--theme-surface, #fff);border-right:1px solid var(--line)}
.tls-race-grid thead th:first-child{background:#f8f5fa;z-index:2}
.tls-race-grid td>span:not(.muted){display:inline-block;background:var(--primary-soft);color:var(--primary);padding:3px 5px;border-radius:4px;margin:2px;font-weight:600}
.tls-race-grid tbody .mine th{background:#f5ecfa}
.tls-race-list>article{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-top:1px solid var(--line)}
.tls-race-list small{display:block;font-size:12px;color:var(--muted);margin-top:4px}
.modal.tls-race-dialog{width:min(820px,96vw)}
.tls-race-rule-editor{width:100%;margin:6px 0 16px}
.tls-race-rule-editor th{font-size:12px;text-align:left}
.tls-race-rule-editor td{padding:8px 12px;text-align:center}
.tls-race-rule-editor input[type="number"]{max-width:150px;padding:8px;border:1px solid var(--line);border-radius:6px}
.tls-race-rule-editor input[type="checkbox"]{width:18px;height:18px;accent-color:var(--primary)}
@media(max-width:650px){.tls-race-list>article,.tls-race-summary .panel-head,.tls-race-grid .panel-head{align-items:flex-start;flex-direction:column}.tls-race-toolbar>.btn{margin-left:0}.tls-race-dialog .form-row{grid-template-columns:1fr}.tls-race-rule-list{padding-inline:14px}.tls-race-rule{font-size:12px;padding:7px 9px}}
.tls-daily-compact .shift-hours-breakdown{font-size:10px;line-height:12px;margin-top:2px}
.tls-daily-compact .operator-name{font-size:15px;line-height:20px}
.tls-daily-compact .operator-city{font-size:11px;line-height:14px;margin-top:1px}
.tls-daily-compact .tls-hours-line,.tls-daily-compact .tls-money-line{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.tls-daily-compact .tls-hours-line{flex-wrap:nowrap}
.tls-daily-compact .tls-money-line{display:grid;grid-template-columns:minmax(0,1fr) max-content minmax(0,1fr);gap:6px}
.tls-daily-compact .tls-money-line>:first-child{grid-column:2}
.tls-daily-compact th:nth-child(n+2),.tls-daily-compact td:nth-child(n+3){text-align:center}
.tls-daily-compact .tls-money-line>.tls-contract-count{grid-column:3;justify-self:start;display:inline;margin:0;min-width:0;max-width:60px;white-space:normal;font-size:9px;line-height:12px}
.tls-daily-compact .tls-revenue-button{min-height:28px;padding:4px 7px;font-size:14px}
.tls-daily-compact .tls-revenue-yield{font-size:14px;padding:4px 7px}
.tls-daily-compact .operator-status-tags:empty{display:none}
.tls-daily-compact th:nth-child(3),.tls-daily-compact td:nth-child(3){border-left:1px solid #dfcfe9}
.sidebar .nav button.planning-due{position:relative;background-image:none;animation:planning-tab-pulse 2s ease-in-out infinite;font-weight:650}
.sidebar .nav button.planning-due:hover{background-image:none}
.planning-reminder-dot{position:absolute;top:7px;right:7px;display:block;width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 0 2px #ffffff35}
.planning-reminder-dot[hidden]{display:none}
@keyframes planning-tab-pulse{
 0%,100%{background-color:#ffffff14;color:#fff;box-shadow:inset 0 0 0 1px #eecaff80}
 50%{background-color:#f2e9f9;color:#6d1c96;box-shadow:inset 0 0 0 1px #fff}
}
@media(prefers-reduced-motion:reduce){.sidebar .nav button.planning-due{animation:none;background-color:#f2e9f9;color:#6d1c96;box-shadow:inset 0 0 0 2px #e3b8f2}}
.content .tls-performance-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}
.content .tls-performance-stats .stat:last-child{grid-column:auto}
.tls-performance-stats .stat-value{font-size:clamp(18px,1.8vw,25px);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.tls-monthly-report table{min-width:850px}
.tls-monthly-report th:first-child{width:28%}
.tls-monthly-report td{padding:10px 16px;font-variant-numeric:tabular-nums}
.tls-monthly-report th:nth-child(n+2) .sort-heading{justify-content:flex-end;width:100%}
.tls-monthly-report .table-scroll .tls-monthly-summary-table{min-width:850px;table-layout:fixed}
.tls-monthly-report .table-scroll .tls-monthly-summary-table.hours-expanded{min-width:1040px}
.tls-monthly-summary-table th:first-child{width:240px}
.tls-monthly-summary-table th,.tls-monthly-summary-table .sort-heading{white-space:normal}
.tls-monthly-report .tls-monthly-summary-table td{padding-inline:12px}
.tls-total-hours-heading{display:flex;align-items:center;justify-content:flex-end;gap:6px}
.tls-monthly-report th .tls-total-hours-heading .sort-heading{width:auto}
.tls-total-hours-heading .hours-disclosure{flex:none}
.nonphone-button,.nonphone-group-button{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;height:28px;min-height:28px;padding:5px;margin:0;border:1px solid #ddcce9;border-radius:7px;background:#f7f0fb;color:var(--primary);vertical-align:middle;cursor:pointer}
.nonphone-button svg,.nonphone-group-button svg{width:17px;height:17px;stroke-width:1.7;flex:none}
.nonphone-button:hover,.nonphone-group-button:not(:disabled):hover{background:#eddef6;border-color:#bd94d3}
.nonphone-button:focus-visible,.nonphone-group-button:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
.nonphone-minutes{position:absolute;top:-5px;right:-5px;min-width:15px;padding:1px 3px;border-radius:8px;background:var(--primary);color:#fff;font-size:8px;line-height:12px;font-weight:600}
.nonphone-group-button:disabled{opacity:.45;cursor:default}
.daily-hours-heading{display:grid;grid-template-columns:28px 88px;gap:8px;align-items:center;justify-content:end}
.daily-hours-heading>span{text-align:center;white-space:nowrap}
.daily-hours-line{display:flex;align-items:center;justify-content:flex-end;gap:8px}
.tls-daily-compact .tls-hours-line>.hours-lock,.leader-live-panel .daily-hours-line>.hours-lock{min-width:88px;min-height:30px;display:inline-flex;align-items:center;justify-content:flex-end;gap:8px}
.tls-daily-compact .tls-hours-line>.hours-lock svg,.leader-live-panel .daily-hours-line>.hours-lock svg{width:19px;height:19px;stroke-width:1.7;flex:none}
.hours-lock.absence-hours-button{color:#a03666;font-size:13px}
.daily-hours-total{min-width:88px;text-align:right}
.leader-live-panel #daily-table th:not(:first-child){text-align:center}
.leader-live-panel #daily-table th:nth-child(2){width:180px}
.leader-live-panel #daily-table th:not(:first-child) .sort-heading{justify-content:center}
.leader-live-panel #daily-table th:nth-child(3),.leader-live-panel #daily-table td:nth-child(3){border-left:1px solid #dfcfe9}
.nonphone-group-dialog{width:min(700px,calc(100vw - 32px))}
.nonphone-group-list{max-height:250px;overflow-y:auto;border:1px solid var(--line);border-radius:8px}
.nonphone-group-person{display:grid;grid-template-columns:18px minmax(0,1fr) minmax(110px,auto);gap:10px;align-items:center;padding:9px 12px;border-bottom:1px solid var(--line);font-size:12px;cursor:pointer}
.nonphone-group-person:last-child{border-bottom:0}
.nonphone-group-person input{width:16px;height:16px;padding:0;accent-color:var(--primary)}
.nonphone-group-person strong,.nonphone-group-person small{display:block}
.nonphone-group-person small{color:var(--muted);margin-top:3px}
.nonphone-group-person [data-group-person]{text-align:right;font-size:11px;color:var(--muted)}
.nonphone-group-person .group-invalid{color:#b42a38}
.tls-work-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px;border-bottom:1px solid var(--line)}
.tls-work-toolbar>input{width:180px;margin-left:auto}
.tls-work-filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;padding:14px 16px}
.tls-work-filters label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:var(--muted);flex:1 1 130px;min-width:110px}
.tls-work-filters select,.tls-work-filters input{min-width:0;width:100%;padding:8px 10px}
.tls-work-filters .tls-work-search{flex:2 1 200px}
.tls-work-control{display:flex;flex-wrap:wrap;gap:14px 28px;padding:14px 16px;border-block:1px solid var(--line);background:var(--theme-subtle, #faf6fc)}
.tls-work-control>div{display:flex;flex-direction:column;gap:5px;flex:1 1 150px;font-size:12px;color:var(--muted)}
.tls-work-control strong{font-size:19px;color:var(--ink);font-variant-numeric:tabular-nums}
.tls-work-control .work-difference{color:#aa6a12}.tls-work-control .work-balanced{color:#207b58}
.tls-work-control>details{flex-basis:100%;min-width:0;font-size:12px}
.tls-work-control summary{color:var(--primary);cursor:pointer;font-weight:600}
.tls-work-control details p{font-size:11px;color:var(--muted);margin:10px 0}
.tls-work-ledger-scroll{overflow:auto;max-height:65vh;isolation:isolate}
.tls-work-ledger{min-width:2850px;white-space:nowrap;font-size:12px;table-layout:fixed}
.tls-work-ledger th{position:sticky;top:0;z-index:3;background:#f1e7f8;white-space:normal;width:130px;padding:10px}
.tls-work-ledger .work-check-heading{background:#e4f1fb}
.tls-work-ledger th:nth-child(1){width:90px}.tls-work-ledger th:nth-child(2){width:235px}
.tls-work-ledger th:nth-child(4){width:180px}.tls-work-ledger th:nth-child(7){width:180px}
.tls-work-ledger th:nth-child(9){width:300px}.tls-work-ledger th:nth-child(18){width:300px}.tls-work-ledger th:last-child{width:150px}
.tls-work-ledger td{padding:8px 10px;vertical-align:top;white-space:normal;overflow-wrap:anywhere;background:var(--theme-surface, #fff);font-variant-numeric:tabular-nums}
.tls-work-ledger th:first-child,.tls-work-ledger td:first-child{position:sticky;left:0;z-index:2;text-align:left}
.tls-work-ledger th:nth-child(2),.tls-work-ledger td:nth-child(2){position:sticky;left:90px;z-index:2;text-align:left;border-right:1px solid var(--line)}
.tls-work-ledger th:first-child,.tls-work-ledger th:nth-child(2){z-index:4}
.tls-work-ledger td small{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.tls-work-ledger .employment-link{text-align:left;white-space:normal}
.tls-work-ledger .work-column-product_name,.tls-work-ledger .work-column-note{text-align:left}
.tls-work-actions{display:flex;flex-direction:column;align-items:flex-start;gap:7px}
.modal.tls-work-dialog{width:min(840px,calc(100vw - 32px))}
.tls-work-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tls-work-form-grid .form-field{margin:0;min-width:0}
.tls-work-wide{grid-column:1/-1}
.tls-work-upselling{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--ink)}
.tls-work-upselling input{width:17px;height:17px;padding:0;accent-color:var(--primary)}
.tls-work-rate-preview{border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--theme-subtle, #faf6fc);font-size:12px;color:var(--theme-link, var(--primary))}
.tls-work-rate-preview strong,.tls-work-rate-preview span{display:block}.tls-work-rate-preview span{margin-top:6px;color:var(--muted)}
@media(max-width:580px){.tls-work-form-grid{grid-template-columns:minmax(0,1fr)}.tls-work-ledger th:nth-child(2),.tls-work-ledger td:nth-child(2){position:static}.tls-work-toolbar>input{margin-left:0}.tls-work-control strong{font-size:17px}}
@media(max-width:580px){.nonphone-group-person{grid-template-columns:18px minmax(0,1fr)}.nonphone-group-person [data-group-person]{grid-column:2;text-align:left}}
.tls-monthly-report .table-footer{gap:10px;flex-wrap:wrap}
.tls-month-progress-list{padding:14px 16px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:10px 24px}
.tls-month-progress{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.tls-month-progress strong,.tls-month-progress b{color:var(--ink)}
.tls-projection-note{margin:0;padding:0 16px 14px;font-size:11px;color:var(--muted);line-height:1.5}
.tls-calendar-panel .month-calendar .tls-calendar-amount{display:block;max-width:100%;font-size:8.5px;line-height:12px;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--primary)}
.tls-calendar-panel .month-calendar tfoot strong{display:block;font-size:11px;line-height:15px}
@media(max-width:900px){.content .tls-performance-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.payroll-section-tabs{display:inline-flex;margin:0 0 18px}
.payroll-head{align-items:center;margin-bottom:18px}
.payroll-period{display:flex;flex-wrap:wrap;gap:12px 28px;margin-bottom:18px;color:var(--muted,#887b96);font-size:13px}
.payroll-period strong{color:var(--ink,#30243d)}
.content .compact-stats.payroll-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}
.payroll-stats .stat-label{font-size:12px;color:var(--muted,#887b96)}
.payroll-stats .highlight .stat-label{color:#f1dbf4}
.payroll-filters{display:flex;flex-wrap:wrap;gap:14px;padding:0 20px 18px}
.payroll-filters label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted,#887b96)}
.payroll-filters select{min-width:145px}
.payroll-table th,.payroll-table td{padding:13px 15px;vertical-align:middle}
.payroll-table th:not(:first-child),.payroll-table td:not(:first-child){text-align:center}
.payroll-table small{display:block;font-size:11px;color:var(--muted,#887b96);margin-top:4px}
.payroll-table .payroll-response-note{max-width:210px;white-space:normal;overflow-wrap:anywhere}
.payroll-status{display:inline-flex;padding:5px 9px;border-radius:6px;font-size:12px;white-space:nowrap;background:#f0e8f7;color:#77528e}
.payroll-status-ok{background:#e6f4eb;color:#247348}
.payroll-status-issue,.payroll-warning{background:#fce7ed;color:#a33755!important}
.payroll-status-pending,.payroll-status-changed{background:#fff2ce;color:#865f04}
.payroll-notice{padding:12px 20px;font-size:12px;line-height:1.6;color:var(--muted,#887b96);overflow-wrap:anywhere}
.payroll-breakdown{margin:16px 0}
.payroll-breakdown>div{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid #eee4f5}
.payroll-breakdown dt{font-size:12px;color:var(--muted,#887b96)}
.payroll-breakdown dd{margin:0;text-align:right;white-space:nowrap;font-size:13px}
.payroll-breakdown .payroll-total{color:#771fa2;font-weight:700}
.payroll-breakdown .payroll-total dt{color:inherit}
.payroll-awards{margin:14px 0;font-size:12px}
.payroll-awards summary{cursor:pointer;color:#771fa2}
.payroll-awards li{margin:7px 0}
.payroll-mini-calendar{margin:16px 0;border:1px solid #e8ddef;border-radius:9px;overflow:hidden;background:var(--theme-surface, #fff)}
.payroll-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;background:#f7f2fb;font-size:11px;color:#6d2990}
.payroll-calendar-head>strong::first-letter{text-transform:uppercase}
.payroll-calendar-head>span{font-size:10px}
.payroll-calendar-weekdays,.payroll-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.payroll-calendar-weekdays{padding:5px 4px;background:var(--theme-subtle, #fbf9fc);font-size:9px;color:var(--light-secondary, #8b7c97);text-align:center;border-top:1px solid #eee5f4}
.payroll-calendar-grid{list-style:none!important;margin:0!important;padding:0!important;gap:1px;background:#eee5f4;border-top:1px solid #eee5f4}
.payroll-calendar-day,.payroll-calendar-blank{min-width:0;min-height:52px;margin:0!important;padding:4px 2px!important;background:var(--theme-surface, #fff);display:flex;align-items:center;flex-direction:column;gap:1px;line-height:12px}
.payroll-calendar-day time{align-self:flex-start;padding-left:3px;font-size:9px;color:var(--light-secondary, #93859f);line-height:10px}
.payroll-calendar-day strong{font-size:10.5px;line-height:13px;font-weight:650;color:#4d315f;white-space:nowrap}
.payroll-calendar-day>span{font-size:9px;color:#876b9c}
.payroll-calendar-day .payroll-calendar-closures{color:#26744e}
.payroll-calendar-day .payroll-calendar-revenue{font-size:8px;line-height:10px;color:#765090;letter-spacing:-.2px;white-space:nowrap}
.payroll-calendar-day.weekend,.payroll-calendar-day.holiday,.payroll-calendar-day.outside,.payroll-calendar-blank{background:#f6f4f8}
.payroll-calendar-day.outside time{color:#b7adbf}
.payroll-calendar-day.absence strong{color:#ad3f71}
.payroll-calendar-day.training strong{color:#967000}
.payroll-calendar-legend{font-size:9px!important;line-height:13px!important;padding:6px 7px!important;margin:0!important;color:var(--light-secondary, #8d7c99);background:var(--theme-subtle, #fbf9fc)}
.payroll-calendar-legacy{font-size:11px!important;color:var(--light-secondary, #8d7c99);padding:7px 0}
[data-payroll-pending][hidden]{display:none!important}
@media(max-width:700px){.content .compact-stats.payroll-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-stats .stat:last-child{grid-column:auto}.payroll-filters label{flex:1}.payroll-period{gap:8px;flex-direction:column}.payroll-breakdown>div{gap:10px}.payroll-breakdown dd{white-space:normal}}

@media(max-width:400px){.payroll-calendar-day strong{font-size:9px}.payroll-calendar-day .payroll-calendar-revenue{font-size:7px}}
.sidebar .nav button.payroll-due{background-image:none;animation:payroll-tab-pulse 2.4s ease-in-out infinite;font-weight:650}
.sidebar .nav button.payroll-due:hover{background-image:none}
.sidebar .nav button.payroll-due .count{background:#24734b;color:#fff}
@keyframes payroll-tab-pulse{
 0%,100%{background-color:#e3f8eb;color:#215f3a;box-shadow:inset 0 0 0 1px #b1e4c5}
 50%{background-color:#afe9c5;color:#174c2e;box-shadow:inset 0 0 0 2px #72c895,0 0 12px #c5f1d630}
}
@media(prefers-reduced-motion:reduce){.sidebar .nav button.payroll-due{animation:none;background-color:#d1f2de;color:#215f3a;box-shadow:inset 0 0 0 2px #72c895}}

/* Demo tools stay separate from the live workspace. */
.demo-banner{flex-wrap:wrap}
.demo-banner .demo-thursday{display:inline-flex;align-items:center;gap:6px;border:1px solid #dcbce9;border-radius:6px;padding:5px 9px;text-decoration:none;white-space:nowrap}
.demo-banner .demo-thursday.active{background:#6d1c96;color:#fff;border-color:#6d1c96}

.holiday-double-pay,.payroll-links label{display:flex;align-items:center;gap:9px;margin:12px 0}
.payroll-rate-button,.calendar-person-link{background:none;border:0;color:var(--accent,#6d1c96);padding:0;font:inherit;font-weight:650;cursor:pointer;text-align:left;text-decoration:underline;text-underline-offset:3px}
.payroll-components,.payroll-links{margin:14px 0;border-top:1px solid #e8ddef;padding-top:12px}
.payroll-components table,.monthly-hours-components{width:100%;border-collapse:collapse;font-size:12px}
.payroll-components td,.monthly-hours-components td,.monthly-hours-components th{padding:7px 4px;text-align:left;border-bottom:1px solid #eee6f3}
.monthly-hours-target progress{display:block;width:100%;height:12px;margin:12px 0;accent-color:#6d1c96}

.work-assignment-select{
  max-width:12rem;
  padding:6px 8px;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--theme-surface,#fff);
  color:var(--ink);
}
@media(max-width:580px){
  .work-assignment-select{max-width:8rem}
}
.calendar-person-link{text-decoration:none}

.support-panel+.support-panel{margin-top:16px}
.support-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.support-form-grid .catalog-products{margin:0;min-width:0}
.support-mail-toggle{display:flex;align-items:center;gap:8px;margin:12px 0}
.support-alert-tag,.sidebar .nav .support-alert-count{color:#8d203b;background:#fce6ed;font-weight:650}
.support-alert-tag{display:inline-block;vertical-align:middle;margin-left:7px;padding:3px 7px;border-radius:5px;font-size:11px;white-space:nowrap}
.support-alert-count[hidden]{display:none}
.support-reasons{margin:0;padding:0;list-style:none}
.support-reasons li+li{margin-top:8px}
.support-reasons small{display:block;color:var(--muted);margin-top:2px}
@media(max-width:660px){.support-form-grid{grid-template-columns:1fr}}
