:root{color:var(--ink);background:var(--bg);font-synthesis:none;--blue:#0b5f55;--blue-dark:#084a42;--blue-soft:#e3f1ec;--sky:#00508a;--green:#2f8f00;--lime:#8fd14f;--amber:#b36b00;--danger:#a62d26;--ink:#0f1f1c;--muted:#4d6058;--faint:#86958e;--line:#d9e3de;--line-soft:#e8efeb;--bg:#f4f8f5;--hover:#eef4f0;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--aurora-wide:radial-gradient(42% 170% at 86% -30%, #6cc12a 0%, #6cc12a00 70%), radial-gradient(36% 150% at 8% 0%, #3aa696f2 0%, #3aa69600 72%), radial-gradient(46% 170% at 100% 140%, #0a4fa0 0%, #0a4fa000 72%), linear-gradient(100deg, #0f6a66 0%, #0a5586 55%, #04256a 100%);--radius:12px;--radius-sm:6px;font-family:Plus Jakarta Sans,system-ui,sans-serif}*{box-sizing:border-box}html{background:var(--bg)}body{-webkit-font-smoothing:antialiased;background:radial-gradient(75% 55% at 50% 115%,#96d6646b,#f4f8f500 70%) fixed,radial-gradient(45% 35% at 100% 0,#3aa69629,#f4f8f500 70%) fixed;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}h1,h2,h3,p,ul,ol{margin-top:0}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.faint{color:var(--faint)}.error{color:var(--danger)}.num{font-variant-numeric:tabular-nums}.logo{width:fit-content;display:block}.logo img{width:auto;height:30px;display:block}.product{color:var(--muted);letter-spacing:.2em;text-transform:uppercase;margin:12px 0 0;font-size:12px;font-weight:600}.primary,.secondary{border:1px solid var(--blue);border-radius:var(--radius-sm);justify-content:center;align-items:center;gap:8px;min-height:42px;padding:8px 18px;font-size:14px;font-weight:600;display:inline-flex}.primary{color:#fff;background:var(--blue)}.primary:hover{border-color:var(--blue-dark);background:var(--blue-dark)}.secondary{border-color:var(--line);color:var(--ink);background:#fff}.secondary:hover{border-color:var(--blue);color:var(--blue)}button:disabled{opacity:.45;cursor:not-allowed}.icon-button{border-radius:var(--radius-sm);width:38px;height:38px;color:var(--muted);background:0 0;border:0;flex:none;place-items:center;display:grid}.icon-button:hover{color:var(--blue);background:var(--hover)}.link{color:var(--blue);text-underline-offset:3px;background:0 0;border:0;margin-left:10px;padding:0;font-size:12px;text-decoration:underline}input,select{border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;min-height:42px;color:var(--ink);background:#fff;padding:8px 12px;font-size:14px}input::placeholder{color:var(--faint)}input:focus,select:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #0b5f552e}select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%234d6058' stroke-width='1.5'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E") right 12px center no-repeat;padding-right:34px}.auth-page{background:radial-gradient(110% 95% at 50% 105%,#0a4f9a 0%,#0f7a6a 24%,#4fae35 46%,#b0e480b3 66%,#f4f8f500 90%),#f4f8f5;flex-direction:column;align-items:center;min-height:100vh;padding:28px 20px 24px;display:flex}.auth-card{-webkit-backdrop-filter:blur(22px)saturate(1.3);backdrop-filter:blur(22px)saturate(1.3);background:#ffffffb8;border:1px solid #ffffffb3;border-radius:14px;width:min(100%,460px);margin:auto;padding:40px;box-shadow:0 20px 60px #0a4f9a2e}.auth-card h1{letter-spacing:-.015em;margin:0 0 8px;font-size:28px;font-weight:800;line-height:1.2}.auth-lead{color:#3f4f60;margin-bottom:28px;font-size:15px}.auth-form{gap:18px;display:grid}.auth-form label{gap:6px;font-size:13px;font-weight:600;display:grid}.auth-card input{background:#ffffffd9;border-color:#00355e29}.field{display:block;position:relative}.field input{padding-right:44px}.field .icon-button{position:absolute;top:2px;right:2px}.field-hint{color:var(--amber);font-size:12px;font-weight:400}.auth-error{border-left:3px solid var(--danger);border-radius:var(--radius-sm);color:#8f1f17;background:#fdf0ee;margin:0;padding:10px 12px;font-size:13px}.auth-submit{width:100%;min-height:48px}.auth-help{color:#3f4f60;margin:24px 0 0;font-size:13px;line-height:1.65}.auth-footer{color:#fff;text-align:center;justify-items:center;gap:6px;padding-top:24px;display:grid}.auth-footer .logo img{height:40px;margin-bottom:8px}.auth-footer p{letter-spacing:.3em;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.auth-footer small{opacity:.8;font-size:12px}.app-shell{grid-template-columns:252px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{z-index:20;height:100vh;box-shadow:1px 0 0 var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffff9e;border-right:1px solid #ffffffb3;flex-direction:column;padding:28px 16px 16px;display:flex;position:sticky;top:0}.sidebar>.logo,.sidebar>.product{margin-inline:10px}.sidebar>.logo img{height:42px}.sidebar nav{gap:2px;margin-top:32px;display:grid}.nav-label{color:var(--faint);letter-spacing:.16em;text-transform:uppercase;margin:24px 12px 8px;font-size:12px;font-weight:600}.nav-item{border-radius:var(--radius-sm);min-height:44px;color:var(--muted);align-items:center;gap:12px;padding:8px 12px;font-size:14px;font-weight:500;display:flex}a.nav-item:hover{color:var(--ink);background:var(--hover)}a.nav-item.active{color:#fff;background:var(--blue);font-weight:600}.nav-item.disabled{color:var(--faint);cursor:not-allowed}.sidebar-user{border-top:1px solid var(--line);align-items:center;gap:10px;margin-top:auto;padding:16px 8px 0;display:flex}.sidebar-user>span:nth-child(2){flex:1;min-width:0;display:grid}.sidebar-user strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.sidebar-user small{color:var(--muted);font-size:12px}.sidebar-user .avatar{color:#fff;background:var(--aurora-wide)}.avatar{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--blue);background:var(--blue-soft);flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.avatar.small{width:30px;height:30px;font-size:12px}.avatar.large{color:#fff;background:var(--blue);width:48px;height:48px;font-size:15px}.workspace{min-width:0}.mobile-bar,.menu-close,.menu-backdrop{display:none}.masthead{padding:32px clamp(20px,3vw,36px) 0}.masthead h1{letter-spacing:-.015em;margin:0 0 6px;font-size:28px;font-weight:800;line-height:1.2}.masthead p{color:var(--muted);margin:0;font-size:14px}.hero-stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-top:22px;display:grid}.hero-stat{--tone:var(--blue);border:1px solid var(--line);border-radius:var(--radius);min-height:118px;color:var(--ink);background:radial-gradient(130% 130% at 100% 0%, color-mix(in srgb, var(--tone) 11%, transparent), transparent 62%), #ffffffc7;text-align:left;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-content:start;gap:2px;margin:0;padding:16px 18px;display:grid;position:relative;overflow:hidden}.hero-stat[data-tone=green]{--tone:var(--green)}.hero-stat[data-tone=blue]{--tone:var(--sky)}.hero-stat[data-tone=amber]{--tone:var(--amber)}.hero-stat[data-tone=red]{--tone:#c0392b}a.hero-stat:hover,button.hero-stat:hover{border-color:var(--tone)}.hero-stat.on{border-color:var(--tone);background:radial-gradient(130% 130% at 100% 0%, color-mix(in srgb, var(--tone) 16%, transparent), transparent 62%), white;box-shadow:inset 0 0 0 1px var(--tone)}.stat-icon{width:34px;height:34px;color:var(--tone);background:color-mix(in srgb, var(--tone) 13%, white);border-radius:10px;place-items:center;display:grid;position:absolute;top:14px;right:14px}.hero-stat strong{letter-spacing:-.02em;margin-top:6px;font-size:34px;font-weight:800;line-height:1.1}.stat-label{font-size:13px;font-weight:600}.hero-stat small{color:var(--muted);font-size:12px}.content{max-width:1440px;padding:22px clamp(20px,3vw,36px) 56px}.notice{border-radius:var(--radius-sm);color:#5f4d12;background:#fbf4dc;margin-bottom:16px;padding:8px 12px;font-size:13px;display:inline-block}.panel{border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffd1;overflow:hidden;box-shadow:0 8px 30px #0b5f550f}.section-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.section-head h2{margin:0 0 2px;font-size:15px;font-weight:700}.section-head p{color:var(--muted);margin:0;font-size:12px}.toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px;padding:14px;display:flex}.search{flex:280px;max-width:440px;position:relative}.search>svg{color:var(--faint);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search input{padding-left:38px;padding-right:40px}.search kbd{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--faint);padding:0 6px;font:11px Plus Jakarta Sans,sans-serif;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.search .clear{position:absolute;top:2px;right:2px}.select{width:150px}.result-count{color:var(--muted);align-items:center;margin:0 0 0 auto;font-size:12px;display:flex}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--line-soft);text-align:left;white-space:nowrap;vertical-align:middle;padding:14px 16px}th:first-child,td:first-child{padding-left:20px}th:last-child,td:last-child{padding-right:20px}th{border-bottom:1px solid var(--line);color:var(--faint);font-size:12px;font-weight:600}td{font-size:13px}td strong{font-weight:600;display:block}td small{color:var(--muted);margin-top:2px;font-size:12px;display:block}tbody tr:last-child td{border-bottom:0}.panel tbody tr{cursor:pointer}.panel tbody tr:hover{background:#0b5f550d}.row-end{text-align:right;width:48px;padding-left:0}.row-end svg{color:var(--faint);opacity:0;transition:opacity .12s,transform .12s;transform:translate(-4px)}tr:hover .row-end svg{opacity:1;transform:none}.sort{color:inherit;font-size:inherit;font-weight:inherit;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:inline-flex}.sort:hover{color:var(--ink)}.sort span{width:10px;color:var(--blue)}.sort span:empty:after{color:var(--faint);content:"↕";opacity:0}.sort:hover span:empty:after{opacity:1}th[aria-sort=ascending],th[aria-sort=descending]{color:var(--ink)}.row-link{color:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:12px;padding:0;display:flex}.row-link>span:last-child{display:grid}.tag{color:var(--ink);background:var(--line-soft);letter-spacing:.01em;border-radius:6px;margin:0 4px 2px 0;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:3px 10px 3px 9px;font-size:12px;font-weight:600;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.badge.placed{color:#2a7a00;background:#e8f5df}.badge.none{color:#99590a;background:#fdf1de}.badge.special{color:var(--sky);background:#e3eef8}.state{color:var(--muted);text-align:center;justify-items:center;gap:12px;padding:48px 20px;font-size:13px;display:grid}.state p{margin:0;line-height:1.7}.skeleton{background:var(--line-soft);gap:1px;display:grid}.skeleton span{background:#fff linear-gradient(90deg,#fff 0,#f1f4f8 50%,#fff 100%) 0 0/200% 100%;height:52px;animation:1.2s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.pager{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:12px;display:flex}.pager>span:last-child{align-items:center;gap:8px;display:flex}.pager .secondary{min-height:34px;padding:4px 12px;font-size:12px}.page-of{text-align:center;min-width:78px}.home-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;display:grid}.home-wide{grid-column:1/-1}.todo-list,.bar-list{margin:0;padding:0;list-style:none}.todo{border-bottom:1px solid var(--line-soft);grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 18px;display:grid}.todo-list li:last-child .todo{border-bottom:0}.todo:hover{background:var(--hover)}.todo>svg:first-child{box-sizing:content-box;color:var(--amber);background:#fdf1de;border-radius:10px;padding:10px}.todo.info>svg:first-child{color:var(--blue);background:var(--blue-soft)}.todo span{gap:2px;display:grid}.todo strong{font-size:14px;font-weight:700}.todo small{color:var(--muted);font-size:12px;line-height:1.5}.todo>svg:last-child{color:var(--faint)}.bar-list{gap:18px;padding:18px;display:grid}.bar-list li{gap:8px;display:grid}.bar-label{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.bar-label strong{font-size:13px;font-weight:700}.bar-label small{color:var(--muted);font-size:12px}.bar-track{background:#0b5f551f;border-radius:5px;height:10px;display:block;overflow:hidden}.bar-track i{background:linear-gradient(90deg,#6cc12a,#0f7a6a);border-radius:5px;height:100%;display:block}.mini-bar{background:var(--line-soft);border-radius:2px;height:4px;display:block;overflow:hidden}.mini-bar b{background:linear-gradient(90deg,#6cc12a,#0f7a6a);border-radius:2px;height:100%;display:block}.show-sm{display:none}.check{width:44px;padding-right:0}.check input{width:16px;min-height:16px;accent-color:var(--blue);margin:0}tr.picked{background:#0b5f5512}.bulk-bar{border-bottom:1px solid var(--line);background:var(--blue-soft);justify-content:space-between;align-items:center;gap:12px;padding:10px 20px;display:flex}.bulk-bar>span{gap:8px;display:flex}.bulk-bar .primary,.bulk-bar .secondary{min-height:36px;padding:6px 14px}.assign-link{border-radius:var(--radius-sm);color:var(--blue);text-underline-offset:3px;background:0 0;border:0;margin-left:10px;padding:4px 8px;font-size:12px;font-weight:700;text-decoration:underline}.assign-link:hover{background:var(--blue-soft)}.org-actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.report-wrap{align-content:start;display:grid}.report-tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px 0;display:flex}.report-legend{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:inline-flex}.report-legend i{border-radius:3px;width:10px;height:10px}.report-legend .in{background:var(--blue)}.report-legend .out{border:1px dashed var(--faint);background:#fff;margin-left:8px}.report-zoom{align-items:center;gap:2px;font-size:12px;display:inline-flex}.report-zoom .num{text-align:center;min-width:40px;color:var(--muted)}.report-zoom .icon-button{width:32px;height:32px}.report-node{border:1px solid var(--blue);border-radius:var(--radius);text-align:left;background:#fff;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 10px;width:210px;padding:10px 12px;display:grid;box-shadow:0 0 0 3px #0b5f551a}.report-node.ghost{border:1px dashed var(--faint);box-shadow:none;background:#ffffffb3}.report-text{gap:1px;min-width:0;display:grid}.report-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.report-text small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.report-flag{color:#99590a;background:#fdf1de;border-radius:999px;grid-column:1/-1;align-items:center;gap:4px;width:fit-content;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.dialog-backdrop{z-index:40;background:#08282873;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{border-radius:var(--radius);background:#fff;flex-direction:column;width:min(560px,100%);max-height:calc(100dvh - 32px);display:flex;overflow:hidden;box-shadow:0 24px 60px #0828284d}.dialog-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 20px 14px;display:flex}.dialog-head h2{letter-spacing:-.01em;margin:0 0 4px;font-size:17px;font-weight:800}.dialog-head p{margin:0;font-size:12px;line-height:1.55}.dialog-body{gap:16px;padding:18px 20px;display:grid;overflow-y:auto}.dialog-fields{gap:14px;display:grid}.dialog-fields label{gap:6px;font-size:13px;font-weight:600;display:grid}.dialog.wide{width:min(1000px,100%);height:min(720px,100dvh - 32px)}.chain-body{flex:1;align-content:start;gap:0;padding:0}.dialog-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:14px 20px;font-size:13px;display:flex}.target-chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.target-chips li{border:1px solid var(--line);border-radius:999px;align-items:center;gap:8px;padding:3px 12px 3px 4px;font-size:12px;font-weight:600;display:inline-flex}.pick-list{border:0;gap:10px;margin:0;padding:0;display:grid}.pick-list legend{margin-bottom:8px;padding:0;font-size:13px;font-weight:700}.pick-list .search{max-width:none}.pick-list ul{border:1px solid var(--line);border-radius:var(--radius-sm);max-height:240px;margin:0;padding:0;list-style:none;overflow-y:auto}.pick-list li{border-bottom:1px solid var(--line-soft)}.pick-list li:last-child{border-bottom:0}.pick-list li label{cursor:pointer;align-items:center;gap:12px;padding:10px 12px;display:flex}.pick-list li label:hover{background:var(--hover)}.pick-list li label>span:last-child{display:grid}.pick-list strong{font-size:13px;font-weight:600}.pick-list small{color:var(--muted);font-size:12px}.pick-list input[type=checkbox]{width:16px;min-height:16px;accent-color:var(--blue);margin:0}.result-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.result-list li{border-radius:var(--radius-sm);align-items:flex-start;gap:12px;padding:10px 12px;display:flex}.result-list li>span{gap:1px;display:grid}.result-list li small{font-size:12px}.result-list .ok{color:#1f6b00;background:#e8f5df}.result-list .fail{color:#8f1f17;background:#fdf0ee}.result-list svg{flex:none;margin-top:1px}.org-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:16px;display:grid}.chart-scroll{padding:28px 20px 32px;overflow:auto}.org-tree{width:fit-content;min-width:100%}.org-tree ul{justify-content:center;margin:0;padding:24px 0 0;list-style:none;display:flex;position:relative}.org-tree>ul{padding-top:0}.org-tree li{flex-direction:column;align-items:center;padding:24px 6px 0;display:flex;position:relative}.org-tree>ul>li,.org-tree li:only-child{padding-top:0}.org-tree li:before,.org-tree li:after{content:"";border-top:2px solid #cddbd5;width:50%;height:24px;position:absolute;top:0;right:50%}.org-tree li:after{border-left:2px solid #cddbd5;left:50%;right:auto}.org-tree li:only-child:before,.org-tree li:only-child:after,.org-tree>ul>li:before,.org-tree>ul>li:after{display:none}.org-tree li:first-child:before,.org-tree li:last-child:after{border:0}.org-tree li:last-child:before{border-right:2px solid #cddbd5;border-radius:0 10px 0 0}.org-tree li:first-child:after{border-radius:10px 0 0}.org-tree ul ul:before{content:"";border-left:2px solid #cddbd5;height:24px;position:absolute;top:0;left:50%}.chart-node-wrap{flex-direction:column;align-items:center;display:flex}.chart-node,.chart-icon{--tone:var(--blue)}.chart-node[data-tone=blue],.chart-icon[data-tone=blue]{--tone:var(--sky)}.chart-node[data-tone=green],.chart-icon[data-tone=green]{--tone:var(--green)}.chart-node{border:1px solid var(--line);border-top:3px solid var(--tone);border-radius:var(--radius);width:200px;color:var(--ink);text-align:left;background:#fff;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px 10px;padding:12px;transition:border-color .12s,box-shadow .12s;display:grid}.chart-node:hover{box-shadow:0 6px 18px #0b5f551f}.chart-node[aria-current=true]{border-color:var(--tone);box-shadow:0 0 0 3px color-mix(in srgb, var(--tone) 20%, transparent)}.chart-icon{width:36px;height:36px;color:var(--tone);background:color-mix(in srgb, var(--tone) 13%, white);border-radius:10px;flex:none;place-items:center;display:grid}.chart-text{gap:1px;display:grid}.chart-text strong{font-size:13px;font-weight:700}.chart-text small{color:var(--muted);font-size:12px}.chart-stack{grid-column:1/-1;padding-left:6px;display:flex}.chart-stack .avatar{border:2px solid #fff;border-radius:50%;width:24px;height:24px;margin-left:-6px;font-size:9px}.chart-stack .avatar.more{color:var(--muted);background:var(--line-soft)}.chart-toggle{z-index:1;border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:999px;align-items:center;gap:2px;margin-top:-11px;padding:2px 9px 2px 6px;font-size:12px;font-weight:700;display:inline-flex;position:relative}.chart-toggle:hover,.chart-toggle[aria-expanded=true]{border-color:var(--blue);color:var(--blue)}.org-panel{max-height:calc(100vh - 32px);position:sticky;top:16px;overflow:auto}.org-panel-head{border-bottom:1px solid var(--line);padding:18px 20px 16px}.crumbs{color:var(--muted);flex-wrap:wrap;margin:0 0 12px;padding:0;font-size:12px;list-style:none;display:flex}.crumbs button{color:var(--blue);font-size:inherit;text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.crumbs li+li:before{color:var(--faint);content:"/";margin:0 8px}.org-panel-title{align-items:center;gap:12px;display:flex}.org-panel-title .chart-icon{width:44px;height:44px}.org-panel-title h2{letter-spacing:-.01em;margin:0;font-size:18px;font-weight:800}.org-panel-title p{color:var(--muted);margin:2px 0 0;font-size:13px}.kid-chips{flex-wrap:wrap;gap:6px;margin:14px 0 0;padding:0;list-style:none;display:flex}.kid-chips button{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:999px;align-items:center;gap:8px;padding:4px 6px 4px 12px;font-size:12px;font-weight:600;display:inline-flex}.kid-chips button:hover{border-color:var(--blue)}.kid-chips .num{min-width:22px;color:var(--muted);background:var(--line-soft);text-align:center;border-radius:999px;padding:1px 6px;font-size:12px}.org-people{margin:0;padding:0 8px 10px;list-style:none}.org-people li{border-radius:10px;grid-template-columns:34px minmax(0,1fr) auto;align-items:start;gap:12px;padding:12px;display:grid}.org-people li:hover{background:var(--hover)}.org-person{gap:1px;display:grid}.org-person strong{font-size:13px;font-weight:600}.org-person small{color:var(--muted);font-size:12px}.org-roles{flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:120px;display:flex}.org-roles .tag{margin:0}.company-group{margin-bottom:28px}.group-title{align-items:center;gap:10px;margin:0 0 12px;font-size:15px;font-weight:700;display:flex}.group-title span{color:var(--blue);background:var(--blue-soft);border-radius:999px;padding:1px 9px;font-size:12px;font-weight:600}.pt-grid,.brand-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.pt-card{border:1px solid var(--line);border-radius:var(--radius);background:#ffffffd1;align-content:start;gap:6px;padding:18px;transition:border-color .12s,box-shadow .12s;display:grid}.pt-card:hover{border-color:var(--blue);box-shadow:0 8px 24px #0b5f551a}.pt-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.pt-icon{width:38px;height:38px;color:var(--blue);background:var(--blue-soft);border-radius:10px;place-items:center;display:grid}.pt-code{color:var(--ink);background:var(--line-soft);letter-spacing:.08em;border-radius:6px;padding:3px 9px;font-size:12px;font-weight:700}.pt-card>strong{font-size:15px;font-weight:700;line-height:1.3}.pt-card .pt-brand{margin-top:2px}.pt-group{color:var(--faint);letter-spacing:.04em;font-size:12px;font-weight:600}.pt-brand{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.pt-brand i{border-radius:50%;width:10px;height:10px}.pt-foot{border-top:1px solid var(--line-soft);color:var(--muted);gap:8px;margin-top:10px;padding-top:12px;font-size:12px;display:grid}.pt-foot b{color:var(--ink);font-size:16px;font-weight:800}.brand-tiles{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.brand-tiles li{border:1px solid var(--line);border-radius:var(--radius);background:#ffffffd1;align-items:center;gap:14px;padding:16px 18px;display:flex}.brand-swatch{background:var(--brand-color);border-radius:12px;flex:none;width:40px;height:40px;box-shadow:inset 0 0 0 1px #0000000f}.brand-tiles li>span:last-child{gap:2px;display:grid}.brand-tiles strong{font-size:14px;font-weight:700}.brand-tiles small{color:var(--muted);font-size:12px}.drawer-backdrop{z-index:20;background:#08282866;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:#fff;flex-direction:column;width:min(440px,100%);height:100dvh;display:flex;overflow-y:auto}.drawer-head{border-bottom:1px solid var(--line);justify-items:start;gap:2px;padding:0 20px 18px;display:grid;position:relative}.drawer-cover{background:var(--aurora-wide);justify-self:stretch;height:84px;margin:0 -20px}.drawer-close{color:#fff;background:#0000002e;position:absolute;top:10px;right:10px}.drawer-close:hover{color:#fff;background:#00000052}.drawer-head .avatar.large{border:4px solid #fff;border-radius:14px;width:56px;height:56px;margin-top:-28px;margin-bottom:8px;font-size:17px}.drawer-head h2{overflow-wrap:anywhere;letter-spacing:-.01em;margin:0;font-size:19px;font-weight:800}.drawer-head p{margin:0 0 8px;font-size:13px}.drawer-list{margin:0}.drawer-list>div{border-bottom:1px solid var(--line-soft);grid-template-columns:130px 1fr;gap:12px;padding:12px 20px;display:grid}.drawer-list dt{color:var(--muted);font-size:13px}.drawer-list dd{margin:0;font-size:13px;font-weight:500}.drawer-block{padding:18px 20px}.drawer-block h3{margin-bottom:6px;font-size:13px;font-weight:600}.drawer-block p{color:var(--muted);margin:0;font-size:13px;line-height:1.7}.drawer-form{gap:16px;padding:20px;display:grid}.drawer-form label{color:var(--ink);gap:6px;font-size:13px;font-weight:500;display:grid}.combobox{position:relative}.combobox-list{z-index:5;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;max-height:240px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 12px 28px #08282824}.combobox-list button{border:0;border-bottom:1px solid var(--line-soft);width:100%;min-height:40px;color:var(--ink);text-align:left;background:#fff;padding:9px 12px;font-size:12px;display:block}.combobox-list button:hover,.combobox-list button.active,.combobox-list button[aria-selected=true]{background:var(--hover)}.combobox-list button:last-of-type{border-bottom:0}.combobox-list p{color:var(--muted);margin:0;padding:14px 12px;font-size:12px}.field-note{color:var(--muted);margin:0;font-size:12px;line-height:1.6}.drawer-foot{border-top:1px solid var(--line);justify-content:space-between;gap:10px;margin-top:auto;padding:14px 20px;display:flex}.center-page{min-height:100vh;color:var(--muted);background:var(--bg);place-items:center;font-size:14px;display:grid}.segmented{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;gap:4px;margin:14px 20px;padding:3px;display:flex}.segmented button{min-height:36px;color:var(--muted);background:0 0;border:0;border-radius:4px;flex:1;padding:4px 12px;font-size:13px;font-weight:600}.segmented button[aria-pressed=true]{color:#fff;background:var(--blue)}.period-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;display:flex}.week-tag{color:var(--muted);font-size:13px}.week-tag strong{color:var(--ink)}.week-tag.away strong{color:var(--blue)}.date-step{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;align-items:center;gap:4px;padding:3px;display:inline-flex}.date-step .icon-button{width:36px;height:36px}.date-step input{width:auto;min-height:36px;box-shadow:none;border:0;font-weight:600}.schedule-bar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:0;padding:14px;display:flex}.schedule-bar label{color:var(--muted);align-items:center;gap:10px;font-size:13px;font-weight:600;display:flex}.schedule-bar select{min-width:220px}.schedule-bar .result-count{margin-left:auto}.shift-palette{z-index:6;border:1px solid var(--line);border-radius:var(--radius);background:#fffffff5;flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0;padding:10px 12px;display:flex;position:sticky;top:8px;box-shadow:0 6px 20px #0b5f551f}.palette-hint{color:var(--muted);flex-basis:100%;margin:0;font-size:12px}.shift-chip{border:2px solid #0000;border-radius:999px;align-items:center;gap:6px;min-height:40px;padding:6px 12px;font-size:13px;display:inline-flex}.shift-chip small{opacity:.85;font-size:12px}.shift-chip[aria-pressed=true]{border-color:var(--blue);box-shadow:0 0 0 3px #0b5f552e}.roster-table{table-layout:fixed;min-width:860px}.roster-table th,.roster-table td{text-align:center;padding:6px 4px}.roster-table th:first-child,.roster-table td:first-child{z-index:2;text-align:left;background:#fff;width:190px;padding-left:16px;position:sticky;left:0}.roster-table th:first-child{z-index:3}.roster-table th:not(:first-child),.roster-table td:not(:first-child){width:96px}.roster-table td:first-child strong,.roster-table td:first-child small{text-overflow:ellipsis;overflow:hidden}.panel .roster-table tbody tr{cursor:default}.roster-table .today{background:color-mix(in srgb, var(--blue) 8%, white)}.roster-table .weekend{color:var(--sky)}.roster-table tfoot th,.roster-table tfoot td{border-top:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:600}.head-fill{width:100%;color:inherit;font:inherit;text-align:inherit;background:0 0;border:0;padding:0;font-weight:600;display:block}.head-fill:hover,.head-fill:focus-visible{color:var(--blue);text-underline-offset:3px;text-decoration:underline}.head-fill small{font-weight:400;text-decoration:none}.cell{border-radius:var(--radius-sm);width:100%;min-height:48px;color:var(--ink);-webkit-user-select:none;user-select:none;touch-action:manipulation;background:0 0;border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;padding:4px 2px;display:flex}.cell strong{font-size:13px}.cell small{color:inherit;opacity:.8;margin:0;font-size:11px}.cell.gap{border:1px dashed var(--line);color:var(--faint)}button.cell:hover{border-color:var(--blue)}.cell.changed{outline:2px dashed var(--amber);outline-offset:-2px}.cell{position:relative}.cell.pending{outline:2px dashed var(--blue);outline-offset:-2px}.cell.leave-wait:before{content:"Cuti?";color:#6b3d00;letter-spacing:.02em;background:#fdf1de;border:1px solid #d9890b;border-radius:3px;padding:0 4px;font-size:9px;font-weight:800;line-height:12px;position:absolute;top:2px;left:3px}.cell.leave-wait:not(.changed):not(.pending){outline-offset:-2px;outline:2px dashed #d9890b}.cell.pending:after{content:"Draf";color:#fff;background:var(--blue);letter-spacing:.02em;border-radius:3px;padding:0 4px;font-size:9px;font-weight:800;line-height:14px;position:absolute;top:2px;right:3px}.draft-other{border:1px dashed var(--blue);border-radius:var(--radius-sm);color:var(--ink);background:#fff;align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:600;display:inline-flex}.draft-other-go{color:var(--blue);font-weight:800;text-decoration:underline}.draft-bar{border-color:var(--blue)}.tone-0{color:#0b4f46;background:#dff1ea}.tone-1{color:#0d4673;background:#e3eef8}.tone-2{color:#6b5200;background:#f1ecd9}.tone-3{color:#7a2850;background:#f3e4ec}.tone-4{color:#3f3478;background:#e8e5f5}.tone-5{color:#8a4310;background:#fbe9dc}.tone-off{color:var(--muted);background:#eceeed}.tone-clear{border-color:var(--line);color:var(--ink);background:#fff}.save-bar{z-index:6;border:1px solid var(--line);border-radius:var(--radius);background:#fff;justify-content:flex-end;align-items:center;gap:10px;margin:14px 0;padding:10px 14px;display:flex;position:sticky;bottom:12px;box-shadow:0 8px 30px #0b5f552e}.save-bar>span{margin-right:auto;font-size:13px;font-weight:600}.shift-settings{margin-top:14px}.day-strip{z-index:7;border:1px solid var(--line);border-radius:var(--radius);background:#fffffff5;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:12px;margin-bottom:12px;padding:6px;display:grid;position:sticky;top:61px;box-shadow:0 6px 20px #0b5f551f}.day-strip button{border-radius:var(--radius-sm);min-height:58px;color:var(--muted);background:0 0;border:0;justify-items:center;gap:1px;padding:6px 0;display:grid}.day-strip small{text-transform:uppercase;font-size:12px;font-weight:600}.day-strip strong{color:var(--ink);font-size:16px}.day-strip i{font-variant-numeric:tabular-nums;font-size:11px;font-style:normal}.day-strip .today small{color:var(--blue)}.day-strip .on{background:var(--blue)}.day-strip .on small,.day-strip .on strong{color:#fff}.day-strip .on i{color:#ffffffd9}.day-list{touch-action:pan-y}.day-fill{border-bottom:1px solid var(--line-soft);padding:12px 14px}.day-fill .secondary{width:100%}.day-list{margin:0;padding:0;list-style:none}.day-row{border:0;border-bottom:1px solid var(--line-soft);width:100%;min-height:64px;color:inherit;font:inherit;text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;display:flex}.day-list li:last-child .day-row{border-bottom:0}.day-row>span:first-child{min-width:0;display:grid}.day-row strong{font-size:14px}.day-row small{color:var(--muted);font-size:12px}.day-row .cell{flex:none;width:96px}button.day-row:active{background:var(--hover)}.shift-settings summary{cursor:pointer;align-items:center;gap:8px;padding:14px 18px;font-size:14px;font-weight:700;display:flex}.shift-settings>p{color:var(--muted);margin:0;padding:0 18px 12px;font-size:12px}.shift-settings>div{border-top:1px solid var(--line)}.shift-editor-row{border-bottom:1px solid var(--line-soft);grid-template-columns:52px minmax(160px,1fr) minmax(180px,1fr) auto;align-items:center;gap:8px;padding:9px 18px;display:grid}.shift-editor-row:last-child{border-bottom:0}.shift-editor-row>strong{font-size:12px}.shift-editor-row input{min-height:36px;font-size:12px}.shift-editor-row .secondary{min-height:36px;padding:6px 10px}.shift-editor-row>small{grid-column:2/-1}@media (prefers-reduced-motion:reduce){.skeleton span{animation:none}.sidebar{transition:none!important}}@media (width<=1100px){.home-grid{grid-template-columns:1fr}.pt-grid,.brand-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.org-layout{grid-template-columns:1fr}.org-panel{max-height:none;position:static}}@media (width<=900px){.shift-palette{padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-width:1px 0 0;border-radius:0;flex-wrap:nowrap;margin:0;position:fixed;inset:auto 0 0;overflow-x:auto}.shift-chip{flex:none;min-height:44px}.palette-hint{display:none}.content{padding-bottom:110px}.save-bar{bottom:82px}.auth-card{padding:28px 24px}.app-shell{grid-template-rows:auto 1fr;grid-template-columns:1fr}.mobile-bar{z-index:10;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffd1;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex;position:sticky;top:0}.mobile-bar .logo img{height:30px}.mobile-bar .icon-button{width:44px;height:44px}.sidebar{z-index:30;visibility:hidden;background:#fff;border-right:0;width:min(300px,86vw);height:100dvh;transition:transform .2s,visibility 0s linear .2s;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.sidebar.open{visibility:visible;transition:transform .2s;transform:none;box-shadow:0 0 40px #08282840}.menu-close{width:44px;height:44px;display:grid;position:absolute;top:14px;right:10px}.menu-backdrop{z-index:20;background:#08282866;position:fixed;inset:0}.nav-item{min-height:46px}.report-node{width:100%}.chart-scroll{padding:18px 14px 22px}.org-tree{width:auto;min-width:0}.org-tree ul{border-left:2px solid #cddbd5;flex-direction:column;align-items:stretch;margin-left:14px;padding:4px 0 0}.org-tree>ul{border-left:0;margin-left:0;padding-top:0}.org-tree li{align-items:stretch;padding:10px 0 0 16px}.org-tree>ul>li{padding-left:0}.org-tree li:before,.org-tree li:after,.org-tree ul ul:before{display:none}.chart-node-wrap{align-items:stretch}.chart-node{width:100%}.chart-toggle{align-self:flex-start;margin-top:8px}}@media (width<=680px){input,select{font-size:16px}.icon-button{width:44px;height:44px}.field .icon-button,.search .clear{top:0;right:0}.masthead{padding-top:22px}.masthead h1{font-size:22px}.hero-stats{grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.hero-stat{padding:12px 14px}.hero-stats>:last-child:nth-child(odd){grid-column:1/-1}.hero-stat strong{font-size:24px}.search{flex:100%;max-width:none}.search kbd{display:none}.select,.sort-select{flex:calc(50% - 5px);width:auto}.sort-select{display:block}.result-count{flex:100%;margin:0}.pager{flex-direction:column;align-items:stretch}.pager>span:last-child{justify-content:space-between}.pager .secondary{min-height:44px}.schedule-bar{flex-direction:column;align-items:stretch}.schedule-bar label{gap:5px;display:grid}.schedule-bar select{min-width:0}.schedule-bar .result-count{margin:0}.period-bar>*{flex:auto;justify-content:center}.date-step{justify-content:space-between}.save-bar{flex-wrap:wrap}.save-bar>span{flex-basis:100%}.shift-editor-row{grid-template-columns:44px 1fr}.shift-editor-row input,.shift-editor-row .secondary,.shift-editor-row>small{grid-column:2}.show-sm{display:block}.panel .stack td[data-label=Status]:before{display:none}.panel .stack td[data-label=Status]{justify-content:flex-start;gap:8px;padding-left:42px}.assign-link{border:1px solid var(--blue);min-height:32px;margin:0;text-decoration:none}button.hero-stat{grid-template-columns:auto 1fr;align-items:center;column-gap:10px;min-height:0;padding:10px 12px}button.hero-stat .stat-icon,button.hero-stat small{display:none}button.hero-stat strong{grid-row:1/3;margin:0;font-size:22px}.panel .stack tr{grid-template-columns:1fr;gap:8px}.hero-stats.compact .hero-stat{grid-template-columns:auto 1fr;align-items:center;column-gap:10px;min-height:0;padding:10px 12px}.hero-stats.compact .stat-icon,.hero-stats.compact small{display:none}.hero-stats.compact strong{grid-row:1/3;margin:0;font-size:22px}.stack thead,.stack td.hide-sm{display:none}.stack,.stack tbody{display:block}.stack tr{border-bottom:1px solid var(--line-soft);grid-template-columns:1fr auto;gap:6px 12px;padding:14px;display:grid}.stack tbody tr:last-child{border-bottom:0}.stack td{white-space:normal;border:0;justify-content:space-between;align-items:center;gap:12px;padding:0;display:flex}.stack td:first-child{grid-column:1/-1}.stack td[data-label]:before{color:var(--muted);content:attr(data-label);font-size:12px}.panel .stack td[data-label=Status]{grid-column:1/-1;justify-content:flex-start}.panel .stack td[data-label]:before{margin-right:6px}.panel .stack td[data-label]:not([data-label=Status]){justify-content:flex-start}.pt-grid,.brand-tiles{grid-template-columns:1fr}.drawer-list>div{grid-template-columns:1fr;gap:2px}.drawer-foot{padding-bottom:calc(14px + env(safe-area-inset-bottom))}.drawer-foot .secondary,.drawer-foot .primary{min-height:44px}}.attend-video{border-radius:var(--radius);aspect-ratio:4/3;background:#0b1f1c;position:relative;overflow:hidden}.attend-video video{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.attend-overlay{color:#fff;text-align:center;place-content:center;justify-items:center;gap:12px;margin:0;padding:16px;font-size:14px;display:grid;position:absolute;inset:0}.attend-overlay p{margin:0}.attend-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.attend-actions button{min-height:52px;font-size:15px}.attend-result{border-radius:var(--radius-sm);gap:10px;padding:12px 14px;font-size:14px;display:flex}.attend-result p{margin:2px 0 0}.attend-result.ok{color:#1f6b2a;background:#e8f5df}.attend-result.bad{color:#9b2c2c;background:#fde8e8}.attend-log ul{margin:0;padding:0 16px 12px;list-style:none}.attend-log li{border-top:1px solid var(--line);align-items:center;gap:12px;padding:8px 0;font-size:14px;display:flex}.attend-log li span{flex:1}.plain-list{margin:0;padding:0;list-style:none}.plain-list li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.plain-list li>span:first-child{gap:2px;min-width:0;display:grid}.plain-list .person{align-items:center;gap:12px;display:flex}.plain-list .person>span:last-child{gap:2px;display:grid}.row-actions{align-items:center;gap:10px;display:flex}.consent{align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;display:flex}.consent input{width:18px;min-height:18px;accent-color:var(--blue);flex:none;margin-top:2px;padding:0}.dialog-body{grid-auto-rows:max-content}.dialog-body .attend-video{max-height:52dvh}@media (width<=680px){.plain-list li{flex-wrap:wrap}}.attend-blocker{margin:-4px 0 0;font-size:13px}.attend-empty{padding:4px 16px 16px}.history{padding:0 16px 8px}.history-day h3{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px;font-size:12px;font-weight:700}.history-day ul{margin:0;padding:0;list-style:none}.history-day li{border-top:1px solid var(--line-soft);grid-template-columns:52px 56px 1fr;align-items:baseline;gap:8px;padding:9px 0;font-size:14px;display:grid}.history-day li small{text-align:right;justify-self:end;font-size:12px;font-weight:600}.history-day .ontime{color:#1f6b2a}.history-day .late{color:#99590a}.history-day .fail{color:#9b2c2c}.history-day li.failed{opacity:.85}.attend-log ul{padding:0}.enroll-dots{gap:8px;margin:0;padding:0;list-style:none;display:flex}.enroll-dots li{border:1px solid var(--line);width:28px;height:28px;color:var(--muted);border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid}.enroll-dots li.now{border-color:var(--blue);color:var(--blue);box-shadow:0 0 0 3px #0b5f5526}.enroll-dots li.done{border-color:var(--blue);color:#fff;background:var(--blue)}.face-guide{aspect-ratio:3/4;pointer-events:none;border:2px dashed #ffffffbf;border-radius:50%;height:82%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.enroll-step{margin:0;font-size:15px;font-weight:700}.enroll-tips{color:var(--muted);margin:0;padding-left:18px;font-size:13px;line-height:1.6}.enroll-ok{color:#1f6b2a;margin:0;font-size:14px;font-weight:600}.confirm-box{border-radius:var(--radius-sm);color:#7a2323;background:#fde8e8;gap:10px;padding:12px 14px;font-size:14px;display:grid}.confirm-box p{margin:0}.confirm-box>div{justify-content:flex-end;gap:10px;display:flex}.primary.danger{background:#b42323;border-color:#b42323}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);min-height:38px;color:var(--muted);background:#fff;border-radius:999px;padding:4px 14px;font-size:13px;font-weight:600}.chip.on{border-color:var(--blue);color:#fff;background:var(--blue)}.badge.sp1{color:#9b2c2c;background:#fde8e8;margin-left:8px}.late-cell{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.enroll-lead{margin:0;font-size:14px}.tutorial{gap:14px;margin:0;padding:0;list-style:none;display:grid}.tutorial li{gap:12px;display:flex}.tutorial p{color:var(--muted);margin:2px 0 0;font-size:13px;line-height:1.55}.tut-n{color:#fff;background:var(--blue);border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:grid}.enroll-dots li.opt{border-style:dashed}.enroll-dots li.legend{border:0;border-radius:0;width:auto;height:auto;margin-left:6px;font-size:12px;font-weight:600}.tag-step{color:#fff;background:var(--blue);letter-spacing:.03em;text-transform:uppercase;vertical-align:1px;border-radius:999px;margin-right:6px;padding:2px 9px;font-size:12px;font-weight:700;display:inline-block}.tag-step.opt{color:var(--muted);background:var(--line-soft)}.turn-cue{color:#fff;pointer-events:none;background:#0b5f55d9;border-radius:50%;place-items:center;width:64px;height:64px;animation:1.1s ease-in-out infinite cue-pulse;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.turn-cue.left{--nudge:-6px;left:12px}.turn-cue.right{--nudge:6px;right:12px}@keyframes cue-pulse{50%{transform:translate(var(--nudge), -50%)}}@media (prefers-reduced-motion:reduce){.turn-cue{animation:none}}.enroll-complete{border-radius:var(--radius-sm);color:#1f6b2a;background:#e8f5df;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.enroll-complete p{margin:2px 0 0;font-size:13px}.optional-box{border:1px dashed var(--blue);border-radius:var(--radius-sm);gap:8px;padding:12px 14px;font-size:13px;display:grid}.optional-box ul{margin:0;padding-left:18px;line-height:1.6}.warn-note{color:#99590a;align-items:flex-start;gap:6px;margin:0;font-weight:600;display:flex}.enroll-note{margin:4px 0 0;font-size:13px;line-height:1.55}.cal{padding:0 0 16px}.cal-head{justify-content:space-between;align-items:center;gap:8px;padding:14px 12px 8px;display:flex}.cal-head>div{text-align:center}.cal-head h2{letter-spacing:-.01em;margin:0;font-size:16px;font-weight:800}.cal-head p{margin:2px 0 0;font-size:12px}.cal-summary{grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:8px;padding:6px 14px 12px;display:grid}.cal-summary>div{border-radius:var(--radius-sm);background:var(--line-soft);text-align:center;gap:2px;padding:8px 6px;display:grid}.cal-summary strong{font-size:15px;font-weight:800}.cal-summary strong small{font-size:12px;font-weight:600}.cal-summary span{color:var(--muted);font-size:12px;font-weight:600}.cal-summary .bad strong{color:#b42323}.cal-note{margin:0 14px 10px}.cal-grid{grid-template-columns:repeat(7,1fr);gap:5px;padding:0 14px;display:grid}.cal-wd{color:var(--muted);text-align:center;text-transform:uppercase;padding:4px 0;font-size:12px;font-weight:700}.cal-day{border:1px solid var(--line);min-height:46px;color:var(--ink);background:#fff;border-radius:10px;align-content:center;place-items:center;gap:0;padding:2px;display:grid;position:relative}.cal-day b{font-size:14px;font-weight:700;line-height:1.1}.cal-day small{font-size:11px;font-weight:700;line-height:1}.cal-day em{color:var(--muted);text-transform:uppercase;font-size:8px;font-style:normal;font-weight:700;position:absolute;top:2px;left:4px}.cal-day i{background:#b42323;border-radius:50%;width:6px;height:6px;position:absolute;top:4px;right:4px}.cal-day.ok{background:#e8f5df;border-color:#b9e0a9}.cal-day.ok b{color:#1f6b2a}.cal-day.late{background:#fdf1de;border-color:#f1cf9a}.cal-day.late b,.cal-day.late small{color:#99590a}.cal-day.absent{background:#fde8e8;border-color:#efb9b9}.cal-day.absent b{color:#9b2c2c}.cal-day.off,.cal-day.leave{background:#e3eef8;border-color:#c9d8e6}.cal-day.off b,.cal-day.leave b{color:var(--sky)}.cal-day.pending{border:1.5px dashed #d9a441}.cal-day.upcoming b{color:var(--muted)}.cal-day.none{background:0 0;border-color:#0000}.cal-day.none b{color:var(--faint)}.cal-day.today{box-shadow:0 0 0 2px var(--blue)}.cal-day.picked{outline:2px solid var(--ink);outline-offset:1px}.cal-legend{color:var(--muted);flex-wrap:wrap;gap:6px 14px;margin:0;padding:12px 14px 4px;font-size:12px;list-style:none;display:flex}.cal-legend li{align-items:center;gap:6px;display:inline-flex}.dot{border:1px solid var(--line);background:#fff;border-radius:3px;width:10px;height:10px}.dot.ok{background:#cfe9c0}.dot.late{background:#f6d9a8}.dot.absent{background:#f4c4c4}.dot.off,.dot.leave{background:#cde0f0}.dot.pending{border:1.5px dashed #d9a441}.dot.upcoming{background:#fff}.cal-detail{border:1px solid var(--line);border-radius:var(--radius-sm);gap:6px;margin:12px 14px 0;padding:12px 14px;font-size:14px;display:grid}.cal-detail h3{margin:0;font-size:14px}.cal-detail p{margin:0}.cal-detail dl{grid-template-columns:repeat(2,1fr);gap:8px 14px;margin:4px 0 0;display:grid}.cal-detail dt{color:var(--muted);font-size:12px}.cal-detail dd{margin:0;font-weight:700}.cal-pill{background:var(--line-soft);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700;display:inline-block}.cal-pill.ok{color:#1f6b2a;background:#e8f5df}.cal-pill.late{color:#99590a;background:#fdf1de}.cal-pill.absent{color:#9b2c2c;background:#fde8e8}.cal-pill.off,.cal-pill.leave{color:var(--sky);background:#e3eef8}.cal-warn{color:#99590a;font-size:13px;font-weight:600}.cal-failed ul{color:#9b2c2c;margin:4px 0 0;padding-left:18px;font-size:13px}.cal-hint,.cal-loading{margin:12px 14px 0;font-size:13px}@media (width<=420px){.cal-grid{gap:4px;padding:0 10px}.cal-day{min-height:42px}.cal-summary{gap:6px;padding:6px 10px 12px}}.recap-bar{justify-content:space-between;align-items:center}.recap-bar select{width:auto;min-width:220px}.period-step{align-items:center;gap:6px;font-size:14px;display:inline-flex}.week-tabs{gap:6px;padding:12px 14px 0;display:flex}.week-tabs button{border:1px solid var(--line);border-radius:var(--radius-sm);min-width:0;color:var(--muted);text-align:center;background:#fff;flex:1 1 0;gap:1px;padding:7px 4px;display:grid}.week-tabs small{letter-spacing:.03em;text-transform:uppercase;font-size:11px;font-weight:700}.week-tabs strong{color:var(--ink);white-space:nowrap;font-size:12px;font-weight:700}.week-tabs button.on{border-color:var(--blue);background:var(--blue)}.week-tabs button.on small,.week-tabs button.on strong{color:#fff}.recap-scroll{overflow-x:auto}.recap{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%;font-size:13px}.recap th,.recap td{border-bottom:1px solid var(--line-soft);text-align:center;padding:0}.recap thead tr.group th{color:var(--muted);letter-spacing:.03em;text-transform:uppercase;padding:8px 6px;font-size:12px;font-weight:700}.recap thead th{color:var(--muted);padding:8px 4px;font-size:12px;font-weight:700}.recap thead th small{text-transform:uppercase;font-size:12px;display:block}.recap thead th.today{color:var(--blue)}.recap .recap-name{text-align:left;width:210px;padding:8px 14px}.recap tbody .recap-name{gap:1px;display:grid}.recap .recap-name strong{color:var(--ink)}.recap .recap-name small{font-size:12px}.recap .sum{width:64px;padding:0 4px;font-size:12px}.recap .sum.money{white-space:nowrap;font-size:12px}.recap .sum.last{border-right:1px solid var(--line)}.recap td.neg{color:#b42323;font-weight:700}.recap .rc{height:48px;font-weight:700}.recap .rc small{opacity:.75;font-size:12px;font-weight:500;display:block}.rc.ok{color:#1f6b2a;background:#e8f5df}.rc.late{color:#99590a;background:#fdf1de}.rc.absent{color:#9b2c2c;background:#fde8e8}.rc.off,.rc.leave{color:var(--sky);background:#e3eef8}.rc.pending{color:#99590a}.rc.upcoming,.rc.none{color:var(--faint)}.rc.sp1{box-shadow:inset 0 0 0 2px #b42323}.rc.nocheckout{text-underline-offset:3px;-webkit-text-decoration:underline #b42323;text-decoration:underline #b42323}.recap-err{padding:0 14px}.rweek-head{z-index:5;grid-template-columns:repeat(var(--n,7), 1fr);border-bottom:1px solid var(--line-soft);color:var(--muted);text-align:center;text-transform:uppercase;background:#fffffff5;gap:4px;padding:8px 14px;font-size:12px;font-weight:700;display:grid;position:sticky;top:61px}.rweek-head .today{color:var(--blue)}.rcards{margin:0;padding:0;list-style:none}.rcard{border-bottom:1px solid var(--line-soft);padding:12px 14px}.rcard>header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.rcard strong{font-size:14px}.rcard small{font-size:12px}.rcard-sum{color:var(--muted);flex-wrap:wrap;gap:4px 12px;margin:4px 0 8px;font-size:12px;display:flex}.rcard-sum .warn{color:#99590a;font-weight:700}.rcard-sum .bad{color:#b42323;font-weight:700}.rcard-days{grid-template-columns:repeat(var(--n,7), 1fr);gap:4px;display:grid}.rcard-days .rc{border-radius:8px;align-content:center;place-items:center;min-height:48px;padding:2px 0;font-size:13px;font-weight:700;line-height:1.1;display:grid}.rcard-days .rc small{color:inherit;opacity:.7;font-size:11px;font-weight:600}.rcard-days .rc.none,.rcard-days .rc.upcoming{border:1px dashed var(--line)}.rc.editable:hover{filter:brightness(.97)}@media (width<=680px){.recap-bar select{width:100%}}.hero-stat strong.sm{margin-top:10px;font-size:22px;line-height:1.2}.attend-layout{grid-template-columns:minmax(340px,440px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.attend-card{gap:14px;padding:16px 18px 18px;display:grid}.attend-blocker{color:var(--muted);margin:-4px 0 0;font-size:13px}.attend-blocker.warn{color:#99590a;font-weight:600}.cal-summary{padding-top:14px}@media (width<=1000px){.attend-layout{grid-template-columns:1fr}}@media (width<=680px){.attend-card{padding:14px}.cal .section-head{flex-wrap:wrap}}.tabs{max-width:560px;margin:20px 0 14px}.tech-toggle{color:var(--muted);align-items:center;gap:8px;margin-left:auto;font-size:13px;font-weight:600;display:inline-flex}.tech-toggle input{width:16px;min-height:16px;accent-color:var(--blue);padding:0}.panel-note{border-bottom:1px solid var(--line-soft);color:var(--muted);margin:0;padding:10px 18px;font-size:12px}.hero-stat small.unit{color:var(--muted);font-size:14px;font-weight:700}.warning{color:#99590a}@media (width<=680px){.tabs{margin:14px 0 12px}.tabs button{padding:4px 6px;font-size:12px}.tech-toggle{margin-left:0}.hero-stats.tri{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.hero-stats.tri .hero-stat{min-height:0;padding:10px 10px 9px}.hero-stats.tri .stat-icon,.hero-stats.tri small{display:none}.hero-stats.tri .hero-stat:last-child:nth-child(odd){grid-column:auto}.hero-stats.tri strong.sm{margin-top:0;font-size:15px}.hero-stats.tri .stat-label{color:var(--muted);font-size:12px}.attend-actions{gap:8px}.attend-actions button{white-space:nowrap;padding:8px 6px;font-size:14px}.cal .section-head{flex-wrap:nowrap;padding:14px}.cal .section-head h2{font-size:14px}.hero-stats.compact .hero-stat strong small.unit{display:inline}}.cal-request{justify-self:start;margin-top:4px}.cal-note-ok{color:#1f6b2a;font-size:13px;font-weight:600}.cal-note-info{color:var(--sky);font-size:13px;font-weight:600}.cal-mine{border-top:1px solid var(--line-soft);margin:14px 14px 0;padding-top:12px}.cal-mine h3{margin:0 0 6px;font-size:13px}.cal-mine ul{margin:0;padding:0;list-style:none}.cal-mine li{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:10px;padding:8px 0;font-size:13px;display:flex}.cal-mine li>span:first-child{gap:2px;min-width:0;display:grid}.link-button{color:var(--blue);background:0 0;border:0;padding:4px;font-size:12px;font-weight:700;text-decoration:underline}.cal-pill.none{color:var(--muted)}.corr-now{border-radius:var(--radius-sm);background:var(--line-soft);gap:2px;padding:10px 12px;font-size:13px;display:grid}.corr-now span{color:var(--muted);font-size:12px}.corr-times{grid-template-columns:1fr 1fr}.corr-hint{margin:-6px 0 0;font-size:12px}@media (width<=420px){.corr-times{grid-template-columns:1fr}}.nav-badge{color:#fff;text-align:center;background:#b42323;border-radius:999px;min-width:20px;margin-left:auto;padding:1px 7px;font-size:12px;font-weight:700}.approvals{margin:0;padding:0;list-style:none}.approval{border-top:1px solid var(--line-soft);gap:10px;padding:16px 18px;font-size:14px;display:grid}.approval>header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.approval>header>div{gap:2px;display:grid}.approval p{margin:0}.approval-times{gap:6px;margin:0;display:grid}.approval-times div{grid-template-columns:84px 1fr;gap:8px;display:grid}.approval-times dt{color:var(--muted);padding-top:1px;font-size:12px}.approval-times dd{margin:0}.approval-attempts{border-radius:var(--radius-sm);background:var(--line-soft);gap:4px;padding:10px 12px;font-size:13px;display:grid}.approval-attempts ul{margin:0;padding:0;list-style:none}.approval-attempts li{align-items:center;gap:8px;display:flex}.approval>footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.approvals-history{margin-top:16px}@media (width<=680px){.approval{padding:14px}.approval-times div{grid-template-columns:1fr;gap:0}.approval>footer{flex-direction:column;align-items:stretch}.approval>footer .row-actions{justify-content:flex-end}}.review-photos{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;display:grid}.review-photos img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--line-soft);width:100%}.rc.corrected{position:relative}.rc.corrected:after{content:"";background:var(--sky);border-radius:50%;width:5px;height:5px;position:absolute;top:3px;right:3px}.cal-sessions{gap:6px;margin:4px 0 0;padding:0;list-style:none;display:grid}.cal-sessions li{border-radius:var(--radius-sm);background:var(--line-soft);grid-template-columns:auto auto 1fr;align-items:baseline;gap:4px 10px;padding:8px 10px;font-size:13px;display:grid}.cal-sessions li.missed{color:#9b2c2c;background:#fde8e8}.cal-sessions li>span:last-child{grid-column:1/-1;font-weight:600}.corr-session{margin-bottom:4px}.panel.switching{opacity:.55;pointer-events:none;transition:opacity .15s}.dialog-body .attend-video{width:100%;max-height:min(48dvh,380px);margin-inline:auto}.dialog-foot button{white-space:nowrap}@media (height<=700px){.dialog-body .attend-video{max-height:34dvh}.dialog-body{gap:12px;padding-block:14px}}@media (width<=420px){.dialog-foot{gap:8px;padding:12px 14px}.dialog-foot button{padding-inline:12px}}.scope-filter{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;display:flex}.scope-filter select{width:auto;min-width:200px;max-width:100%}.scope-filter label{display:block}.bar-link{color:inherit;gap:8px;text-decoration:none;display:grid}.bar-link:hover .bar-label strong{text-decoration:underline}.bar-track i.tone-green{background:linear-gradient(90deg,#6cc12a,#2a8f3a)}.bar-track i.tone-amber{background:linear-gradient(90deg,#f1c04e,#d9892b)}.bar-track i.tone-red{background:linear-gradient(90deg,#e58a8a,#b42323)}.bar-track i.tone-muted{background:#b9c7c3}@media (width<=680px){.scope-filter{margin-top:12px}.scope-filter select{flex:140px;min-width:0}}.org-fold{border-top:1px solid var(--line-soft)}.org-fold>summary{cursor:pointer;align-items:center;gap:8px;min-height:44px;padding:8px 18px;font-size:13px;font-weight:700;list-style:none;display:flex}.org-fold>summary::-webkit-details-marker{display:none}.org-fold>summary:before{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);width:7px;height:7px;transition:transform .15s;transform:rotate(-45deg)}.org-fold[open]>summary:before{transform:rotate(45deg)}.org-fold>summary .num{color:var(--muted);margin-left:auto;font-size:12px;font-weight:600}.leave-form{gap:14px;padding:16px 18px 18px;display:grid}.leave-form label{gap:6px;font-size:13px;font-weight:600;display:grid}.leave-form small{font-weight:400}.leave-dates{grid-template-columns:1fr 1fr;gap:12px;display:grid}.leave-summary{border-radius:var(--radius-sm);margin:0;padding:9px 12px;font-size:13px}.leave-summary.paid{color:#1f6b2a;background:#e8f5df}.leave-summary.unpaid{color:#99590a;background:#fdf1de}.leave-list{margin:0;padding:0;list-style:none}.leave-list li{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;font-size:14px;display:flex}.leave-list li>span:first-child{gap:2px;min-width:0;display:grid}@media (width<=420px){.leave-dates{grid-template-columns:1fr}}.lock-on{color:#99590a;border-color:#d9a441}.lock-note{color:#99590a;background:#fdf1de;align-items:center;gap:8px;display:flex}.rc.editable{cursor:pointer}.rc.editable:hover,.rc.editable:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.dash-tabs{max-width:640px;margin:20px 0 16px}.dash-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;display:grid}.dash-grid>.span-12{grid-column:span 12}.dash-grid>.span-8{grid-column:span 8}.dash-grid>.span-6{grid-column:span 6}.dash-grid>.span-4{grid-column:span 4}@media (width<=1100px){.dash-grid>.span-8,.dash-grid>.span-6,.dash-grid>.span-4{grid-column:span 12}}.kpi-row{grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:12px;margin-bottom:16px;display:grid}.kpi{border:1px solid var(--line);border-radius:var(--radius);min-height:128px;color:var(--ink);background:#ffffffd1;align-content:start;gap:4px;padding:14px 16px;text-decoration:none;display:grid;position:relative}a.kpi:hover{border-color:var(--blue)}.kpi-label{color:var(--muted);letter-spacing:.01em;font-size:12px;font-weight:700}.kpi-value{letter-spacing:-.02em;font-size:30px;font-weight:800;line-height:1.1}.kpi-value small{color:var(--muted);letter-spacing:0;margin-left:3px;font-size:14px;font-weight:700}.kpi-value.hero{font-size:44px}.kpi-delta{align-items:center;gap:4px;font-size:12px;font-weight:700;display:inline-flex}.kpi-delta small{color:var(--muted);font-weight:500}.kpi-delta.good{color:#1f6b2a}.kpi-delta.bad{color:#a62d26}.kpi-delta.flat,.kpi-delta.none{color:var(--muted)}.kpi-hint{color:var(--muted);font-size:12px}.kpi .spark{position:absolute;bottom:12px;right:12px}.viz-card{align-content:start;display:grid}.viz-head{justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px 6px;display:flex}.viz-head h2{margin:0 0 2px;font-size:15px;font-weight:700}.viz-head p{color:var(--muted);margin:0;font-size:12px}.viz-head-actions{align-items:center;gap:8px;display:flex}.viz-toggle{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;padding:2px;display:inline-flex}.viz-toggle button{min-height:28px;color:var(--muted);background:0 0;border:0;border-radius:4px;padding:2px 10px;font-size:12px;font-weight:600}.viz-toggle button[aria-pressed=true]{color:#fff;background:var(--blue)}.viz-body{padding:6px 14px 16px}.viz-stale{opacity:.55;transition:opacity .15s}.viz-table-wrap{padding:4px 14px 14px;overflow-x:auto}.viz-table{border-collapse:collapse;width:100%;font-size:13px}.viz-table th,.viz-table td{border-bottom:1px solid var(--line-soft);text-align:left;white-space:nowrap;font-variant-numeric:tabular-nums;padding:7px 10px}.viz-table th{color:var(--muted);font-size:12px;font-weight:700}.viz-line{width:100%;position:relative}.viz-line svg{display:block;overflow:visible}.viz-legend{color:var(--muted);flex-wrap:wrap;gap:4px 16px;margin:0 0 6px 6px;padding:0;font-size:12px;list-style:none;display:flex}.viz-legend li{align-items:center;gap:6px;display:inline-flex}.viz-legend b{color:var(--ink);font-weight:700}.key-line{border-radius:1px;width:14px;height:2px;display:inline-block}.key-box{border-radius:2px;width:10px;height:10px;display:inline-block}.viz-grid{stroke:var(--line-soft);stroke-width:1px}.viz-grid.base{stroke:var(--line)}.viz-axis{fill:var(--muted);font-size:12px}.viz-end{fill:var(--ink);font-size:12px;font-weight:700}.viz-cross{stroke:var(--faint);stroke-width:1px}.viz-tip{z-index:5;border:1px solid var(--line);border-radius:var(--radius-sm);min-width:150px;max-width:220px;color:var(--ink);pointer-events:none;background:#fff;gap:3px;padding:8px 10px;font-size:12px;display:grid;position:absolute;box-shadow:0 8px 24px #08282824}.viz-tip b{margin-bottom:2px;font-size:12px}.viz-tip div{align-items:center;gap:8px;display:flex}.viz-tip strong{font-size:13px}.viz-tip span{color:var(--muted)}.viz-empty{color:var(--muted);margin:8px 0;font-size:13px}.viz-hbars{gap:12px;margin:0;padding:6px 4px 0;list-style:none;display:grid}.viz-hbars li{grid-template-columns:minmax(84px,34%) 1fr auto;align-items:center;gap:10px;font-size:13px;display:grid}.hb-label{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.hb-label a{color:inherit;text-decoration:none}.hb-label a:hover{text-decoration:underline}.hb-track{background:var(--line-soft);border-radius:5px;height:10px;display:block;overflow:hidden}.hb-track i{border-radius:5px;height:100%;display:block}.hb-value{text-align:right;font-variant-numeric:tabular-nums;min-width:54px;font-weight:700}.viz-ordinal{padding:8px 4px 0}.ord-bar{gap:2px;height:22px;display:flex}.ord-bar span{border-radius:4px;min-width:4px}.ord-legend{margin:10px 0 0}.viz-heat{gap:4px;padding:6px 4px 0;display:grid;overflow-x:auto}.heat-row{grid-template-columns:minmax(96px, 150px) repeat(var(--cols), minmax(46px, 1fr));align-items:center;gap:4px;display:grid}.heat-row.head span{color:var(--muted);text-align:center;font-size:12px;font-weight:700}.heat-label{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.heat-cell{font-variant-numeric:tabular-nums;border-radius:6px;place-items:center;min-height:30px;font-size:12px;font-weight:700;display:grid}.heat-scale{color:var(--muted);align-items:center;gap:4px;margin-top:8px;font-size:12px;display:flex}.heat-scale i{border-radius:2px;width:22px;height:10px}.todo-actions{margin:0;padding:0;list-style:none}.todo-actions li+li{border-top:1px solid var(--line-soft)}.todo-actions a{color:inherit;align-items:center;gap:12px;padding:11px 18px;text-decoration:none;display:flex}.todo-actions a:hover{background:var(--hover)}.todo-actions .count{color:#99590a;background:#fdf1de;border-radius:8px;place-items:center;min-width:34px;height:28px;font-size:13px;font-weight:800;display:grid}.todo-actions .count.red{color:#a62d26;background:#fde8e8}.todo-actions .count.ok{color:#1f6b2a;background:#e8f5df}.todo-actions strong{font-size:14px;display:block}.todo-actions small{color:var(--muted);font-size:12px}.ready{gap:12px;padding:4px 18px 18px;display:grid}.ready-days{flex-wrap:wrap;gap:22px;display:flex}.ready-days div{display:grid}.ready-days strong{letter-spacing:-.02em;font-size:30px;font-weight:800;line-height:1.1}.ready-days span{color:var(--muted);font-size:12px}.ready ul{gap:6px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.ready li{align-items:center;gap:8px;display:flex}.ready li .dot{background:var(--faint);border-radius:50%;flex:none;width:9px;height:9px}.ready li.ok .dot{background:var(--green)}.ready li.warn .dot{background:var(--amber)}.lock-pill{color:#99590a;background:#fdf1de;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.lock-pill.on{color:#1f6b2a;background:#e8f5df}.hist-table td.num,.hist-table th.num{text-align:right}.frozen-tag{color:#1f6b2a;background:#e8f5df;border-radius:999px;margin-left:6px;padding:1px 8px;font-size:12px;font-weight:700}.period-bar-dash{flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 16px;display:flex}.period-bar-dash strong{font-size:14px}.data-notes{color:var(--muted);margin:0;padding:4px 18px 16px 34px;font-size:13px;line-height:1.7}@media (width<=680px){.kpi-row{grid-template-columns:1fr 1fr;gap:10px}.kpi-row>.kpi:last-child:nth-child(odd){grid-column:1/-1}.kpi{min-height:112px;padding:12px}.kpi-value{font-size:24px}.viz-hbars li{grid-template-columns:minmax(70px,38%) 1fr auto}.viz-head{padding:14px 14px 4px}.viz-body{padding:4px 10px 14px}.dash-tabs button{padding:4px;font-size:12px}.ready-days strong{font-size:26px}}.dash-grid>*,.viz-card,.viz-body,.viz-line{min-width:0}.viz-line{overflow:hidden}.viz-donut{flex-wrap:wrap;align-items:center;gap:22px;padding:6px 6px 0;display:flex}.donut-wrap{flex:none;position:relative}.donut-wrap svg{display:block;overflow:visible}.donut-wrap path,.donut-wrap circle{cursor:default;transition:opacity .12s}.donut-center{text-align:center;pointer-events:none;place-content:center;padding:0 30px;display:grid;position:absolute;inset:0}.donut-center strong{letter-spacing:-.02em;font-size:28px;font-weight:800;line-height:1.1}.donut-center span{color:var(--muted);font-size:12px;font-weight:600;line-height:1.3}.donut-legend{flex:140px;gap:6px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.donut-legend li{border-radius:6px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;padding:3px 6px;display:grid}.donut-legend li.on{background:var(--hover)}.donut-legend .dl-label{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.donut-legend b{font-variant-numeric:tabular-nums}.donut-legend small{min-width:34px;color:var(--muted);text-align:right;font-size:12px}.scope-filter{gap:10px;margin-top:16px;display:grid}.scope-filter .sf-row{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.scope-filter .sf-label{font-size:13px;font-weight:700}.scope-filter .sf-with-icon{display:block;position:relative}.scope-filter .sf-with-icon>svg{color:var(--faint);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.scope-filter .sf-with-icon select{padding-left:32px}.scope-filter input[type=date]{width:auto;min-width:150px}.sf-banner{border-radius:var(--radius-sm);color:#5f4d12;background:#fbf4dc;flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding:8px 12px;font-size:13px;display:flex}@media (width<=680px){.scope-filter .sf-row select,.scope-filter .sf-row .sf-with-icon{flex:140px}}.dash-grid{align-items:stretch}.dash-grid>*{flex-direction:column;min-width:0;display:flex}.dash-grid>*>.viz-card,.dash-grid>.viz-card,.dash-grid>.panel{flex:1}.viz-card{flex-direction:column;display:flex}.viz-card .viz-body{flex-direction:column;flex:1;justify-content:center;display:flex}.viz-card .viz-body>.viz-line,.viz-card .viz-body>.viz-heat{justify-content:flex-start}.viz-card .viz-body:has(>.viz-hbars){justify-content:flex-start}.viz-title{align-items:flex-start;gap:10px;min-width:0;display:flex}.viz-icon{width:30px;height:30px;color:var(--blue);background:var(--blue-soft);border-radius:9px;flex:none;place-items:center;display:grid}.viz-fill{text-align:center;flex:1;place-items:center;min-height:120px;display:grid}.kpi{align-content:start}.kpi-icon{border-radius:9px;place-items:center;width:30px;height:30px;display:grid;position:absolute;top:12px;right:12px}.kpi-icon.tone-teal{color:var(--blue);background:var(--blue-soft)}.kpi-icon.tone-amber{color:#99590a;background:#fdf1de}.kpi-icon.tone-red{color:#a62d26;background:#fde8e8}.kpi-icon.tone-blue{color:var(--sky);background:#e3eef8}.kpi-icon.tone-green{color:#1f6b2a;background:#e8f5df}.kpi .kpi-label{padding-right:36px}.kpi .spark{bottom:12px;right:12px}.more-btn{color:var(--blue);cursor:pointer;background:0 0;border:0;align-self:flex-start;margin:10px 4px 0;padding:4px 2px;font-size:13px;font-weight:700;text-decoration:underline}.viz-card .more-btn,.panel .more-btn{margin-top:auto;padding-top:10px}.todo-actions.capped{min-height:0}.todo-actions li{align-items:stretch;min-height:56px;display:flex}.todo-actions li>a{flex:1}.todo-icon{border-radius:10px;flex:none;place-items:center;width:34px;height:34px;display:grid}.todo-icon.amber{color:#99590a;background:#fdf1de}.todo-icon.red{color:#a62d26;background:#fde8e8}.todo-icon.ok{color:#1f6b2a;background:#e8f5df}.todo-icon.blue{color:var(--sky);background:#e3eef8}.todo-icon.teal{color:var(--blue);background:var(--blue-soft)}.todo-actions .count{margin-left:auto}.empty-state{color:var(--muted);text-align:center;flex:1;place-content:center;justify-items:center;gap:6px;padding:24px;font-size:13px;display:grid}.empty-state svg{color:var(--green)}.ready{flex:1;align-content:start}.panel-fill{flex-direction:column;display:flex}.panel-fill>:last-child{flex:1}.kpi{grid-template-rows:auto auto 18px 1fr}.kpi .kpi-label{min-height:2.6em;line-height:1.3}.kpi-delta-slot{align-items:center;min-height:18px;display:flex}.kpi-hint{line-height:1.35}.kpi-hint.has-spark{padding-right:76px}.todo-actions .count{min-width:40px;margin-left:auto}.todo-actions .chev-off{visibility:hidden}.todo-actions a svg:last-child{flex:none}.kpi-row{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.kpi-row.six{grid-template-columns:repeat(3,1fr)}.kpi-delta{flex-wrap:wrap;row-gap:0}.kpi-delta small{white-space:nowrap}@media (width<=680px){.kpi-row,.kpi-row.six{grid-template-columns:1fr 1fr}}.scope-filter{gap:8px;width:100%;margin-top:14px;display:grid}.scope-filter .sf-row:not(.sf-date){grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.scope-filter .sf-row:not(.sf-date) select,.scope-filter .sf-row:not(.sf-date) input[type=date]{width:100%;min-width:0}.scope-filter input[type=date]{padding-left:32px}.scope-filter .sf-date{align-items:center;gap:8px;display:flex}.scope-filter .sf-date .chip{min-height:30px;padding:3px 12px;font-size:12px}.scope-filter .sf-reset{align-items:center;gap:4px;margin-left:auto;font-size:12px;display:inline-flex}.dash-tabs{max-width:none}@media (width<=680px){.scope-filter .sf-row:not(.sf-date){grid-template-columns:1fr 1fr}.scope-filter .sf-date{flex-wrap:wrap}}.scope-filter .sf-row:not(.sf-date){grid-template-columns:repeat(5,minmax(0,1fr))}.scope-filter .sf-date .chips{flex-wrap:wrap;gap:6px;display:flex}.sf-note{color:var(--muted);background:0 0;padding:0 2px}@media (width<=680px){.scope-filter .sf-row:not(.sf-date){grid-template-columns:1fr 1fr}}.approval>footer small{flex:200px}@media (width<=680px){.approval>footer small{flex:none}}.cal-day.leave{background:#efe9fa;border-color:#d8cdef}.cal-day.leave b{color:#5b3f9e}.dot.leave{background:#d9cdf1}.cal-pill.leave,.rc.leave{color:#5b3f9e;background:#efe9fa}@media (width<=680px){.cal-summary{grid-template-columns:repeat(3,1fr)}.cal-summary>:last-child:nth-child(3n+2){grid-column:span 2}.hero-stats.tri .stat-label{order:-1;font-weight:600}.hero-stats.tri .hero-stat{gap:4px}.hero-stats.tri strong.sm{font-size:14px;line-height:1.25}.recap-hint{display:block}}.recap-hint{margin:0;padding:8px 14px 0;font-size:12px;display:none}.panel-empty{text-align:center;margin:0;padding:18px}.org-layout.no-detail{grid-template-columns:minmax(0,1fr)}.org-fold .kid-chips{margin:0;padding:4px 20px 14px}.org-roles{padding-left:6px}.stack .person{align-items:center;gap:12px;display:flex}.stack .person>span:last-child{gap:1px;display:grid}.stack td.row-end{white-space:nowrap;width:auto}.stack td.row-end button{min-height:36px;padding:4px 14px;font-size:13px}.stack td.row-end button svg{opacity:1;transform:none}@media (width<=680px){.panel .faces-table tr{grid-template-columns:1fr auto;align-items:center}.faces-table td.row-end{justify-self:end}}.org-chart .section-head>.secondary{white-space:nowrap;flex:none}@media (width<=680px){.org-chart .section-head{flex-wrap:wrap}.period-step{flex-wrap:wrap;justify-content:space-between;width:100%}.period-step strong{text-align:center;white-space:nowrap;flex:1;font-size:13px}.period-step .secondary{white-space:nowrap;flex:100%;justify-content:center}}.approval.collapsed>:not(header):not(footer){display:none}.approval.collapsed{gap:6px}.approval>footer .row-actions .secondary{min-height:36px;padding:4px 12px;font-size:13px}.approval p.muted{font-size:13px}.summary-line{grid-template-columns:repeat(var(--cols,4), minmax(0, 1fr));gap:12px;margin:14px 0 0;padding:0;list-style:none;display:grid}.summary-line li>*{border:1px solid var(--line);height:100%;color:var(--muted);background:#ffffffd9;border-radius:10px;align-items:baseline;gap:8px;padding:11px 16px;font-size:13px;text-decoration:none;display:flex}.summary-line strong{color:var(--ink);letter-spacing:-.01em;font-size:20px;font-weight:800;line-height:1}.summary-line li[data-tone=warn]>*{color:#7a4a05;background:#fdf1de;border-color:#ecc98a;font-weight:600}.summary-line li[data-tone=warn] strong{color:#99590a}.summary-line a:hover{border-color:var(--blue)}.summary-line li[data-tone=warn] a:hover{border-color:#99590a}.badge.noaccess{color:#99590a;background:#fdf1de}.form-section{color:var(--ink);margin:14px 0 2px;font-size:13px;font-weight:700}.access-note{border-radius:var(--radius-sm);color:#6b4a06;background:#fdf1de;align-items:flex-start;gap:10px;margin:0;padding:10px 12px;font-size:13px;display:flex}.access-note svg{flex:none;margin-top:2px}.access-note p{margin:0}.org-hint{color:var(--muted);margin:10px 0 0;font-size:12px}.org-hint a{color:var(--blue);text-underline-offset:3px;text-decoration:underline}.tag.warn{color:#99590a;background:#fdf1de}.kpi-skel{grid-template-rows:none;gap:10px}.kpi-skel span{background:#eef2f1 linear-gradient(90deg,#eef2f1 0,#f8faf9 50%,#eef2f1 100%) 0 0/200% 100%;border-radius:6px;height:14px;animation:1.2s linear infinite shimmer;display:block}.kpi-skel span:first-child{width:55%}.kpi-skel span:nth-child(2){width:40%;height:30px}.kpi-skel span:nth-child(3){width:70%}@media (prefers-reduced-motion:reduce){.kpi-skel span{animation:none}}.status-line{grid-template-columns:210px auto;align-items:center;gap:10px;display:grid}.status-line .badge{justify-self:start}.status-line .assign-link{justify-self:start;margin:0}@media (width<=680px){.status-line{flex-wrap:wrap;gap:8px;display:flex}}.org-head{gap:10px}.org-head .view-toggle{flex:none;margin:0}.org-head .view-toggle button{align-items:center;gap:6px;min-height:34px;padding:4px 14px;display:inline-flex}.view-toggle .turn{transform:rotate(-90deg)}.org-note{color:var(--muted);margin:0;padding:12px 18px 0;font-size:12px}@media (width>=901px){.org-tree.h ul{flex-direction:column;justify-content:center;align-items:stretch;margin:0 0 0 28px;padding:0}.org-tree.h>ul{margin-left:0}.org-tree.h ul ul:before{border-top:2px solid #cddbd5;border-left:0;width:28px;height:0;top:50%;left:-28px}.org-tree.h li{flex-direction:row;justify-content:flex-start;align-items:center;padding:6px 0 6px 28px}.org-tree.h>ul>li{padding-left:0}.org-tree.h li:before,.org-tree.h li:first-child:before,.org-tree.h li:last-child:before,.org-tree.h li:only-child:before{border:0;border-top:2px solid #cddbd5;border-radius:0;width:28px;height:0;display:block;top:50%;left:0;right:auto}.org-tree.h li:after,.org-tree.h li:first-child:after,.org-tree.h li:last-child:after{border:0;border-left:2px solid #cddbd5;border-radius:0;width:0;height:auto;display:block;inset:0 auto 0 0}.org-tree.h li:first-child:after{top:50%}.org-tree.h li:last-child:after{bottom:50%}.org-tree.h li:only-child:after,.org-tree.h>ul>li:before,.org-tree.h>ul>li:after,.org-tree.h>ul>li:only-child:before,.org-tree.h>ul>li:only-child:after{display:none}.org-tree.h .chart-node-wrap{align-items:flex-start}}@media (width<=900px){.view-toggle{display:none}}.pos-summary{margin:0;padding:4px 20px 8px;list-style:none}.pos-summary li{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:13px;display:flex}.pos-summary li:last-child{border-bottom:0}.org-more{padding:4px 20px 16px}.org-more .secondary{justify-content:center;width:100%}.org-person small.clip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width<=680px){.org-head .secondary{flex:1;justify-content:center}}.org-layout{position:relative}.org-handle{z-index:6;color:#fff;background:var(--blue);cursor:pointer;border:0;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:30px;min-height:76px;padding:10px 0;font-size:12px;font-weight:700;transition:background .12s,transform .12s;display:flex;position:absolute;top:150px;right:362px;box-shadow:0 6px 18px #08282847}.org-handle:hover{background:#084f47;transform:scale(1.05)}.org-handle:focus-visible{outline:3px solid color-mix(in srgb, var(--blue) 35%, white);outline-offset:2px}.org-handle span{writing-mode:vertical-rl;letter-spacing:.04em}.org-layout.no-detail .org-handle{border-radius:10px 0 0 10px;width:34px;right:0}.org-toggle-inline{display:none}@media (width<=1100px){.org-handle{display:none}.org-toggle-inline{display:inline-flex}}@media (width<=680px){.summary-line{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.summary-line li:last-child:nth-child(odd){grid-column:1/-1}.summary-line li>*{padding:9px 12px}}@media (width>=1101px){.org-layout{align-items:stretch}.org-chart{min-height:min(78vh,720px)}.org-side{min-height:0;position:relative}.org-side>.org-panel{max-height:none;position:absolute;inset:0;overflow:auto}}.pick{width:20px;height:20px;accent-color:var(--blue);cursor:pointer;flex:none;margin:0}.name-cell{align-items:center;gap:10px;display:flex}.name-cell .head-fill{text-align:left}.roster-table td.picked,.day-list li.picked{background:color-mix(in srgb, var(--blue) 7%, white)}.brush-note{border-bottom:1px solid var(--line-soft);color:var(--muted);margin:0;padding:8px 16px;font-size:12px}.brush-note strong{color:var(--blue)}.day-fill{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.day-fill .secondary{flex:auto;justify-content:center;width:auto;min-height:44px}.pick-all{color:var(--ink);flex:100%;align-items:center;gap:10px;font-size:13px;font-weight:700;display:flex}.day-list li{border-bottom:1px solid var(--line-soft);align-items:stretch;display:flex}.day-list li>.pick{align-self:center;width:22px;height:22px;margin:0 4px 0 16px}.day-list li .day-row{border-bottom:0;flex:1}.day-list li:last-child{border-bottom:0}.day-list li>.pick+.day-row{padding-left:10px}@media (width<=900px){.day-fill{grid-template-columns:1fr 1fr;display:grid}.pick-all{grid-column:1/-1}}.bottom-dock{z-index:8;gap:8px;margin:14px 0;display:grid;position:sticky;bottom:12px}.bottom-dock .save-bar{margin:0;position:static}.action-bar{border:1px solid var(--blue);border-radius:var(--radius);background:#fff;gap:10px;padding:12px 14px;display:grid;box-shadow:0 10px 34px #08282838}.ab-top{flex-wrap:wrap;align-items:center;gap:10px;font-size:14px;display:flex}.ab-meta{color:var(--muted);margin-right:auto;font-size:12px}.ab-top .icon-button{width:36px;height:36px}.ab-chip{border:1px solid var(--line);min-height:32px;color:var(--muted);background:#fff;border-radius:999px;padding:2px 12px;font-size:12px;font-weight:700}.ab-chip[aria-pressed=true]{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}.ab-row{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.ab-label{width:72px;color:var(--muted);flex:none;font-size:12px;font-weight:700}.ab-days{gap:5px;display:inline-flex}.ab-days button{border:1px solid var(--line);min-width:40px;min-height:42px;color:var(--ink);background:#fff;border-radius:10px;place-items:center;padding:2px 6px;font-size:14px;font-weight:800;line-height:1.1;display:grid}.ab-days button small{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.ab-days button[aria-pressed=true]{border-color:var(--blue);color:#fff;background:var(--blue)}.ab-days button[aria-pressed=true] small{color:#ffffffd9}.ab-presets{gap:4px;display:inline-flex}.ab-shifts{flex-wrap:wrap;gap:6px;display:flex}.toast{border-radius:var(--radius-sm);color:#fff;background:#12302c;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:13px;font-weight:600;display:flex;box-shadow:0 8px 24px #0828284d}.toast .link-button{color:#9be0d2;font-size:13px}@media (width<=900px){.bottom-dock{right:8px;bottom:calc(76px + env(safe-area-inset-bottom));margin:0;position:fixed;left:8px}.bottom-dock.solo{bottom:calc(8px + env(safe-area-inset-bottom))}.action-bar{padding:10px 12px}.ab-label,.ab-days{width:100%}.ab-days button{flex:1 1 0;min-width:0}.ab-shifts{flex-wrap:nowrap;width:100%;padding-bottom:2px;overflow-x:auto}.ab-shifts .shift-chip{flex:none}.dock-spacer{height:250px}}.bottom-dock{grid-template-columns:minmax(0,1fr)}.bottom-dock>*{min-width:0}@media (width<=900px){.ab-row{gap:4px}.ab-label{font-size:12px;line-height:1}.action-bar{gap:8px}.ab-top .ab-meta{flex:100%;order:3;margin:0}}.action-bar{grid-template-columns:minmax(0,1fr)}.action-bar>*{min-width:0}.roster-tools{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;display:flex}.roster-tools .search{flex:220px;max-width:340px}.roster-tools select{flex:0 240px;width:auto;min-width:190px}.roster-count{color:var(--muted);margin-left:auto;font-size:12px;font-weight:600}.roster-help{color:var(--muted);flex:100%;margin:0;font-size:12px}.roster-help strong{color:var(--blue)}.palette-title{color:var(--muted);margin-right:4px;font-size:12px;font-weight:700}.ab-scope{flex-wrap:wrap;gap:6px;display:inline-flex}.ab-scope button{border:1px solid var(--line);min-height:38px;color:var(--ink);background:#fff;border-radius:999px;padding:4px 14px;font-size:13px;font-weight:700}.ab-scope button[aria-pressed=true]{border-color:var(--blue);color:#fff;background:var(--blue)}.ab-hidden{color:var(--muted);font-size:12px;font-weight:600}.ab-foot{border-top:1px solid var(--line-soft);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 14px;padding-top:8px;font-size:12px;display:flex}.ab-foot strong{color:var(--ink);font-size:13px}.ab-switch{cursor:pointer;align-items:center;gap:8px;font-weight:600;display:inline-flex}.ab-switch input{width:18px;height:18px;accent-color:var(--blue)}@media (width<=900px){.palette-title{display:none}.roster-tools{padding:10px 12px}.roster-tools .search{flex-basis:100%;max-width:none}.roster-tools select{flex:100%;width:100%}.ab-scope{width:100%}.ab-scope button{flex:1 1 0;padding:4px 8px}.dock-spacer{height:270px}}.week-step{justify-content:space-between;align-items:center;gap:8px;padding:10px 14px 0;display:flex}.week-step strong{font-size:14px}.week-step .icon-button{border:1px solid var(--line);background:#fff;border-radius:10px}.week-step .icon-button:disabled{opacity:.4}.pay-head,.pay-main{grid-template-columns:minmax(180px,1.8fr) 150px 130px 110px 90px 130px 40px;align-items:center;gap:12px;padding:12px 18px;display:grid}.pay-head{border-bottom:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:700}.pay-list{margin:0;padding:0;list-style:none}.pay-row{border-bottom:1px solid var(--line-soft);font-size:14px}.pay-row:last-child{border-bottom:0}.pay-row.flagged{box-shadow:inset 3px 0 #d9a441}.pay-main{cursor:pointer}.pay-main:hover,.pay-row.open .pay-main{background:#0b5f550d}.pay-who{gap:2px;min-width:0;display:grid}.pay-who small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pay-net{font-variant-numeric:tabular-nums;font-weight:800}.pay-chev{justify-self:end}.pay-chev svg{transition:transform .15s}.pay-chev[aria-expanded=true] svg{transform:rotate(180deg)}.pay-salary{border-radius:var(--radius-sm);min-height:34px;color:var(--ink);font-variant-numeric:tabular-nums;background:0 0;border:1px solid #0000;align-items:center;gap:6px;margin-left:-8px;padding:4px 8px;font-size:14px;display:inline-flex}.pay-salary .pen{opacity:0;color:var(--muted)}.pay-salary:hover{border-color:var(--line);background:#fff}.pay-salary:hover .pen{opacity:1}.pay-salary.empty{border-color:var(--line);color:var(--blue);background:#fff;font-weight:600}.pay-salary.empty:hover{border-color:var(--blue)}.pay-money{color:var(--muted);align-items:center;gap:6px;font-size:14px;display:flex}.pay-money .pay-input{font-variant-numeric:tabular-nums}.pay-input{width:100%;min-height:36px;padding:4px 8px;font-size:14px}.pay-flag{color:#99590a;background:#fdf1de;border-radius:999px;align-items:center;gap:3px;margin-left:8px;padding:1px 8px;font-size:12px;font-weight:700;display:inline-flex}.pay-actions{flex-wrap:wrap;gap:8px;display:flex}.pay-todo{color:#99590a;background:#fdf1de;line-height:1.7}.pay-todo svg{vertical-align:-2px;margin-right:6px}.pay-todo button{color:inherit;font:inherit;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.pay-ready{color:#1f6b2a;background:#e8f5df;align-items:center;gap:6px;display:flex}.pay-detail{background:#0b5f550d;grid-template-columns:minmax(260px,1fr) minmax(0,1.4fr);gap:20px;padding:6px 18px 18px;display:grid}.pay-calc{align-content:start;margin:0;display:grid}.pay-calc>div{border-bottom:1px solid var(--line-soft);justify-content:space-between;gap:12px;padding:7px 0;font-size:13px;display:flex}.pay-calc dt{color:var(--muted)}.pay-calc dd{font-variant-numeric:tabular-nums;text-align:right;margin:0}.pay-calc .total{border-bottom:0;font-weight:800}.pay-calc .total dt{color:var(--ink)}.pay-unpaid{align-content:start;gap:8px;font-size:13px;display:grid}.pay-unpaid p{flex-wrap:wrap;align-items:center;gap:6px;margin:0;display:flex}.pay-unpaid .secondary{justify-self:start;margin-top:6px}.pay-unpaid a{color:var(--blue);font-weight:600;text-decoration:underline}.pay-date{border:1px solid var(--line);background:#fff;border-radius:6px;padding:2px 8px;font-size:12px}.pay-paste{resize:vertical;width:100%;font-family:ui-monospace,Menlo,monospace;font-size:13px}.pay-result{gap:6px;font-size:13px;display:grid}.pay-result p{margin:0}.pay-result ul{color:var(--muted);margin:0;padding-left:18px}@media (width<=1100px){.pay-head,.pay-main{grid-template-columns:minmax(150px,1.5fr) 140px 120px 100px 80px 120px 36px;gap:8px;padding-inline:12px}.pay-detail{padding-inline:12px}.pay-head,.pay-main .hide-sm{display:none}.pay-main{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who net""sal days";gap:8px 12px;padding:14px 16px}.pay-who{grid-area:who}.pay-net{text-align:right;grid-area:net;font-size:15px}.pay-sal{grid-area:sal}.pay-days{grid-area:days;justify-self:end}.pay-chev{display:none}.pay-salary{min-height:40px}.pay-salary .pen{opacity:.6}.pay-detail{grid-template-columns:1fr;gap:12px;padding:4px 16px 16px}.pay-unpaid .secondary{justify-self:stretch;width:100%;min-height:46px}.pay-actions{width:100%}.pay-actions>button{flex:1;min-height:44px}}.slip-hero{border:1px solid var(--line);border-radius:var(--radius);background:#fff;justify-items:start;gap:6px;max-width:720px;padding:22px 24px;display:grid;box-shadow:0 8px 30px #0b5f5514}.slip-chip{color:#1f6b2a;background:#e8f5df;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.slip-period{margin:6px 0 0;font-size:15px;font-weight:700}.slip-total{color:var(--blue);letter-spacing:-.02em;font-size:34px;font-weight:800;line-height:1.1}.slip-days{background:var(--line-soft);border-radius:999px;width:100%;height:8px;margin-top:8px;overflow:hidden}.slip-days span{background:var(--blue);border-radius:999px;height:100%;display:block}.slip-download{justify-items:start;gap:6px;margin:12px 0 4px;display:grid}.slip-download small{align-items:center;gap:5px;display:flex}.slip-body{border-top:1px solid var(--line-soft);gap:14px;width:100%;margin-top:10px;padding-top:12px;display:grid}.slip-lines{margin:0;padding:0;list-style:none;display:grid}.slip-lines li{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:baseline;gap:14px;padding:10px 0;font-size:14px;display:flex}.slip-lines li>span{color:var(--muted);gap:1px;display:grid}.slip-lines small{font-size:12px}.slip-lines strong{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.slip-lines .minus{color:#b42318}.slip-lines .plus{color:#1f6b2a}.slip-lines .total{border-bottom:0}.slip-lines .total>span{color:var(--ink);font-weight:800}.slip-lines .total strong{color:var(--blue);font-size:16px}.slip-unpaid{border-radius:var(--radius-sm);background:#fdf1de;gap:8px;padding:12px 14px;font-size:13px;display:grid}.slip-unpaid h3{color:#99590a;margin:0;font-size:13px}.slip-unpaid p{margin:0;line-height:2}.slip-ok{color:#1f6b2a;align-items:center;gap:6px;margin:0;font-size:13px;display:flex}.slip-history{gap:10px;max-width:720px;margin-top:24px;display:grid}.slip-history h2{margin:0;font-size:15px}.slip-history ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.slip-old{border:1px solid var(--line);border-radius:var(--radius);background:#fff}.slip-old>button{text-align:left;background:0 0;border:0;grid-template-columns:1fr auto 20px;align-items:center;gap:12px;width:100%;min-height:56px;padding:10px 16px;font-size:14px;display:grid}.slip-old>button span{gap:2px;display:grid}.slip-old svg{color:var(--muted);transition:transform .15s}.slip-old.open svg{transform:rotate(180deg)}.slip-old-body{gap:8px;padding:0 16px 16px;display:grid}@media (width<=680px){.slip-hero{padding:18px 16px}.slip-total{font-size:30px}.slip-download .primary,.slip-download .secondary{width:100%;min-height:48px}.slip-download{justify-items:stretch}}.summary-line.stacked li>*{flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;padding:14px 18px}.summary-line.stacked strong{white-space:nowrap;font-size:22px}.pay-filters{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px 18px 0;display:grid}.pay-filters select{width:100%}.pay-searchrow{align-items:center;gap:14px;padding:10px 18px 14px;display:flex}.pay-searchrow .search{flex:auto;max-width:none}.pay-searchrow .roster-count{white-space:nowrap;flex:none}.pay-head,.pay-main{grid-template-columns:minmax(200px,2fr) 150px 140px 120px 90px 130px 36px}.pay-head .num-col,.pay-main .num-col{text-align:right;justify-self:end}.pay-salary{margin-left:0;margin-right:-8px}.pay-money{justify-content:flex-end}.pay-money .pay-input{text-align:right;width:110px}.pay-flag{margin-left:0;margin-right:8px}.pay-head{background:#0b5f5508;padding-block:10px}@media (width<=1300px){.pay-head,.pay-main{grid-template-columns:minmax(150px,1.6fr) 120px 120px 100px 70px 110px 32px;gap:8px}}@media (width<=1100px){.pay-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.pay-main{grid-template-columns:minmax(0,1fr) auto}.pay-filters{padding-inline:14px}.pay-searchrow{flex-wrap:wrap;padding-inline:14px}.pay-searchrow .search{flex:100%}.pay-main .num-col{text-align:left;justify-self:auto}.pay-main .pay-net,.pay-main .pay-days{text-align:right;justify-self:end}.pay-salary{margin-left:-8px;margin-right:0}.pay-money{justify-content:flex-start}.summary-line.stacked li>*{padding:12px 14px}.summary-line.stacked strong{font-size:19px}}.approval-rule{margin:0;padding:0 20px 10px;font-size:12px}.pay-money.rate{justify-content:flex-start}.pay-money.rate .pay-input{text-align:right;width:150px}.rate-note{margin:0;font-size:12px}.dialog-fields small{font-weight:400}.rate-input{text-align:right;width:160px}.rate-example{color:var(--muted);font-weight:400}.rate-example strong{color:var(--ink)}.pay-history-toggle{justify-self:start;margin-top:4px;font-size:13px}.pay-history{gap:4px;margin:0;padding:0;font-size:12px;list-style:none;display:grid}.pay-history li{border-bottom:1px solid var(--line-soft);grid-template-columns:150px 1fr auto;gap:10px;padding:4px 0;display:grid}@media (width<=680px){.pay-history li{grid-template-columns:1fr;gap:0}}.cell.locked{opacity:.55;cursor:not-allowed}.day-row .cell.locked{cursor:default}.day-row:has(.cell.locked){cursor:default}.pay-mode{gap:4px;max-width:280px;font-size:12px;font-weight:600;display:grid}.pay-mode select{font-weight:400}.shift-menu-backdrop{z-index:60;position:fixed;inset:0}.shift-menu-backdrop.dim{background:#08282866}.shift-menu{z-index:61;border:1px solid var(--line);border-radius:var(--radius);background:#fff;flex-direction:column;display:flex;position:fixed;overflow:hidden;box-shadow:0 18px 50px #08282847}.shift-menu.sheet{max-height:78dvh;padding-bottom:env(safe-area-inset-bottom);border-width:1px 0 0;border-radius:16px 16px 0 0;bottom:0;left:0;right:0}.sm-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:flex-start;gap:10px;padding:12px 14px 10px;display:flex}.sm-head div{gap:2px;min-width:0;display:grid}.sm-head strong{font-size:14px}.sm-head small{color:var(--muted);font-size:12px}.sm-search{border-bottom:1px solid var(--line-soft);padding:8px 12px;display:block;position:relative}.sm-search svg{color:var(--faint);position:absolute;top:50%;left:22px;transform:translateY(-50%)}.sm-search input{min-height:38px;padding-left:34px}.sm-list{margin:0;padding:4px 0 6px;list-style:none;overflow-y:auto}.sm-group{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;padding:8px 14px 4px;font-size:12px;font-weight:700}.sm-group:empty{border-top:1px solid var(--line-soft);margin-top:4px;padding:0}.sm-item{text-align:left;background:0 0;border:0;align-items:center;gap:12px;width:100%;min-height:46px;padding:6px 14px;font-size:14px;display:flex}.sm-item[data-active=true],.sm-item:hover{background:#0b5f5514}.sm-badge{border-radius:8px;place-items:center;min-width:44px;height:32px;padding:0 8px;font-size:13px;font-weight:800;display:inline-grid}.sm-badge.tone-clear{border:1px solid var(--line)}.sm-name{flex:1;gap:1px;min-width:0;display:grid}.sm-name small{color:var(--muted);font-size:12px}.sm-item svg{color:var(--blue);flex:none}.sm-empty{text-align:center;padding:14px;font-size:13px}.shift-select{border:1px solid var(--blue);border-radius:var(--radius-sm);color:#fff;background:var(--blue);justify-content:space-between;align-items:center;gap:10px;min-height:44px;padding:8px 14px;font-size:14px;font-weight:700;display:inline-flex}.shift-select:disabled{opacity:.6}@media (width<=900px){.shift-select{width:100%}.sm-item{min-height:52px}}.cell{cursor:pointer}.period-now,.period-scheduled{margin:0;font-size:13px;line-height:1.6}.period-scheduled{color:#99590a}.period-preview{border-radius:var(--radius-sm);background:#0b5f550f;gap:6px;margin:0;padding:10px 12px;font-size:13px;list-style:none;display:grid}.period-preview li{gap:1px;display:grid}.period-preview span{color:var(--muted);font-size:12px}.approval-cover{color:#99590a;font-size:12px;font-weight:600}.bell,.bell>.icon-button{position:relative}.bell-dot{color:#fff;text-align:center;background:#b42318;border-radius:999px;min-width:17px;height:17px;padding:0 4px;font-size:11px;font-weight:800;line-height:17px;position:absolute;top:0;right:0}.bell-panel{z-index:55;border:1px solid var(--line);border-radius:var(--radius);text-align:left;background:#fff;flex-direction:column;width:min(360px,100vw - 24px);max-height:min(460px,70dvh);display:flex;position:absolute;overflow:hidden;box-shadow:0 18px 50px #08282840}.bell-panel.up{bottom:calc(100% + 8px);left:-4px}.bell-panel.down{width:auto;max-width:420px;margin-left:auto;position:fixed;top:64px;left:12px;right:12px}.bell-panel header{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;font-size:14px;display:flex}.bell-panel header .link-button{align-items:center;gap:4px;display:inline-flex}.bell-panel ul{margin:0;padding:0;list-style:none;overflow-y:auto}.bell-panel li{border-bottom:1px solid var(--line-soft)}.bell-panel li:last-child{border-bottom:0}.bell-panel li button{text-align:left;background:0 0;border:0;gap:2px;width:100%;padding:11px 14px;font-size:13px;display:grid}.bell-panel li button:hover{background:#0b5f550f}.bell-panel li.unread button{box-shadow:inset 3px 0 0 var(--blue);background:#0b5f5512}.bell-panel li span{color:var(--ink);opacity:.8}.bell-empty{text-align:center;margin:0;padding:22px 14px;font-size:13px}.mobile-actions{align-items:center;gap:6px;display:inline-flex}.sm-scope{border-top:1px solid var(--line-soft);background:#f6f9f8;flex-wrap:wrap;align-items:center;gap:6px;padding:9px 12px;font-size:12px;display:flex}.sm-scope>span{color:var(--muted);margin-right:2px;font-weight:700}.sm-scope button{border:1px solid var(--line);background:#fff;border-radius:999px;min-height:30px;padding:3px 11px;font-size:12px;font-weight:600}.sm-scope button[aria-pressed=true]{border-color:var(--blue);color:#fff;background:var(--blue)}@media (width<=900px){.sm-scope button{min-height:38px;padding:4px 14px;font-size:13px}}.empty-week{border:1px dashed var(--blue);border-radius:var(--radius);background:#0b5f550d;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:12px 0;padding:14px 18px;display:flex}.empty-week div{gap:2px;display:grid}.empty-week span{color:var(--muted);font-size:13px}.roster-table tfoot .cover-row th,.roster-table tfoot .cover-row td{border-top:0;font-weight:500}.roster-table tfoot .cover-row th{color:var(--ink);font-size:12px}.cover-label{align-items:center;gap:8px;display:inline-flex}.roster-table tfoot .cover-row td.none{opacity:.45}.cover-dot{border-radius:6px;place-items:center;min-width:26px;height:20px;padding:0 5px;font-size:12px;font-weight:800;display:inline-grid}@media (width>=1140px){.sched-panel{overflow:visible}.sched-panel .table-wrap{overflow-x:clip}.sched-panel .roster-table thead th{z-index:4;box-shadow:0 1px 0 var(--line);background:#fff;position:sticky;top:0}.sched-panel .roster-table thead th:first-child{z-index:5}}@media (width<=900px){.schedule-bar{flex-direction:row;align-items:center;gap:8px;padding:10px 12px}.schedule-bar label{flex:1;min-width:0;display:block}.schedule-bar .sb-label{display:none}.schedule-bar .secondary{flex:none;width:46px;min-height:46px;padding:0}.schedule-bar .sb-text{display:none}.empty-week{padding:12px 14px}.empty-week .primary{width:100%;min-height:46px}.action-bar{gap:8px;padding:10px 12px}.ab-foot{gap:6px}.day-fill .pick-all{grid-column:auto}}.sm-scope button{padding-inline:9px}.sm-scope{gap:5px}.period-ends{border-top:1px solid var(--line);gap:8px;padding-top:14px;display:grid}.period-ends h3{margin:0;font-size:15px}.period-ends p{margin:0;font-size:13px}.period-ends ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.period-ends li{border:1px solid var(--line-soft);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.period-ends li.locked{opacity:.6}.period-ends-from{min-width:112px;font-size:13px;font-weight:600}.period-ends input[type=date]{width:auto;min-height:36px}.period-ends small{color:var(--muted);margin-right:auto}.period-ends li .primary{min-height:34px;padding:0 14px}.pay-left{align-content:start;gap:14px;min-width:0;display:grid}.pay-adjust{border-top:1px dashed var(--line);gap:8px;padding-top:12px;display:grid}.pay-adjust h4{margin:0;font-size:13px}.pay-adjust ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.pay-adjust li{align-items:center;gap:8px;font-size:13px;display:flex}.pay-adjust li span{overflow-wrap:anywhere;flex:1;min-width:0}.pay-adjust li .minus{color:#b42318}.pay-adjust li .plus{color:var(--blue)}.pay-adjust li .icon-button{width:26px;height:26px}.pay-adjust-form{grid-template-columns:138px minmax(0,1fr);align-items:center;gap:6px;display:grid}.pay-adjust li.editing{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;padding:8px;display:block}.pay-adjust-buttons{align-items:center;gap:14px;display:flex}.tabs-inline{margin:0}.pay-copy-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.pay-copy-list label{border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:10px;min-height:44px;padding:6px 12px;display:flex}.pay-copy-list label span{gap:2px;display:grid}.pay-adjust-form input,.pay-adjust-form select{min-width:0;min-height:36px}.pay-adjust-form .secondary{min-height:36px;padding:0 14px}.leavers-banner{border-radius:var(--radius-sm);color:#5f4d12;background:#fbf4dc;border:1px solid #e7d79a;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:12px 14px;font-size:13px;display:flex}.leavers-banner button{flex:none}.dialog.leavers{width:min(720px,100%)}.leaver{border:1px solid var(--line);border-radius:var(--radius-sm);gap:8px;padding:14px;font-size:13px;display:grid}.leaver-main{gap:3px;display:grid}.leaver-main strong{font-size:14px}.leaver-effects,.leaver-warn{margin:0;line-height:1.55}.leaver-warn{color:#5f4d12}.leaver-actions{justify-content:flex-end;gap:8px;display:flex}@media (width<=680px){.leavers-banner{flex-direction:column;align-items:stretch}.leaver-actions button{flex:1}.schedule-bar{flex-wrap:wrap}.schedule-bar .draft-other{flex:1 0 100%;justify-content:space-between}}.pay-adjust-form .primary{min-height:36px;padding:0 18px}.pay-adjust-open{justify-self:start;min-height:40px}.pay-adjust h4 small{font-weight:500}.pay-adj{width:fit-content;color:var(--blue);white-space:nowrap;background:#0b5f5514;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:700;display:inline-flex}.pay-adj.minus{color:#b42318;background:#fdecea}@media (width<=680px){.pay-adjust-form select,.pay-adjust-form input,.pay-adjust-form .primary{min-height:44px}.pay-adjust-form{grid-template-columns:138px minmax(0,1fr)}}.contract-bar{gap:10px;padding:14px 18px;display:grid}.contract-bar .search{flex:none;max-width:none}.contract-filters{flex-wrap:wrap;margin:0}.contract-filters button{white-space:nowrap;flex:0 auto}.contract-filters small{opacity:.7;margin-left:6px;font-weight:700}.contract-group h3{z-index:1;border-top:1px solid var(--line-soft);background:var(--line-soft);align-items:baseline;gap:8px;margin:0;padding:8px 18px;font-size:13px;font-weight:700;display:flex;position:sticky;top:0}.contract-group h3 small{color:var(--muted);font-size:12px;font-weight:500}.contract-list{margin:0;padding:0;list-style:none}.contract-row{border-top:1px solid var(--line-soft);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding-right:18px;display:grid}.contract-row:hover{background:#0b5f550a}.contract-open{text-align:left;width:100%;min-height:60px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1.2fr) minmax(0,1.4fr) 170px 18px;align-items:center;gap:14px;padding:10px 0 10px 18px;display:grid}.contract-open>span{gap:2px;min-width:0;display:grid}.contract-open small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.contract-open .state-col{justify-items:start}.contract-open .chev{color:var(--faint)}.contract-open:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.contract-quick{white-space:nowrap}.cal-pill.off{color:var(--muted);background:var(--line-soft)}.file-tag{font-size:12px}.file-tag.has{color:var(--muted)}.file-tag.missing,.warn-text{color:#99590a}.contract-drawer{width:min(480px,100%)}.contract-drawer-body{align-content:start;display:grid}.contract-drawer-body>.error,.contract-drawer-body>.contract-message{margin:14px 20px 0}.contract-section{margin:0;padding:16px 20px 8px;font-size:13px;font-weight:600}.contract-list-dl{border-top:1px solid var(--line-soft)}.contract-list-dl dd .link-button{margin-left:10px}.contract-message{border-radius:var(--radius-sm);padding:10px 12px;font-size:13px}.contract-message p{margin:4px 0 0}.contract-message.ok{color:#1f6b2a;background:#e8f5df}.contract-message.bad{color:#9b2c2c;background:#fde8e8}.contract-history{margin:0;padding:0;list-style:none}.contract-history li{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;font-size:14px;display:flex}.contract-history li>div{justify-items:start;gap:3px;min-width:0;display:grid}.contract-history .row-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px 14px;display:flex}.contract-panel{margin-top:16px}.contract-hint{color:var(--muted);margin:0;padding:12px 20px 16px;font-size:13px}.contract-form{gap:16px;padding:4px 20px 20px;display:grid}.contract-form fieldset{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.contract-form legend,.contract-form>label,.contract-attach-label{font-size:13px;font-weight:600}.contract-form>label{gap:6px;display:grid}.contract-form input[type=date],.contract-form input:not([type]){width:100%;min-width:0}.contract-form .segmented{margin:0}.contract-form .segmented button{min-height:42px}.contract-presets{flex-wrap:wrap;gap:8px;display:flex}.chip[aria-pressed=true]{border-color:var(--blue);color:#fff;background:var(--blue)}.contract-form .inline{grid-template-columns:90px minmax(0,1fr);align-items:center;gap:8px;font-size:13px;font-weight:600;display:grid}.contract-range{color:var(--muted)}.contract-attach{justify-items:start;gap:8px;display:grid}.contract-file-pick{border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:6px;min-height:40px;padding:0 14px;display:inline-flex}.contract-file-chosen{border-radius:var(--radius-sm);background:var(--line-soft);align-items:center;gap:8px;max-width:100%;padding:6px 8px 6px 12px;font-size:13px;display:flex}.contract-file-chosen span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.contract-drawer .drawer-foot{background:#fff;position:sticky;bottom:0}@media (width<=680px){.contract-bar{padding:12px 16px}.contract-filters{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.contract-filters::-webkit-scrollbar{display:none}.contract-filters button{min-height:40px}.contract-group h3{padding:8px 16px}.contract-row{grid-template-columns:1fr;gap:0;padding:0 16px 12px}.contract-open{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who state""what what";gap:6px 10px;min-height:60px;padding:12px 0 8px}.contract-open .who{grid-area:who}.contract-open .what{grid-area:what}.contract-open .state-col{grid-area:state;justify-items:end}.contract-open .chev{display:none}.contract-quick{justify-self:end;min-height:40px}.contract-form .inline{grid-template-columns:1fr;gap:4px}.contract-presets .chip{flex:calc(50% - 8px);min-height:44px}.contract-history li{flex-direction:column;align-items:stretch}.contract-history .row-actions{justify-content:flex-start}}.access-panel{overflow:visible}.access-head{border-radius:0}.access-help{border-bottom:1px solid var(--line-soft);padding:12px 18px;font-size:13px}.access-help summary{cursor:pointer;color:var(--blue);font-weight:600}.access-help ul{color:var(--muted);gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.access-help li strong{color:var(--ink);margin-right:6px}.access-bar{border-bottom:1px solid var(--line-soft);padding:12px 18px}.access-bar .search{flex:none;max-width:none}.access-head,.access-row{grid-template-columns:minmax(170px,.8fr) minmax(0,2.2fr) 190px;gap:8px 20px;padding:0 18px;display:grid}.access-head{background:var(--line-soft);color:var(--muted);padding-block:9px;font-size:12px;font-weight:700}.access-list{margin:0;padding:0;list-style:none}.access-row{border-top:1px solid var(--line-soft);align-items:start;padding-block:14px}.access-row:first-child{border-top:0}.access-row .who{gap:2px;min-width:0;display:grid}.access-pt{justify-items:start;gap:8px;min-width:0;display:grid}.pt-picker{width:100%;max-width:320px;position:relative}.pt-trigger{border:1px solid var(--line);border-radius:var(--radius-sm);text-align:left;cursor:pointer;background:#fff;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:44px;padding:6px 12px;font-size:14px;font-weight:600;display:flex}.pt-trigger[aria-expanded=true]{border-color:var(--blue)}.pt-menu{z-index:20;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;max-height:320px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #10282424}.pt-menu ul{margin:0;padding:4px 0;list-style:none}.pt-menu-tools{border-bottom:1px solid var(--line-soft);justify-content:space-between;padding:8px 12px;font-size:13px;display:flex}.pt-menu label{cursor:pointer;align-items:center;gap:10px;min-height:44px;padding:6px 12px;display:flex}.pt-menu label:hover,.pt-menu label:focus-within{background:var(--line-soft)}.pt-menu input{width:18px;height:18px;accent-color:var(--blue);flex:none}.pt-menu input:focus-visible{box-shadow:none;outline:none}.pt-menu span{flex:1;min-width:0;line-height:1.25;display:grid}.pt-menu strong{font-size:14px}.pt-menu small{color:var(--muted);font-size:12px}.access-pt>select,.access-pt>input{width:100%;max-width:320px;min-height:44px}.access-log{border-top:1px solid var(--line-soft);gap:2px;padding:12px 18px;font-size:14px;display:grid}.access-log:first-child{border-top:0}.access-tabs{max-width:680px}.audit-kinds{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;gap:8px;padding:12px 18px;display:flex}.access-none{color:var(--muted);font-size:13px}.access-state{align-content:start;justify-items:start;gap:6px;display:grid}.access-badge{color:var(--muted);background:var(--line-soft);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700;display:inline-block}.access-badge.on{color:#1f6b2a;background:#e8f5df}@media (width<=680px){.access-head{display:none}.access-help,.access-bar{padding-inline:16px}.access-row{grid-template-columns:1fr;gap:10px;padding:16px}.pt-picker,.access-pt>select,.access-pt>input{max-width:none}.access-log{padding-inline:16px}.access-state{grid-auto-flow:row;justify-items:stretch}.access-state .primary{min-height:44px}.access-state .link-button{justify-self:center;min-height:36px}.access-state .access-badge{justify-self:start}}@media (pointer:coarse),(width<=680px){.segmented button,.chip,.ab-chip,.ab-scope button,.sm-scope button,.scope-filter .sf-date .chip,.pager .secondary,.approval>footer .row-actions .secondary,.stack td.row-end button,.bulk-bar .primary,.bulk-bar .secondary,.org-head .view-toggle button,.viz-toggle button,.shift-editor-row .secondary,.period-ends li .primary{min-height:44px}.date-step .icon-button,.ab-top .icon-button,.week-step .icon-button,.pay-adjust li .icon-button{width:44px;height:44px}.date-step input,.shift-editor-row input,.pay-input,.period-ends input[type=date],.pay-adjust-form input,.pay-adjust-form select,.pay-adjust-form .secondary,.pay-adjust-form .primary{min-height:44px}.logo{align-items:center;min-height:44px;display:inline-flex}}.tabbar{display:none}@media (width<=900px){.has-tabbar .tabbar{z-index:15;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff5;grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.tab{min-height:58px;color:var(--muted);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:6px 2px;font-size:12px;font-weight:600;text-decoration:none;display:flex;position:relative}.tab.active{color:var(--blue)}.tab.active:before{content:"";background:var(--blue);border-radius:0 0 3px 3px;height:3px;position:absolute;top:0;left:22%;right:22%}.tab-badge{color:#fff;text-align:center;background:#c0392b;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:4px;left:calc(50% + 6px)}.has-tabbar .content{padding-bottom:calc(86px + env(safe-area-inset-bottom))}.has-tabbar .save-bar{bottom:calc(66px + env(safe-area-inset-bottom))}}.approval>footer .decision-note{color:var(--ink);overflow-wrap:anywhere;flex:100%}@media (width<=680px){.approval>footer .decision-note{flex:none}}.history-more{width:calc(100% - 36px);min-height:44px;margin:12px 18px 16px;display:block}.sf-toggle{display:none}@media (width<=900px){.sf-toggle{border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;min-height:44px;color:var(--ink);text-align:left;background:#fff;align-items:center;gap:8px;padding:6px 12px;font-size:14px;font-weight:600;display:flex}.sf-toggle span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.sf-toggle svg:last-child{transition:transform .15s}.scope-filter.open .sf-toggle svg:last-child{transform:rotate(180deg)}.scope-filter:not(.open) .sf-body{display:none}.scope-filter.open .sf-body{margin-top:10px}}.profile-body{padding:18px}.profile-form{max-width:420px}.profile-show{align-items:center;gap:6px;width:fit-content;min-height:44px;display:inline-flex}.recap-tabs{max-width:440px;margin:0 0 14px}.org-geo{border:1px solid var(--line);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:10px 12px;display:flex}.org-geo span{gap:2px;min-width:0;display:grid}.org-geo small{font-size:12px}.org-geo .secondary{flex:none}.nav-group+.nav-group{margin-top:4px}.nav-group .nav-label{margin:16px 12px 6px}.nav-group:first-child .nav-label{margin-top:4px}.sidebar-who{border-radius:var(--radius-sm);min-width:0;color:inherit;flex:1;align-items:center;gap:10px;text-decoration:none;display:flex}.sidebar-who:hover{background:var(--hover)}.sidebar-who>span:last-child{min-width:0;display:grid}.mobile-actions a.avatar{place-items:center;min-width:44px;min-height:44px;text-decoration:none;display:grid}.sf-body{gap:12px;display:grid}.scope-filter .sf-date{margin-top:2px}.sidebar nav{scrollbar-width:thin;flex:auto;min-height:0;margin-right:-8px;padding-right:8px;overflow-y:auto}.sidebar-user{flex:none}.my-days{margin:0;padding:0;list-style:none}.my-days li{border-top:1px solid var(--line-soft);align-items:center;gap:14px;min-height:64px;padding:14px 18px;display:flex}.my-days li:first-child{border-top:0}.my-days li.today{background:#0b5f550f}.my-day{flex:none;justify-items:center;width:44px;line-height:1.1;display:grid}.my-day small{color:var(--muted);text-transform:uppercase;font-size:12px}.my-day strong{font-size:20px}.my-shift{flex:1;gap:2px;min-width:0;display:grid}.my-shift small{color:var(--muted);font-size:13px}.contact-hr{border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffffb3;gap:8px;margin-top:12px;padding:12px;display:grid}.contact-hr-title{margin:0;font-size:13px;font-weight:600}.contact-hr textarea{resize:none;width:100%;font-family:inherit;font-size:14px;line-height:1.45}.contact-hr .secondary{width:fit-content;min-height:44px}.leave-quota{border-bottom:1px solid var(--line-soft);margin:0;padding:12px 18px;font-size:14px}.leave-note{margin:0;padding:10px 18px}.kind-tag{width:fit-content;color:var(--muted);background:var(--line-soft);border-radius:4px;margin-bottom:4px;padding:1px 8px;font-size:12px;font-weight:700;display:inline-block}.approvals-notice{margin:0 0 12px}.approvals-tabs{max-width:680px}.close-guide{border-bottom:1px solid var(--line-soft);margin:0;padding:4px 18px;list-style:none}.close-guide li{grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:48px;padding:8px 0;display:grid}.close-guide li+li{border-top:1px solid var(--line-soft)}.close-guide strong{font-size:14px;display:block}.close-guide small{color:var(--muted);font-size:12px;display:block}.close-guide .dot{background:var(--line);border-radius:50%;width:10px;height:10px}.close-guide li.ok .dot{background:var(--green,#1f8a5b)}.close-guide li.warn .dot{background:var(--amber,#c9871a)}@media (width<=680px){.close-guide li{grid-template-columns:12px minmax(0,1fr)}.close-guide li .secondary{grid-column:2;justify-self:start}}.kpi-delta,.kpi-hint{font-size:13px}.kpi-delta small{font-size:inherit}.kpi-delta.none{font-weight:500}.dash-grid+.kpi-row{margin-top:16px}.kpi-label{font-size:13px}.scroll-hint{color:var(--muted);margin:0;padding:0 14px 4px;font-size:12px;display:none}.hist-table th:first-child,.hist-table td:first-child{box-shadow:1px 0 0 var(--line-soft);background:#fff;position:sticky;left:0}@media (width<=680px){.scroll-hint{display:block}.schedule-bar .secondary.sb-wide{white-space:nowrap;width:auto;min-height:46px;padding:0 16px}.schedule-bar .badge{flex:none}.schedule-bar:has(.sb-wide) label{flex:1 0 100%}.status-line{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.status-line .assign-link{white-space:nowrap;justify-self:end}}@media (width<=520px){.dialog-foot{flex-wrap:wrap}.dialog-foot>.secondary{flex:100%;justify-content:center}.dialog-foot .row-actions{flex:100%;order:-1}.dialog-foot .row-actions button{flex:1;justify-content:center}}.span-toggle{max-width:360px;margin:10px 14px 0}.period-row{width:100%;color:inherit;text-align:left;font:inherit;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 10px;padding:0;display:grid}.period-row .pr-name{grid-column:1;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.period-row .rcard-sum{grid-column:1}.period-row .pr-chev{color:var(--muted);grid-area:1/2/3;transition:transform .15s}.period-row[aria-expanded=true] .pr-chev{transform:rotate(180deg)}.period-days{max-width:560px;margin-top:4px}@media (width>=681px){.period-row{grid-template-columns:240px minmax(0,1fr) auto}.period-row .pr-name{gap:0;display:grid}.period-row .rcard-sum{grid-column:2;margin:0}.period-row .pr-chev{grid-area:1/3}}.profile-link{min-height:64px;color:inherit;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;text-decoration:none;display:flex}.profile-link:hover{background:var(--hover)}.profile-link span{gap:2px;display:grid}.profile-link small{color:var(--muted);font-size:13px}.back-link{min-height:44px;color:var(--blue);align-items:center;gap:6px;margin-bottom:8px;font-weight:600;text-decoration:none;display:inline-flex}.profile-security{margin-top:14px}.sidebar-who{border:1px solid var(--line);background:#fff;padding:6px 8px}.sidebar-who:hover{border-color:var(--blue);background:var(--blue-soft)}.sidebar-who:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.who-chev{color:var(--muted);flex:none;margin-left:auto}.sidebar-who:hover .who-chev{color:var(--blue)}.sidebar-who>span:nth-child(2){flex:1;min-width:0;display:grid}.sidebar-user{flex-wrap:wrap;row-gap:8px}.sidebar-who{flex:1 0 100%}.sidebar-user .bell{margin-left:0}.side-logout{flex:1;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:4px 12px;font-size:13px;display:inline-flex}@media (width<=900px){.sidebar-user{display:none}}.account{position:relative}.account-btn{border:1px solid var(--line);border-radius:var(--radius-sm);min-height:44px;color:var(--muted);background:#fff;align-items:center;gap:2px;padding:3px 6px 3px 4px;display:inline-flex}.account-btn .avatar{color:#fff;background:var(--aurora-wide)}.account-btn:hover,.account-btn[aria-expanded=true]{border-color:var(--blue);background:var(--blue-soft)}.account-btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.account-chev{transition:transform .15s}.account-btn[aria-expanded=true] .account-chev{transform:rotate(180deg)}.account-menu{z-index:60;border:1px solid var(--line);border-radius:var(--radius);background:#fff;width:min(260px,100vw - 24px);display:grid;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 18px 50px #08282840}.account-who{border-bottom:1px solid var(--line-soft);gap:2px;padding:12px 14px;display:grid}.account-who strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.account-who small{color:var(--muted);font-size:12px}.account-menu a,.account-menu button{min-height:48px;color:var(--ink);font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:0 14px;font-size:14px;font-weight:600;text-decoration:none;display:flex}.account-menu a:hover,.account-menu button:hover{background:var(--blue-soft)}.account-menu a:focus-visible,.account-menu button:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.account-menu .account-out{border-top:1px solid var(--line-soft);color:#b42323}.account-menu .account-out:hover{background:#fdecec}@media (width<=900px){.mobile-bar{grid-template-columns:1fr auto 1fr;display:grid}.mobile-bar>:first-child{justify-self:start}.mobile-bar .logo{justify-self:center}.mobile-bar .mobile-actions{justify-self:end}}.result-dialog{text-align:center;width:min(380px,100%)}.result-body{justify-items:center;gap:10px;padding:28px 22px 16px}.result-icon{border-radius:50%;place-items:center;width:72px;height:72px;display:grid}.result-dialog.ok .result-icon{color:#1f6b2a;background:#e8f5df}.result-dialog.late .result-icon{color:#99590a;background:#fdf1de}.result-dialog.bad .result-icon{color:#9b2c2c;background:#fde8e8}.result-body h2{letter-spacing:-.01em;margin:4px 0 0;font-size:20px;font-weight:800}.result-text{justify-items:center;gap:6px;display:grid}.result-text p{margin:0}.result-time{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:38px;font-weight:800}.result-status{font-size:15px;font-weight:600}.result-dialog.late .result-status{color:#99590a}.result-dialog.bad .result-status{color:#9b2c2c}.result-hint{max-width:300px;color:var(--muted);font-size:13px;line-height:1.5}.result-foot{border-top:0;flex-direction:column;align-items:stretch;padding:8px 22px 22px}.result-foot button{justify-content:center;width:100%;min-height:48px}.result-spinner{border:5px solid var(--blue-soft);border-top-color:var(--blue);border-radius:50%;width:56px;height:56px;animation:.8s linear infinite result-spin}@keyframes result-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.result-spinner{animation-duration:2.4s}}.result-dialog.pending .result-body{padding-bottom:28px}.sidebar nav{align-content:start}
