*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--nav-bg: #160C40;--nav-text: rgba(255,255,255,.5);--nav-text-active: #fff;--nav-active-bg: rgba(139,92,246,.18);--nav-border: rgba(139,92,246,.12);--bg: #F5F3FA;--bg-card: #FFFFFF;--bg-subtle: #EDEBF6;--border: #DDD8EB;--border-strong: #C4BDD8;--text: #1A1535;--text-secondary: #5C5680;--text-muted: #908AAE;--accent: #8B5CF6;--accent-light: #EDE5FF;--accent-dark: #7C3AED;--accent-glow: rgba(139,92,246,.3);--gradient: linear-gradient(135deg, #8B5CF6, #EC4899);--gradient-warm: linear-gradient(135deg, #EC4899, #F97316);--gradient-cool: linear-gradient(135deg, #3B82F6, #06B6D4);--gradient-full: linear-gradient(135deg, #8B5CF6, #EC4899, #F97316);--pink: #EC4899;--cyan: #06B6D4;--orange: #F97316;--gold: #F59E0B;--gold-light: #FEF3C7;--success: #10B981;--success-light: #D1FAE5;--warning: #F59E0B;--warning-light: #FEF3C7;--danger: #EF4444;--danger-light: #FEE2E2;--info: #3B82F6;--info-light: #DBEAFE;--font-display: "DM Serif Display", Georgia, serif;--font-body: "Plus Jakarta Sans", system-ui, sans-serif;--radius: 10px;--radius-sm: 6px;--radius-lg: 16px;--shadow-sm: 0 1px 3px rgba(20,16,42,.06), 0 1px 2px rgba(20,16,42,.04);--shadow: 0 4px 12px rgba(20,16,42,.08), 0 2px 4px rgba(20,16,42,.04);--shadow-lg: 0 12px 32px rgba(20,16,42,.12), 0 4px 8px rgba(20,16,42,.06);--transition: .18s ease;--login-right-bg: var(--bg);color-scheme:light}[data-theme=dark]{--nav-bg: #160C40;--bg: #1E1050;--bg-card: #281868;--bg-subtle: #2F1E72;--border: #3D2D80;--border-strong: #5040A0;--text: #F0ECF9;--text-secondary: #C4B8E8;--text-muted: #8878B8;--accent: #A78BFA;--accent-light: #2A1870;--accent-dark: #C4B5FD;--accent-glow: rgba(167,139,250,.35);--gradient: linear-gradient(135deg, #A78BFA, #F472B6);--gradient-warm: linear-gradient(135deg, #F472B6, #FB923C);--gold: #FBBF24;--gold-light: #2A2010;--success: #34D399;--success-light: #122830;--warning: #FBBF24;--warning-light: #2A2010;--danger: #F87171;--danger-light: #381018;--info: #60A5FA;--info-light: #142040;--shadow-sm: 0 1px 4px rgba(0,0,0,.5);--shadow: 0 4px 16px rgba(0,0,0,.6);--shadow-lg: 0 12px 40px rgba(0,0,0,.7);--login-right-bg: var(--bg-subtle);color-scheme:dark}img,svg{filter:none!important}[data-theme=dark] .badge-manager{background:linear-gradient(135deg,#a78bfa,#f472b6);color:#fff;border:none}[data-theme=dark] .badge-shift_lead{background:linear-gradient(135deg,#22d3ee,#60a5fa);color:#fff}[data-theme=dark] .badge-barista{background:#ffffff14;color:var(--text-secondary)}html,body,#root{height:100%}body{font-family:var(--font-body);background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}[data-theme=dark] ::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#5040a0,#8b5cf6)}h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1.2}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:13px;font-weight:600;cursor:pointer;border:none;transition:all .15s cubic-bezier(.22,.61,.36,1);text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--gradient);color:#fff;box-shadow:0 2px 8px #8b5cf640}.btn-primary:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 6px 20px #8b5cf666,0 0 30px #ec489926}.btn-accent{background:var(--gradient);color:#fff;box-shadow:0 2px 8px #8b5cf640}.btn-accent:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 6px 20px #8b5cf666,0 0 30px #ec489926}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--accent);color:var(--text);transform:translateY(-1px);box-shadow:0 0 12px #8b5cf614}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#962e2e}.btn-sm{padding:5px 12px;font-size:12px}.btn-lg{padding:12px 24px;font-size:15px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.badge-manager{background:linear-gradient(135deg,#8b5cf6,#ec4899);color:#fff}.badge-shift_lead{background:linear-gradient(135deg,#06b6d4,#3b82f6);color:#fff}.badge-barista{background:var(--bg-subtle);color:var(--text-secondary)}.badge-published{background:linear-gradient(135deg,#10b981,#06b6d4);color:#fff}.badge-draft{background:linear-gradient(135deg,#f59e0b,#f97316);color:#fff}.badge-pending{background:linear-gradient(135deg,#f59e0b,#ec4899);color:#fff}.badge-approved{background:linear-gradient(135deg,#10b981,#06b6d4);color:#fff}.badge-denied{background:var(--danger-light);color:var(--danger)}.input{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:13px;color:var(--text);background:var(--bg-card);transition:border-color var(--transition),box-shadow var(--transition);outline:none}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #8b5cf626,0 0 12px #ec489914}.input::placeholder{color:var(--text-muted)}.label{display:block;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}.form-group{margin-bottom:16px}.tag-info{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:var(--info-light);color:var(--info);border-radius:4px;font-size:11px;font-weight:600}.tag-warn{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:var(--warning-light);color:var(--warning);border-radius:4px;font-size:11px;font-weight:600}.tag-flag{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:var(--danger-light);color:var(--danger);border-radius:4px;font-size:11px;font-weight:600}.text-gradient{background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-theme=dark] .glow-card{border-color:#8b5cf64d;box-shadow:0 0 20px #8b5cf61a,0 0 40px #ec48990d}.stats-grid>*{position:relative;overflow:hidden}.stats-grid>*:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--radius) var(--radius) 0 0}.stats-grid>*:nth-child(1):before{background:linear-gradient(90deg,#8b5cf6,#ec4899)}.stats-grid>*:nth-child(2):before{background:linear-gradient(90deg,#06b6d4,#3b82f6)}.stats-grid>*:nth-child(3):before{background:linear-gradient(90deg,#10b981,#06b6d4)}.stats-grid>*:nth-child(4):before{background:linear-gradient(90deg,#f97316,#ec4899)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes subtlePop{0%{transform:scale(.97);opacity:0}70%{transform:scale(1.005)}to{transform:scale(1);opacity:1}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.fade-in{animation:fadeInUp .35s cubic-bezier(.22,.61,.36,1) forwards}.fade-in>.card,.fade-in>div>.card{opacity:0;animation:subtlePop .4s cubic-bezier(.22,.61,.36,1) forwards}.fade-in>.card:nth-child(1),.fade-in>div>.card:nth-child(1){animation-delay:.04s}.fade-in>.card:nth-child(2),.fade-in>div>.card:nth-child(2){animation-delay:.08s}.fade-in>.card:nth-child(3),.fade-in>div>.card:nth-child(3){animation-delay:.12s}.fade-in>.card:nth-child(4),.fade-in>div>.card:nth-child(4){animation-delay:.16s}.fade-in>.card:nth-child(5),.fade-in>div>.card:nth-child(5){animation-delay:.2s}.fade-in>.card:nth-child(n+6),.fade-in>div>.card:nth-child(n+6){animation-delay:.22s}.stats-grid>*{opacity:0;animation:fadeInUp .35s cubic-bezier(.22,.61,.36,1) forwards}.stats-grid>*:nth-child(1){animation-delay:.05s}.stats-grid>*:nth-child(2){animation-delay:.1s}.stats-grid>*:nth-child(3){animation-delay:.15s}.stats-grid>*:nth-child(4){animation-delay:.2s}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--pink);border-right-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}html,.app-main{scroll-behavior:smooth}.card{transition:transform .2s cubic-bezier(.22,.61,.36,1),box-shadow .2s cubic-bezier(.22,.61,.36,1),border-color .2s ease}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow),0 0 20px #8b5cf60f}[data-theme=dark] .card:hover{box-shadow:var(--shadow),0 0 24px #8b5cf61f,0 0 48px #ec48990a}.btn{transition:all .15s cubic-bezier(.22,.61,.36,1)}.btn:active:not(:disabled){transform:scale(.97)!important}.btn-primary:hover:not(:disabled),.btn-accent:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #8b5cf666,0 0 30px #ec489926}.input{transition:border-color .2s ease,box-shadow .25s ease,background .2s ease}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #8b5cf626,0 0 16px #ec48991a}.badge{transition:all .2s ease}.app-sidebar nav a{position:relative;transition:all .2s cubic-bezier(.22,.61,.36,1)!important}.app-sidebar nav a:hover{color:var(--nav-text-active)!important;background:#8b5cf61a!important}.app-sidebar nav a:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%) scaleY(0);width:3px;height:60%;border-radius:0 3px 3px 0;background:linear-gradient(180deg,#8b5cf6,#ec4899,#f97316);transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.app-sidebar nav a[aria-current=page]:before{transform:translateY(-50%) scaleY(1)}.app-sidebar [style*="borderRadius: '50%'"]{transition:transform .2s ease,box-shadow .2s ease}.app-sidebar button:hover{opacity:.85}.roster-grid>*{transition:transform .2s cubic-bezier(.22,.61,.36,1),box-shadow .2s ease}.roster-grid>*:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.cal-grid>.card{transition:transform .2s cubic-bezier(.22,.61,.36,1),box-shadow .2s ease,border-color .2s ease}.cal-grid>.card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--border-strong)}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}div[style*="position: fixed"][style*="inset: 0"]{animation:overlayFadeIn .2s ease forwards}div[style*="position: fixed"][style*="inset: 0"]>.card,div[style*="position: fixed"][style*="inset: 0"]>div{animation:modalSlideUp .25s cubic-bezier(.22,.61,.36,1) forwards}.app-shell{display:flex;height:100vh;overflow:hidden}.app-sidebar{width:240px;background:var(--nav-bg);display:flex;flex-direction:column;justify-content:space-between;padding:24px 16px;flex-shrink:0;transition:transform .25s cubic-bezier(.22,.61,.36,1);z-index:100}.app-main{flex:1;overflow:auto;padding:32px 40px;scroll-behavior:smooth}.mobile-nav-toggle{display:none}.sidebar-overlay{display:none;transition:opacity .25s ease}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.roster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}@keyframes publishPop{0%{opacity:0;transform:scale(.65) translateY(20px)}60%{opacity:1;transform:scale(1.06) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes publishFadeIn{0%{opacity:0}to{opacity:1}}@keyframes publishCheck{0%{stroke-dashoffset:80}to{stroke-dashoffset:0}}@keyframes dragPulse{0%,to{box-shadow:0 0 #8b5cf666}50%{box-shadow:0 0 0 6px #8b5cf600}}@keyframes neonPulse{0%,to{box-shadow:0 0 12px #8b5cf64d,0 0 24px #ec48991a}50%{box-shadow:0 0 20px #8b5cf680,0 0 40px #ec489933}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.app-sidebar,.mobile-nav-toggle,.btn,.no-print{display:none!important}.app-main{padding:0!important;overflow:visible!important}.app-shell{display:block!important;height:auto!important}.card{break-inside:avoid;box-shadow:none!important;border:1px solid #ddd!important;transform:none!important}.cal-grid{grid-template-columns:repeat(7,1fr)!important;gap:6px!important}body{font-size:11px}h1{font-size:20px!important}*{animation:none!important}}@media (max-width: 768px){.app-sidebar{position:fixed;top:0;left:0;bottom:0;transform:translate(-100%);box-shadow:var(--shadow-lg)}.app-sidebar.open{transform:translate(0)}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:99}.sidebar-overlay.open{display:block}.mobile-nav-toggle{display:flex;align-items:center;justify-content:center;position:fixed;top:12px;left:12px;z-index:101;width:40px;height:40px;border-radius:var(--radius-sm);background:var(--nav-bg);color:#fff;border:none;font-size:20px;cursor:pointer;box-shadow:var(--shadow)}.app-main{padding:64px 12px 24px!important}.stats-grid{grid-template-columns:repeat(2,1fr)!important}.two-col{grid-template-columns:1fr!important}.cal-grid{grid-template-columns:1fr!important;gap:8px!important}.roster-grid{grid-template-columns:1fr!important}h1{font-size:20px!important}.login-left{display:none!important}.login-mobile-brand{display:flex!important}.login-right{max-width:100%!important;flex-basis:100%!important}.card [style*=gridTemplateColumns]{grid-template-columns:1fr!important}.card>div[style*="display: flex"][style*=gap]{flex-wrap:wrap}.card{padding:14px!important}.card h2{font-size:16px!important}input[type=time]{width:100%!important;max-width:160px}table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.cal-grid .card{padding:10px!important}.btn{font-size:13px;padding:8px 12px}.btn-lg{padding:10px 16px!important}textarea.input{min-height:60px}}@media (min-width: 769px) and (max-width: 1024px){.app-sidebar{width:200px;padding:16px 12px}.app-main{padding:24px 20px}.stats-grid{grid-template-columns:repeat(2,1fr)!important}.cal-grid{grid-template-columns:repeat(4,1fr)!important}}
