@font-face{font-family:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.1spbknb88wd48.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.1gsd1jahc5dg_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit Fallback;src:local(Arial);ascent-override:100.18%;descent-override:26.05%;line-gap-override:0.0%;size-adjust:99.82%}.outfit_8778cd42-module__wRojWG__className{font-family:Outfit,Outfit Fallback;font-style:normal}.outfit_8778cd42-module__wRojWG__variable{--font-outfit:"Outfit", "Outfit Fallback"}
:root{--background:#1c1c1a;--foreground:#f5f2ee;--praxis-offblack:#1c1c1a;--praxis-charcoal:#282824;--praxis-graphite:#2f2f2b;--praxis-graphite-light:#363632;--praxis-steel:#668586;--praxis-cyan:#668586;--praxis-border:#2e2e2b;--praxis-text:#f5f2ee;--praxis-text-dim:#a3a19d;--praxis-error:#ee9691;--praxis-accent:#ee9691;--praxis-accent-rgb:238, 150, 145;--praxis-button-bg:#668586;--praxis-button-text:#f5f2ee;--praxis-bevel-highlight:#ffffff0d;--praxis-bevel-shadow:#00000080;--praxis-input-shadow:#0006;--praxis-cyan-glow:#66858640;--praxis-cyan-glow-strong:#66858659;--praxis-header-bg:var(--praxis-charcoal);--praxis-header-line:#ffffff08;--praxis-header-sheen:#ffffff0a}:root[data-theme=light]{--background:#f5f2ee;--foreground:#222414;--praxis-offblack:#f5f2ee;--praxis-charcoal:#eae7e1;--praxis-graphite:#e2ded7;--praxis-graphite-light:#d8d4cc;--praxis-steel:#4a6a6b;--praxis-cyan:#4a6a6b;--praxis-border:#c8c4bc;--praxis-text:#222414;--praxis-text-dim:#6b6762;--praxis-error:#c96b66;--praxis-accent:#c96b66;--praxis-accent-rgb:201, 107, 102;--praxis-button-bg:#4a6a6b;--praxis-button-text:#f5f2ee;--praxis-bevel-highlight:#fffc;--praxis-bevel-shadow:#0000000f;--praxis-input-shadow:#0000000a;--praxis-cyan-glow:#4a6a6b2e;--praxis-cyan-glow-strong:#4a6a6b47;--praxis-header-bg:var(--praxis-charcoal);--praxis-header-line:#0000000a;--praxis-header-sheen:#fff9}html,body{max-width:100vw;overflow-x:hidden}body{color:var(--foreground);background:var(--background);font-family:var(--font-outfit), sans-serif;transition:background-color .2s,color .2s}*{box-sizing:border-box;margin:0;padding:0}a{color:inherit;text-decoration:none}.imgDark{display:none}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.imgLight{display:none}.imgDark{display:unset}}.theme-toggle{border:1px solid var(--praxis-steel);color:var(--praxis-steel);letter-spacing:.06em;white-space:nowrap;cursor:pointer;box-shadow:inset 0 1px 0 var(--praxis-bevel-highlight), inset 0 -1px 0 var(--praxis-bevel-shadow);background-color:#0000;border-radius:6px;padding:.4rem .9rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:border-color .15s,box-shadow .15s,color .15s}.theme-toggle:hover{border-color:var(--praxis-cyan);color:var(--praxis-cyan);box-shadow:inset 0 1px 0 var(--praxis-bevel-highlight), inset 0 -1px 0 var(--praxis-bevel-shadow), 0 0 8px var(--praxis-cyan-glow)}.auth-page-toggle{position:absolute;top:1.5rem;right:1.5rem}.auth-page{background-color:var(--praxis-offblack);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex;position:relative}.auth-card{background-color:var(--praxis-charcoal);border:1px solid var(--praxis-border);width:100%;max-width:560px;box-shadow:inset 0 1px 0 var(--praxis-bevel-highlight), inset 0 -1px 0 var(--praxis-bevel-shadow), 0 20px 50px #00000040;border-radius:12px;padding:2.5rem 2rem}.auth-logo{object-fit:contain;width:auto;height:72px;margin:0 auto 2.5rem;display:block}.dash-nav-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-top:2rem;display:grid}.dash-nav-btn{border:1px solid var(--praxis-accent);color:var(--praxis-accent);letter-spacing:.04em;text-align:center;background:0 0;border-radius:10px;justify-content:center;align-items:center;padding:2rem 1.5rem;font-size:1.05rem;font-weight:600;transition:all .2s ease-out;display:flex;position:relative}.dash-nav-btn:hover{border-color:var(--praxis-accent);background:#ee969114;box-shadow:0 0 16px #ee969126}.dash-nav-btn--dev{border-color:var(--praxis-steel);color:var(--praxis-steel)}.dash-nav-btn--dev:hover{border-color:var(--praxis-steel);box-shadow:0 0 16px var(--praxis-cyan-glow);background:#66858614}.dash-nav-badge{background:var(--praxis-accent);color:var(--praxis-offblack);letter-spacing:.02em;border-radius:999px;padding:2px 7px;font-size:.65rem;font-weight:800;position:absolute;top:.6rem;right:.75rem}.auth-subtitle{text-align:center;letter-spacing:.04em;color:var(--praxis-text-dim);margin-top:1.25rem;margin-bottom:2rem;font-size:.9rem}.auth-form{flex-direction:column;display:flex}.auth-label{letter-spacing:.06em;text-transform:uppercase;color:var(--praxis-text-dim);margin-bottom:.4rem;font-size:.85rem;font-weight:600}.auth-input{border:1px solid var(--praxis-border);color:var(--praxis-text);background-color:var(--praxis-graphite);box-shadow:inset 0 1px 2px var(--praxis-input-shadow);border-radius:6px;margin-bottom:1.25rem;padding:.65rem .75rem;font-family:inherit;font-size:1rem;transition:border-color .15s,box-shadow .15s}.auth-input:focus{border-color:var(--praxis-cyan);box-shadow:inset 0 1px 2px var(--praxis-input-shadow), 0 0 0 3px var(--praxis-cyan-glow), 0 0 10px var(--praxis-cyan-glow-strong);outline:none}.auth-error{color:var(--praxis-error);margin-top:-.5rem;margin-bottom:1rem;font-size:.85rem}.auth-success{color:#22c55e;margin-top:-.5rem;margin-bottom:1rem;font-size:.85rem}.auth-hint{color:var(--praxis-text-muted,#9a9589);margin-bottom:1.25rem;font-size:.875rem;line-height:1.5}.auth-link{text-align:center;color:var(--praxis-text-muted,#9a9589);margin-top:1rem;font-size:.85rem;text-decoration:none;display:block}.auth-link:hover{color:var(--praxis-accent);text-decoration:underline}.auth-button{border:1px solid var(--praxis-accent);background-color:var(--praxis-accent);color:var(--praxis-offblack);letter-spacing:.06em;cursor:pointer;box-shadow:inset 0 1px 0 var(--praxis-bevel-highlight), inset 0 -1px 0 var(--praxis-bevel-shadow);border-radius:6px;padding:.7rem 1rem;font-family:inherit;font-size:1rem;font-weight:600;transition:background-color .15s,box-shadow .15s,border-color .15s}.auth-button:hover{border-color:var(--praxis-cyan);box-shadow:inset 0 1px 0 var(--praxis-bevel-highlight), inset 0 -1px 0 var(--praxis-bevel-shadow), 0 0 12px var(--praxis-cyan-glow-strong)}.app-page{background-color:var(--praxis-offblack);min-height:100vh}.app-header{z-index:50;background-color:var(--praxis-charcoal);color:var(--praxis-text);border-bottom:none;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;padding:1.1rem 2rem 1.1rem 1rem;display:flex;position:sticky;top:0}.app-header-left{align-items:center;gap:2rem;display:flex}.app-logo{object-fit:contain;width:auto;height:64px;display:block}.app-header-home-btn{letter-spacing:.05em;color:var(--praxis-steel);border:1px solid var(--praxis-steel);white-space:nowrap;border-radius:6px;padding:.3rem .85rem;font-size:.82rem;font-weight:600;transition:all .2s ease-out}.app-header-home-btn:hover{color:var(--praxis-text);background:#6685861f}.app-header-right{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.app-user{letter-spacing:.04em;white-space:nowrap;font-size:.95rem}.app-logout{border:1px solid var(--praxis-border);background-color:var(--praxis-graphite);color:var(--praxis-text);letter-spacing:.06em;white-space:nowrap;cursor:pointer;border-radius:6px;padding:.4rem .9rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:border-color .15s,box-shadow .15s}.app-logout:hover{border-color:var(--praxis-cyan);box-shadow:0 0 8px var(--praxis-cyan-glow)}.dashboard-main{max-width:960px;margin:0 auto;padding:2.5rem 2rem}.dashboard-welcome{letter-spacing:.04em;color:var(--praxis-text);margin-bottom:1.5rem;font-size:1.5rem;font-weight:700}.dashboard-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.dev-section{background:var(--praxis-charcoal);border:1px solid var(--praxis-border);border-radius:8px;margin-top:2.5rem;padding:1.5rem}.dev-section-title{letter-spacing:.12em;text-transform:uppercase;color:var(--praxis-steel);margin-bottom:.25rem;font-size:.7rem;font-weight:700}.dev-section-subtitle{color:var(--praxis-text-muted,#9a9589);margin-bottom:1.25rem;font-size:.85rem}.dev-tool-heading{color:var(--praxis-text);margin-bottom:1rem;font-size:.95rem;font-weight:600}.dev-create-form{flex-direction:column;max-width:420px;display:flex}.dev-org-list{flex-direction:column;gap:.4rem;display:flex}.dev-org-btn{background:var(--praxis-graphite);width:100%;color:var(--praxis-text);cursor:pointer;text-align:left;border:1px solid #0000;border-radius:6px;justify-content:space-between;align-items:center;padding:.6rem .9rem;font-size:.9rem;transition:border-color .15s;display:flex}.dev-org-btn:hover{border-color:#e07b54}.dev-org-btn--active{background:#e07b5414;border-color:#e07b54}.dev-org-active-label{letter-spacing:.08em;text-transform:uppercase;color:#e07b54;border:1px solid #e07b54;border-radius:4px;padding:.15rem .45rem;font-size:.7rem;font-weight:600}.skills-library{flex-direction:column;gap:.5rem;display:flex}.skills-cat{border:1px solid var(--praxis-border);border-radius:6px;overflow:hidden}.skills-cat-header{background:var(--praxis-graphite);justify-content:space-between;align-items:center;padding:0 .75rem 0 0;display:flex}.skills-cat-toggle{color:var(--praxis-text);text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:.5rem;padding:.65rem .75rem;font-size:.9rem;font-weight:600;display:flex}.skills-cat-arrow{color:var(--praxis-steel);width:12px;font-size:.75rem}.skills-cat-name{flex:1}.skills-cat-count{color:var(--praxis-steel);background:#6685861f;border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:600}.skills-cat-actions{gap:.25rem;display:flex}.skills-cat-body{flex-direction:column;gap:.25rem;padding:.5rem .75rem .75rem;display:flex}.skill-row{color:var(--praxis-text);border-radius:4px;justify-content:space-between;align-items:center;padding:.3rem .4rem;font-size:.875rem;display:flex}.skill-row:hover{background:var(--praxis-graphite-light)}.skill-name{flex:1}.skill-actions{gap:.2rem;display:none}.skill-row:hover .skill-actions{display:flex}.skills-action-btn{color:var(--praxis-steel);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.15rem .35rem;font-size:.8rem;transition:background .1s}.skills-action-btn:hover{background:#66858626}.skills-action-btn--danger{color:var(--praxis-error,#e05454)}.skills-action-btn--danger:hover{background:#e054541f}.skills-inline-input{background:var(--praxis-graphite-light);border:1px solid var(--praxis-steel);color:var(--praxis-text);border-radius:4px;outline:none;flex:1;padding:.2rem .5rem;font-size:.875rem}.skill-add-row,.skills-add-cat-row{align-items:center;gap:.35rem;margin-top:.25rem;display:flex}.skills-add-btn{border:1px dashed var(--praxis-border);color:var(--praxis-steel);cursor:pointer;background:0 0;border-radius:4px;margin-top:.35rem;padding:.3rem .6rem;font-size:.8rem;transition:border-color .15s}.skills-add-btn:hover{border-color:var(--praxis-steel)}.skills-add-cat-btn{border:1px dashed var(--praxis-border);color:var(--praxis-steel);cursor:pointer;background:0 0;border-radius:6px;width:100%;margin-top:.25rem;padding:.5rem 1rem;font-size:.85rem;transition:border-color .15s}.skills-add-cat-btn:hover{border-color:var(--praxis-steel)}.dashboard-card{background-color:var(--praxis-graphite);border:1px solid var(--praxis-border);box-shadow:inset 0 1px 0 var(--praxis-bevel-highlight), inset 0 -1px 0 var(--praxis-bevel-shadow);border-radius:8px;flex-direction:column;gap:.4rem;padding:1.25rem;display:flex}.dashboard-card-label{color:var(--praxis-text-dim);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;font-weight:600}.dashboard-card-value{letter-spacing:.02em;color:var(--praxis-text);font-size:1.1rem;font-weight:600}.dashboard-note{color:var(--praxis-text-dim);letter-spacing:.02em;font-size:.95rem}.page-header-row{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.page-action-button{text-align:center;width:auto;text-decoration:none;display:inline-block}.employee-table{border-collapse:collapse;background-color:var(--praxis-graphite);border:1px solid var(--praxis-border);width:100%;box-shadow:inset 0 1px 0 var(--praxis-bevel-highlight), inset 0 -1px 0 var(--praxis-bevel-shadow);border-radius:8px;overflow:hidden}.employee-table th,.employee-table td{text-align:left;border-bottom:1px solid var(--praxis-border);padding:.75rem 1rem}.employee-table th{color:var(--praxis-text-dim);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;font-weight:600}.employee-table tbody tr:last-child td{border-bottom:none}.employee-table tbody tr:hover td{background-color:var(--praxis-graphite-light)}.employee-table-link{letter-spacing:.02em;color:var(--praxis-steel);font-weight:600;transition:color .15s,text-shadow .15s}.employee-table-link:hover{color:var(--praxis-cyan);text-shadow:0 0 8px var(--praxis-cyan-glow)}.profile-page-header{margin-bottom:1.5rem}.profile-back-link{letter-spacing:.04em;color:var(--praxis-steel);margin-bottom:.75rem;font-size:.9rem;transition:color .15s;display:inline-block}.profile-back-link:hover{color:var(--praxis-cyan)}.form-page{max-width:540px}.form-grid{grid-template-columns:1fr 1fr;gap:0 1.5rem;display:grid}.form-grid>div{flex-direction:column;display:flex}.form-grid .auth-label{margin-top:.25rem}.form-grid .auth-input{box-sizing:border-box;width:100%}.form-error{color:var(--praxis-error);margin-bottom:1rem;font-size:.9rem}.form-success{color:var(--praxis-cyan);margin-bottom:1rem;font-size:.9rem}.settings-section{border-bottom:1px solid var(--praxis-border);max-width:720px;margin-bottom:2.5rem;padding-bottom:2rem}.settings-section:last-child{border-bottom:none}.settings-section-title{letter-spacing:.03em;color:var(--praxis-text);margin-bottom:1rem;font-size:1.15rem;font-weight:700}.settings-subsection-title{letter-spacing:.03em;color:var(--praxis-text);margin-top:1.5rem;margin-bottom:1rem;font-size:.95rem;font-weight:700}.settings-table{margin-bottom:1.5rem}.settings-table td{vertical-align:middle}.settings-inline-form{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.settings-inline-form .auth-input{flex:140px;width:auto;margin-bottom:0}.settings-inline-form .auth-button{flex:none}.settings-derived-field{color:var(--praxis-text-dim);cursor:default;pointer-events:none}.entitlement-banner{border:1px solid var(--praxis-cyan);background-color:var(--praxis-graphite);max-width:540px;box-shadow:0 0 12px var(--praxis-cyan-glow);border-radius:8px;margin-bottom:1.5rem;padding:1rem 1.25rem}.entitlement-banner-title{letter-spacing:.04em;color:var(--praxis-cyan);margin-bottom:.4rem;font-size:.9rem;font-weight:700}.entitlement-banner-detail{color:var(--praxis-text-dim);font-size:.9rem}.skill-expiry-warning{color:var(--praxis-error);font-weight:600}.rota-page-body{align-items:stretch;min-height:calc(100vh - 72px);display:flex}.app-page--rota{flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-page--rota .rota-page-body{flex:1;min-height:0}.app-page--rota .rota-sidebar{overflow:visible}.app-page--rota .rota-main-content{flex-direction:column;display:flex;overflow:hidden}.app-page--rota .rota-topbar,.app-page--rota .rota-publish-banner,.app-page--rota .rota-build-summary{flex-shrink:0}.app-page--rota .rota-scroll-wrapper{background:var(--background);border-radius:0;flex:1;min-height:0;overflow:auto}.rota-sidebar{background:var(--praxis-charcoal);border-right:none;flex-direction:column;flex-shrink:0;gap:1.25rem;width:200px;padding:1.25rem 1rem;display:flex}.rota-sidebar-header{flex-direction:column;gap:.5rem;display:flex}.rota-sidebar-title{letter-spacing:.04em;color:var(--praxis-text);font-size:1.1rem;font-weight:700}.rota-sidebar-actions{flex-direction:column;gap:.6rem;display:flex}.rota-sidebar-actions .rota-build-btn,.rota-sidebar-actions .rota-resolve-btn,.rota-sidebar-actions .rota-reset-btn{text-align:center;justify-content:center;width:100%}.rota-sidebar-actions .rota-resolve-btn,.rota-sidebar-actions .rota-reset-btn{background:var(--praxis-accent);color:var(--praxis-offblack);border:none}.rota-sidebar-form{display:block}.rota-sidebar-full{width:100%}.rota-sidebar-secondary-btn{text-align:center;border:1px solid var(--praxis-steel);width:100%;color:var(--praxis-steel);cursor:pointer;white-space:nowrap;box-sizing:border-box;background:0 0;border-radius:6px;padding:.45rem 1rem;font-family:inherit;font-size:.82rem;font-weight:700;transition:opacity .15s;display:block}.rota-sidebar-secondary-btn:hover{opacity:.8}.rota-sidebar-divider{border:none;border-top:1px solid var(--praxis-border);margin:0}.sidebar-week-nav{flex-direction:column;gap:.55rem;display:flex}.sidebar-week-nav-top{justify-content:space-between;align-items:center;display:flex}.sidebar-week-info{flex-direction:column;gap:.1rem;line-height:1.1;display:flex}.sidebar-week-number{color:var(--praxis-text);letter-spacing:.02em;font-size:1rem;font-weight:700}.sidebar-week-year{color:var(--praxis-text-dim);letter-spacing:.04em;font-size:.72rem}.sidebar-week-range{color:var(--praxis-text-dim);white-space:nowrap;font-size:.75rem}.sidebar-week-jump{position:relative}.sidebar-week-jump-btn{cursor:pointer;opacity:.7;background:0 0;border:none;padding:.2rem;font-size:1rem;line-height:1;transition:opacity .15s}.sidebar-week-jump-btn:hover{opacity:1}.swn-picker{z-index:200;background:var(--praxis-graphite);border:1px solid var(--praxis-border);border-radius:8px;width:210px;padding:.75rem;position:absolute;top:0;left:calc(100% + 8px);box-shadow:0 8px 24px #00000073}.swn-picker-nav{justify-content:space-between;align-items:center;margin-bottom:.6rem;display:flex}.swn-picker-nav-btn{color:var(--praxis-text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.1rem .4rem;font-size:1.1rem;transition:color .15s}.swn-picker-nav-btn:hover{color:var(--praxis-text)}.swn-picker-month{color:var(--praxis-text);letter-spacing:.04em;font-size:.78rem;font-weight:600}.swn-picker-grid{grid-template-columns:28px repeat(7,1fr);gap:1px;display:grid}.swn-picker-cell{justify-content:center;align-items:center;min-height:22px;font-size:.68rem;display:flex}.swn-picker-head{color:var(--praxis-text-dim);letter-spacing:.03em;padding-bottom:.25rem;font-weight:600}.swn-picker-wk-head{color:var(--praxis-text-dim);opacity:.6}.swn-picker-wk-num{color:var(--praxis-text-dim);opacity:.55;letter-spacing:.02em;font-size:.62rem}.swn-picker-day{color:var(--praxis-text);cursor:pointer;background:0 0;border:none;border-radius:3px;width:100%;padding:.15rem 0;font-family:inherit;font-size:.7rem;transition:background .1s,color .1s}.swn-picker-day:hover:not(:disabled){color:var(--praxis-accent);background:#ee969126}.swn-picker-day--active{background:var(--praxis-accent);color:var(--praxis-offblack);border-radius:3px;font-weight:600}.swn-picker-day--active:hover{background:var(--praxis-accent);color:var(--praxis-offblack)}.swn-picker-day--empty{pointer-events:none;opacity:0}.sidebar-week-nav{position:relative}.sidebar-week-arrows{gap:.4rem;display:flex}.sidebar-week-arrow{border:1px solid var(--praxis-accent);color:var(--praxis-accent);cursor:pointer;text-align:center;background:0 0;border-radius:5px;flex:1;padding:.3rem 0;font-family:inherit;font-size:.9rem;transition:background .15s,color .15s}.sidebar-week-arrow:hover{background:var(--praxis-accent);color:var(--praxis-offblack)}.rota-main-content{background:var(--praxis-charcoal);flex:1;min-width:0;padding:1.25rem;overflow-x:hidden}.rota-topbar{flex-wrap:nowrap;justify-content:center;align-items:center;gap:8px;margin-bottom:1rem;display:flex;overflow-x:auto}.rota-topbar-identity{align-items:center;gap:.6rem;display:flex}.rota-topbar-spend{color:#ee9691b3;white-space:nowrap;margin-left:.5rem;font-size:.8rem}.rota-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.rota-controls{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.rota-week-nav{align-items:center;gap:.75rem;display:flex}.rota-nav-btn{background:var(--praxis-button-bg);color:var(--praxis-button-text);cursor:pointer;border:none;border-radius:6px;padding:.35rem .75rem;font-family:inherit;font-size:.8rem;transition:opacity .15s}.rota-nav-btn:hover{opacity:.8}.rota-week-label{color:var(--praxis-text-dim);white-space:nowrap;font-size:.85rem}.rota-filter-form,.rota-dept-filter{align-items:center;gap:.5rem;display:flex}.rota-dept-select{width:auto;margin-bottom:0;padding:.35rem .6rem;font-size:.8rem}.rota-filter-btn{background:var(--praxis-button-bg);color:var(--praxis-button-text);cursor:pointer;border:none;border-radius:6px;padding:.35rem .75rem;font-family:inherit;font-size:.8rem}.rota-scroll-wrapper{border:1px solid var(--praxis-border);border-radius:8px;overflow-x:auto}.rota-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:820px}.rota-name-col{width:160px}.rota-day-col{text-align:center;letter-spacing:.05em;width:calc(14.2857% - 22.8571px);color:var(--praxis-text-dim);border-bottom:1px solid var(--praxis-border);background:var(--praxis-graphite);text-transform:uppercase;padding:.5rem .4rem;font-size:.75rem;font-weight:600}.rota-day-col .rota-day-name{display:block}.rota-day-col .rota-day-date{color:var(--praxis-text-dim);margin-top:.1rem;font-weight:400;display:block}.rota-table thead tr th:first-child{background:var(--praxis-graphite);border-bottom:1px solid var(--praxis-border);border-right:1px solid var(--praxis-border)}.rota-today{border-left:2px solid var(--praxis-cyan)!important;border-right:2px solid var(--praxis-cyan)!important;background:#5fd6d60f!important}.rota-name-cell{border-right:1px solid var(--praxis-border);border-bottom:1px solid var(--praxis-border);background:var(--praxis-graphite);vertical-align:middle;padding:.5rem .75rem}.rota-emp-name{color:var(--praxis-text);font-size:.82rem;font-weight:600;display:block}.rota-emp-dept{color:var(--praxis-text-dim);margin-top:.15rem;font-size:.72rem;display:block}.rota-cell{vertical-align:top;border-bottom:1px solid var(--praxis-border);border-right:1px solid var(--praxis-border);min-height:60px;padding:.4rem .5rem;font-size:.78rem}.rota-cell-empty{background:var(--praxis-offblack)}.rota-day-off{color:var(--praxis-text-dim);letter-spacing:.03em;-webkit-user-select:none;user-select:none;background:#ffffff0a;border-radius:3px;margin-top:.2rem;padding:.15rem .4rem;font-size:.7rem;font-weight:500;display:inline-block}.rota-cell-leave{background:#6e8fab14}.rota-cell-shift{background:var(--praxis-charcoal)}.rota-cell-unfilled{background:#e2867a0f}.rota-leave-badge{color:var(--praxis-steel);background:#6e8fab33;border-radius:4px;margin-top:.2rem;padding:.2rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.rota-shift-content{flex-direction:column;gap:.2rem;display:flex}.rota-shift-name{color:var(--praxis-text);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;font-weight:600;overflow:hidden}.rota-shift-times{color:var(--praxis-text-dim);white-space:nowrap;font-size:.72rem}.rota-amended-times{color:var(--praxis-cyan)}.rota-amendment-flag{color:var(--praxis-error);margin-top:.1rem;font-size:.68rem;font-weight:600;display:block}.rota-note{color:var(--praxis-text-dim);white-space:nowrap;text-overflow:ellipsis;max-width:100%;margin-top:.1rem;font-size:.68rem;display:block;overflow:hidden}.rota-reorder-panel{background:var(--praxis-charcoal)}.rota-cell{position:relative}.rota-cell-shift:hover{box-shadow:inset 0 0 0 1px var(--praxis-steel)}.rota-details{opacity:0;pointer-events:none;z-index:10;margin:0;transition:opacity .2s ease-out;position:absolute;top:4px;right:4px}.rota-cell:hover .rota-details,.rota-details[open]{opacity:1;pointer-events:auto}.rota-details[open]{z-index:200;background:#282824;border:1px solid #3f4225;border-radius:6px;min-width:230px;padding:.55rem .7rem .7rem;top:0;right:0;box-shadow:0 8px 28px #000000a6}.rota-details-toggle{color:var(--praxis-steel);cursor:pointer;background:0 0;border-radius:3px;margin-bottom:.35rem;padding:.1rem .25rem;font-size:.82rem;line-height:1;list-style:none;transition:all .2s ease-out;display:block}.rota-details-toggle::-webkit-details-marker{display:none}.rota-details-toggle::marker{display:none}.rota-details[open] .rota-details-toggle{color:var(--praxis-text-dim);letter-spacing:.04em;cursor:default;margin-bottom:.5rem;font-size:.72rem}.rota-note-form{flex-direction:column;gap:.25rem;margin-top:.35rem;display:flex}.rota-note-input{background:var(--praxis-graphite-light);border:1px solid var(--praxis-border);width:100%;color:var(--praxis-text);resize:vertical;box-sizing:border-box;border-radius:4px;padding:.3rem .4rem;font-family:inherit;font-size:.72rem}.rota-action-btn{background:var(--praxis-accent);color:var(--praxis-offblack);cursor:pointer;border:none;border-radius:4px;align-self:flex-start;padding:.25rem .6rem;font-family:inherit;font-size:.7rem}.rota-action-btn:hover{opacity:.8}.rota-amend-label{color:var(--praxis-text-dim);margin-bottom:0;font-size:.68rem}.rota-amend-input{height:auto;margin-bottom:0;padding:.25rem .4rem;font-size:.72rem}.rota-amendment-review{background:#e2867a14;border:1px solid #e2867a40;border-radius:4px;margin-top:.5rem;padding:.4rem}.rota-amendment-meta{color:var(--praxis-text-dim);margin-bottom:.35rem;font-size:.7rem}.rota-amendment-actions{gap:.4rem;display:flex}.rota-approve-btn{color:var(--praxis-cyan);cursor:pointer;background:#5fd6d633;border:1px solid #5fd6d64d;border-radius:4px;padding:.2rem .5rem;font-family:inherit;font-size:.68rem}.rota-approve-btn:hover{background:#5fd6d64d}.rota-reject-btn{color:var(--praxis-error);cursor:pointer;background:#e2867a26;border:1px solid #e2867a4d;border-radius:4px;padding:.2rem .5rem;font-family:inherit;font-size:.68rem}.rota-reject-btn:hover{background:#e2867a40}.rota-unfilled-row .rota-name-cell{background:#e2867a0a}.rota-unfilled-label{font-style:italic;color:var(--praxis-error)!important}.rota-unfilled-slot{border-bottom:1px dashed #e2867a33;flex-direction:column;gap:.1rem;padding:.2rem 0;display:flex}.rota-unfilled-slot:last-child{border-bottom:none}.rota-header-left{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.rota-view-toggle{border:1px solid var(--praxis-border);border-radius:8px;display:flex;overflow:hidden}.rota-view-btn{color:var(--praxis-text-dim);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:.4rem 1rem;font-family:inherit;font-size:.8rem;font-weight:500;transition:background .15s,color .15s}.rota-view-btn+.rota-view-btn{border-left:1px solid var(--praxis-border)}.rota-view-btn:hover:not(:disabled){background:var(--praxis-graphite-light);color:var(--praxis-text)}.rota-view-btn--active{background:var(--praxis-accent);color:var(--praxis-offblack);cursor:default}.rota-task-label-col{width:160px}.rota-task-label-cell{vertical-align:middle}.rota-task-entry{border-bottom:1px solid var(--praxis-border);flex-direction:column;gap:.15rem;padding:.2rem 0;display:flex}.rota-task-entry:last-of-type{border-bottom:none}.rota-task-emp-name{color:var(--praxis-text);font-size:.8rem;font-weight:600}.rota-task-unfilled{color:var(--praxis-error);background:#e2867a1f;border-radius:4px;margin-top:.1rem;padding:.15rem .45rem;font-size:.72rem;font-style:italic;font-weight:600;display:inline-block}.rota-empty-msg{text-align:center;color:var(--praxis-text-dim);padding:2rem;font-size:.85rem}.shift-template-form{flex-direction:column;gap:1.25rem;max-width:760px;display:flex}.stf-row{flex-wrap:wrap;align-items:flex-start;gap:1rem;display:flex}.stf-field{flex-direction:column;flex:200px;gap:.35rem;display:flex}.stf-field--wide{flex:2 280px}.stf-field--center{justify-content:center}.stf-day-grid{flex-wrap:wrap;gap:.5rem;display:flex}.stf-day-label{cursor:pointer;color:var(--praxis-text);align-items:center;gap:.3rem;font-size:.85rem;display:flex}.stf-day-checkbox{accent-color:var(--praxis-cyan)}.stf-hint{color:var(--praxis-text-dim);margin:0;font-size:.75rem}.stf-skill-grid{flex-wrap:wrap;gap:.5rem;display:flex}.stf-skill-label{border:1px solid var(--praxis-border);cursor:pointer;color:var(--praxis-text);border-radius:6px;align-items:center;gap:.35rem;padding:.3rem .6rem;font-size:.8rem;display:flex}.stf-skill-label input[type=checkbox]{accent-color:var(--praxis-cyan)}.stf-skill-name{font-weight:600}.stf-skill-cat{color:var(--praxis-text-dim);font-size:.72rem}.stf-checkbox-label{cursor:pointer;color:var(--praxis-text);align-items:center;gap:.4rem;font-size:.85rem;display:flex}.stf-submit{align-self:flex-start}.settings-section-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.settings-add-btn{padding:.4rem .9rem;font-size:.8rem;text-decoration:none;display:inline-block}.settings-back{margin-bottom:1rem}.settings-empty{color:var(--praxis-text-dim);font-size:.85rem}.text-mono{font-family:monospace;font-size:.82rem}.text-muted{color:var(--praxis-text-dim)}.badge{border-radius:4px;padding:.15rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.badge--green{color:#5fd696;background:#5fd6961f}.badge--grey{color:var(--praxis-text-dim);background:#6e8fab1f}.link-action{color:var(--praxis-cyan);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:.8rem;text-decoration:none}.link-action:hover{text-decoration:underline}.link-action--danger{color:var(--praxis-error)}.link-action--danger:disabled{color:var(--praxis-text-dim);cursor:not-allowed;text-decoration:none}.settings-table-actions{align-items:center;gap:.75rem;display:flex}.rota-generate-form{display:inline}.rota-generate-btn{background:var(--praxis-accent);color:var(--praxis-offblack);cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:.4rem .9rem;font-family:inherit;font-size:.8rem;font-weight:600}.rota-generate-btn:hover{background:var(--praxis-steel)}.rota-assign-picker{display:block}.rota-assign-picker>summary{cursor:pointer;list-style:none}.rota-assign-picker>summary::-webkit-details-marker{display:none}.rota-assign-panel{z-index:50;background:var(--praxis-graphite);border:1px solid var(--praxis-border);border-radius:6px;min-width:180px;max-height:260px;margin-top:.25rem;padding:.35rem 0;position:absolute;overflow-y:auto;box-shadow:0 6px 20px #00000080}.rota-assign-empty{color:var(--praxis-text-dim);margin:0;padding:.5rem .75rem;font-size:.75rem}.rota-assign-btn{cursor:pointer;text-align:left;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:.1rem;width:100%;padding:.4rem .75rem;transition:background .1s;display:flex}.rota-assign-btn:hover{background:var(--praxis-graphite-light)}.rota-assign-name{color:var(--praxis-text);font-size:.82rem;font-weight:600}.rota-assign-title{color:var(--praxis-text-dim);font-size:.72rem}.rota-assign-week-shifts{color:var(--praxis-accent);font-variant-numeric:tabular-nums;font-size:.68rem}.rota-unassign-form{margin-top:.5rem}.rota-unassign-btn{border:1px solid var(--praxis-error);color:var(--praxis-error);cursor:pointer;background:0 0;border-radius:4px;padding:.2rem .6rem;font-family:inherit;font-size:.75rem;transition:background .1s}.rota-unassign-btn:hover{background:#e2867a1a}.rota-amend-times-form{border-top:1px solid #ffffff0f;margin-top:.75rem;padding-top:.75rem}.rota-publish-banner{border:1px solid var(--praxis-cyan);color:var(--praxis-cyan);background:#5fd6d61f;border-radius:6px;margin-bottom:1.25rem;padding:.6rem 1rem;font-size:.85rem}.rota-publish-badge{align-self:center}.rota-publish-form{align-items:center;display:flex}.rota-publish-btn{background:var(--praxis-accent);color:var(--praxis-offblack);cursor:pointer;border:none;border-radius:5px;padding:.35rem .9rem;font-family:inherit;font-size:.82rem;font-weight:600;transition:opacity .15s}.rota-publish-btn:hover{opacity:.85}.rota-unpublish-link{color:var(--praxis-text-dim);text-underline-offset:2px;white-space:nowrap;font-size:.82rem;text-decoration:underline}.rota-unpublish-link:hover{color:var(--praxis-error)}.rota-unpublished-notice{color:var(--praxis-text-dim);text-align:center;padding:2rem 0;font-size:.9rem}.unpublish-section{max-width:560px}.unpublish-warning{background:#e2867a14;border:1px solid #e2867a4d;border-radius:6px;margin-bottom:1.5rem;padding:1.25rem 1.5rem}.unpublish-week-label{color:var(--praxis-text);margin:0 0 .75rem;font-size:1rem;font-weight:700}.unpublish-body{color:var(--praxis-text-dim);margin:0 0 .6rem;font-size:.88rem;line-height:1.55}.unpublish-body:last-child{margin-bottom:0}.unpublish-actions{align-items:center;gap:1.5rem;display:flex}.unpublish-confirm-btn{background:var(--praxis-error);color:#fff;cursor:pointer;border:none;border-radius:5px;padding:.55rem 1.2rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:opacity .15s}.unpublish-confirm-btn:hover{opacity:.85}.rota-build-btn,.rota-resolve-btn{background:var(--praxis-accent);color:var(--praxis-offblack);cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:.45rem 1rem;font-family:inherit;font-size:.82rem;font-weight:700;transition:opacity .15s}.rota-resolve-btn{border:1px solid var(--praxis-steel);color:var(--praxis-steel);background:0 0}.rota-reset-btn{border:1px solid var(--praxis-error);color:var(--praxis-error);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:.45rem 1rem;font-family:inherit;font-size:.82rem;font-weight:700;transition:opacity .15s}.rota-reset-btn:hover{opacity:.8}.rota-build-btn:disabled,.rota-resolve-btn:disabled{opacity:.4;cursor:not-allowed}.rota-build-btn:not(:disabled):hover,.rota-resolve-btn:not(:disabled):hover{opacity:.82}.spinner-overlay{z-index:1100;background:#1c1c1ae0;flex-direction:column;justify-content:center;align-items:center;gap:1.75rem;display:flex;position:fixed;inset:0}.spinner-status{color:var(--praxis-text-dim);letter-spacing:.03em;text-align:center;max-width:320px;font-size:.95rem;line-height:1.5}.spinner-status--complete{color:var(--praxis-accent);font-size:1.1rem;font-weight:600}.spinner-status--error{color:var(--praxis-text);max-width:360px}.spinner-progress{flex-direction:column;align-items:center;gap:.4rem;width:240px;display:flex}.spinner-pct{color:var(--praxis-accent);letter-spacing:.04em;font-size:.8rem;font-weight:600}.spinner-pct--complete{color:var(--praxis-accent)}.spinner-bar-track{background:#ffffff1a;border-radius:2px;width:100%;height:4px;overflow:hidden}.spinner-bar-fill{background:var(--praxis-accent);border-radius:2px;height:100%;transition:width .3s}.spinner-dismiss{border:1px solid var(--praxis-accent);color:var(--praxis-accent);cursor:pointer;background:0 0;border-radius:6px;padding:.5rem 1.75rem;font-family:inherit;font-size:.9rem;transition:opacity .15s}.spinner-dismiss:hover{opacity:.8}.build-modal-overlay{z-index:1000;background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.build-modal{background:var(--praxis-graphite);border:1px solid var(--praxis-border);border-radius:10px;width:min(520px,94vw);padding:1.75rem 2rem;box-shadow:0 20px 60px #0009}.build-modal-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.build-modal-title{color:var(--praxis-text);margin:0;font-size:1.1rem;font-weight:700}.build-modal-close{color:var(--praxis-text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.2rem .4rem;font-size:1rem;transition:background .1s}.build-modal-close:hover{background:var(--praxis-graphite-light)}.build-progress-bar-track{background:var(--praxis-graphite-light);border-radius:99px;width:100%;height:6px;margin-bottom:.6rem;overflow:hidden}.build-progress-bar-fill{background:var(--praxis-cyan);border-radius:99px;height:100%;transition:width .4s}.build-progress-pct{color:var(--praxis-cyan);margin:0 0 .3rem;font-size:.72rem;font-weight:700}.build-progress-msg{color:var(--praxis-text-dim);margin:0 0 1rem;font-size:.82rem}.build-error-box{border:1px solid var(--praxis-error);color:var(--praxis-error);background:#e2867a1f;border-radius:6px;margin-top:.5rem;padding:.75rem 1rem;font-size:.82rem}.build-results{margin-top:.5rem}.build-overall{color:var(--praxis-text);margin:0 0 1rem;font-size:.85rem;font-weight:600}.build-week-list{flex-direction:column;gap:.4rem;margin-bottom:1.25rem;display:flex}.build-week-row{align-items:center;gap:.6rem;font-size:.8rem;display:flex}.build-week-label{min-width:4rem;color:var(--praxis-text);font-weight:600}.build-week-coverage{font-weight:600}.build-coverage-good{color:#5fd65f}.build-coverage-warn{color:#b89a6a}.build-coverage-bad{color:var(--praxis-error)}.build-week-critical{color:var(--praxis-error);background:#e2867a2e;border-radius:4px;padding:.1rem .4rem;font-size:.72rem}.build-week-important{color:#b89a6a;background:#e5c46a2e;border-radius:4px;padding:.1rem .4rem;font-size:.72rem}.build-done-btn{background:var(--praxis-cyan);color:#0f1117;cursor:pointer;border:none;border-radius:6px;padding:.5rem 1.25rem;font-family:inherit;font-size:.85rem;font-weight:700;transition:opacity .15s}.build-done-btn:hover{opacity:.82}.schedule-modal{max-width:420px}.schedule-modal-hint{color:var(--praxis-graphite);margin:0 0 12px;font-size:.82rem}.cal-nav{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.cal-nav-btn{border:1px solid var(--praxis-border);color:var(--praxis-cyan);cursor:pointer;background:0 0;border-radius:6px;padding:2px 10px;font-size:1.1rem;transition:background .15s}.cal-nav-btn:hover{background:var(--praxis-border)}.cal-month-label{color:var(--praxis-text);font-size:.9rem;font-weight:600}.cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:12px;display:grid}.cal-day-label{color:var(--praxis-graphite);text-align:center;padding:2px 0;font-size:.7rem;font-weight:600}.cal-day{aspect-ratio:1;cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;transition:background .12s;display:flex;position:relative}.cal-day:not(.cal-day--empty):not(.cal-day--past):hover{background:var(--praxis-border)}.cal-day--empty,.cal-day--past{cursor:default;opacity:.35}.cal-day--in-range{background:color-mix(in srgb, var(--praxis-cyan) 18%, transparent)}.cal-day--range-start,.cal-day--range-end{background:var(--praxis-cyan)}.cal-day--range-start .cal-day-num,.cal-day--range-end .cal-day-num{color:#000;font-weight:700}.cal-day--hover-range{background:color-mix(in srgb, var(--praxis-cyan) 10%, transparent)}.cal-day-num{color:var(--praxis-text);font-size:.78rem}.cal-range-summary{color:var(--praxis-text);justify-content:space-between;align-items:center;margin-bottom:12px;font-size:.82rem;display:flex}.cal-range-dates{font-weight:600}.cal-range-weeks{background:color-mix(in srgb, var(--praxis-cyan) 20%, transparent);color:var(--praxis-cyan);border-radius:10px;padding:2px 10px;font-size:.75rem;font-weight:600}.cal-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.schedule-confirm-text{color:var(--praxis-text);margin:4px 0 8px;font-size:.95rem}.schedule-confirm-sub{color:var(--praxis-graphite);margin:0 0 16px;font-size:.8rem}.rota-spend-banner{background:#5fd65f12;border:1px solid #5fd65f40;border-radius:6px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;padding:.5rem 1rem;display:flex}.rota-spend-label{color:var(--praxis-text-dim);font-size:.8rem}.rota-spend-amount{color:#15803d;font-size:.9rem;font-weight:700}.rota-build-summary{background:var(--praxis-graphite-light);border:1px solid var(--praxis-border);border-radius:6px;margin-bottom:1rem;padding:.75rem 1rem}.rota-build-summary--unread{border-color:var(--praxis-cyan);background:#5fd6d60f}.rota-build-summary-body{flex:1}.rota-build-summary-header{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.rota-build-summary-header .rota-build-actions{flex-wrap:nowrap;margin-top:0;margin-left:auto}.rota-build-toggle{border:1px solid var(--praxis-accent);color:var(--praxis-accent);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;padding:.25rem .6rem;font-family:inherit;font-size:.75rem;transition:background .15s}.rota-build-toggle:hover{background:#ee96911a}.rota-build-badge{background:var(--praxis-accent);color:var(--praxis-offblack);letter-spacing:.05em;text-transform:uppercase;border-radius:4px;flex-shrink:0;padding:.1rem .45rem;font-size:.65rem;font-weight:800;display:inline-block}.rota-build-summary-text{color:var(--praxis-text);white-space:pre-wrap;margin:.5rem 0;font-size:.82rem;line-height:1.55}.rota-build-summary-pills{flex-wrap:wrap;gap:.35rem;display:flex}.rota-build-pill{border-radius:4px;padding:.15rem .5rem;font-size:.72rem;font-weight:600}.rota-build-pill--coverage{background:var(--praxis-graphite-light);color:var(--praxis-text-dim);border:1px solid var(--praxis-border)}.rota-build-pill--critical{color:var(--praxis-error);background:#e2867a26}.rota-build-pill--important{color:#b89a6a;background:#e5c46a26}.rota-build-pill--sacrificial{color:var(--praxis-text-dim);background:#98a0aa26}.rota-build-read-form{flex-shrink:0}.rota-build-read-btn{border:1px solid var(--praxis-accent);color:var(--praxis-accent);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;padding:.25rem .6rem;font-family:inherit;font-size:.75rem;transition:background .15s}.rota-build-read-btn:hover{background:#ee96911a}.rota-build-actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.rota-fl-details-btn{border:1px solid var(--praxis-accent);color:var(--praxis-accent);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;padding:.25rem .6rem;font-family:inherit;font-size:.75rem;transition:background .15s}.rota-fl-details-btn:hover{background:#ee96911a}.rota-freelancer-badge{background:var(--praxis-cyan);width:14px;height:14px;color:var(--praxis-offblack);vertical-align:middle;letter-spacing:0;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;margin-left:.25rem;font-size:.55rem;font-weight:700;display:inline-flex}.fl-panel{background:var(--praxis-graphite);border:1px solid var(--praxis-border);border-radius:8px;max-width:500px;margin-top:.75rem;padding:1rem}.fl-panel-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.fl-panel-title{color:var(--praxis-text);font-size:.9rem;font-weight:600}.fl-panel-close{color:var(--praxis-text-dim);cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem}.fl-panel-close:hover{color:var(--praxis-text)}.fl-panel-loading,.fl-panel-empty,.fl-panel-error{color:var(--praxis-text-dim);font-size:.8rem}.fl-panel-error{color:var(--praxis-error)}.fl-panel-success{color:#5fd65f;margin-bottom:.75rem;font-size:.82rem}.fl-select-all-row{border-bottom:1px solid var(--praxis-border);justify-content:space-between;align-items:center;margin-bottom:.5rem;padding:.4rem 0;display:flex}.fl-checkbox-label{cursor:pointer;color:var(--praxis-text);align-items:center;gap:.5rem;font-size:.8rem;display:flex}.fl-checkbox{accent-color:var(--praxis-cyan);cursor:pointer;flex-shrink:0;width:14px;height:14px}.fl-running-total{color:var(--praxis-text);font-size:.8rem}.fl-row-list{flex-direction:column;gap:.35rem;max-height:280px;display:flex;overflow-y:auto}.fl-row{background:var(--praxis-graphite-light);cursor:default;border-radius:5px;align-items:center;gap:.5rem;padding:.4rem .5rem;transition:background .1s;display:flex}.fl-row--selected{background:#ee96910f;border:1px solid #ee969133}.fl-row--conflict{opacity:.6;border:1px solid var(--praxis-error)!important;background:#e2867a0f!important}.fl-row-body{flex-wrap:wrap;flex:1;align-items:center;gap:.5rem;display:flex}.fl-row-shift{color:var(--praxis-text);min-width:80px;font-size:.8rem;font-weight:600}.fl-row-day{color:var(--praxis-text-dim);min-width:55px;font-size:.75rem}.fl-row-freelancer{color:var(--praxis-cyan);flex:1;font-size:.78rem}.fl-row-conflict-msg{color:var(--praxis-error);flex:1;font-size:.74rem;font-style:italic}.fl-row-select{background:var(--praxis-graphite);border:1px solid var(--praxis-border);color:var(--praxis-text);border-radius:4px;flex:1;padding:.1rem .25rem;font-family:inherit;font-size:.75rem}.fl-row-cost{color:var(--praxis-text-dim);white-space:nowrap;font-size:.75rem}.fl-panel-footer{border-top:1px solid var(--praxis-border);justify-content:space-between;align-items:center;gap:.75rem;margin-top:.75rem;padding-top:.6rem;display:flex}.fl-total-label{color:var(--praxis-text-dim);font-size:.78rem}.fl-confirm-btn{background:var(--praxis-accent);color:var(--praxis-offblack);cursor:pointer;border:none;border-radius:5px;padding:.4rem 1rem;font-family:inherit;font-size:.8rem;font-weight:600;transition:opacity .15s}.fl-confirm-btn:disabled{opacity:.45;cursor:default}.fl-confirm-btn:not(:disabled):hover{opacity:.85}.rota-cell-unfilled-critical{border-bottom:2px solid #c17b78;background:#c17b7812!important}.rota-cell-unfilled-important{border-bottom:2px solid #b89a6a;background:#b89a6a12!important}.rota-task-unfilled--critical{font-weight:700;color:var(--praxis-error)!important}.rota-task-unfilled--sacrificial{color:var(--praxis-text-dim)!important}.rota-cell-overstaffed{box-shadow:inset 0 0 0 2px #e5c46a8c}.rota-assign-overcapacity{color:#b89a6a;border-bottom:1px solid var(--praxis-border);margin:0;padding:.4rem .75rem;font-size:.72rem}.rota-assign-btn--overcapacity{opacity:.8}.rota-assign-btn--overcapacity:hover{background:#e5c46a1f!important}.rota-notes-panel-toggle{align-items:center;gap:.4rem;display:flex}.rota-notes-count{background:var(--praxis-cyan);color:#0f1117;border-radius:99px;padding:.05rem .4rem;font-size:.65rem;font-weight:800}.notes-panel{background:var(--praxis-graphite);border-left:1px solid var(--praxis-border);z-index:500;flex-direction:column;width:min(380px,95vw);height:100vh;display:flex;position:fixed;top:0;right:0;overflow:hidden;box-shadow:-8px 0 32px #0006}.notes-panel-header{border-bottom:1px solid var(--praxis-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:1.25rem 1.25rem .75rem;display:flex}.notes-panel-title{color:var(--praxis-text);margin:0;font-size:1rem;font-weight:700}.notes-panel-close{color:var(--praxis-text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.2rem .4rem;font-size:.9rem;transition:background .1s}.notes-panel-close:hover{background:var(--praxis-graphite-light)}.notes-panel-hint{color:var(--praxis-text-dim);flex-shrink:0;margin:0;padding:.75rem 1.25rem 0;font-size:.78rem;line-height:1.5}.notes-input-row{border-bottom:1px solid var(--praxis-border);flex-shrink:0;gap:.5rem;padding:.75rem 1.25rem;display:flex}.notes-textarea{background:var(--praxis-graphite-light);border:1px solid var(--praxis-border);color:var(--praxis-text);resize:vertical;border-radius:6px;flex:1;min-height:60px;padding:.5rem .6rem;font-family:inherit;font-size:.82rem;line-height:1.4}.notes-textarea:focus{border-color:var(--praxis-cyan);outline:none}.notes-save-btn{background:var(--praxis-cyan);color:#0f1117;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;align-self:flex-end;height:36px;padding:0 .85rem;font-family:inherit;font-size:.82rem;font-weight:700;transition:opacity .15s}.notes-save-btn:disabled{opacity:.4;cursor:not-allowed}.notes-save-btn:not(:disabled):hover{opacity:.82}.notes-error{color:var(--praxis-error);flex-shrink:0;margin:0;padding:0 1.25rem .5rem;font-size:.78rem}.notes-section{flex-shrink:0;padding:.75rem 1.25rem 0}.notes-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--praxis-text-dim);margin:0 0 .5rem;font-size:.72rem}.notes-empty{color:var(--praxis-text-dim);text-align:center;margin:0;padding:1rem 1.25rem;font-size:.82rem}.note-row{border-bottom:1px solid var(--praxis-border);align-items:flex-start;gap:.5rem;padding:.65rem 0;display:flex}.note-row-body{flex:1}.note-raw-text{color:var(--praxis-text);white-space:pre-wrap;margin:0 0 .4rem;font-size:.82rem;line-height:1.4}.note-parsed{flex-wrap:wrap;gap:.3rem;display:flex}.note-chip{background:var(--praxis-graphite-light);color:var(--praxis-text-dim);border:1px solid var(--praxis-border);border-radius:4px;padding:.1rem .4rem;font-size:.68rem}.note-chip--type{color:var(--praxis-cyan);border-color:var(--praxis-cyan);background:#5fd6d614}.note-chip--high{color:#5fd65f;background:#5fd65f14;border-color:#5fd65f}.note-chip--medium{color:#b89a6a;background:#e5c46a14;border-color:#b89a6a}.note-chip--low{color:var(--praxis-error);border-color:var(--praxis-error);background:#e2867a14}.note-delete-btn{color:var(--praxis-text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:.15rem .3rem;font-size:.75rem;transition:color .1s,background .1s}.note-delete-btn:hover{color:var(--praxis-error);background:#e2867a1a}.notes-rebuild-banner{background:rgba(var(--praxis-accent-rgb,100, 180, 255), .12);border:1px solid rgba(var(--praxis-accent-rgb,100, 180, 255), .35);color:var(--praxis-text);border-radius:6px;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;padding:.5rem .75rem;font-size:.78rem;display:flex}.notes-rebuild-banner-close{cursor:pointer;color:var(--praxis-text-dim);background:0 0;border:none;flex-shrink:0;padding:0;font-size:.7rem}.notes-rebuild-banner-close:hover{color:var(--praxis-text)}.notes-textarea--numbered{counter-reset:line;tab-size:2;font-family:inherit}.note-chip--pre-assign{border-color:var(--praxis-accent);color:var(--praxis-accent);background:rgba(var(--praxis-accent-rgb,100, 180, 255), .08);font-weight:600}.note-chip--active{color:#5fd65f;text-transform:uppercase;letter-spacing:.04em;background:#5fd65f14;border-color:#5fd65f;font-size:.6rem}.rota-note-meta{justify-content:flex-end;align-items:center;margin-bottom:.25rem;display:flex}.rota-note-hint{color:var(--praxis-text-dim);font-size:.68rem}.rota-slot-note-bubble{color:var(--praxis-accent);cursor:default;vertical-align:middle;align-items:center;margin-left:.3rem;display:inline-flex;position:relative}.rota-slot-note-bubble svg{opacity:.75;width:11px;height:11px;transition:opacity .15s}.rota-slot-note-bubble:hover svg{opacity:1}.rota-slot-note-bubble:after{content:attr(title);white-space:pre-wrap;pointer-events:none;opacity:0;z-index:50;color:#f0f1f5;background:#1e2028;border:1px solid #ffffff1f;border-radius:5px;max-width:200px;padding:.35rem .6rem;font-size:.72rem;transition:opacity .15s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000073}.rota-slot-note-bubble:hover:after{opacity:1}.rota-reorder-btn{border:1px solid var(--praxis-border);color:var(--praxis-text-dim);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:.35rem;margin-bottom:.75rem;padding:.35rem .85rem;font-size:.82rem;transition:border-color .15s,color .15s;display:inline-flex}.rota-reorder-btn:hover{border-color:var(--praxis-accent);color:var(--praxis-accent)}.rota-sidebar-actions .rota-reorder-btn{border-color:var(--praxis-accent);width:100%;color:var(--praxis-accent);justify-content:center;gap:6px;margin-bottom:0}.rota-sidebar-actions .rota-reorder-btn:hover{background:#ee96911a}.reorder-modal-overlay{z-index:800;background:#1c1c1ac7;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.reorder-modal{border:1px solid var(--praxis-border);background:#282824;border-radius:10px;flex-direction:column;width:420px;max-width:calc(100vw - 2rem);max-height:calc(100vh - 4rem);display:flex;box-shadow:0 20px 60px #0009}.reorder-modal-header{border-bottom:1px solid var(--praxis-border);flex-shrink:0;padding:1.25rem 1.25rem .75rem}.reorder-modal-title{color:var(--praxis-text);margin-bottom:.2rem;font-size:1rem;font-weight:700}.reorder-modal-hint{color:var(--praxis-text-dim);font-size:.75rem}.reorder-modal-list{flex:1;min-height:0;margin:0;padding:.5rem 0;list-style:none;overflow-y:auto}.reorder-modal-row{cursor:default;-webkit-user-select:none;user-select:none;align-items:center;gap:.6rem;padding:.5rem 1.25rem;transition:background .1s;display:flex}.reorder-modal-row:hover{background:#ffffff08}.reorder-modal-row--unlocked{cursor:grab;background:#ee96910d}.reorder-modal-row--unlocked:active{cursor:grabbing}.reorder-lock-btn{cursor:pointer;opacity:.7;background:0 0;border:none;flex-shrink:0;padding:.1rem;font-size:.9rem;line-height:1;transition:opacity .15s}.reorder-lock-btn:hover{opacity:1}.reorder-modal-name{color:var(--praxis-text);flex:1;font-size:.85rem}.reorder-drag-hint{color:var(--praxis-text-dim);opacity:.5;flex-shrink:0;font-size:1rem}.reorder-modal-footer{border-top:1px solid var(--praxis-border);flex-shrink:0;justify-content:flex-end;gap:.6rem;padding:.85rem 1.25rem;display:flex}.reorder-close-btn{border:1px solid var(--praxis-steel);color:var(--praxis-steel);cursor:pointer;background:0 0;border-radius:6px;padding:.4rem 1rem;font-family:inherit;font-size:.85rem;transition:background .15s}.reorder-close-btn:hover{background:#6685861f}.reorder-save-btn{background:var(--praxis-accent);color:var(--praxis-offblack);cursor:pointer;border:none;border-radius:6px;padding:.4rem 1.1rem;font-family:inherit;font-size:.85rem;font-weight:700;transition:opacity .15s}.reorder-save-btn:disabled{opacity:.5;cursor:not-allowed}.reorder-save-btn:not(:disabled):hover{opacity:.85}.sf-table{min-width:600px}.sf-name-col{min-width:160px;font-weight:600}.sf-total-col,.sf-avail-col{text-align:center;width:64px;color:var(--praxis-text-dim)}.sf-shift-col{text-align:center;vertical-align:top;width:100px;padding:.45rem .5rem}.sf-shift-header{white-space:nowrap;text-overflow:ellipsis;max-width:96px;font-size:.72rem;font-weight:700;display:block;overflow:hidden}.sf-fair-share{color:var(--praxis-text-dim);margin-top:1px;font-size:.62rem;font-weight:400;display:block}.sf-count{color:var(--praxis-text);font-size:.85rem;font-weight:700;display:block}.sf-pct{color:var(--praxis-text-dim);font-size:.72rem;display:block}.sf-zero{color:var(--praxis-text-dim);opacity:.3}.sf-cell--high{background:#b89a6a1f!important}.sf-cell--high .sf-pct{color:#b89a6a}.sf-cell--low{background:#c17b781a!important}.sf-cell--low .sf-pct{color:#c17b78}.sf-legend{vertical-align:middle;border-radius:2px;width:10px;height:10px;margin-right:4px;display:inline-block}.sf-legend--high{background:#b89a6a}.sf-legend--low{background:#c17b78}.date-header-trigger{cursor:default;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;display:flex;position:relative}.date-header-popover{z-index:300;border:1px solid var(--praxis-border);white-space:nowrap;background:#282824;border-radius:8px;flex-direction:column;align-items:center;gap:.5rem;min-width:160px;padding:.65rem .85rem;display:flex;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000080}.date-header-popover-date{color:var(--praxis-text-dim);letter-spacing:.03em;font-size:.78rem}.date-header-popover-btn{background:var(--praxis-accent);color:var(--praxis-offblack);cursor:pointer;border:none;border-radius:5px;width:100%;padding:.3rem .85rem;font-family:inherit;font-size:.75rem;font-weight:700;transition:opacity .15s}.date-header-popover-btn:hover{opacity:.85}.rota-reorder-panel{background:var(--praxis-surface);border:1px solid var(--praxis-border);border-radius:8px;max-width:420px;margin-bottom:1rem;padding:1rem}.rota-reorder-header{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.rota-reorder-title{font-size:.9rem;font-weight:600}.rota-reorder-hint{color:var(--praxis-text-dim);flex:1;font-size:.78rem}.rota-reorder-close{border:1px solid var(--praxis-border);color:var(--praxis-text-dim);cursor:pointer;background:0 0;border-radius:5px;padding:.3rem .65rem;font-size:.82rem}.rota-reorder-list{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.rota-reorder-row{background:var(--praxis-bg);border:1px solid #0000;border-radius:5px;align-items:center;gap:.6rem;padding:.45rem .6rem;transition:background .1s;display:flex}.rota-reorder-row--unlocked{border-color:var(--praxis-accent);cursor:grab;background:rgba(var(--praxis-accent-rgb,99,102,241), .06)}.rota-reorder-row--unlocked:active{cursor:grabbing}.rota-reorder-lock{cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:1rem}.rota-reorder-name{flex:1;font-size:.88rem}.annual-main{box-sizing:border-box;width:100%;padding:2rem 1.5rem 4rem}.annual-page-header{align-items:center;gap:1.5rem;margin-bottom:1.5rem;display:flex}.annual-back-btn{color:var(--praxis-text-dim);white-space:nowrap;font-size:.85rem;text-decoration:none;transition:color .15s}.annual-back-btn:hover{color:var(--praxis-text)}.annual-container{flex-direction:column;gap:1rem;display:flex}.annual-controls{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.annual-hint{color:var(--praxis-text-dim);font-size:.8rem}.annual-dropdown-wrapper{position:relative}.annual-dropdown-btn{background:var(--praxis-button-bg);color:var(--praxis-button-text);cursor:pointer;white-space:nowrap;border:none;border-radius:6px;align-items:center;gap:.5rem;padding:.4rem .85rem;font-size:.82rem;font-weight:500;display:flex}.annual-dropdown-btn:hover{filter:brightness(1.15)}.annual-badge{background:var(--praxis-cyan);color:var(--praxis-offblack);border-radius:999px;padding:0 .45rem;font-size:.7rem;font-weight:700;line-height:1.5}.annual-badge--neutral{background:var(--praxis-graphite);color:var(--praxis-text);border:1px solid var(--praxis-border)}.annual-arrow{margin-left:.1rem;font-size:.65rem}.annual-dropdown-menu{z-index:50;background:var(--praxis-graphite);border:1px solid var(--praxis-border);border-radius:8px;flex-direction:column;min-width:240px;max-height:360px;display:flex;position:absolute;top:calc(100% + 4px);left:0;overflow:hidden;box-shadow:0 8px 24px #0006}.annual-dropdown-actions{border-bottom:1px solid var(--praxis-border);flex-shrink:0;gap:.5rem;padding:.6rem .75rem;display:flex}.annual-action-btn{border:1px solid var(--praxis-border);color:var(--praxis-text-dim);cursor:pointer;background:0 0;border-radius:4px;padding:.2rem .6rem;font-size:.75rem}.annual-action-btn:hover{color:var(--praxis-text);border-color:var(--praxis-text-dim)}.annual-dropdown-items{padding:.35rem 0;overflow-y:auto}.annual-dropdown-item{cursor:pointer;color:var(--praxis-text);align-items:center;gap:.55rem;padding:.3rem .75rem;font-size:.82rem;display:flex}.annual-dropdown-item:hover{background:var(--praxis-graphite-light)}.annual-checkbox{cursor:pointer;accent-color:var(--praxis-cyan);margin:0}.annual-color-swatch{border-radius:2px;flex-shrink:0;width:10px;height:10px;display:inline-block}.annual-tpl-name{flex:1}.annual-grid-outer{border:1px solid var(--praxis-border);background:var(--praxis-graphite);border-radius:8px;max-height:calc(100vh - 200px);overflow:auto}.annual-header-row{z-index:4;background:var(--praxis-charcoal);border-bottom:1px solid var(--praxis-border);display:flex;position:sticky;top:0}.annual-corner{z-index:5;background:var(--praxis-charcoal);border-right:1px solid var(--praxis-border);flex-shrink:0;position:sticky;left:0}.annual-ruler{background:var(--praxis-charcoal);-webkit-user-select:none;user-select:none;flex-shrink:0;position:relative}.annual-month-label{color:var(--praxis-text-dim);white-space:nowrap;pointer-events:none;padding-left:3px;font-size:.65rem;font-weight:600;position:absolute;top:50%;transform:translateY(-50%)}.annual-week-tick{background:var(--praxis-border);opacity:.35;pointer-events:none;width:1px;position:absolute;top:0;bottom:0}.annual-row{box-sizing:border-box;cursor:pointer;border-bottom:1px solid #3a3e4438;display:flex}.annual-row--selected{background:#00bcd41a}.annual-row--selected .annual-name-cell{background:#00bcd438}.annual-name-cell{z-index:2;box-sizing:border-box;background:var(--praxis-charcoal);border-right:1px solid var(--praxis-border);flex-direction:column;flex-shrink:0;justify-content:center;padding:0 .6rem;display:flex;position:sticky;left:0}.annual-name-text{white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:500;line-height:1.2;overflow:hidden}.annual-cell{box-sizing:border-box;flex-shrink:0}.annual-cell--weekend{background:#ffffff07}.annual-cell--week-start{border-left:1px solid var(--praxis-border);border-left-width:1px;border-left-color:#3a3e4480}.annual-legend{background:var(--praxis-graphite);border:1px solid var(--praxis-border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;padding:.75rem 1rem;font-size:.8rem;display:flex}.annual-legend-heading{color:var(--praxis-text-dim);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;font-size:.75rem;font-weight:600}.annual-legend-item{align-items:center;gap:.4rem;display:flex}.annual-legend-swatch{border-radius:2px;flex-shrink:0;width:12px;height:12px;display:inline-block}.annual-legend-name{color:var(--praxis-text)}.annual-view-btn{background:var(--praxis-graphite-light);color:var(--praxis-text-dim);border:1px solid var(--praxis-border);white-space:nowrap;border-radius:6px;align-items:center;gap:.4rem;padding:.35rem .75rem;font-size:.8rem;font-weight:500;text-decoration:none;transition:color .15s,border-color .15s;display:inline-flex}.annual-view-btn:hover{color:var(--praxis-text);border-color:var(--praxis-text-dim)}.rota-reorder-drag-hint{color:var(--praxis-accent);opacity:.7;font-size:.75rem}.app-nav-link--leave{position:relative}.app-nav-badge{background:var(--praxis-accent);color:var(--praxis-offblack);text-align:center;border-radius:999px;min-width:16px;padding:2px 5px;font-size:.65rem;font-weight:700;line-height:1;position:absolute;top:-6px;right:-10px}.leave-main{flex:1;max-width:1100px;margin:0 auto;padding:2rem 1.5rem 3rem}.leave-page-title{color:var(--praxis-text);margin:0 0 1.5rem;font-size:1.6rem;font-weight:700}.leave-grid{grid-template-columns:1fr 1fr;align-items:start;gap:2rem;display:grid}@media (max-width:800px){.leave-grid{grid-template-columns:1fr}}.leave-col{flex-direction:column;gap:1.5rem;display:flex}.leave-section{background:var(--praxis-graphite);border:1px solid var(--praxis-border);border-radius:10px;padding:1.25rem 1.5rem}.leave-section-heading{color:var(--praxis-text);align-items:center;gap:.6rem;margin:0 0 1rem;font-size:1rem;font-weight:600;display:flex}.leave-pending-badge{color:#fff;background:#ef4444;border-radius:999px;padding:2px 7px;font-size:.7rem;font-weight:700}.leave-form{flex-direction:column;gap:.9rem;display:flex}.leave-form-row{flex-direction:column;gap:.3rem;display:flex}.leave-form-dates{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.leave-label{color:var(--praxis-text-dim);font-size:.78rem;font-weight:500}.leave-select,.leave-input,.leave-textarea{background:var(--praxis-charcoal);border:1px solid var(--praxis-border);color:var(--praxis-text);box-sizing:border-box;border-radius:6px;outline:none;width:100%;padding:.45rem .65rem;font-size:.9rem;transition:border-color .15s}.leave-select:focus,.leave-input:focus,.leave-textarea:focus{border-color:var(--praxis-cyan)}.leave-textarea{resize:vertical;min-height:60px;font-family:inherit}.leave-days-preview{color:var(--praxis-text-dim);padding:.4rem 0;font-size:.88rem}.leave-days-count{color:var(--praxis-text);font-size:1.1rem;font-weight:700}.leave-remaining{color:var(--praxis-text-dim)}.leave-remaining--warn{color:#f97316}.leave-entitlement-bar{flex-direction:column;gap:.3rem;display:flex}.leave-entitlement-label{color:var(--praxis-text-dim);font-size:.78rem}.leave-entitlement-track{background:var(--praxis-charcoal);border-radius:999px;height:6px;position:relative;overflow:visible}.leave-entitlement-used{background:var(--praxis-cyan);opacity:.7;border-radius:999px;height:100%;position:absolute;top:0;left:0}.leave-entitlement-pending{opacity:.6;background:#f97316;border-radius:999px;height:100%;position:absolute;top:0}.leave-submit-btn{background:var(--praxis-cyan);color:var(--praxis-offblack);cursor:pointer;border:none;border-radius:6px;align-self:flex-start;padding:.6rem 1.2rem;font-size:.9rem;font-weight:600;transition:opacity .15s}.leave-submit-btn:disabled{opacity:.5;cursor:not-allowed}.leave-submit-btn:not(:disabled):hover{opacity:.85}.leave-result{border-radius:6px;padding:.6rem .9rem;font-size:.85rem;font-weight:500}.leave-result--success{color:#22c55e;background:#22c55e1f}.leave-result--error{color:#ef4444;background:#ef44441f}.leave-empty{color:var(--praxis-text-dim);margin:0;font-size:.88rem}.leave-history-list{flex-direction:column;gap:.6rem;display:flex}.leave-history-card{background:var(--praxis-charcoal);border:1px solid var(--praxis-border);border-radius:7px;flex-direction:column;gap:.2rem;padding:.65rem .85rem;display:flex}.leave-history-card--approved{border-left:3px solid #22c55e}.leave-history-card--pending{border-left:3px solid #f59e0b}.leave-history-card--rejected{border-left:3px solid #ef4444}.leave-history-card--cancelled{border-left:3px solid var(--praxis-text-dim)}.leave-history-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.leave-history-type{color:var(--praxis-text);font-size:.9rem;font-weight:600}.leave-status-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:700}.leave-status-badge--approved{color:#22c55e;background:#22c55e26}.leave-status-badge--pending{color:#f59e0b;background:#f59e0b26}.leave-status-badge--rejected{color:#ef4444;background:#ef444426}.leave-status-badge--cancelled{color:var(--praxis-text-dim);background:#78788c26}.leave-history-dates{color:var(--praxis-text-dim);font-size:.82rem}.leave-history-days{opacity:.7}.leave-rejection-reason{color:#ef4444;margin:0;font-size:.8rem}.leave-manage-list{flex-direction:column;gap:.75rem;display:flex}.leave-manage-card{background:var(--praxis-charcoal);border:1px solid var(--praxis-border);border-radius:8px;flex-direction:column;gap:.35rem;padding:.75rem .9rem;display:flex}.leave-manage-header{flex-wrap:wrap;align-items:baseline;gap:.4rem .75rem;display:flex}.leave-manage-name{color:var(--praxis-text);font-size:.95rem;font-weight:600}.leave-manage-type{color:var(--praxis-cyan);font-size:.8rem;font-weight:500}.leave-manage-dates{color:var(--praxis-text-dim);font-size:.8rem}.leave-manage-note{color:var(--praxis-text-dim);margin:0;font-size:.82rem;font-style:italic}.leave-manage-submitted{color:var(--praxis-text-dim);opacity:.7;margin:0;font-size:.75rem}.leave-action-row{flex-wrap:wrap;gap:.5rem;margin-top:.3rem;display:flex}.leave-btn{cursor:pointer;border:none;border-radius:5px;padding:.35rem .9rem;font-size:.82rem;font-weight:600;transition:opacity .15s}.leave-btn:disabled{opacity:.5;cursor:not-allowed}.leave-btn--approve{color:#22c55e;background:#22c55e2e}.leave-btn--approve:not(:disabled):hover{background:#22c55e47}.leave-btn--reject{color:#ef4444;background:#ef444426}.leave-btn--reject:not(:disabled):hover{background:#ef444440}.leave-btn--cancel{background:var(--praxis-graphite);color:var(--praxis-text-dim);border:1px solid var(--praxis-border)}.leave-reject-form{flex-direction:column;gap:.4rem;display:flex}.leave-reject-input{background:var(--praxis-charcoal);border:1px solid var(--praxis-border);color:var(--praxis-text);box-sizing:border-box;border-radius:5px;outline:none;width:100%;padding:.4rem .65rem;font-size:.85rem}.leave-reject-input:focus{border-color:#ef4444}.leave-feedback{color:var(--praxis-text-dim);margin:.2rem 0 0;font-size:.8rem}.leave-audit-trail{flex-direction:column;gap:.15rem;margin:.3rem 0 0;display:flex}.leave-audit-trail span{color:var(--praxis-text-dim);font-size:.75rem}.leave-audit-slots-removed{color:#f59e0b!important}.leave-manage-section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--praxis-text-dim);border-bottom:1px solid var(--praxis-border);margin:.75rem 0 .4rem;padding-bottom:.25rem;font-size:.7rem;font-weight:600}.leave-manage-list .leave-manage-section-label:first-child{margin-top:0}.leave-manage-card--approved{border-left:3px solid #22c55e}.leave-manage-card--pending{border-left:3px solid #f59e0b}.leave-btn--cancel-confirm{color:#fff;background:#dc2626;border:none}.leave-btn--cancel-confirm:hover{background:#b91c1c}.myleave-section{margin-bottom:2rem}.myleave-section-title{color:var(--praxis-text);letter-spacing:.03em;border-bottom:1px solid var(--praxis-border);margin-bottom:.75rem;padding-bottom:.4rem;font-size:1rem;font-weight:700}.myleave-balances{flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem;display:flex}.myleave-balance-card{background:var(--praxis-graphite);border:1px solid var(--praxis-border);border-radius:8px;flex-direction:column;gap:.2rem;min-width:110px;padding:.65rem 1rem;display:flex}.myleave-balance-card--highlight{border-color:var(--praxis-accent);background:#ee96910f}.myleave-balance-label{color:var(--praxis-text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem}.myleave-balance-value{color:var(--praxis-text);font-size:1.15rem;font-weight:700}.myleave-balance-card--highlight .myleave-balance-value{color:var(--praxis-accent)}.myleave-request-list{flex-direction:column;gap:.4rem;display:flex}.myleave-request-row{background:var(--praxis-graphite);border:1px solid var(--praxis-border);border-radius:6px;align-items:center;gap:.75rem;padding:.45rem .75rem;font-size:.82rem;display:flex}.myleave-request-dates{color:var(--praxis-text);flex:1}.myleave-request-days{color:var(--praxis-text-dim);white-space:nowrap;font-size:.78rem}.myleave-empty{color:var(--praxis-text-dim);font-size:.9rem}.rota-lasso-container{-webkit-user-select:none;user-select:none;position:relative}.rota-cell--lasso-selected{outline-offset:-2px;background:#ee969114!important;outline:2px solid #ee9691bf!important}.lasso-badge{z-index:600;color:var(--praxis-accent);white-space:nowrap;background:#282824;border:1px solid #ee969166;border-radius:999px;align-items:center;gap:.6rem;padding:.4rem 1rem .4rem 1.1rem;font-size:.82rem;font-weight:600;display:flex;position:fixed;bottom:2rem;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000080}.lasso-badge-clear{color:var(--praxis-text-dim);cursor:pointer;background:0 0;border:none;padding:0;font-size:.75rem;line-height:1;transition:color .15s}.lasso-badge-clear:hover{color:var(--praxis-text)}.lasso-ctx-menu{background:#282824;border:1px solid #3f4225;border-radius:8px;min-width:210px;padding:.4rem 0;box-shadow:0 8px 28px #0009}.lasso-ctx-header{color:var(--praxis-text-dim);letter-spacing:.03em;border-bottom:1px solid #ffffff0f;padding:.4rem 1rem .5rem;font-size:.72rem}.lasso-ctx-item{text-align:left;width:100%;color:var(--praxis-text);cursor:pointer;background:0 0;border:none;padding:.5rem 1rem;font-family:inherit;font-size:.85rem;transition:background .1s;display:block}.lasso-ctx-item:hover{background:#ffffff0f}.lasso-ctx-item--danger{color:#c17b78}.lasso-ctx-item--danger:hover{background:#c17b781a}.lasso-ctx-close{text-align:left;width:100%;color:var(--praxis-text-dim);cursor:pointer;background:0 0;border:none;border-top:1px solid #ffffff0f;margin-top:.25rem;padding:.5rem 1rem;font-family:inherit;font-size:.82rem;display:block}.lasso-ctx-close:hover{color:var(--praxis-text)}.lasso-overlay{z-index:700;background:#1c1c1abf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lasso-dialog{background:#282824;border:1px solid #3f4225;border-radius:10px;width:380px;max-width:calc(100vw - 2rem);padding:1.5rem;box-shadow:0 16px 48px #0009}.lasso-dialog-title{color:var(--praxis-text);margin-bottom:.75rem;font-size:.95rem;font-weight:700}.lasso-dialog-hint{color:var(--praxis-text-dim);margin-bottom:1rem;font-size:.82rem;line-height:1.5}.lasso-dialog-textarea{background:var(--praxis-graphite);border:1px solid var(--praxis-border);width:100%;color:var(--praxis-text);resize:vertical;box-sizing:border-box;border-radius:5px;margin-bottom:1rem;padding:.5rem .65rem;font-family:inherit;font-size:.85rem}.lasso-dialog-textarea:focus{outline:1px solid var(--praxis-accent);border-color:var(--praxis-accent)}.lasso-dialog-times{gap:1rem;margin-bottom:1rem;display:flex}.lasso-dialog-times label{color:var(--praxis-text-dim);flex-direction:column;flex:1;gap:.3rem;font-size:.8rem;display:flex}.lasso-dialog-times .auth-input{margin-bottom:0}.lasso-dialog-error{color:#c17b78;margin-bottom:.75rem;font-size:.8rem}.lasso-dialog-actions{justify-content:flex-end;gap:.6rem;display:flex}.lasso-dialog-cancel{border:1px solid var(--praxis-border);color:var(--praxis-text-dim);cursor:pointer;background:0 0;border-radius:6px;padding:.45rem 1rem;font-family:inherit;font-size:.85rem;transition:border-color .15s}.lasso-dialog-cancel:hover{border-color:var(--praxis-text-dim)}.lasso-dialog-confirm{background:var(--praxis-accent);color:var(--praxis-offblack);cursor:pointer;border:none;border-radius:6px;padding:.45rem 1.1rem;font-family:inherit;font-size:.85rem;font-weight:700;transition:opacity .15s}.lasso-dialog-confirm:disabled{opacity:.45;cursor:not-allowed}.lasso-dialog-confirm:not(:disabled):hover{opacity:.85}.rv-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.rv-card{background:var(--praxis-graphite);border:1px solid var(--praxis-border);border-radius:10px;flex-direction:column;gap:.75rem;padding:1.25rem;display:flex}.rv-card--active{border-color:var(--praxis-accent);background:#ee96910a}.rv-card-header{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.rv-card-title{color:var(--praxis-text);font-size:.95rem;font-weight:700}.rv-badge{letter-spacing:.04em;text-transform:uppercase;border-radius:4px;margin-left:.4rem;padding:.1rem .45rem;font-size:.65rem;font-weight:700;display:inline-block}.rv-badge--active{background:var(--praxis-accent);color:var(--praxis-offblack)}.rv-badge--custom{color:var(--praxis-steel);background:#66858633}.rv-badge--default{color:var(--praxis-text-dim);background:#ffffff14}.rv-card-desc{color:var(--praxis-text-dim);font-size:.78rem;line-height:1.5}.rv-rules{grid-template-columns:1fr 1fr;gap:.35rem .75rem;display:grid}.rv-rule{flex-direction:column;gap:.1rem;display:flex}.rv-rule-label{color:var(--praxis-text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:.65rem}.rv-rule-value{color:var(--praxis-text);font-size:.8rem;font-weight:600}.rv-card-actions{gap:.5rem;margin-top:auto;padding-top:.5rem;display:flex}.rv-btn{cursor:pointer;border-radius:6px;padding:.35rem .85rem;font-family:inherit;font-size:.8rem;font-weight:600;transition:opacity .15s}.rv-btn--activate{background:var(--praxis-accent);color:var(--praxis-offblack);border:none}.rv-btn--activate:hover{opacity:.85}.rv-btn--delete{color:#c17b78;background:0 0;border:1px solid #c17b78}.rv-btn--delete:hover{background:#c17b781a}.rv-violation-overlay{z-index:800;background:#1c1c1acc;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.rv-violation-dialog{background:#282824;border:1px solid #c17b78;border-radius:10px;width:420px;max-width:calc(100vw - 2rem);padding:1.5rem;box-shadow:0 16px 48px #0009}.rv-violation-title{color:#c17b78;margin-bottom:.75rem;font-size:.95rem;font-weight:700}.rv-violation-list{flex-direction:column;gap:.4rem;margin-bottom:.75rem;display:flex}.rv-violation-item{background:#c17b7814;border:1px solid #c17b7833;border-radius:5px;padding:.45rem .65rem}.rv-violation-msg{color:var(--praxis-text);font-size:.83rem;line-height:1.45}.rv-violation-hint{color:var(--praxis-text-dim);margin-bottom:1rem;font-size:.78rem;line-height:1.5}.rv-violation-actions{justify-content:flex-end;gap:.6rem;display:flex}.rv-violation-cancel{border:1px solid var(--praxis-border);color:var(--praxis-text-dim);cursor:pointer;background:0 0;border-radius:6px;padding:.4rem .9rem;font-family:inherit;font-size:.85rem}.rv-violation-cancel:hover{border-color:var(--praxis-text-dim)}.rv-violation-proceed{background:var(--praxis-accent);color:var(--praxis-offblack);cursor:pointer;border:none;border-radius:6px;padding:.4rem .9rem;font-family:inherit;font-size:.85rem;font-weight:700;transition:opacity .15s}.rv-violation-proceed:hover{opacity:.85}.sickness-backdrop{z-index:700;background:#00000059;position:fixed;inset:0}.sickness-panel{background:var(--praxis-charcoal);border-left:1px solid var(--praxis-border);z-index:701;flex-direction:column;width:380px;max-width:92vw;height:100vh;animation:.25s ease-out sickness-slide-in;display:flex;position:fixed;top:0;right:0;box-shadow:-8px 0 32px #00000080}@keyframes sickness-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.sickness-panel-header{border-bottom:1px solid var(--praxis-border);flex-shrink:0;justify-content:space-between;align-items:flex-start;padding:1.25rem 1.25rem 1rem;display:flex}.sickness-panel-title{color:var(--praxis-text);margin-bottom:.2rem;font-size:1rem;font-weight:700}.sickness-panel-sub{color:var(--praxis-text-dim);font-size:.75rem}.sickness-panel-close{color:var(--praxis-text-dim);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:.1rem .3rem;font-size:1rem;line-height:1;transition:color .15s}.sickness-panel-close:hover{color:var(--praxis-text)}.sickness-panel-body{flex-direction:column;flex:1;gap:1.25rem;padding:1rem 1.25rem 1.5rem;display:flex;overflow-y:auto}.sickness-loading,.sickness-empty,.sickness-error,.sickness-no-shifts,.sickness-no-candidates{color:var(--praxis-text-dim);text-align:center;padding:1rem 0;font-size:.83rem}.sickness-error{color:#c17b78}.sickness-sick-block{flex-direction:column;gap:.75rem;display:flex}.sickness-sick-header{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.sickness-sick-name{color:var(--praxis-text);font-size:.9rem;font-weight:700}.sickness-sick-dates{color:var(--praxis-text-dim);background:var(--praxis-graphite);border-radius:4px;padding:.1rem .45rem;font-size:.78rem}.sickness-sick-label{color:var(--praxis-text-dim);font-size:.78rem}.sickness-shift-card{background:var(--praxis-graphite);border:1px solid var(--praxis-border);border-radius:8px;flex-direction:column;gap:.65rem;padding:.75rem;transition:border-color .15s;display:flex}.sickness-shift-card--critical{background:#ee96910a;border-color:#ee969180}.sickness-shift-card--covered{opacity:.6;border-color:#66858666}.sickness-shift-info{flex-direction:column;gap:.2rem;display:flex}.sickness-shift-name{color:var(--praxis-text);align-items:center;gap:.4rem;font-size:.85rem;font-weight:700;display:flex}.sickness-critical-badge{letter-spacing:.05em;background:var(--praxis-accent);color:var(--praxis-offblack);border-radius:3px;padding:.1rem .35rem;font-size:.6rem;font-weight:800}.sickness-shift-time{color:var(--praxis-text-dim);font-size:.75rem}.sickness-covered-badge{color:#6a8f7a;font-size:.72rem;font-weight:600}.sickness-in-progress-tag{color:#b89a6a;font-size:.7rem;font-style:italic}.sickness-section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--praxis-text-dim);margin-bottom:.35rem;font-size:.65rem;font-weight:600}.sickness-candidates,.sickness-freelancers{flex-direction:column;gap:.35rem;display:flex}.sickness-candidate-row{background:var(--praxis-graphite-light);border-radius:5px;justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .5rem;display:flex}.sickness-candidate-info{flex-direction:column;gap:.1rem;min-width:0;display:flex}.sickness-candidate-name{color:var(--praxis-text);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:600;overflow:hidden}.sickness-ndr-tag{color:#6a8f7a;vertical-align:middle;border:1px solid #6a8f7a;border-radius:3px;margin-left:.3rem;padding:.05rem .3rem;font-size:.6rem;font-weight:700;display:inline-block}.sickness-candidate-assignment,.sickness-candidate-hours{color:var(--praxis-text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:.68rem;overflow:hidden}.sickness-invite-btn{border:1px solid var(--praxis-accent);color:var(--praxis-accent);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;flex-shrink:0;padding:.25rem .6rem;font-family:inherit;font-size:.72rem;font-weight:600;transition:background .15s}.sickness-invite-btn:hover:not(:disabled){background:#ee96911a}.sickness-invite-btn--sent{color:#6a8f7a;cursor:default;border-color:#6a8f7a}.sickness-book-btn{background:var(--praxis-accent);color:var(--praxis-offblack);cursor:pointer;white-space:nowrap;border:none;border-radius:4px;flex-shrink:0;padding:.25rem .6rem;font-family:inherit;font-size:.72rem;font-weight:700;transition:opacity .15s}.sickness-book-btn:disabled{opacity:.5;cursor:not-allowed}.sickness-book-btn:not(:disabled):hover{opacity:.85}button,a,input,select,textarea,.sidebar-week-arrow,.rota-nav-btn,.rota-cell,.app-logout,.rota-sidebar-secondary-btn,.rota-build-btn,.rota-publish-btn,.rota-resolve-btn,.rota-reset-btn,.dash-nav-btn,.app-header-home-btn{transition:all .2s ease-out}.rota-table tbody tr:hover td{background-color:#ffffff06}.rota-build-summary-header{gap:.75rem;margin-bottom:.6rem}.rota-topbar-spend{color:#ee9691d9;white-space:nowrap;background:#ee969114;border:1px solid #ee969133;border-radius:6px;align-items:center;margin-left:.25rem;padding:.35rem .6rem;font-size:.8rem;line-height:1.4;display:inline-flex}.rota-sidebar-coral-outline{text-align:center;border:1px solid var(--praxis-accent);width:100%;color:var(--praxis-accent);cursor:pointer;white-space:nowrap;box-sizing:border-box;background:0 0;border-radius:6px;padding:.45rem 1rem;font-family:inherit;font-size:.82rem;font-weight:700;display:block}.rota-sidebar-coral-outline:hover{background:#ee96911a}.rota-sidebar-actions .rota-resolve-btn{border:1px solid var(--praxis-accent)!important;color:var(--praxis-accent)!important;background:0 0!important}.rota-sidebar-actions .rota-resolve-btn:hover{background:#ee96911a!important}.rota-sidebar-actions .rota-reset-btn{border:1px solid var(--praxis-accent)!important;color:var(--praxis-accent)!important;background:0 0!important}.rota-sidebar-actions .rota-reset-btn:hover{background:#ee96911a!important}
