@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&display=swap');
:root{color-scheme:dark;--bg:#0b1720;--panel:#12232e;--line:#ffffff12;--text:#eaf0ef;--muted:#91a5ae;--mint:#c2e8d6;--soft:#8fbda9;font-family:'DM Sans',system-ui,sans-serif;font-size:15px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);background:#ffffff06;color:var(--text);border-radius:10px;padding:11px 16px;min-height:44px;transition:background .16s,transform .16s}button:hover{background:#ffffff13}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--mint);color:#173a2e;border-color:transparent;font-weight:650}button.primary:hover{background:#d6f4e7}button.icon{padding:9px;display:inline-grid;place-items:center}button.danger{color:#f3a9a9}svg{width:20px;height:20px;vertical-align:middle;flex-shrink:0}a{color:var(--mint)}:focus-visible{outline:2px solid #c2e8d6;outline-offset:3px}.brand{display:flex;align-items:center;font-size:27px;letter-spacing:-1.3px;font-weight:450;height:44px}.brand .ring{display:inline-block;width:33px;height:33px;border:1.8px solid #e7f5f0;border-radius:50%;margin:0 1px;letter-spacing:0}.brand small{font-size:10px;letter-spacing:1.6px;color:var(--muted);margin-left:15px;text-transform:uppercase}aside{width:234px;position:fixed;inset:0 auto 0 0;padding:30px 22px;border-right:1px solid var(--line);background:#09131b;display:flex;flex-direction:column;z-index:10}.workspace-label{margin:35px 4px 14px;color:var(--muted);font-size:10px;letter-spacing:2px}nav{display:grid;gap:7px}nav button{border:0;background:none;text-align:left;color:var(--muted);display:flex;align-items:center;gap:13px;padding:13px 15px}nav button.active{background:#c2e8d612;color:var(--mint)}nav button.active:before{content:'';width:3px;height:19px;position:absolute;left:22px;border-radius:5px;background:var(--mint)}.aside-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:18px}.account{display:flex;align-items:center;gap:10px;margin:16px 0 4px;font-size:12px}.avatar{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;background:#203d40;color:var(--mint);border:1px solid #c2e8d622;border-radius:11px}.account span{overflow:hidden;text-overflow:ellipsis}.shell{margin-left:234px;min-height:100vh}header{height:81px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 40px;color:var(--muted);font-size:12px}header .crumb{display:flex;gap:12px;align-items:center}.status{font-size:11px;display:flex;align-items:center;gap:8px}.status i{width:6px;height:6px;border-radius:50%;background:#e1bd75}.status.live i{background:#9cdbb9}main{max-width:1460px;margin:auto;padding:36px 40px 50px;animation:appear .22s ease}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--soft);text-transform:uppercase;margin:0 0 11px}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.heading h1{font-size:32px;font-weight:500;letter-spacing:-1.2px;margin:0 0 9px}.muted,p{color:var(--muted);line-height:1.6}p{margin:0}.small{font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-bottom:27px;background:linear-gradient(130deg,#152834,#11222c)}.stat{padding:23px 24px;border-right:1px solid var(--line)}.stat:last-child{border:0}.stat-label{color:var(--muted);font-size:12px;display:flex;align-items:center;justify-content:space-between}.stat strong{font-size:32px;font-weight:450;display:block;margin:15px 0 5px;letter-spacing:-1px}.stat small{font-size:11px;color:var(--muted)}.grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,1fr);gap:24px}.panel{border:1px solid var(--line);border-radius:16px;background:linear-gradient(130deg,#142630a6,#101f29);overflow:hidden}.panel-head{padding:21px 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:15px}.panel h2{font-weight:500;font-size:16px;margin:0}.panel-head button{font-size:12px;padding:5px 8px;min-height:32px;border:0;color:var(--mint);background:none}.empty{padding:44px 25px;text-align:center;display:flex;align-items:center;flex-direction:column;gap:13px}.empty .symbol{width:55px;height:55px;border:1px solid #c2e8d622;border-radius:17px;display:grid;place-items:center;color:var(--soft);background:#c2e8d607;margin-bottom:3px}.empty h3{font-weight:500;font-size:16px;margin:0}.empty p{font-size:13px;max-width:290px}.empty button{margin-top:7px;font-size:12px}.onboard{margin-top:24px;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid #c2e8d629;border-radius:14px;background:linear-gradient(90deg,#1b37372e,transparent)}.onboard h3{font-size:14px;font-weight:500;margin:0 0 5px}.onboard p{font-size:12px}.steps{display:flex;gap:16px;flex-wrap:wrap}.step{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.step b{border:1px solid var(--line);border-radius:50%;width:23px;height:23px;display:grid;place-items:center;font-size:10px;color:var(--mint)}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px;flex-wrap:wrap}.tabs{display:flex;gap:5px;padding:4px;border:1px solid var(--line);border-radius:11px}.tabs button{border:0;min-height:33px;padding:6px 14px;font-size:12px;background:none;color:var(--muted)}.tabs button.active{background:#ffffff0c;color:var(--text)}input,select,textarea{background:#0a1822;border:1px solid #ffffff20;border-radius:9px;padding:12px;color:var(--text);min-width:0;max-width:100%}input[type=search]{width:245px}label{font-size:12px;color:var(--muted);display:grid;gap:8px}textarea{resize:vertical;min-height:85px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;font-weight:500;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);padding:17px 23px;border-bottom:1px solid var(--line)}td{padding:17px 23px;border-bottom:1px solid var(--line)}tr:last-child td{border:0}td button{min-height:33px;padding:5px 10px;font-size:12px}.pill{display:inline-flex;padding:5px 9px;border-radius:7px;font-size:10px;background:#b5d8c512;color:#bddbcc;white-space:nowrap}.pill.warm{background:#e6c58b12;color:#d6ba88}.task-line{display:flex;align-items:center;gap:13px;padding:18px 24px;border-bottom:1px solid var(--line)}.task-line:last-child{border:0}.task-line .check{border:1px solid #76908c;width:21px;height:21px;min-height:21px;padding:0;border-radius:50%;background:none}.task-line .check.done{background:var(--mint);color:#102820}.task-line .body{flex:1;min-width:0}.task-line .title{font-size:13px;margin-bottom:4px;overflow-wrap:anywhere}.task-line .title.done{text-decoration:line-through;color:var(--muted)}.task-line .meta{font-size:11px;color:var(--muted)}.week{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));min-height:360px}.day{border-right:1px solid var(--line);padding:15px 9px}.day:last-child{border:0}.day-head{font-size:10px;color:var(--muted);text-align:center;text-transform:uppercase;letter-spacing:1px;margin-bottom:20px}.day-head strong{display:block;font-size:22px;font-weight:450;color:var(--text);margin-top:8px}.day.today .day-head strong{color:var(--mint)}.shift{display:block;width:100%;text-align:left;padding:10px 8px;font-size:11px;margin:7px 0;background:#c2e8d611;border-color:#c2e8d622;border-left:2px solid var(--soft)}.shift span{display:block;font-size:10px;color:var(--muted);margin-top:6px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.stack{display:grid;gap:20px}.settings-body{padding:24px}.settings-body h3{font-size:14px;font-weight:500;margin:0 0 10px}.settings-body p{margin-bottom:15px;font-size:13px}.notice{padding:14px 18px;border-radius:10px;background:#cdb7860c;border:1px solid #cdb78625;font-size:12px;color:#ccb993;line-height:1.6;margin-bottom:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-grid .full{grid-column:1/-1}dialog{width:min(530px,calc(100% - 28px));max-height:calc(100dvh - 40px);overflow-y:auto;background:#12232e;color:var(--text);border:1px solid #ffffff25;border-radius:18px;padding:0;box-shadow:0 30px 100px #0008}dialog::backdrop{background:#030b11ad;backdrop-filter:blur(5px)}dialog .dialog-head{padding:24px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line)}dialog h2{margin:0;font-size:21px;font-weight:500}dialog form{padding:24px;display:grid;gap:18px}dialog .foot{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}.form-error{color:#ffb4ac;font-size:12px;line-height:1.5}.auth{max-width:460px;margin:10vh auto;padding:30px}.auth .brand{margin-bottom:40px}.auth h1{font-weight:450;font-size:30px;letter-spacing:-1px}.auth form{display:grid;gap:19px;margin-top:25px}.auth .panel{padding:28px}.auth .notice{margin-top:20px}.auth button{width:100%}.auth label{margin-bottom:0}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:13px 20px;background:#d4eee2;color:#153227;border-radius:10px;box-shadow:0 10px 40px #0005;z-index:100;max-width:90%;display:none;font-size:13px}#toast.show{display:block}.mobile-menu{display:none}.close-nav{display:none}@keyframes appear{from{opacity:.6;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1500px){main{padding-top:48px}.empty{padding:60px 25px}}@media(max-width:1100px){aside{width:195px;padding:25px 16px}.shell{margin-left:195px}main{padding:28px 24px}header{padding:0 24px}.stat{padding:20px 16px}.grid{grid-template-columns:1fr}.onboard{align-items:flex-start;flex-direction:column}}@media(max-width:740px){aside{transform:translateX(-100%);transition:transform .2s;width:234px;box-shadow:30px 0 80px #0008}aside.open{transform:translateX(0)}.close-nav{display:block;margin-top:18px}.shell{margin-left:0}header{height:65px;padding:0 18px}.mobile-menu{display:inline-grid}header .date{display:none}main{padding:25px 18px}.heading{align-items:flex-start}.heading h1{font-size:27px}.heading p{font-size:12px}.heading button{font-size:12px;padding:10px}.stats{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.stat strong{font-size:28px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.panel-head{padding:18px}.task-line{padding:16px}.onboard{padding:18px}.status{font-size:10px}.week{min-width:800px}.auth{margin:4vh auto;padding:20px}.toolbar input[type=search]{width:100%}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Match the capital F to the lowercase letter height; preserve the ring. */
.brand .brand-initial{font-size:.75em;line-height:1;transform:translateY(1px);flex-shrink:0}

/* One vector wordmark keeps F/c/u/s on the same optical top and bottom. */
.brand .focus-wordmark{width:108px;height:44px;flex-shrink:0;overflow:visible}
header .mobile-menu{display:inline-grid}
@media(min-width:741px){aside{transition:transform .2s}.shell{transition:margin-left .2s}body.sidebar-collapsed aside{transform:translateX(-100%)}body.sidebar-collapsed .shell{margin-left:0}}

.schedule-filters select{min-width:180px;max-width:270px}.roster-table{min-width:1000px;table-layout:fixed}.roster-table th,.roster-table td{padding:12px 10px;vertical-align:top;overflow-wrap:anywhere}.roster-table th:first-child{width:170px}.roster-table .shift{margin:0 0 6px}.roster-table strong{font-weight:500}#schedule-print{display:none}
@media print{
 @page{size:letter landscape;margin:.4in}
 :root{color-scheme:light}body{background:white!important;color:#17252b!important;font-family:Arial,sans-serif}body>*{display:none!important}body>#schedule-print{display:block!important}
 .schedule-print-page{break-after:page}.schedule-print-page:last-child{break-after:auto}.print-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px;font-size:11px}.print-heading h1{font-size:19px;margin:0 0 5px;font-weight:600}.print-heading p{margin:0;color:#17252b}.print-preview{font-size:10px;font-weight:bold;color:#17252b;margin:0 0 10px}
 #schedule-print .roster-table{min-width:0;width:100%;table-layout:fixed;border-collapse:collapse;font-size:9px}#schedule-print th,#schedule-print td{border:1px solid #b7c0c4;padding:7px 5px;color:#17252b;overflow-wrap:anywhere}#schedule-print th{background:#eef1f2;font-size:9px;letter-spacing:0}#schedule-print th:first-child{width:15%}#schedule-print .muted{color:#48565d}#schedule-print .small{font-size:8px}#schedule-print thead{display:table-header-group}#schedule-print tr{break-inside:avoid}#schedule-print .printed-shift{margin-bottom:5px}#schedule-print .printed-shift:last-child{margin-bottom:0}#schedule-print footer{font-size:9px;margin-top:12px;display:flex;justify-content:space-between;gap:15px;color:#48565d}
}

.pay-date{color:var(--mint);border:0;padding:5px 0;font-size:12px;background:none}.pay-date svg{width:13px;height:13px}.pay-detail-body{padding:24px}.pay-detail-line{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:13px 0;font-size:13px}.pay-detail-line strong{font-weight:500;text-align:right;white-space:nowrap}.pay-detail-body h3{font-size:14px;font-weight:500;margin:25px 0 6px}.pay-detail-body p{margin:20px 0}.pay-detail-body .foot{display:flex;justify-content:flex-end;gap:10px}
.assistant-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:24px;min-height:650px}.assistant-inbox{align-self:start}.conversation{width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;text-align:left;padding:17px 18px}.conversation:last-child{border-bottom:0}.conversation.active-convo{background:#c2e8d60b}.conversation strong,.conversation span{display:block}.conversation strong{font-size:13px;font-weight:550;margin-bottom:4px}.conversation span,.conversation time{font-size:11px;color:var(--muted)}.assistant-chat{display:flex;flex-direction:column;min-height:650px}.chat-head{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px}.chat-head h2{margin:0 0 4px}.chat-head select{padding:9px 10px}.messages{flex:1;padding:28px;display:flex;flex-direction:column;gap:16px;overflow:auto;min-height:350px;max-height:470px}.message{display:flex;flex-direction:column;max-width:72%;gap:6px}.message span{padding:12px 15px;border-radius:15px;line-height:1.5;font-size:13px}.message small{font-size:10px;color:var(--muted);padding:0 4px}.message.customer{align-self:flex-start}.message.customer span{background:#ffffff0b;border:1px solid var(--line);border-bottom-left-radius:5px}.message.focus{align-self:flex-end;align-items:flex-end}.message.focus span{background:var(--mint);color:#173a2e;border-bottom-right-radius:5px}.message.focus span:first-letter{}.demo-context{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 20px;display:flex;gap:18px;flex-wrap:wrap;font-size:10px;color:var(--muted)}.demo-context b{color:var(--soft);font-weight:600;margin-right:5px}.chat-compose{padding:16px 18px 8px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.chat-compose textarea{min-height:56px}.chat-compose button{height:56px}.demo-note{padding:0 20px 16px}.assistant-inbox .panel-head>div{min-width:0}@media(max-width:900px){.assistant-layout{grid-template-columns:1fr;min-height:0}.assistant-inbox{display:none}.assistant-chat{min-height:620px}.message{max-width:88%}}@media(max-width:740px){.chat-head{align-items:flex-start;flex-direction:column}.chat-head .row{width:100%}.chat-head select{flex:1}.messages{padding:18px}.chat-compose{grid-template-columns:1fr}.chat-compose button{height:44px}.assistant-chat{min-height:calc(100dvh - 180px)}}

/* Natural conversation pacing for the internal Assistant demo */
.typing-message .typing-bubble{display:inline-flex;align-items:center;gap:5px;min-width:54px;justify-content:center;padding:14px 16px!important}
.typing-bubble i{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.35;animation:focusTyping 1.15s infinite ease-in-out}
.typing-bubble i:nth-child(2){animation-delay:.16s}.typing-bubble i:nth-child(3){animation-delay:.32s}
@keyframes focusTyping{0%,60%,100%{transform:translateY(0);opacity:.3}30%{transform:translateY(-4px);opacity:.9}}
.assistant-welcome{margin:auto;text-align:center;max-width:430px;padding:42px 22px;color:var(--muted)}
.assistant-welcome h3{color:var(--text);margin:0 0 8px}.assistant-welcome p{margin:0;line-height:1.55}.messages.empty-chat{display:flex;min-height:340px}
/* v10 staffing schedule */
.stat-button{appearance:none;width:100%;border:0;border-right:1px solid var(--line);border-radius:0;text-align:left;background:transparent;color:inherit;min-height:0}.stat-button:last-child{border-right:0}.stat-button:hover{background:#ffffff08}.schedule-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.schedule-summary>div{border:1px solid var(--line);border-radius:13px;padding:15px 18px;background:#ffffff04}.schedule-summary strong{font-size:24px;font-weight:500;display:block}.schedule-summary span{font-size:11px;color:var(--muted)}.schedule-summary .needs-fill{border-color:#d7b87855;background:#d7b8780b}.staffing-board{display:grid}.staffing-day{border-bottom:1px solid var(--line);padding:18px 20px}.staffing-day:last-child{border-bottom:0}.staffing-day-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.staffing-day-head div{display:flex;gap:9px;align-items:baseline}.staffing-day-head span{font-size:12px;color:var(--muted)}.staffing-day-head strong{font-size:14px;font-weight:500}.staff-slot{width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;text-align:left;margin:8px 0;padding:13px 15px;background:#ffffff04}.staff-slot>div:first-child{display:grid;gap:3px}.staff-slot>div:first-child strong{font-size:13px}.staff-slot>div:first-child span{font-size:11px;color:var(--muted)}.slot-person{display:flex;align-items:center;gap:9px;min-width:170px;justify-content:flex-end}.slot-person b{font-size:12px;font-weight:500}.staff-slot.open{border-color:#d7b87855;background:#d7b8780a}.open-label{font-size:9px;letter-spacing:1.2px;color:#e0c184;border:1px solid #d7b87855;padding:4px 6px;border-radius:6px}.open-shift{border-left-color:#d7b878;background:#d7b8780c}.staffing-empty{padding:14px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);font-size:11px}.shift b{display:block;font-size:11px;margin-bottom:4px}@media(max-width:740px){.schedule-summary{grid-template-columns:repeat(3,1fr)}.staff-slot{align-items:flex-start;flex-direction:column}.slot-person{justify-content:flex-start;min-width:0}}

/* v12 polished departments */
.department-panel .panel-head{align-items:flex-start}.department-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.department-card{display:grid;grid-template-columns:44px minmax(0,1fr) 22px;gap:14px;align-items:center;padding:17px 16px;border:1px solid var(--line);border-radius:13px;background:#ffffff03;text-align:left;min-height:94px}.department-card:hover{background:#ffffff07;border-color:#bfe8d643;transform:translateY(-1px)}.department-mark{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:#bfe8d612;border:1px solid #bfe8d622;color:var(--mint)}.department-mark svg{width:20px;height:20px}.department-copy{display:grid;gap:3px;min-width:0}.department-copy strong{font-size:14px;font-weight:560}.department-copy small{font-size:11px;color:var(--muted)}.department-meta{margin-top:7px;font-size:10px;color:var(--muted)}.department-meta b{color:var(--soft);font-weight:550}.department-arrow{color:var(--muted)}.department-arrow svg{width:17px;height:17px}.department-empty{display:flex;align-items:center;gap:15px;padding:8px}.department-empty strong{font-size:13px}.department-empty p{font-size:11px;color:var(--muted);margin:4px 0 0;line-height:1.5}

/* v12 payroll reporting */
.payroll-toolbar{align-items:end}.payroll-toolbar label{min-width:140px}.payroll-toolbar #pay-employee{min-width:220px}.payroll-actions{align-self:flex-end}.payroll-person-banner{display:flex;align-items:center;gap:12px;margin:0 0 18px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:#ffffff03}.payroll-person-banner>div:nth-child(2){display:grid;gap:3px;flex:1}.payroll-person-banner strong{font-size:13px}.payroll-person-banner span{font-size:11px;color:var(--muted)}.payroll-person-banner button{display:flex;align-items:center;gap:5px}.payroll-person-banner button svg{width:14px;height:14px}.payroll-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:15px;overflow:hidden;margin-bottom:20px;background:var(--panel)}.payroll-kpis>div{padding:22px 24px;border-right:1px solid var(--line)}.payroll-kpis>div:last-child{border-right:0}.payroll-kpis span{display:block;font-size:11px;color:var(--muted);margin-bottom:9px}.payroll-kpis strong{display:block;font-size:30px;font-weight:450;line-height:1.05}.payroll-kpis small{display:block;font-size:10px;color:var(--muted);margin-top:9px}.payroll-breakdown{margin-bottom:22px}.cost-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line)}.cost-grid>div{padding:21px 22px;border-right:1px solid var(--line)}.cost-grid>div:last-child{border-right:0}.cost-grid span{display:block;font-size:11px;color:var(--muted);margin-bottom:8px}.cost-grid strong{font-size:23px;font-weight:480;display:block}.cost-grid small{display:block;font-size:10px;color:var(--muted);margin-top:7px}.cost-grid .cost-total{background:#bfe8d607}.cost-foot{display:flex;gap:25px;flex-wrap:wrap;padding:13px 22px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.cost-foot strong{color:var(--soft);font-weight:550}#payroll-print{display:none}
@media(max-width:1050px){.payroll-kpis,.cost-grid{grid-template-columns:1fr 1fr}.payroll-kpis>div:nth-child(2),.cost-grid>div:nth-child(2){border-right:0}.payroll-kpis>div:nth-child(-n+2),.cost-grid>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:740px){.department-grid{grid-template-columns:1fr}.payroll-toolbar{align-items:stretch}.payroll-toolbar .row{width:100%}.payroll-toolbar label,.payroll-toolbar #pay-employee{width:100%;min-width:0}.payroll-actions{width:100%}.payroll-actions button{flex:1}.payroll-kpis,.cost-grid{grid-template-columns:1fr}.payroll-kpis>div,.cost-grid>div{border-right:0!important;border-bottom:1px solid var(--line)!important}.payroll-kpis>div:last-child,.cost-grid>div:last-child{border-bottom:0!important}.payroll-person-banner{align-items:flex-start;flex-wrap:wrap}.payroll-person-banner button{width:100%;justify-content:center}}
@media print{
 body>#payroll-print{display:block!important}
 .payroll-print-page{font-family:Arial,sans-serif;color:#17252b}.print-payroll-summary{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #aeb9bd;margin:0 0 14px}.print-payroll-summary>div{padding:9px 10px;border-right:1px solid #aeb9bd;border-bottom:1px solid #aeb9bd}.print-payroll-summary>div:nth-child(3n){border-right:0}.print-payroll-summary>div:nth-last-child(-n+3){border-bottom:0}.print-payroll-summary span{display:block;font-size:8px;color:#526067;margin-bottom:3px}.print-payroll-summary strong{font-size:13px}.payroll-print-table{width:100%;border-collapse:collapse;font-size:8px}.payroll-print-table th,.payroll-print-table td{border:1px solid #b7c0c4;padding:6px 5px;text-align:left}.payroll-print-table th{background:#eef1f2}.payroll-print-page footer{display:flex;justify-content:space-between;gap:15px;margin-top:10px;font-size:8px;color:#526067}
}
/* Focus v13 shared features: organization management, payroll drill-downs, reports. */
.block{display:block}.crumb-current{color:var(--text)}.crumb{min-width:0}.crumb>span{overflow-wrap:anywhere}aside{overflow-y:auto}.workspace-label{overflow-wrap:anywhere}.aside-bottom{flex-shrink:0}main{min-width:0}.payroll-trends{margin-bottom:24px}.chart-body{padding:22px 24px}.pay-trend{display:block;width:100%;height:auto;min-height:180px;max-height:340px;overflow:visible}.pay-trend text{fill:var(--muted);font:12px system-ui,sans-serif}.chart-grid{stroke:#ffffff14;stroke-width:1}.chart-baseline{stroke:#ffffff45;stroke-width:1}.chart-bar{fill:#a9d9c6}.chart-bar:hover{fill:#d5f3e7}.chart-missing{fill:#78919e}.pay-mix{display:block;width:100%;height:22px;border-radius:5px;overflow:hidden;margin:18px 0 12px}.mix-regular{fill:#9ed0bc;background:#9ed0bc}.mix-overtime{fill:#dcb977;background:#dcb977}.mix-bonus{fill:#7faec8;background:#7faec8}.mix-empty{fill:#ffffff0d}.mix-legend{display:flex;flex-wrap:wrap;gap:14px 24px;margin:10px 0 18px;font-size:12px;color:var(--muted)}.mix-legend span{display:flex;gap:8px;align-items:center}.mix-legend i{width:8px;height:8px;border-radius:3px;display:inline-block}.mix-legend strong{font-weight:500;color:var(--text)}.chart-empty{min-height:180px;display:grid;place-items:center;color:var(--muted);text-align:center;font-size:13px;padding:25px}
.payroll-kpis>button.pay-metric,.cost-grid>button.pay-metric{border:0;border-radius:0;background:none;min-height:135px;padding:23px 24px;text-align:left;display:flex;flex-direction:column;align-items:flex-start;border-right:1px solid var(--line);position:relative;white-space:normal}.payroll-kpis>button.pay-metric:last-child,.cost-grid>button.pay-metric:last-child{border-right:0}.pay-metric:hover{background:#c2e8d60b!important}.pay-metric:after{content:'↗';position:absolute;right:18px;top:18px;font-size:16px;color:var(--soft)}.pay-metric>span{font-size:12px;color:var(--muted);padding-right:20px}.pay-metric>strong{font-size:31px;font-weight:450;letter-spacing:-.7px;margin:12px 0 6px;color:var(--text);overflow-wrap:anywhere;max-width:100%}.pay-metric>small{font-size:11px;color:var(--muted)}.cost-grid>button.pay-metric>strong{font-size:25px}.cost-grid .cost-total{background:#c2e8d608!important}.cost-foot button{font-size:11px;min-height:32px;padding:5px 10px}.payroll-kpis,.cost-grid{min-width:0}.payroll-breakdown{margin-bottom:24px}.payroll-toolbar .row{flex-wrap:wrap}
.analytics-dialog{width:min(1020px,calc(100vw - 36px));max-height:calc(100dvh - 32px)}.analytics-dialog .dialog-head{position:sticky;top:0;background:#12232e;z-index:2}.analytics-body{padding:24px;overflow-x:hidden}.analytics-top{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:22px}.analytics-total{font-size:36px;font-weight:500;letter-spacing:-1px}.analytics-top p{font-size:12px;max-width:480px;margin-top:8px}.comparison{border-left:2px solid var(--soft);padding:10px 0 10px 18px;display:flex;flex-direction:column;gap:6px;font-size:13px;align-self:center}.comparison small{font-size:11px;color:var(--muted)}.analytics-mini{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px}.analytics-mini>div{border:1px solid var(--line);border-radius:10px;padding:14px}.analytics-mini span{display:block;color:var(--muted);font-size:11px}.analytics-mini strong{font-size:20px;font-weight:500;display:block;margin-top:8px}.analytics-body h3{font-weight:500;font-size:15px;margin:24px 0 12px}.chart-controls{display:flex;align-items:center;justify-content:space-between;gap:15px}.chart-controls h3{margin:0}.segmented{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:10px}.segmented button{border:0;background:none;min-height:32px;padding:6px 12px;font-size:12px}.segmented button.selected{background:#c2e8d619;color:var(--mint)}.analytics-reconciliation{margin:16px 0}.analytics-body .table-wrap{border:1px solid var(--line);border-radius:10px}.analytics-body table{min-width:620px}.analytics-body th,.analytics-body td{padding:13px 14px}.chart-data{margin:22px 0}.chart-data summary{padding:12px;cursor:pointer;border:1px solid var(--line);border-radius:9px}.chart-data[open] summary{margin-bottom:10px}.analytics-body>.foot{position:sticky;bottom:-24px;background:#12232e;padding:18px 0 6px;border-top:1px solid var(--line);margin-top:20px;flex-wrap:wrap}.analytics-body .pay-detail-line{flex-wrap:wrap}
.organization-table{min-width:740px}.organization-table td{vertical-align:middle}.org-code{font:500 13px ui-monospace,monospace;color:var(--mint);white-space:nowrap;min-height:38px;padding:8px 10px}.org-code span{font:10px system-ui;color:var(--muted);margin-left:10px}.current-org{display:inline-block;margin-left:10px;padding:2px 6px;border:1px solid var(--line);border-radius:5px;font-size:9px;color:var(--mint)}.org-row-actions{flex-wrap:nowrap}.org-danger{display:grid;gap:10px;border-top:1px solid var(--line);padding-top:18px;margin-top:5px}.danger{border-color:#e6a5a54a!important;color:#ffc4bf!important}.auth-organization{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;margin:18px 0}.auth-organization button{width:auto;font-size:11px;min-height:34px;padding:7px 10px}.auth .segmented{margin:20px 0}.auth .brand{margin-bottom:16px}.auth .small{margin-top:16px}.inline-error{display:flex;gap:12px;align-items:center;margin:12px 20px;padding:12px 16px;border:1px solid #d2998d77;border-radius:9px;background:#4b272455;color:#ffd5cc;font-size:12px}.inline-error span{flex:1}.inline-error button{min-height:30px;padding:0 8px}.assistant-draft{padding:16px 20px;border-top:1px solid var(--line)}.assistant-draft textarea{width:100%;margin-bottom:12px}.conversation-row{border-radius:0;width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;gap:12px;padding:16px;border:0;border-bottom:1px solid var(--line);background:transparent}.conversation-row span:first-child{display:grid;gap:7px;min-width:0}.conversation-row small{color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.conversation-row.selected{background:#c2e8d60b}.account-menu summary{cursor:pointer;padding:10px;border:1px solid var(--line);border-radius:9px;list-style:none}.account-menu button{display:block;width:100%;margin:5px 0}.account-menu[open]{padding:6px;background:#12232e}.device-link{display:block;padding:12px;color:var(--mint);font-size:12px}#toast{display:none;max-width:min(820px,92vw);gap:12px;align-items:center}#toast.show{display:flex}#toast button{margin-left:auto;border:0;color:#173a2e;background:none;min-height:26px;padding:0 4px;font-size:22px;flex-shrink:0}.auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--muted)}.auth-divider:before,.auth-divider:after{content:'';height:1px;background:var(--line);flex:1}.badge-tap{min-height:112px;display:grid;grid-template-columns:58px 1fr;text-align:left;align-items:center;gap:8px 14px;padding:18px}.badge-tap small{grid-column:2;margin:0!important}.badge-ring{grid-row:1/3;width:52px;height:52px;border:2px solid var(--soft);border-radius:50%;box-shadow:inset 0 0 0 8px #ffffff08}.badge-tap.listening{border-color:var(--mint)}#focus-report{display:none}
@media(max-width:1000px){.analytics-mini{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-kpis>button.pay-metric,.cost-grid>button.pay-metric{padding:18px;min-height:125px}.pay-metric>strong{font-size:27px}.analytics-top{grid-template-columns:1fr}.comparison{border-left:0;border-top:1px solid var(--line);padding:12px 0}.organization-table{min-width:680px}}
@media(max-width:740px){.payroll-kpis,.cost-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-kpis>button.pay-metric:nth-child(2),.cost-grid>button.pay-metric:nth-child(2){border-right:0}.payroll-kpis>button.pay-metric:nth-child(-n+2),.cost-grid>button.pay-metric:nth-child(-n+2){border-bottom:1px solid var(--line)}.analytics-dialog{width:calc(100vw - 18px);max-height:calc(100dvh - 18px)}.analytics-body{padding:16px}.analytics-dialog .dialog-head{padding:16px}.analytics-total{font-size:30px}.chart-body{padding:16px}.pay-trend{min-height:150px}.chart-controls{align-items:flex-start;flex-wrap:wrap}.mix-legend{gap:10px}.pay-detail-line strong{white-space:normal}.payroll-person-banner{flex-wrap:wrap}.analytics-body>.foot{bottom:-16px}.org-row-actions button{min-width:70px}.auth{max-width:480px}}
/* A single isolated print root avoids stale schedule reports bleeding into payroll.
   Explicit borders on every cell override the old last-row border reset. */
@media print{
 @page{size:letter landscape;margin:.4in}
 html,body{background:#fff!important;color:#17252b!important;overflow:visible!important;height:auto!important;width:auto!important}
 body>*{display:none!important}
 body[data-print-target="focus-report"]>#focus-report{display:block!important;position:static!important;transform:none!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
 body>#schedule-print,body>#payroll-print,dialog,#connection-tools,#pi-keyboard,#toast{display:none!important}
 #focus-report *{box-sizing:border-box;color:#17252b!important;box-shadow:none!important;text-shadow:none!important}
 #focus-report{font:10px Arial,sans-serif}
 #focus-report .report-page{break-after:page}
 #focus-report .report-page:last-child{break-after:auto}
 #focus-report .report-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin:0 0 15px;font-size:10px}
 #focus-report h1{font:600 19px Arial,sans-serif;margin:0 0 6px}
 #focus-report h2{font:600 13px Arial,sans-serif;margin:16px 0 10px}
 #focus-report p{font-size:10px;margin:5px 0 10px;line-height:1.4}
 #focus-report .report-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #9caab0;border-left:1px solid #9caab0;margin:15px 0}
 #focus-report .report-summary>div{padding:9px;border-right:1px solid #9caab0;border-bottom:1px solid #9caab0;break-inside:avoid}
 #focus-report .report-summary span{display:block;font-size:9px;margin-bottom:5px}
 #focus-report .report-summary strong{display:block;font-size:12px}
 #focus-report table{width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed;border-collapse:collapse!important;border:1px solid #9caab0!important;font:9px Arial,sans-serif!important}
 #focus-report table th,#focus-report table td,#focus-report table tr:last-child td{border:1px solid #9caab0!important;padding:7px 5px!important;text-align:left;vertical-align:top;overflow-wrap:anywhere;white-space:normal;font-size:9px;letter-spacing:0}
 #focus-report table th{background:#edf1f2!important;font-weight:600;text-transform:none;font-size:9px}
 #focus-report table th:first-child{width:20%}
 #focus-report table small{display:block;font-size:8px;margin-top:3px}
 #focus-report thead{display:table-header-group}
 #focus-report tr{break-inside:avoid}
 #focus-report .printed-shift{margin-bottom:5px}
 #focus-report footer{display:flex;justify-content:space-between;gap:16px;margin-top:12px;font-size:8px}
 #focus-report .pay-trend{width:100%!important;height:auto;max-height:210px;min-height:0;break-inside:avoid}
 #focus-report .pay-trend text{fill:#34494e!important}
 #focus-report .chart-grid{stroke:#d6dfe2!important}
 #focus-report .chart-baseline{stroke:#7d8f96!important}
 #focus-report .chart-bar{fill:#578471!important}
 #focus-report .chart-missing{fill:#8a999e!important}
 #focus-report .table-wrap{overflow:visible!important}
}

/* v14 — role-aware, touch-friendly layout. Native gestures are not intercepted. */
html,body{min-height:100%;touch-action:pan-x pan-y pinch-zoom}
body{overflow-x:hidden}main,.shell,.heading>div,.panel-head>div{min-width:0}
aside{overflow-y:auto;overscroll-behavior-y:contain;padding-top:20px;padding-bottom:20px}
aside .workspace-label{margin-top:24px}aside .brand{flex-shrink:0}
.aside-bottom{margin-top:auto;padding-top:14px}.account-menu{margin-top:10px}
header{min-height:64px;height:auto;padding-block:12px}.crumb{min-width:0}.crumb-current{overflow-wrap:anywhere}
main{padding-top:32px}.heading{gap:16px;align-items:flex-start}.heading h1{line-height:1.2;overflow-wrap:anywhere}
.heading>button{align-self:flex-start;flex-shrink:0}.heading p{max-width:64ch}
.panel-head{flex-wrap:wrap;align-items:center;padding:20px 24px}
.panel-head .breakdown-trigger{border:1px solid var(--line);border-radius:10px;padding:10px 14px;min-height:44px;white-space:normal}
.payroll-breakdown{margin-bottom:24px}.cost-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.pay-metric{min-width:0;white-space:normal;overflow-wrap:anywhere;min-height:142px;text-align:left;border-radius:0}
.pay-metric>strong{line-height:1.25;font-variant-numeric:tabular-nums;letter-spacing:-.6px;font-size:clamp(22px,2.4vw,30px)}
.pay-metric>span,.pay-metric>small{line-height:1.55}.pay-metric>small{display:block;margin-top:8px}
.cost-foot{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;padding:18px 24px}
.cost-foot>span{line-height:1.6}.pay-detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.pay-detail-actions button{min-height:40px;font-size:12px}
.payroll-toolbar{align-items:flex-end;gap:16px}.payroll-toolbar>.row{align-items:flex-end;gap:16px}
.payroll-toolbar label{min-width:150px;max-width:100%}.payroll-toolbar select{width:100%}
.payroll-person-banner{gap:14px;flex-wrap:wrap}
.analytics-dialog{width:min(1180px,calc(100vw - 28px));max-height:calc(100dvh - 28px);overflow:auto;touch-action:pan-x pan-y pinch-zoom}
.analytics-body{padding:24px}.analytics-charts{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(240px,1fr);gap:24px;margin:24px 0}
.trend-pane,.mix-pane{border:1px solid var(--line);border-radius:14px;padding:18px;min-width:0}
.analytics-charts h3{margin-top:0}.chart-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between}
.pay-trend{width:100%;height:auto;min-width:0;display:block;overflow:visible;font-family:inherit}
.pay-donut{width:min(220px,100%);height:auto;display:block;margin:0 auto;overflow:visible;font-family:inherit}
.donut-track{stroke:#ffffff12}.donut-segment{cursor:pointer;transition:opacity .15s}.donut-segment:hover{opacity:.8}
.donut-segment.mix-regular{stroke:#aadaca;fill:none}.donut-segment.mix-overtime{stroke:#dfbb75;fill:none}.donut-segment.mix-bonus{stroke:#7db2ce;fill:none}
.donut-label{font-size:12px;fill:var(--muted)}.donut-total{font-size:21px;fill:var(--text);font-weight:600}
.donut-legend{display:grid;gap:6px}.donut-legend button{display:flex;gap:10px;align-items:center;min-height:54px;padding:9px 10px;text-align:left;border:0;background:none}
.donut-legend i{width:9px;height:9px;border-radius:50%;flex-shrink:0}.donut-legend span{flex:1;font-size:12px}.donut-legend small{display:block;color:var(--muted);margin-top:4px}.donut-legend strong{font-size:13px;white-space:nowrap}
.analytics-mini{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.analytics-mini>div{min-width:0}
.analytics-top{gap:24px;flex-wrap:wrap}.analytics-top p{max-width:64ch}.analytics-top .comparison{max-width:360px}
.analytics-reconciliation .pay-detail-line{gap:20px;flex-wrap:wrap;line-height:1.6}
.detail-row{display:flex;width:100%;border-radius:0;text-align:left;background:none;cursor:pointer;font-size:13px}
.detail-row .title,.detail-row .meta{display:block}.detail-row:hover{background:#c2e8d609}.detail-row>svg{flex-shrink:0;color:var(--mint)}
.task-title-button{padding:0!important;border:0;background:none!important;min-height:28px!important;text-align:left;color:inherit;width:100%;font-size:13px!important}
.task-notes{white-space:pre-wrap;margin-bottom:20px}.employee-pay-note{margin-top:24px}
.stats>.stat{border-radius:0;text-align:left;min-width:0}.stat strong{font-variant-numeric:tabular-nums;font-size:clamp(24px,2.5vw,32px)}
.schedule-summary>button{display:flex;flex-direction:column;align-items:flex-start;padding:18px;border:1px solid var(--line);gap:8px;min-width:0}
.schedule-summary strong{font-size:24px;font-weight:500}.schedule-summary span{font-size:12px;color:var(--muted)}
.schedule-filters{align-items:flex-end}.schedule-filters>.row{align-items:flex-end}.staffing-board{min-width:0}
.staffing-day{min-width:0}.staff-slot{gap:16px;min-height:86px;padding:16px!important}.staff-slot>div{min-width:0}.slot-person{min-width:0;flex-wrap:wrap}
.staff-slot span,.staff-slot b{overflow-wrap:anywhere}.table-wrap{overflow:auto;touch-action:pan-x pan-y pinch-zoom;overscroll-behavior:auto}
.account-sides{display:flex;gap:8px;background:#ffffff04;border:1px solid var(--line);padding:5px;border-radius:12px;margin:0 0 24px}
.account-sides a{flex:1;text-align:center;text-decoration:none;padding:10px;border-radius:8px;color:var(--muted)}.account-sides a.selected{background:#c2e8d615;color:var(--mint)}
.text-button{border:0;background:none;color:var(--mint);font-size:13px}.button-link{display:inline-block;padding:12px 16px;border:1px solid var(--line);border-radius:10px;margin-left:8px;text-decoration:none}
.password-dialog{width:min(500px,calc(100vw - 28px));touch-action:pan-y pinch-zoom}.password-dialog .dialog-head{padding-bottom:22px}.password-dialog .dialog-head p.small{margin-top:10px;max-width:36ch}
.password-gate{text-align:center}.password-dialog form{gap:16px}.password-dialog input{min-height:48px}.password-dialog .primary{min-height:48px}
.auth .auth-organization{gap:12px;align-items:center}.auth .auth-organization button{width:auto}.auth .brand{margin-bottom:24px}
@media(max-width:1100px){.analytics-charts{grid-template-columns:1fr}.mix-pane .donut-wrap{display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr);align-items:center;gap:20px}.payroll-kpis,.cost-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pay-metric{min-height:128px}.cost-foot .pay-detail-actions{margin-left:0}.heading h1{font-size:28px}}
@media(max-height:700px) and (min-width:741px){aside{padding-top:12px;padding-bottom:12px}aside nav{gap:2px}aside nav button{padding:9px 12px;min-height:40px}aside .workspace-label{margin-top:16px;margin-bottom:8px}.aside-bottom{padding-top:8px}.account{margin-top:10px}.brand{height:40px}.account-menu{margin-top:4px}}
@media(max-width:600px){.heading{flex-wrap:wrap}.analytics-body{padding:16px}.analytics-mini{grid-template-columns:repeat(2,minmax(0,1fr))}.mix-pane .donut-wrap{display:block}.payroll-toolbar>.row{width:100%}.payroll-toolbar label{flex:1;min-width:120px}.payroll-actions{display:grid!important;grid-template-columns:1fr 1fr}.cost-foot{padding:16px;gap:12px}.panel-head{padding:18px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.staff-slot{align-items:flex-start;flex-wrap:wrap}.schedule-summary{gap:8px}.schedule-summary>button{padding:14px}.analytics-top .comparison{max-width:none}}
@media print{.pay-donut{width:170px}.donut-total{fill:#111}.donut-label{fill:#555}.analytics-charts{display:block}.donut-segment{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

.focus-drag-scroll,.focus-drag-scroll *{user-select:none!important;cursor:grabbing!important}

@media(max-width:1100px){aside .brand small{display:none}aside .brand{max-width:100%}}

/* v19 access report: support details, not customer conversation content. */
.access-report{max-height:260px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;text-align:left;padding:12px;border:1px solid #29424b;border-radius:10px}
#access-diagnostic{margin-top:18px}
