.sf-page{grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:16px;display:grid}.sf-page>*{min-width:0}.sf-span2{grid-column:span 2}.sf-span3{grid-column:1/-1}.sf-stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);align-items:center;gap:14px;padding:16px 18px;display:flex}.sf-stat .sf-tile{width:40px;height:40px}.sf-stat b{letter-spacing:-.02em;font-size:24px;font-weight:600;line-height:1.1;display:block}.sf-stat span.sf-lab{color:var(--ink-3);margin-top:2px;font-size:13px;display:block}.sf-tile{background:var(--sunken);width:36px;height:36px;color:var(--ink-2);border-radius:10px;flex:none;place-items:center;display:grid}.sf-tile.amber{background:var(--c-amber);color:var(--t-amber)}.sf-tile.red{background:var(--c-red);color:var(--t-red)}.sf-tile.green{background:var(--c-green);color:var(--t-green)}.sf-tile.blue{background:var(--c-blue);color:var(--t-blue)}.sf-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}.sf-card-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:14px 18px;display:flex}.sf-card-head h2{letter-spacing:-.01em;align-items:center;gap:10px;margin:0;font-size:16px;font-weight:600;display:flex}.sf-card-head .sf-grow{flex:1}.sf-filters{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sf-filters .cd-select,.sf-filters .cd-seg{max-width:100%}.sf-row{border-top:1px solid var(--line);align-items:center;gap:14px;padding:12px 18px;transition:background-color .18s ease-out;display:flex;position:relative}.sf-card-head+.sf-row,.sf-row:first-child{border-top:0}.sf-row:hover{background:var(--hover)}.sf-main{flex:1;min-width:0}.sf-main .sf-title{text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:600;display:block;overflow:hidden}.sf-main .sf-sub{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:13px;display:block;overflow:hidden}.sf-side{flex:none;align-items:center;gap:8px;display:flex}.sf-when{color:var(--ink-3);white-space:nowrap;font-size:13px}.sf-hover{opacity:0;transition:opacity .18s ease-out}.sf-row:hover .sf-hover,.sf-row:focus-within .sf-hover{opacity:1}@media (hover:none){.sf-hover{opacity:1}}.sf-empty{color:var(--ink-3);padding:28px 18px;font-size:14px}.sf-note{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);align-items:center;gap:10px;padding:10px 14px;font-size:14px;display:flex}.sf-note .btn{margin-left:auto}.sf-more{border-top:1px solid var(--line);justify-content:center;padding:12px;display:flex}.sf-log .sf-row{align-items:flex-start}.sf-log .sf-tile{margin-top:1px}.sf-log .sf-title{white-space:normal;font-weight:500}.sf-log .sf-sub{white-space:normal}.sf-roles{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.sf-role{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);flex-direction:column;display:flex}.sf-role header{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:14px 16px;display:flex}.sf-role header b{font-size:15px;font-weight:600;display:block}.sf-role header span.sf-lab{color:var(--ink-3);font-size:12.5px;display:block}.sf-perm{border-top:1px solid var(--line);align-items:center;gap:12px;padding:11px 16px;font-size:14px;display:flex}.sf-perm:first-of-type{border-top:0}.sf-perm>svg{color:var(--ink-3);flex:none}.sf-perm>span{flex:1;min-width:0}.sf-perm.locked{color:var(--ink-3)}.sf-role header .sf-grow-end{margin-left:auto}.sf-stop{border:1px solid var(--bad);border-radius:var(--radius-md);background:var(--c-red);color:var(--t-red);align-items:center;gap:12px;margin:0 0 12px;padding:12px 16px;font-size:14px;display:flex}.sf-stop>span{flex:1;gap:2px;min-width:0;display:grid}.sf-stop b{font-weight:600}.sf-stop .muted{color:inherit;opacity:.8}.sf-stop .btn{background:var(--surface);color:var(--ink);flex:none}.sf-field{color:var(--ink-3);gap:6px;font-size:13px;display:grid}.sf-field textarea{box-sizing:border-box;border:1px solid var(--line-strong);background:var(--surface);width:100%;min-height:84px;color:var(--ink);font:inherit;resize:vertical;border-radius:10px;padding:10px 12px;font-size:14px}.sf-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.sf-reason{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--sunken);gap:10px;padding:12px;display:grid}.sf-reason textarea{box-sizing:border-box;border:1px solid var(--line-strong);background:var(--surface);width:100%;min-height:64px;color:var(--ink);font:inherit;resize:vertical;border-radius:10px;padding:8px 10px;font-size:14px}.sf-reason textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.sf-reason .sf-actions{justify-content:flex-end;gap:8px;display:flex}.sf-reason .sf-actions .btn:first-child{margin-right:auto}@media (width<=1100px){.sf-roles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.sf-page,.sf-roles{grid-template-columns:1fr}.sf-span2,.sf-span3{grid-column:auto}.sf-row{flex-wrap:wrap;padding:12px 14px}.sf-side{justify-content:space-between;width:100%}.sf-stop{flex-wrap:wrap}.sf-stop .btn{width:100%}}.menu button.sf-menu-danger{color:var(--bad)}.sf-pay-line{flex-wrap:wrap;align-items:center;gap:4px 14px;margin:2px 0 6px;display:flex}.sf-link{color:var(--accent-ink,var(--accent));font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;transition:opacity .18s ease-out}.sf-link:hover{text-decoration:underline}.sf-pay-history{gap:4px;padding-left:0;list-style:none;display:grid}.sf-pay-history li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;display:flex}.sf-pay-history .chip{margin-left:8px}.sf-pay-history .sf-row-actions{opacity:0;gap:12px;transition:opacity .18s ease-out;display:inline-flex}.sf-pay-history li:hover .sf-row-actions,.sf-pay-history li:focus-within .sf-row-actions{opacity:1}@media (hover:none){.sf-pay-history .sf-row-actions{opacity:1}}.sf-paylog{color:var(--ink-2,var(--ink));gap:8px;margin:8px 0 0;padding:0;font-size:13px;list-style:none;display:grid}.sf-paylog li{border-top:1px solid var(--line);gap:2px;padding-top:8px;display:grid}.sf-paylog-head{color:var(--ink-3);font-size:12px}.sf-paylog-head b{color:var(--ink);font-weight:600}.sf-field input:not([type=checkbox]):not([type=radio]){box-sizing:border-box;border:1px solid var(--line-strong);background:var(--surface);width:100%;height:38px;color:var(--ink);font:inherit;border-radius:10px;padding:0 12px;font-size:14px;transition:border-color .18s ease-out,box-shadow .18s ease-out}.sf-field input:not([type=checkbox]):not([type=radio]):focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.sf-reason .sf-field{max-width:none}.sf-ai-row{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--ink-3);align-items:center;gap:10px;margin:0 0 12px;padding:8px 12px;font-size:13px;display:flex}.sf-ai-row>span{flex:1;min-width:0}@media (width<=640px){.sf-ai-row{flex-wrap:wrap}.sf-ai-row .btn{width:100%}}.sf-narrow{max-width:760px;margin-left:auto;margin-right:auto}.sf-every{max-width:280px}.sf-actions-row{justify-content:flex-end;gap:8px;display:flex}.sf-actions-row .btn:first-child{margin-right:auto}.bk-card>.sf-field,.bk-card>.sf-actions-row,.bk-card>.error{margin-top:12px}.sf-week{gap:4px;max-width:460px;display:grid}.sf-wday{grid-template-columns:32px 44px minmax(0,1fr);align-items:center;gap:12px;padding:4px 0;font-size:14px;display:grid}.sf-wday.off b{color:var(--ink-3);font-weight:500}.sf-wtime{color:var(--ink-3);align-items:center;gap:8px;font-size:13px;display:flex}.sf-wtime>:not(span){flex:none;width:132px}.bk-card>.sf-week{margin-top:12px}@media (width<=560px){.sf-wday{grid-template-columns:32px 44px minmax(0,1fr);row-gap:6px}.sf-wday .sf-wtime{grid-column:1/-1}.sf-wtime>:not(span){flex:1;width:auto;min-width:0}.sf-wday.off .sf-wtime{grid-column:3}}.rp{flex-direction:column;gap:12px;min-width:0;display:flex}.rp-lead{margin:0;font-size:14px}.rp-scroll{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);overflow-x:auto}.rp-table{border-collapse:separate;border-spacing:0;width:100%;font-size:14px}.rp-table th,.rp-table td{border-top:1px solid var(--line);text-align:center;vertical-align:middle;padding:10px 14px}.rp-table thead th{vertical-align:bottom;border-top:0;min-width:150px}.rp-table tbody th[scope=row]{z-index:1;background:var(--surface);text-align:left;white-space:nowrap;min-width:220px;font-weight:500;position:sticky;left:0}.rp-table tbody th[scope=row] svg{color:var(--ink-3);vertical-align:-3px;margin-right:6px}.rp-corner{z-index:2;background:var(--surface);position:sticky;left:0}.rp-role{flex-direction:column;align-items:center;gap:2px;display:flex}.rp-role b{font-size:14px;font-weight:600}.rp-role .sf-lab{color:var(--ink-3);font-size:12.5px;font-weight:400}.rp-role .chip{margin-top:4px}.rp-group-row th{text-align:left;background:var(--sunken);color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;padding:8px 14px;font-size:12.5px;font-weight:600;position:sticky;left:0}.rp-table tbody tr:not(.rp-group-row):hover td,.rp-table tbody tr:not(.rp-group-row):hover th[scope=row]{background:var(--hover,var(--sunken))}.rp-table td.locked{opacity:.55}.rp-table td .cd-select{min-width:140px}.rp-phone{flex-direction:column;gap:12px;display:flex}.rp-pick{flex-wrap:wrap}.rp-phone-head{flex-direction:column;align-items:flex-start;gap:2px}.rp-phone-head .sf-lab{color:var(--ink-3);font-size:12.5px}.rp-group{border-top:1px solid var(--line);color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;margin:0;padding:10px 16px 6px;font-size:12.5px;font-weight:600}.rp-full{margin:0;padding:10px 16px 0}.rp-phone .sf-perm .cd-select{max-width:170px}.rp-preset{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);align-items:center;gap:12px;padding:14px 16px;display:flex}.rp-preset-ico{background:var(--c-blue);width:36px;height:36px;color:var(--t-blue);border-radius:10px;flex:none;place-items:center;display:grid}.rp-preset-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.rp-phone .rp-preset{flex-wrap:wrap;margin-bottom:12px}@media (width<=760px){.rp-preset .btn{justify-content:center;width:100%}}
