.motion-btn{position:relative;overflow:hidden}.motion-btn__ripple{position:absolute;width:24px;height:24px;margin-left:-12px;margin-top:-12px;border-radius:50%;pointer-events:none;animation:motion-ripple-expand .55s ease-out forwards}.motion-btn--ripple-light .motion-btn__ripple{background:#ffffff6b}.motion-btn--ripple-dark .motion-btn__ripple{background:#0f172a1f}@keyframes motion-ripple-expand{to{transform:scale(22);opacity:0}}@media (prefers-reduced-motion: reduce){.motion-btn__ripple{animation:none;opacity:0}}.whsd-root{--cream: #F5F2EE;--card: #FFFFFF;--soft: #D5DFF3;--light:#8DA7DF;--accent: #2F5FC4;--deep: #234AA0;--ink: #1A1D29;--ink2:#2C2F3D;--muted:#6B7280;--hair:#E8E2DA;--amber: #F2C879;--amber-ink:#6a4e0f;--green: #5BB088;--pink:#FBE9EC;--pink-ink:#B4525E;--loop: 14s;--glow-spin: 9s;position:relative;display:grid;place-items:center;overflow:hidden;padding:clamp(1rem,4vw,5rem) clamp(.5rem,3vw,3rem);box-sizing:border-box;background:radial-gradient(60% 50% at 78% 12%,rgba(141,167,223,.3),transparent 60%),radial-gradient(70% 55% at 15% 95%,rgba(47,95,196,.18),transparent 60%),var(--cream);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased}.whsd-root *,.whsd-root *:before,.whsd-root *:after{margin:0;padding:0;box-sizing:border-box}.whsd-root .whsd-fit{position:relative;width:100%;max-width:1000px;margin:0 auto;height:calc(625px * var(--whsd-s, 1))}.whsd-root .stage{position:absolute;top:0;left:0;z-index:1;width:1000px;transform-origin:top left;transform:scale(var(--whsd-s, 1))}.whsd-root .device{position:relative;aspect-ratio:16 / 10;width:100%;border-radius:20px;background:var(--card);overflow:hidden;box-shadow:0 30px 80px -20px #234aa059;isolation:isolate}.whsd-root .device:before{content:"";position:absolute;top:-40%;right:-40%;bottom:-40%;left:-40%;z-index:-1;background:conic-gradient(from 0deg,var(--accent),var(--light),var(--soft),var(--cream),var(--light),var(--deep),var(--accent));filter:blur(26px);animation:whsd_glow-spin var(--glow-spin) linear infinite}.whsd-root .device:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:16px;background:var(--card);z-index:0}@keyframes whsd_glow-spin{to{transform:rotate(360deg)}}.whsd-root .chrome{position:absolute;top:0;left:0;right:0;z-index:3;height:34px;display:flex;align-items:center;gap:12px;padding:0 12px;background:#fbfaf8;border-bottom:1px solid var(--hair)}.whsd-root .dots{display:flex;gap:6px}.whsd-root .dots i{width:9px;height:9px;border-radius:50%;background:#e2ded7;display:block}.whsd-root .url{flex:1;max-width:280px;height:18px;border-radius:6px;background:#efeae2;font-size:10px;color:var(--muted);display:flex;align-items:center;justify-content:center}.whsd-root .viewport{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden}.whsd-root .clock{position:absolute;left:12px;bottom:10px;z-index:6;background:var(--ink);color:#fff;font-weight:700;font-size:12px;padding:6px 11px;border-radius:9px;box-shadow:0 8px 20px #1a1d294d;font-variant-numeric:tabular-nums}.whsd-root .scene{position:absolute;top:0;right:0;bottom:0;left:0}.whsd-root .scene--1{opacity:1}.whsd-root .app{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;background:var(--card);font-size:11px}.whsd-root .side{width:52px;min-width:52px;background:var(--accent);color:#d7e2f7;padding:12px 0 46px;display:flex;flex-direction:column;align-items:center;gap:6px}.whsd-root .side .brand{margin-bottom:8px}.whsd-root .side .brand .logo{display:block;width:30px;height:30px;border-radius:8px;object-fit:cover;box-shadow:0 2px 6px #0000002e}.whsd-root .side .nav{position:relative;width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#cdd9f2}.whsd-root .side .nav.active{background:#ffffff2e;color:#fff}.whsd-root .side .nav svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.whsd-root .side .nav .badge{position:absolute;top:1px;right:1px;background:#e26a5c;color:#fff;font-size:7.5px;font-weight:700;line-height:1;padding:2px 4px;border-radius:999px}.whsd-root .side .spacer{flex:1}.whsd-root .main{flex:1;padding:12px 16px;display:flex;flex-direction:column;gap:9px;overflow:hidden}.whsd-root .head-row{display:flex;align-items:baseline;justify-content:space-between}.whsd-root .head-row .h{font-size:16px;font-weight:700}.whsd-root .head-row .sub{font-size:10px;color:var(--muted)}.whsd-root .actions{display:flex;align-items:center;gap:8px}.whsd-root .gen{position:relative;overflow:hidden;border:none;cursor:pointer;background:var(--accent);color:#fff;font-family:inherit;font-size:10.5px;font-weight:600;padding:6px 14px;border-radius:7px;animation:whsd_genPulse var(--loop) ease-in-out infinite}.whsd-root .gen .lbl{display:inline-flex;align-items:center;gap:5px;animation:whsd_lblIdle var(--loop) ease-in-out infinite}.whsd-root .gen .lbl-gen{position:absolute;top:0;right:0;bottom:0;left:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;animation:whsd_lblGen var(--loop) ease-in-out infinite}.whsd-root .gen .spin{width:9px;height:9px;border-radius:50%;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;animation:whsd_spin .7s linear infinite}.whsd-root .gen:after{content:"";position:absolute;top:0;bottom:0;width:45%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);transform:translate(-180%);animation:whsd_sweep var(--loop) ease-out infinite}@keyframes whsd_genPulse{0%,6%{transform:scale(1)}8%{transform:scale(.95)}12%{transform:scale(1)}to{transform:scale(1)}}@keyframes whsd_lblGen{0%,6%{opacity:0}9%{opacity:1}17%{opacity:1}20%{opacity:0}to{opacity:0}}@keyframes whsd_lblIdle{0%,6%{opacity:1}9%{opacity:0}18%{opacity:0}21%{opacity:1}to{opacity:1}}@keyframes whsd_sweep{0%,7%{transform:translate(-180%)}17%{transform:translate(260%)}18%,to{transform:translate(260%)}}@keyframes whsd_spin{to{transform:rotate(360deg)}}.whsd-root .publish{font-size:10.5px;font-weight:600;color:var(--deep);background:var(--soft);padding:6px 12px;border-radius:7px;animation:whsd_pubBtn var(--loop) ease-in-out infinite}@keyframes whsd_pubBtn{0%,46%{background:var(--soft);color:var(--deep)}49%{background:var(--green);color:#fff}72%{background:var(--green);color:#fff}78%,to{background:var(--soft);color:var(--deep)}}.whsd-root .toolbar{display:flex;align-items:center;gap:8px}.whsd-root .seg{display:flex;border:1px solid var(--hair);border-radius:7px;overflow:hidden;font-size:10px}.whsd-root .seg span{padding:4px 9px;color:var(--muted)}.whsd-root .seg span.on{background:var(--accent);color:#fff}.whsd-root .range{font-size:10px;color:var(--ink2);font-weight:600}.whsd-root .addshift{margin-left:auto;font-size:10px;font-weight:600;color:#fff;background:var(--accent);padding:5px 11px;border-radius:7px}.whsd-root .week{position:relative;flex:1;display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--hair);border-radius:10px;overflow:hidden;background:#fff}.whsd-root .daycol{display:flex;flex-direction:column;border-right:1px solid var(--hair);min-width:0}.whsd-root .daycol:last-child{border-right:none}.whsd-root .dh{text-align:center;font-size:9px;color:var(--muted);font-weight:600;padding:5px 0 4px;background:#fbfaf8;border-bottom:1px solid var(--hair);animation:whsd_pubGreen var(--loop) ease-in-out infinite}.whsd-root .dh b{display:block;color:var(--ink2);font-size:12px}@keyframes whsd_pubGreen{0%,46%{background:#fbfaf8;border-color:var(--hair)}49%{background:#ddf2e7;border-color:#b9e2cd}72%{background:#ddf2e7;border-color:#b9e2cd}78%,to{background:#fbfaf8;border-color:var(--hair)}}.whsd-root .shifts{display:flex;flex-direction:column;gap:4px;padding:5px 5px 6px;flex:1}.whsd-root .week:after{content:"";position:absolute;top:0;left:0;right:0;height:28px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(47,95,196,.3),transparent);opacity:0;animation:whsd_headGlow var(--loop) ease-in-out infinite}@keyframes whsd_headGlow{0%,32%{opacity:0;transform:translate(-40%)}37%{opacity:.85;transform:translate(0)}43%{opacity:0;transform:translate(40%)}to{opacity:0}}.whsd-root .shift{border-radius:7px;padding:5px 7px;display:flex;flex-direction:column;justify-content:center;gap:1px;line-height:1.15;opacity:0;flex:1 1 0;min-height:24px;transform-origin:center 60%;animation:whsd_shiftPop var(--loop) cubic-bezier(.34,1.56,.64,1) infinite both}.whsd-root .shift b{font-size:9.5px;font-weight:700}.whsd-root .shift span{font-size:8px;opacity:.82}.whsd-root .c-amber{background:var(--amber);color:var(--amber-ink)}.whsd-root .c-cobalt{background:var(--accent);color:#fff}.whsd-root .c-light{background:var(--soft);color:var(--deep)}.whsd-root .c-deep{background:var(--deep);color:#fff}@keyframes whsd_shiftPop{0%{opacity:0;transform:translateY(12px) scale(.82)}4.5%{opacity:1;transform:translateY(-3px) scale(1.05)}9%{opacity:1;transform:translateY(0) scale(1)}68%{opacity:1;transform:none}74%{opacity:0;transform:translateY(-6px) scale(1.01)}to{opacity:0;transform:translateY(12px) scale(.82)}}.whsd-root .uncov{border:1px dashed var(--light);color:var(--muted);background:#fbfaf8;border-radius:7px;padding:5px 7px;font-size:8.5px;font-weight:600;display:flex;align-items:center;justify-content:center;flex:1 1 0;min-height:24px;text-align:center;opacity:0;animation:whsd_uncovFade var(--loop) ease-out infinite both}@keyframes whsd_uncovFade{0%,5%{opacity:0}11%{opacity:.6}68%{opacity:.6}74%{opacity:0}to{opacity:0}}.whsd-root .cursor{position:absolute;left:13%;top:13.5%;z-index:8;width:20px;height:20px;pointer-events:none;transform-origin:25% 20%;filter:drop-shadow(0 2px 3px rgba(26,29,41,.35));animation:whsd_curMove var(--loop) cubic-bezier(.5,0,.2,1) infinite,whsd_curPress var(--loop) ease-in-out infinite}.whsd-root .cursor svg{display:block;width:20px;height:20px}.whsd-root .cursor:after{content:"";position:absolute;left:2px;top:1px;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid rgba(47,95,196,.7);border-radius:50%;opacity:0;animation:whsd_clickRing var(--loop) ease-out infinite}@keyframes whsd_curMove{0%{left:34%;top:42%}6%{left:15%;top:9.5%}9%{left:15%;top:9.5%}32%{left:15%;top:9.5%}42%{left:27%;top:9.5%}72%{left:27%;top:9.5%}88%{left:45%;top:55%}99%{left:34%;top:42%}to{left:34%;top:42%}}@keyframes whsd_curPress{0%,6%{transform:scale(1)}7.5%{transform:scale(.82)}10%{transform:scale(1)}42%{transform:scale(1)}43.5%{transform:scale(.82)}46%{transform:scale(1)}to{transform:scale(1)}}@keyframes whsd_clickRing{0%,6%{opacity:0;transform:scale(.4)}7.5%{opacity:.6;transform:scale(.4)}13%{opacity:0;transform:scale(1.9)}42%{opacity:0;transform:scale(.4)}43.5%{opacity:.6;transform:scale(.4)}49%{opacity:0;transform:scale(1.9)}to{opacity:0}}.whsd-root .sent{position:absolute;left:50%;bottom:42px;z-index:7;display:flex;align-items:center;gap:9px;white-space:nowrap;background:var(--ink);color:#fff;border-radius:12px;padding:9px 14px;font-size:11px;font-weight:600;box-shadow:0 16px 40px #1a1d2957;opacity:0;transform:translate(-50%,18px);animation:whsd_sentToast var(--loop) cubic-bezier(.2,.8,.2,1) infinite}.whsd-root .sent .ph{position:relative;display:flex}.whsd-root .sent .ph svg{width:15px;height:17px;fill:none;stroke:#8de0bc;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.whsd-root .sent .ph:before,.whsd-root .sent .ph:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:1.5px solid rgba(141,224,188,.8);border-radius:50%;opacity:0;animation:whsd_ping var(--loop) ease-out infinite}.whsd-root .sent .ph:after{animation-delay:.35s}.whsd-root .sent b{color:#8de0bc;font-weight:700}@keyframes whsd_sentToast{0%,49%{opacity:0;transform:translate(-50%,18px)}53%{opacity:1;transform:translate(-50%)}72%{opacity:1;transform:translate(-50%)}78%,to{opacity:0;transform:translate(-50%,-6px)}}@keyframes whsd_ping{0%,50%{opacity:0;transform:scale(.5)}53%{opacity:.7;transform:scale(.5)}60%{opacity:0;transform:scale(2.2)}to{opacity:0}}.whsd-root .grain{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none;opacity:.3;mix-blend-mode:soft-light;background-image: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='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");background-size:160px 160px}@media (prefers-reduced-motion: reduce){.whsd-root .scene,.whsd-root .shift,.whsd-root .uncov,.whsd-root .gen,.whsd-root .gen .lbl-gen,.whsd-root .gen:after,.whsd-root .week:after,.whsd-root .hwave--b,.whsd-root .hwave--f,.whsd-root .device:before,.whsd-root .gen .spin,.whsd-root .cursor,.whsd-root .cursor:after,.whsd-root .dh,.whsd-root .publish,.whsd-root .sent,.whsd-root .sent .ph:before,.whsd-root .sent .ph:after{animation:none}.whsd-root .scene--1{opacity:1}.whsd-root .shift,.whsd-root .uncov{opacity:1;transform:none}.whsd-root .gen .lbl-gen,.whsd-root .cursor,.whsd-root .sent{display:none}}.whsd-root.whsd-paused *,.whsd-root.whsd-paused *:before,.whsd-root.whsd-paused *:after{animation-play-state:paused!important}*{box-sizing:border-box}:root{--wh-bg: #F5F2EE;--wh-bg-deep: #EDE8E1;--wh-card: #FFFFFF;--wh-hair: #E8E2DA;--wh-hair-soft: #F0EBE3;--wh-ink: #1A1D29;--wh-ink-2: #2C2F3D;--wh-muted: #6B7280;--wh-subtle: #9AA0AB;--wh-accent: #2F5FC4;--wh-accent-pressed: #234AA0;--wh-accent-deep: #234AA0;--wh-accent-soft: #D5DFF3;--wh-accent-softer: #E1E3EA;--wh-ring: rgba(47, 95, 196, .18);--wh-green: #3F8F6B;--wh-green-soft: #DDEEE3;--wh-amber: #B6831F;--wh-amber-soft: #FBEDC8;--wh-red: #C04A3D;--wh-red-soft: #F7DDD8;font-family:Inter Tight,Inter,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color:var(--wh-ink);background-color:var(--wh-bg);font-size:15px}body{margin:0;min-height:100vh;background:var(--wh-bg)}#root{min-height:100vh}.app-shell{display:flex;min-height:100vh;background:var(--wh-bg)}.sidebar{width:232px;min-width:232px;background:#2954b2;color:#f5f2ee;display:flex;flex-direction:column;padding:0;position:sticky;top:0;height:100vh;overflow-y:auto;transition:width .2s ease,min-width .2s ease;z-index:100;border-right:none}.sidebar-collapsed{width:56px;min-width:56px}.sidebar-top{display:flex;align-items:center;justify-content:space-between;padding:18px 16px 14px;border-bottom:1px solid rgba(255,255,255,.16)}.sidebar-collapsed .sidebar-top{justify-content:center;padding:16px 8px}.sidebar-toggle{background:transparent;border:1px solid rgba(255,255,255,.28);border-radius:8px;color:#fffc;width:26px;height:26px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;line-height:1;flex-shrink:0;transition:all .15s ease}.sidebar-toggle:hover{background:#ffffff1f;color:#fff;border-color:#ffffff80}.sidebar-brand{font-family:"Instrument Serif",Georgia,serif;font-size:1.55rem;font-weight:400;letter-spacing:-.04em;color:#fff;line-height:1}.sidebar-brand:after{content:".";color:#8da7df}.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:10px;flex:1}.sidebar-footer{padding:12px 10px;border-top:1px solid rgba(255,255,255,.16);margin-top:auto}.sidebar-footer .sidebar-link{color:#ffffffb8;font-weight:500}.sidebar-footer .sidebar-link.sidebar-logout:hover{background:#dc262647;color:#fca5a5}.sidebar-footer .sidebar-link svg{width:17px;height:17px}.sidebar-link{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:10px;cursor:pointer;font-size:13.5px;font-weight:500;color:#ffffffc7;transition:all .15s ease;border:none;background:transparent;text-align:left;width:100%;position:relative}.sidebar-link:hover{background:#ffffff1f;color:#fff}.sidebar-link.active{background:#fff;color:#234aa0;font-weight:600}.sidebar-link.active svg{stroke:#234aa0}.sidebar-link svg{width:17px;height:17px;flex-shrink:0;stroke:#ffffffb8;stroke-width:1.6;transition:stroke .15s ease}.sidebar-link.active:hover{background:#fff;color:#234aa0}.sidebar-collapsed .sidebar-link{justify-content:center;padding:9px}.sidebar-collapsed .sidebar-nav{padding:10px 6px}.main-content{flex:1;min-width:0;padding:28px 36px 36px;max-width:1500px;background:var(--wh-bg)}.page-header{margin-bottom:22px}.page-header h1{font-family:"Instrument Serif",Georgia,serif;font-size:36px;font-weight:400;margin:0 0 6px;color:var(--wh-ink);letter-spacing:-.5px;line-height:1.05}.page-header p{margin:0;color:var(--wh-muted);font-size:13.5px}.card{background:var(--wh-card);border:1px solid var(--wh-hair);border-radius:16px;padding:22px;margin-bottom:14px;box-shadow:none}.card-title{font-size:14px;font-weight:700;color:var(--wh-ink);margin:0 0 12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 14px;font-size:13px;font-weight:600;letter-spacing:.1px;border-radius:10px;border:1px solid transparent;font-family:inherit;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background-color .15s ease,border-color .15s ease,color .15s ease;white-space:nowrap;line-height:1.4;will-change:transform}@media (hover: hover) and (pointer: fine){.btn:hover:not(:disabled){transform:scale(1.02)}.btn:active:not(:disabled){transform:scale(.98)}}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--wh-accent);color:#fff;border-color:var(--wh-accent);box-shadow:0 6px 18px #2f5fc438}.btn-primary:hover:not(:disabled){background:var(--wh-accent-pressed);border-color:var(--wh-accent-pressed)}.btn-success{background:var(--wh-green);color:#fff;border-color:var(--wh-green)}.btn-success:hover:not(:disabled){filter:brightness(.95)}.btn-secondary{background:var(--wh-card);color:var(--wh-ink);border-color:var(--wh-hair)}.btn-secondary:hover:not(:disabled){background:var(--wh-bg-deep);border-color:var(--wh-muted)}.btn-danger{background:var(--wh-card);color:var(--wh-red);border-color:var(--wh-red-soft)}.btn-danger:hover:not(:disabled){background:var(--wh-red-soft);border-color:var(--wh-red)}.btn-ghost{background:transparent;color:var(--wh-muted);border-color:transparent;padding:7px 10px;font-size:12.5px}.btn-ghost:hover:not(:disabled){background:var(--wh-bg-deep);color:var(--wh-ink)}.btn-sm{padding:6px 12px;font-size:12px}.input,select,textarea{padding:10px 14px;border:1px solid var(--wh-hair);border-radius:10px;font-size:13.5px;color:var(--wh-ink);background:var(--wh-card);font-family:inherit;transition:border-color .2s ease,box-shadow .22s ease}.input:focus,select:focus,textarea:focus{outline:none;border-color:var(--wh-accent);box-shadow:0 0 0 3px var(--wh-ring)}.input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--wh-accent)}textarea{resize:vertical}.badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.2px;line-height:1.4}.badge-blue{background:var(--wh-accent-soft);color:var(--wh-accent-deep)}.badge-green{background:var(--wh-green-soft);color:var(--wh-green)}.badge-amber{background:var(--wh-amber-soft);color:var(--wh-amber)}.badge-red{background:var(--wh-red-soft);color:var(--wh-red)}.alert{padding:12px 14px;border-radius:10px;font-size:13px;margin-bottom:14px}.alert-warning{background:var(--wh-amber-soft);border:1px solid var(--wh-amber-soft);color:var(--wh-amber)}.alert-error{background:var(--wh-red-soft);border:1px solid var(--wh-red-soft);color:var(--wh-red)}.alert-success{background:var(--wh-green-soft);border:1px solid var(--wh-green-soft);color:var(--wh-green)}.toggle-group{display:inline-flex;border:none;border-radius:10px;overflow:hidden;background:var(--wh-bg-deep);padding:4px;gap:4px;box-shadow:none}.toggle-btn{padding:6px 14px;border:none;background:transparent;color:var(--wh-muted);font-weight:500;font-size:12.5px;font-family:inherit;border-radius:7px;cursor:pointer;transition:transform .16s ease,background .15s ease,color .15s ease,box-shadow .15s ease}@media (hover: hover) and (pointer: fine){.toggle-btn:active:not(.active){transform:scale(.97)}}.toggle-btn:not(:last-child){border-right:none}.toggle-btn.active{background:var(--wh-card);color:var(--wh-ink);font-weight:600;box-shadow:0 1px 3px #0000000f}.toggle-btn:hover:not(.active){background:#ffffff80;color:var(--wh-ink)}.schedule-scroll-breakout{margin-left:-1.5rem;margin-right:-1.5rem;width:calc(100% + 3rem)}.schedule-scroll{overflow-x:auto;overflow-y:auto;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;padding-bottom:12px;margin-bottom:1rem;border-radius:0;border:none;background:transparent;box-shadow:none}.schedule-scroll::-webkit-scrollbar{height:8px}.schedule-scroll::-webkit-scrollbar-track{background:var(--wh-bg-deep);border-radius:4px}.schedule-scroll::-webkit-scrollbar-thumb{background:var(--wh-hair);border-radius:4px}.schedule-scroll::-webkit-scrollbar-thumb:hover{background:var(--wh-subtle)}.schedule-grid{display:block;width:100%;max-width:100%;border:1px solid var(--wh-hair);border-radius:16px;overflow:hidden;background:var(--wh-card);box-shadow:none}.schedule-grid-week-fluid .schedule-grid-header,.schedule-grid-week-fluid .schedule-week-body{width:100%}.schedule-grid-week-fluid .schedule-day-header,.schedule-grid-week-fluid .schedule-day-column{flex:1 1 0%;min-width:0;width:auto;max-width:none}.schedule-week-body{display:flex;flex-wrap:nowrap;align-items:flex-start;justify-content:flex-start}.schedule-grid-header{display:flex;flex-wrap:nowrap;justify-content:flex-start;border-bottom:1px solid var(--wh-hair);background:var(--wh-card);transition:background .3s ease}.schedule-grid-header.published{background:var(--wh-green-soft);border-bottom-color:var(--wh-green-soft)}.schedule-grid-header.pending-review{background:var(--wh-amber-soft);border-bottom-color:var(--wh-amber-soft)}.schedule-day-header{text-align:center;padding:12px 8px 10px;font-weight:600;color:var(--wh-ink);cursor:pointer;border-left:1px solid var(--wh-hair-soft);transition:background .15s ease,border-color .3s ease}.schedule-grid-header.published .schedule-day-header{border-left-color:#3f8f6b2e;color:var(--wh-green)}.schedule-grid-header.pending-review .schedule-day-header{border-left-color:#b6831f2e;color:var(--wh-amber)}.schedule-day-header:first-child{border-left:none}.schedule-day-header:hover{background:var(--wh-accent-softer);color:var(--wh-accent-deep)}.schedule-grid-header.published .schedule-day-header:hover{background:#3f8f6b1f}.schedule-grid-header.pending-review .schedule-day-header:hover{background:#b6831f1f}.schedule-day-header-dayname{display:block;font-size:10px;font-weight:700;color:var(--wh-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:3px}.schedule-grid-header.published .schedule-day-header-dayname{color:var(--wh-green)}.schedule-grid-header.pending-review .schedule-day-header-dayname{color:var(--wh-amber)}.schedule-day-header-date{font-family:"Instrument Serif",Georgia,serif;font-size:22px;font-weight:400;color:var(--wh-ink);letter-spacing:-.2px;line-height:1.1}.schedule-week-status-badge{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;padding:3px 9px;border-radius:999px;margin-left:.5rem;vertical-align:middle}.schedule-week-status-badge.published{background:var(--wh-green-soft);color:var(--wh-green)}.schedule-week-status-badge.pending-review{background:var(--wh-amber-soft);color:var(--wh-amber)}.schedule-day-column{position:relative;overflow:hidden;cursor:pointer;background:var(--wh-card);border-left:1px solid var(--wh-hair-soft);transition:background .15s ease}.schedule-day-column:first-child{border-left:none}.schedule-day-column:hover{background:var(--wh-bg-deep)}.schedule-day-column-empty{display:flex;align-items:center;justify-content:center;height:100%;min-height:100px;color:var(--wh-subtle);font-size:12px;font-weight:500;padding:1rem;text-align:center}.schedule-day-view-box{border:1px solid var(--wh-hair);border-radius:16px;overflow:hidden;background:var(--wh-card);box-shadow:none}.schedule-day-view-content{background:var(--wh-card);min-height:100px;position:relative;cursor:pointer;transition:background .15s ease}.schedule-day-view-content:hover{background:var(--wh-bg-deep)}.schedule-day-view-empty{display:flex;align-items:center;justify-content:center;min-height:140px;color:var(--wh-subtle);font-size:13px;font-weight:500;padding:1.5rem;text-align:center}@keyframes requestPopOut{0%{opacity:1;transform:scale(1)}30%{transform:scale(1.04)}to{opacity:0;transform:scale(.85)}}.request-pop-approve{animation:requestPopOut .4s ease-in forwards;box-shadow:0 0 0 3px #3f8f6b73,0 4px 16px #3f8f6b33}.request-pop-deny{animation:requestPopOut .4s ease-in forwards;box-shadow:0 0 0 3px #c04a3d73,0 4px 16px #c04a3d33}@keyframes shiftBubbleIn{0%{opacity:0;transform:translateY(12px) scale(.92)}60%{opacity:1;transform:translateY(-2px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}.shift-block.shift-block-animate{animation:shiftBubbleIn .4s ease-out both}.shift-block{position:absolute;border-radius:8px;padding:7px 9px;overflow:hidden;font-size:11.5px;transition:box-shadow .18s ease,border-color .18s ease,transform .18s ease,filter .18s ease;cursor:pointer;display:flex;flex-direction:column;justify-content:center;min-height:44px}.shift-block:hover{transform:scale(1.03) translateY(-1px);box-shadow:0 6px 20px #1a1d291f;filter:brightness(1.03);z-index:5!important}.shift-block-assigned{border:1px solid rgba(184,90,58,.22);border-left-width:3px;border-left-color:var(--wh-accent-deep);box-shadow:0 1px 2px #1a1d290a;color:var(--wh-ink);font-weight:700}.shift-block-assigned:not(.shift-block-boh){color:var(--wh-ink)}.shift-block-boh.shift-block-assigned{border-color:#8a621238;border-left-color:var(--wh-amber);color:var(--wh-ink)}.shift-block-boh.shift-block-assigned span{color:inherit}.shift-block-boh .shift-time{color:var(--wh-muted)!important}.shift-block-unassigned{border:1px dashed var(--wh-subtle);background:var(--wh-bg-deep);box-shadow:none;color:var(--wh-muted)}.shift-block-unassigned:hover{transform:scale(1.03) translateY(-1px);box-shadow:0 4px 12px #1a1d2914;border-color:var(--wh-muted)}.shift-block-boh.shift-block-unassigned{border-color:var(--wh-subtle);color:var(--wh-muted)}.shift-block-boh.shift-block-unassigned:hover{border-color:var(--wh-muted)}.shift-block-pinned:after{content:"";position:absolute;top:3px;right:5px;width:12px;height:12px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23475569'%3E%3Cpath d='M16 12V4h1V2H7v2h1v8l-2 2v2h5.2v6h1.6v-6H18v-2l-2-2z'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;opacity:.75}.shift-block-changed{outline:2px solid var(--wh-amber);outline-offset:-2px}.shift-block-changed:before{content:"";position:absolute;top:2px;left:5px;width:7px;height:7px;border-radius:50%;background:var(--wh-amber)}.shift-block-time-off{outline:2px solid var(--wh-red);outline-offset:-2px}.shift-block-time-off.shift-block-assigned{border-left-color:var(--wh-red)}.publish-btn{background:var(--wh-accent);color:#fff;border:none;transition:all .25s ease;position:relative}.publish-btn:hover:not(:disabled){background:var(--wh-accent-pressed);transform:translateY(-1px);box-shadow:0 4px 12px #2f5fc452}.publish-btn:active:not(:disabled){transform:translateY(0)}.publish-btn-loading{background:var(--wh-accent);cursor:wait;opacity:.85}.publish-spinner{display:inline-block;width:12px;height:12px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:publish-spin .6s linear infinite;margin-right:6px;vertical-align:middle}@keyframes publish-spin{to{transform:rotate(360deg)}}.publish-success-badge{display:inline-flex;align-items:center;padding:6px 12px;background:var(--wh-green);color:#fff;border-radius:8px;font-size:12px;font-weight:700;letter-spacing:.2px;animation:publish-pop .4s cubic-bezier(.34,1.56,.64,1)}@keyframes publish-pop{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.emp-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid var(--wh-hair-soft)}.emp-row:last-child{border-bottom:none}.avail-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;background:var(--wh-bg-deep);border:1px solid var(--wh-hair);border-radius:8px;font-size:12.5px;font-weight:500;color:var(--wh-ink-2)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a1d2973;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-card{background:var(--wh-card);padding:24px 26px;border-radius:18px;min-width:min(480px,92vw);max-width:90vw;box-shadow:0 12px 40px #1a1d2924,0 2px 8px #1a1d290f;border:1px solid var(--wh-hair);box-sizing:border-box}.modal-card h3{margin:0 0 14px;font-family:"Instrument Serif",Georgia,serif;font-size:24px;font-weight:400;letter-spacing:-.3px;color:var(--wh-ink)}.ai-panel{background:var(--wh-accent-softer);border:1px solid var(--wh-accent-soft);border-radius:16px;padding:16px 18px;margin-bottom:14px}.ai-panel textarea{width:100%;border:1px solid var(--wh-hair);background:var(--wh-card)}.ai-panel textarea:focus{border-color:var(--wh-accent);box-shadow:0 0 0 3px var(--wh-ring)}.ai-response{margin-top:10px;padding:12px 14px;background:var(--wh-card);border:1px solid var(--wh-hair);border-radius:10px;white-space:pre-wrap;font-size:13px;color:var(--wh-ink-2);line-height:1.6}.edit-table{width:100%;border-collapse:collapse;font-size:13px}.edit-table th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--wh-hair);color:var(--wh-muted);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.8px}.edit-table td{padding:10px 12px;border-bottom:1px solid var(--wh-hair-soft)}.edit-table tr:hover{background:var(--wh-bg-deep)}.list-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--wh-hair-soft)}.list-item:last-child{border-bottom:none}.notif-panel{position:fixed;bottom:80px;left:240px;width:340px;max-height:420px;overflow-y:auto;border-radius:14px;box-shadow:0 10px 32px #1a1d292e;z-index:9999}.sidebar-collapsed~.notif-panel,.notif-panel.notif-panel-collapsed{left:64px}@media (max-width: 900px){.sidebar{width:56px!important;min-width:56px!important}.sidebar-brand{display:none}.sidebar-top{justify-content:center}.sidebar-link span{display:none}.sidebar-link{justify-content:center;padding:9px}.sidebar-nav{padding:10px 6px}.main-content{padding:20px 16px 32px}.notif-panel{left:64px!important}.page-header h1{font-size:30px}}@media (prefers-reduced-motion: reduce){.btn,.toggle-btn{transition:background-color .15s ease,border-color .15s ease,color .15s ease,opacity .15s ease}.btn:hover:not(:disabled),.btn:active:not(:disabled){transform:none}.input,select,textarea{transition:border-color .15s ease}}[data-theme=dark]{--wh-bg: #14171F;--wh-bg-deep: #0E1118;--wh-card: #1C1F29;--wh-hair: #2A2D38;--wh-hair-soft: #23262F;--wh-ink: #F5F2EE;--wh-ink-2: #E2DDD4;--wh-muted: #9AA0AB;--wh-subtle: #6B7280;--wh-accent: #5B84DC;--wh-accent-deep: #8DA7DF;--wh-accent-soft: #111E3C;--wh-accent-softer: #0E162B;--wh-ring: rgba(91, 132, 220, .32);--wh-green: #5BB088;--wh-green-soft: #1a3328;--wh-amber: #D4A03A;--wh-amber-soft: #3a2e10;--wh-red: #E26A5C;--wh-red-soft: #3a1815;color:var(--wh-ink);background-color:var(--wh-bg)}[data-theme=dark] body,[data-theme=dark] .main-content{background:var(--wh-bg)}[data-theme=dark] .schedule-grid,[data-theme=dark] .schedule-day-column,[data-theme=dark] .schedule-grid-header,[data-theme=dark] .schedule-day-view-box,[data-theme=dark] .schedule-day-view-content{background:var(--wh-card)}[data-theme=dark] .schedule-day-column:hover,[data-theme=dark] .schedule-day-view-content:hover{background:var(--wh-bg-deep)}[data-theme=dark] .schedule-day-header:hover{background:var(--wh-accent-softer);color:var(--wh-accent-deep)}[data-theme=dark] .shift-block-assigned,[data-theme=dark] .shift-block-boh.shift-block-assigned{color:var(--wh-bg)}[data-theme=dark] .shift-block-unassigned{border-color:var(--wh-subtle);color:var(--wh-muted);background:#ffffff0a}[data-theme=dark] .modal-overlay{background:#0009}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeScaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.anim-fade-up{animation:fadeSlideUp .35s ease-out both}.anim-scale-in{animation:fadeScaleIn .3s ease-out both}.anim-stagger-1{animation-delay:.04s}.anim-stagger-2{animation-delay:.08s}.anim-stagger-3{animation-delay:.12s}.anim-stagger-4{animation-delay:.16s}.anim-stagger-5{animation-delay:.2s}.anim-stagger-6{animation-delay:.24s}.anim-stagger-7{animation-delay:.28s}.anim-stagger-8{animation-delay:.32s}@media (prefers-reduced-motion: reduce){.anim-fade-up,.anim-scale-in{animation:none}}.hours-filter-label{font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--wh-muted);margin-bottom:8px}.hours-filter-hint{font-weight:500;text-transform:none;letter-spacing:0;color:var(--wh-subtle)}.hours-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--wh-hair);background:var(--wh-card);color:var(--wh-muted);font-size:12.5px;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.hours-chip:hover{border-color:var(--wh-accent)}.hours-chip.active{background:var(--wh-accent-softer);border-color:var(--wh-ring);color:var(--wh-accent-deep);font-weight:600}.hours-chip-x{border:none;background:transparent;color:var(--wh-accent-deep);font-size:11px;cursor:pointer;padding:0;line-height:1}.hours-typeahead{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;background:var(--wh-card);border:1px solid var(--wh-hair);border-radius:10px;box-shadow:0 8px 24px #0f172a1f;overflow:hidden}.hours-typeahead-item{display:block;width:100%;text-align:left;padding:9px 14px;border:none;background:transparent;color:var(--wh-ink);font-size:13.5px;cursor:pointer}.hours-typeahead-item:hover{background:var(--wh-bg-deep)}.hours-group-row td{background:var(--wh-bg-deep);font-weight:700;color:var(--wh-ink);border-top:1px solid var(--wh-hair)}.hours-sub-row td{font-weight:400}.hours-sub-row td:first-child{padding-left:22px;color:var(--wh-ink-2)}.hours-table{width:100%;border-collapse:collapse;font-size:13px}.hours-table th{text-align:left;padding:4px 8px;color:var(--wh-subtle);font-weight:700;font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--wh-hair-soft)}.hours-table td{padding:5px 8px;color:var(--wh-ink-2);border-bottom:1px solid var(--wh-hair-soft)}.hours-table tr:last-child td{border-bottom:none}.hours-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.hours-dash{color:var(--wh-subtle)}.wh-error{background:var(--wh-red-soft);color:var(--wh-red);border-radius:8px;padding:8px 12px;font-size:13px;margin-bottom:10px}.login-page .login-card-wrap{width:100%;max-width:380px}.login-page .login-card input{transition:border-color .2s ease,box-shadow .22s ease}.login-page .login-card input:focus{outline:none;border-color:#2f5fc4;box-shadow:0 0 0 3px #2f5fc42e}.login-page .login-card .motion-btn{width:100%;padding:13px 16px;margin-top:10px;background:#2f5fc4;color:#fff;border:none;border-radius:12px;font-size:14px;font-weight:600;letter-spacing:.1px;font-family:inherit;cursor:pointer;box-shadow:0 6px 18px #2f5fc438;transition:background .18s ease,box-shadow .18s ease}.login-page .login-card .motion-btn:hover:not(:disabled){background:#234aa0}.login-page .login-card .motion-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}@media (prefers-reduced-motion: reduce){.login-page .login-card input{transition:border-color .15s ease}}[data-theme=dark] .login-page{background:#14171f}[data-theme=dark] .login-card{background:#1c1f29!important;border:1px solid #2A2D38!important;box-shadow:0 1px 2px #0000004d,0 12px 32px #00000073!important}[data-theme=dark] .login-subtitle,[data-theme=dark] .login-card label{color:#9aa0ab!important}[data-theme=dark] .login-card input{background:#14171f!important;border-color:#2a2d38;color:#f5f2ee!important;-webkit-text-fill-color:#F5F2EE}[data-theme=dark] .login-card input::placeholder{color:#6b7280;-webkit-text-fill-color:#6B7280}[data-theme=dark] .login-card input:focus{border-color:#2f5fc4;box-shadow:0 0 0 3px #2f5fc452}[data-theme=dark] .forgot-link{color:#8da7df}[data-theme=dark] .form-error{background:#3a1815;color:#e26a5c}[data-theme=dark] .app-prompt-title{color:#f5f2ee!important;-webkit-text-fill-color:#F5F2EE}[data-theme=dark] .android-note,[data-theme=dark] .android-note span{color:#9aa0ab!important;-webkit-text-fill-color:#9AA0AB}[data-theme=dark] .android-note a{color:#8da7df!important;-webkit-text-fill-color:#8DA7DF}[data-theme=dark] .app-prompt-foot{color:#6b7280!important;-webkit-text-fill-color:#6B7280}[data-theme=dark] .app-store-button,[data-theme=dark] .app-store-button:visited{background:#f5f2ee;color:#1a1d29!important;-webkit-text-fill-color:#1A1D29}
