#login{padding:0;min-height:100vh;overflow:auto;background:#f0f7ff}.login-page{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f0f7ff;overflow:auto;padding-top:24px;padding-bottom:24px}.login-layout{display:flex;align-items:center;justify-content:center;width:fit-content;flex-shrink:0}.login-card{width:490px;max-width:calc(100vw - 32px);max-height:calc(100vh - 48px);flex-shrink:0;background:#fff;border-radius:32px;padding:44px 48px 40px;box-shadow:0 40px 100px #634aff24,0 0 0 1px #634aff0f;z-index:1;position:relative;box-sizing:border-box;animation:fade-rise .38s ease;overflow:auto}@media (max-width: 700px){.login-layout{flex-direction:column;align-items:center;width:auto}.login-card{width:calc(100vw - 32px);border-radius:24px;padding:36px 28px 32px}}.login-card-header{margin-bottom:28px}.login-brand{display:flex;align-items:center;gap:10px;font-size:23px;font-weight:800;color:#120f26;margin-bottom:4px}.login-brand-img{width:28px;height:28px;object-fit:contain;border-radius:6px}.login-main-mascot{width:72px;height:72px;object-fit:contain;margin-bottom:12px;border-radius:16px}.login-brand-dot{width:14px;height:14px;border-radius:5px;flex-shrink:0;background:linear-gradient(135deg,#52c41a,#1890ff);box-shadow:0 0 10px #1890ff4d;display:inline-block}.login-subtitle{font-size:13.5px;color:#6e6a7f;margin-top:2px}.login-back{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#6e6a7f;margin-bottom:18px;cursor:pointer;padding:0;background:none;border:none;font-family:inherit}.login-back:hover{color:#1890ff}.login-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.login-label{font-size:12px;font-weight:700;color:#6e6a7f;letter-spacing:.03em}.login-input,.login-select{height:52px;background:#f0f7ff;border:1.5px solid transparent;border-radius:14px;padding:0 16px;font-size:14.5px;color:#2f2d3b;outline:none;transition:border-color .18s,box-shadow .18s,background .18s;width:100%;box-sizing:border-box;font-family:inherit}.login-input::placeholder{color:#8faac2}.login-input:focus,.login-select:focus{border-color:#1890ff66;box-shadow:0 0 0 3px #1890ff1f;background:#fff}.login-submit{width:100%;height:58px;margin-top:8px;background:linear-gradient(135deg,#52c41a,#1890ff);color:#fff;border-radius:18px;font-size:15.5px;font-weight:700;letter-spacing:.02em;border:none;cursor:pointer;box-shadow:0 18px 40px #1890ff38;transition:box-shadow .18s,transform .18s;font-family:inherit}.login-submit:hover{box-shadow:0 22px 50px #1890ff47;transform:translateY(-1px)}.login-submit:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.login-footer{margin-top:20px;text-align:center;font-size:13px;color:#6e6a7f;display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.login-link{color:#1890ff;font-weight:700;cursor:pointer;background:none;border:none;padding:0;font-size:13px;font-family:inherit}.login-link:hover{text-decoration:underline}.login-hint{margin-top:14px;font-size:12px;color:#8faac2;text-align:center}.login-extra{margin-top:22px;border-top:1px solid rgba(24,144,255,.08);padding-top:18px}.login-main-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg, #f0f7ff);padding:24px}.login-main-card{background:#fff;border-radius:24px;box-shadow:0 8px 48px #1890ff1a;padding:44px 40px 36px;width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:0}.login-main-title{font-size:26px;font-weight:800;color:#1a1a2e;margin:4px 0 8px;letter-spacing:-.5px}.login-main-sub{font-size:13.5px;color:#4a7fa5;line-height:1.6;margin:0 0 24px}.login-main-roles{display:flex;align-items:center;gap:7px;margin-top:18px;flex-wrap:wrap;justify-content:center;font-size:12px;color:#8faac2}.login-role-chip{background:#1890ff14;color:#1890ff;border-radius:999px;padding:2px 10px;font-size:11.5px;font-weight:600}.login-vendor-link{margin-top:24px;background:none;border:none;color:#8faac2;font-size:12.5px;cursor:pointer;font-family:inherit;padding:4px 8px;border-radius:6px;transition:color .13s}.login-vendor-link:hover{color:#1890ff}.ms-login-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:11px 18px;border-radius:12px;border:1.5px solid rgba(24,144,255,.2);background:#fff;color:#1a1a2e;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s;box-shadow:0 1px 4px #0000000f}.ms-login-btn:hover:not(:disabled){background:#1890ff0a;border-color:#1890ff61;box-shadow:0 2px 10px #1890ff1a}.ms-login-btn:disabled{opacity:.6;cursor:not-allowed}.ms-login-btn--large{width:100%;padding:14px 20px!important;font-size:15px!important;border-radius:14px!important;box-shadow:0 2px 16px #1890ff1a!important}.login-divider{display:flex;align-items:center;gap:12px;margin:18px 0 4px;color:#c5cfe8;font-size:12px}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:#e8eef8}#login .login-page{position:relative;overflow:hidden;background:#fafafa}#login .login-mesh{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}#login .mesh-blob{position:absolute;width:560px;height:560px;border-radius:50%;filter:blur(90px);opacity:.5;animation:mesh-float 18s ease-in-out infinite}#login .mesh-a{background:#c7d2fe;top:-220px;left:-160px}#login .mesh-b{background:#ddd6fe;bottom:-260px;right:-180px;animation-delay:-6s}#login .mesh-c{background:#cffafe;top:40%;left:55%;width:420px;height:420px;opacity:.35;animation-delay:-12s}#login .mesh-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(15,23,42,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(15,23,42,.028) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse at center,black 30%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at center,black 30%,transparent 75%)}@keyframes mesh-float{0%,to{transform:translate(0) scale(1)}50%{transform:translate(36px,-28px) scale(1.06)}}@media (prefers-reduced-motion: reduce){#login .mesh-blob{animation:none}}#login .login-card{position:relative;z-index:1;width:420px;border-radius:16px;padding:40px 40px 32px;background:#ffffffc7;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid rgba(255,255,255,.9);box-shadow:0 1px 2px #0f172a0d,0 16px 48px #0f172a1a,inset 0 1px #fffc}#login .login-brand{font-size:18px;font-weight:650;letter-spacing:-.015em;color:#0f172a}#login .login-brand-img{width:30px;height:30px;border-radius:7px}#login .login-card-header{margin-bottom:24px}#login .ms-login-btn{border-radius:10px;border:1px solid #e2e8f0;padding:12px 18px;font-size:13.5px;font-weight:560;color:#0f172a;background:#fff;box-shadow:0 1px 2px #0f172a0d;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}#login .ms-login-btn:hover:not(:disabled){background:#fff;border-color:#c7d2fe;box-shadow:0 2px 8px #4f46e51f}#login .login-divider{color:#94a3b8;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase}#login .login-divider:before,#login .login-divider:after{background:#e8e8ec}#login .login-link{color:#4f46e5;font-weight:560}#login .login-input,#login .login-select{height:44px;background:#fff;border:1px solid #e2e8f0;border-radius:9px;font-size:13.5px;color:#0f172a}#login .login-input:focus,#login .login-select:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e524}#login .login-label{color:#64748b;font-weight:560;letter-spacing:.02em}#login .login-submit{height:44px;border-radius:9px;background:#4f46e5;font-size:13.5px;font-weight:600;letter-spacing:0;box-shadow:0 1px 2px #4f46e54d}#login .login-submit:hover{background:#4338ca;box-shadow:0 3px 10px #4f46e54d;transform:none}#login .login-back{color:#64748b;font-weight:560}#login .login-back:hover{color:#4f46e5}#login .lerr{border-radius:9px}#login .login-security{margin-top:26px;padding-top:16px;border-top:1px solid rgba(15,23,42,.06);display:flex;align-items:center;justify-content:center;gap:7px;font-size:11.5px;color:#94a3b8;letter-spacing:.01em}#login .login-security-dot{width:6px;height:6px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px #22c55e26}@media (max-width: 700px){#login .login-card{width:calc(100vw - 32px);padding:32px 24px 26px}}body:has(#login){overflow:hidden}#login{height:100dvh;min-height:0;overflow:hidden}#login .login-page{height:100%;min-height:0;overflow:hidden;padding:16px}html:has(#login),body:has(#login){background:#7fb3e8;width:100%;height:100%;margin:0;padding:0;overflow:hidden}body:has(#login) #root{width:100vw;height:100dvh}#login{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100dvh;padding:0;margin:0;display:block;background:linear-gradient(180deg,var(--sky-top, #4690eb) 0%,var(--sky-bot, #cde8ff) 100%)}.auth-page{position:relative;width:100vw;height:100dvh;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(180deg,var(--sky-top, #4690eb) 0%,var(--sky-bot, #cde8ff) 100%);animation:sky-page-in 1.4s ease both;font-family:Inter,SF Pro Display,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@keyframes sky-page-in{0%{opacity:0}to{opacity:1}}.sky-scene{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.sky-sun{position:absolute;left:var(--sun-x, 50%);top:var(--sun-y, 22%);width:340px;height:340px;margin:-170px 0 0 -170px;border-radius:50%;opacity:var(--sun-o, 1);background:radial-gradient(closest-side,rgba(255,252,240,.95) 0%,rgba(255,236,190,calc(.55 + var(--sun-warm, 0) * .2)) 22%,rgba(255,200,130,calc(.22 + var(--sun-warm, 0) * .22)) 46%,transparent 72%);filter:blur(2px);transform:translate3d(calc(var(--mx, 0) * -14px),calc(var(--my, 0) * -10px),0);transition:none;animation:sky-sun-breathe 9s ease-in-out infinite;will-change:transform,opacity}@keyframes sky-sun-breathe{0%,to{scale:1}50%{scale:1.05}}.sky-rays{position:absolute;left:var(--sun-x, 50%);top:var(--sun-y, 22%);width:900px;height:900px;margin:-450px 0 0 -450px;opacity:var(--rays-o, .4);background:repeating-conic-gradient(from 0deg,rgba(255,250,230,.1) 0deg 7deg,transparent 7deg 24deg);border-radius:50%;mask-image:radial-gradient(closest-side,black 8%,transparent 62%);-webkit-mask-image:radial-gradient(closest-side,black 8%,transparent 62%);animation:sky-rays-turn 90s linear infinite;transform:translate3d(calc(var(--mx, 0) * -10px),calc(var(--my, 0) * -8px),0);will-change:transform,opacity}@keyframes sky-rays-turn{0%{rotate:0deg}to{rotate:360deg}}.sky-flare{position:absolute;top:0;right:0;bottom:0;left:0;opacity:var(--flare-o, 0)}.sky-flare i{position:absolute;border-radius:50%;background:radial-gradient(closest-side,rgba(255,210,150,.5),transparent 72%)}.sky-flare i:nth-child(1){width:90px;height:90px;left:62%;top:46%}.sky-flare i:nth-child(2){width:46px;height:46px;left:50%;top:56%;background:radial-gradient(closest-side,rgba(255,170,190,.4),transparent 70%)}.sky-flare i:nth-child(3){width:150px;height:150px;left:34%;top:68%;background:radial-gradient(closest-side,rgba(190,150,255,.25),transparent 74%)}.sky-moon{position:absolute;right:16%;top:16%;width:92px;height:92px;border-radius:50%;opacity:var(--moon-o, 0);background:radial-gradient(circle at 34% 32%,#fff,#e8eefb 46%,#c4d2ec);box-shadow:0 0 40px 14px #d6e4ff59,0 0 120px 50px #bed4ff2e,inset -14px -10px 26px #94a8cd8c;transform:translate3d(calc(var(--mx, 0) * -20px),calc(var(--my, 0) * -14px),0);animation:sky-moon-drift 26s ease-in-out infinite;will-change:transform,opacity}@keyframes sky-moon-drift{0%,to{margin-top:0}50%{margin-top:-12px}}.sky-aurora{position:absolute;top:-8%;right:-12%;bottom:-8%;left:-12%;opacity:var(--aurora-o, 0);background:radial-gradient(48% 16% at 34% 22%,rgba(64,227,176,.3),transparent 74%),radial-gradient(42% 13% at 58% 14%,rgba(90,170,255,.26),transparent 72%),radial-gradient(38% 12% at 74% 26%,rgba(160,120,255,.2),transparent 72%);filter:blur(26px);animation:sky-aurora-sway 48s ease-in-out infinite alternate;will-change:transform,opacity}@keyframes sky-aurora-sway{0%{transform:translate3d(-2.5%,0,0) skew(-3deg) scaleY(1)}50%{transform:translate3d(1.5%,1.5%,0) skew(2deg) scaleY(1.14)}to{transform:translate3d(3%,-1%,0) skew(-1.5deg) scaleY(.95)}}.sky-atmo{position:absolute;left:-10%;right:-10%;top:30%;bottom:0;background:linear-gradient(180deg,transparent 0%,rgba(var(--fog-c, 222, 238, 252),.28) 60%,rgba(var(--fog-c, 222, 238, 252),.45) 100%);filter:blur(10px);transform:translate3d(calc(var(--mx, 0) * 4px),calc(var(--my, 0) * 3px),0);will-change:transform}.sky-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.sky-canvas-front{z-index:3;pointer-events:none}.sky-fog{position:absolute;left:-20%;right:-20%;height:46%;bottom:-8%;opacity:var(--fog-o, .25);background:linear-gradient(180deg,transparent 0%,rgba(var(--fog-c, 225, 240, 252),.55) 55%,rgba(var(--fog-c, 225, 240, 252),.75) 100%);filter:blur(22px);will-change:transform}.sky-fog-a{animation:fog-roll 60s ease-in-out infinite alternate}.sky-fog-b{height:30%;bottom:-12%;opacity:calc(var(--fog-o, .25) * .7);animation:fog-roll 42s ease-in-out infinite alternate-reverse}@keyframes fog-roll{0%{transform:translate3d(-4%,6px,0)}to{transform:translate3d(4%,-8px,0)}}.auth-card-wrap{position:relative;z-index:2}.auth-card{width:460px;max-width:calc(100vw - 32px);border-radius:28px;padding:42px 42px 38px;background:#ffffff8c;backdrop-filter:blur(22px) saturate(1.35);-webkit-backdrop-filter:blur(22px) saturate(1.35);border:1px solid rgba(255,255,255,.5);box-shadow:0 20px 60px #14285029,0 0 44px rgba(var(--card-tint, 255, 255, 255),.28),inset 0 1px #fffc,inset 0 -18px 40px rgba(var(--card-tint, 255, 255, 255),.1);position:relative;animation:auth-card-in .9s cubic-bezier(.22,.9,.3,1) .35s both,auth-card-float 7s ease-in-out 1.3s infinite}@keyframes auth-card-in{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}@keyframes auth-card-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.auth-head{margin:-14px 0 26px -12px}.auth-logo-row{display:flex;align-items:center;gap:12px}.auth-logo{width:44px;height:44px;object-fit:contain;filter:drop-shadow(0 6px 14px rgba(20,60,130,.25));animation:auth-logo-in .8s ease .5s both}@keyframes auth-logo-in{0%{opacity:0;transform:translateY(8px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-title{font-size:32px;font-weight:800;letter-spacing:-.035em;line-height:1.05;background:linear-gradient(96deg,#2563eb,#0ea5e9 48%,#10b981);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:auth-logo-in .8s ease .58s both}.auth-subtitle,.auth-foot{display:none}.auth-error{border-radius:14px;background:#fff0f0e6;border:1px solid rgba(220,120,120,.4);color:#a33b3b;font-size:13px;padding:11px 14px;margin-bottom:18px}.auth-note{border-radius:14px;background:#fff9e6eb;border:1px solid rgba(214,178,90,.45);color:#8f6620;font-size:13px;padding:11px 14px;margin-bottom:18px;line-height:1.6}.auth-ms-btn{width:100%;height:58px;border-radius:999px;border:1px solid transparent;background:linear-gradient(#fffffff2,#fffffff2) padding-box,linear-gradient(96deg,#2563eb73,#0ea5e973,#10b98173) border-box;color:#16233c;font-size:16px;font-weight:600;letter-spacing:-.01em;display:flex;align-items:center;justify-content:center;gap:12px;cursor:pointer;position:relative;overflow:hidden;box-shadow:0 4px 16px #1e3c7824;transition:transform .28s ease,box-shadow .28s ease;animation:auth-logo-in .7s ease .7s both}.auth-ms-btn .auth-ms-arrow{color:#7e93b4;transition:transform .28s ease,color .28s ease}.auth-ms-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 34px #1e5ac847,0 0 24px #78b4ff40}.auth-ms-btn:hover:not(:disabled) .auth-ms-arrow{transform:translate(5px);color:#2563eb}.auth-ms-btn:disabled{opacity:.6;cursor:not-allowed}.auth-ms-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:radial-gradient(circle at var(--rx, 50%) var(--ry, 50%),rgba(59,130,246,.2) 0%,transparent 55%);opacity:0;transition:opacity .45s ease;pointer-events:none}.auth-ms-btn:active:after{opacity:1;transition:opacity 0s}.auth-divider{display:flex;align-items:center;gap:14px;margin:22px 0;color:#3246648c;font-size:11.5px;font-weight:600;letter-spacing:.14em;animation:auth-logo-in .7s ease .8s both}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(60,100,180,.3))}.auth-divider:after{background:linear-gradient(90deg,rgba(60,100,180,.3),transparent)}.auth-ghost-btn{width:100%;height:50px;border-radius:999px;border:1px solid rgba(37,99,235,.4);background:#ffffff59;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#1d4fd8;font-size:14.5px;font-weight:600;letter-spacing:-.01em;display:flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;transition:background .25s ease,border-color .25s ease,transform .25s ease,box-shadow .25s ease;animation:auth-logo-in .7s ease .9s both}.auth-ghost-btn:hover{background:#ffffff8c;border-color:#2563eb99;transform:translateY(-2px);box-shadow:0 8px 24px #285abe2e}.auth-back-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;padding:0;margin-bottom:18px;font-size:13px;font-weight:600;color:#324664b3;cursor:pointer;font-family:inherit;transition:color .2s ease}.auth-back-btn:hover{color:#2563eb}.auth-field{display:flex;flex-direction:column;gap:6px;margin-bottom:13px}.auth-label{font-size:12px;font-weight:600;color:#283c5abf;letter-spacing:.01em}.auth-input,.auth-select{height:42px;border-radius:999px;border:1px solid rgba(70,100,150,.28);background:#fffc;padding:0 18px;font-size:13.5px;color:#16233c;font-family:inherit;outline:none;width:100%;box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.auth-input::placeholder{color:#465f8280}.auth-input:focus,.auth-select:focus{border-color:#2563ebb3;background:#fffffff2;box-shadow:0 0 0 4px #3b82f629}.auth-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%23516481' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 18px center;cursor:pointer}.auth-submit{width:100%;height:46px;margin-top:6px;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff;font-size:14.5px;font-weight:600;letter-spacing:-.01em;cursor:pointer;font-family:inherit;box-shadow:0 10px 26px #1e5ac859;transition:transform .25s ease,box-shadow .25s ease}.auth-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 34px #1e5ac873}.auth-submit:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.auth-page :focus-visible{outline:none;box-shadow:0 0 0 4px #3b82f659}@media (max-width: 620px){.auth-card{padding:30px 22px 28px;border-radius:22px}.auth-title{font-size:26px}.auth-ms-btn{height:52px;font-size:14.5px}.sky-rays{width:560px;height:560px;margin:-280px 0 0 -280px}.c-front{display:none}}@media (prefers-reduced-motion: reduce){.sky-sun,.sky-rays,.sky-moon,.sky-aurora,.sky-fog,.sky-cloud,.sky-cloud i,.sky-clouds .sky-cloud,.sky-birds,.c-front,.auth-card,.auth-logo,.auth-title,.auth-ms-btn,.auth-divider,.auth-ghost-btn{animation:none!important}.auth-page{animation:none}}:root{--bg-0:#fafafa;--bg-1:#f4f4f5;--bg-2:#e4e4e7;--surface:#ffffff;--surface-soft:#f8fafc;--surface-muted:#f1f5f9;--surface-border:#e2e8f0;--text:#334155;--text-bright:#0f172a;--muted:#64748b;--faint:#94a3b8;--purple:#4F46E5;--indigo:#4F46E5;--indigo-soft:#eef2ff;--lavender:#e0e7ff;--mint:#dcfce7;--peach:#ffedd5;--button-start:#6366f1;--button-end:#4F46E5;--glow-teal:#c7d2fe;--glow-cyan:#e0e7ff;--accent-teal:#4F46E5;--glow-violet:#4F46E5;--green:#16a34a;--teal:#0d9488;--blue:#4F46E5;--amber:#d97706;--red:#dc2626;--line:#e8e8ec;--line-bright:#eef0f4;--shadow:0 1px 2px rgba(15,23,42,.04), 0 1px 3px rgba(15,23,42,.06);--shadow-md:0 4px 12px rgba(15,23,42,.06), 0 1px 3px rgba(15,23,42,.05);--shadow-lg:0 12px 32px rgba(15,23,42,.12), 0 2px 6px rgba(15,23,42,.06);--ring:0 0 0 3px rgba(79,70,229,.14);--r:10px;--r-lg:14px;--mono:"SFMono-Regular",ui-monospace,"Cascadia Code",Consolas,monospace;--sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}@keyframes aurora-drift{0%{background-position:0% 0%}50%{background-position:100% 100%}to{background-position:0% 0%}}@keyframes glow-pulse{0%,to{opacity:1}50%{opacity:.9}}@keyframes fade-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--sans);background:radial-gradient(circle at top left,rgba(24,144,255,.1),transparent 24%),radial-gradient(circle at top right,rgba(82,196,26,.09),transparent 20%),radial-gradient(circle at bottom left,rgba(24,144,255,.08),transparent 20%),var(--bg-0);min-height:100vh;color:var(--text);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;background:none}input,textarea,select{font-family:inherit;font-size:14px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.glass{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--r-lg);box-shadow:var(--shadow);transition:all .18s ease}.glass:hover{transform:translateY(-1px);box-shadow:0 32px 64px #1890ff1a}#login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top left,rgba(24,144,255,.1),transparent 24%),radial-gradient(circle at bottom right,rgba(255,196,192,.16),transparent 22%),var(--bg-0);padding:20px}.lcard{width:100%;max-width:400px;background:var(--surface);border:1px solid rgba(24,144,255,.1);border-radius:var(--r-lg);padding:32px;box-shadow:var(--shadow);animation:fade-rise .5s ease}.lbrand{display:flex;align-items:center;gap:9px;font-weight:700;font-size:18px;margin-bottom:4px;color:var(--text-bright)}.lbrand .dot{width:11px;height:11px;border-radius:4px;background:linear-gradient(135deg,var(--button-start),var(--button-end));box-shadow:0 0 12px #8b78ff38}.lsub{color:var(--muted);font-size:13px;margin-bottom:22px}.ltabs{display:flex;background:#ffffff14;border-radius:var(--r);padding:4px;gap:3px;margin-bottom:20px}.ltabs button{flex:1;padding:9px;border-radius:12px;font-size:13px;font-weight:560;color:var(--muted);transition:.15s}.ltabs button.on{background:#8b78ff29;color:var(--text-bright);box-shadow:0 0 0 1px #8b78ff33;font-weight:600}.login-selection{width:100%;max-width:1160px;padding:0;margin:0 auto;position:relative}.login-hero{display:grid;grid-template-columns:1fr;gap:28px;align-items:center;margin-bottom:24px;position:relative}.hero-copy{padding:30px 0}.hero-copy p{max-width:560px;color:var(--muted);font-size:15px;line-height:1.8;margin-top:14px}.login-selection{position:relative}.login-husky-float{position:absolute;top:10px;right:-18px;width:260px;max-width:32%;pointer-events:none;z-index:2}.login-husky-float img{width:100%;height:auto;object-fit:contain;display:block;margin-bottom:-14px}.login-portals{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:20px;position:relative;z-index:1}.login-topbar{display:flex;flex-direction:column;align-items:flex-start;gap:12px;max-width:620px}.login-topbar .lbrand{margin-bottom:0}.login-welcome{font-size:32px;font-weight:800;line-height:1.05;color:var(--text-bright);letter-spacing:-.03em;text-shadow:0 0 20px rgba(139,120,255,.08)}.login-portals{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:20px}.portal{display:flex;flex-direction:column;justify-content:space-between;min-height:250px;padding:24px;border-radius:28px;background:var(--surface);border:1px solid rgba(24,144,255,.08);box-shadow:0 22px 50px #1890ff14;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease,background .24s ease;text-align:left;color:var(--text-bright)}.portal:hover{transform:translateY(-6px);box-shadow:0 32px 80px #1890ff14;border-color:#8b78ff38;background:#fffffffa}.portal.selected{border-color:#8b78ff59;background:linear-gradient(180deg,#8b78ff14,#fffffffa)}.portal-top{display:flex;align-items:center;gap:14px;margin-bottom:18px}.portal-icon{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border-radius:16px;background:#1890ff14;color:var(--button-end);font-weight:800;font-size:18px;box-shadow:inset 0 0 0 1px #8b78ff14}.portal-subtitle{font-size:13px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700}.portal-title{font-size:20px;font-weight:800;margin-top:6px;color:var(--text-bright)}.portal-desc{color:var(--muted);font-size:14px;line-height:1.75;margin-bottom:18px}.portal-foot{font-size:12px;color:var(--faint);font-weight:700}.login-topbar .lbrand.no-dot .dot{display:none}.login-form-wrapper{width:100%;max-width:560px;display:flex;justify-content:center;position:relative}.login-form-card-frame{position:relative}.login-form-card{position:relative;overflow:visible;padding:32px 34px 36px;max-width:520px;margin:0 auto;background:#fff;border:1px solid rgba(24,144,255,.08);box-shadow:0 24px 60px #6d57f21f;border-radius:36px;z-index:2}.login-form-card--compact{max-width:560px}.login-form-top{display:flex;align-items:center;gap:16px;margin-bottom:22px;position:relative;z-index:2}.login-form-husky{position:absolute;bottom:-14px;left:-20%;width:320px;max-width:40%;pointer-events:none;z-index:3}.login-form-husky img{width:100%;height:auto;max-height:380px;object-fit:contain;object-position:bottom center;display:block}.login-tile{display:none!important}@media (max-width:960px){.login-hero,.login-portals{grid-template-columns:1fr}.login-form-wrapper{grid-template-columns:1fr;gap:22px}.login-form-card-frame{position:static}.login-form-husky{position:static;bottom:auto;left:auto;width:100%;max-width:240px;margin:0 auto 14px}.login-form-husky img{height:auto;max-height:240px}.login-husky-float{display:none}}.login-tile:hover{transform:translateY(-4px);background:#8b78ff29;box-shadow:0 24px 60px #00000059,0 0 20px #8b78ff33;border-color:#8b78ff59}.login-tile:active{transform:translateY(0);background:#8b78ff33;border-color:#8b78ff66}.login-tile.selected{border-color:#8b78ff80;background:#8b78ff33;box-shadow:0 0 0 2px #8b78ff40,0 24px 60px #00000059}.login-tile-title{font-size:22px;font-weight:700;margin-bottom:12px;color:var(--button-end);text-shadow:0 0 12px rgba(139,120,255,.3)}.login-tile-desc{font-size:15px;line-height:1.7;color:#fffc}.login-tile-footer{margin-top:18px;font-size:13px;font-weight:700;color:var(--muted)}.login-tile-footer.selected{color:var(--button-end)}.field{margin-bottom:14px}.field label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:6px}.field input{width:100%;padding:11px 13px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:12px;outline:none;color:var(--text);transition:.15s}.field input::placeholder{color:var(--faint)}.field input:focus{border-color:#8b78ff66;box-shadow:0 0 0 3px #1890ff14,inset 0 0 10px #8b78ff0d;background:#ffffff1a}.lbtn{width:100%;background:linear-gradient(135deg,var(--button-start),var(--button-end));color:#fff;padding:13px;border-radius:12px;font-weight:620;font-size:14.5px;margin-top:6px;transition:.15s;box-shadow:0 0 20px #8b78ff4d;border:1px solid rgba(255,255,255,.1)}.lbtn:hover{box-shadow:0 0 30px #8b78ff80,0 4px 12px #0000004d;transform:translateY(-1px)}.lhint{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}.lhint .ht{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--faint);font-weight:650;margin-bottom:8px}.demo{display:flex;flex-wrap:wrap;gap:6px}.demo button{font-size:12px;padding:6px 10px;border-radius:10px;border:1px solid rgba(255,255,255,.12);color:var(--text);background:#ffffff0a;transition:.12s}.demo button:hover{background:#1890ff14;border-color:#8b78ff38}.lerr{background:#ff525226;color:var(--red);font-size:12.5px;padding:9px 12px;border-radius:12px;margin-bottom:14px;display:none;border:1px solid rgba(255,82,82,.3)}.lerr.show{display:block}.ext-note{display:none;font-size:12.5px;color:var(--muted);background:#ffc1071a;border-radius:12px;padding:9px 12px;margin-bottom:14px;border:1px solid rgba(255,193,7,.2)}.ext-note.show{display:block}#app{display:none}#app.show{display:block}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;background:linear-gradient(120deg,#ede9ff,#e7f0ff 55%,#e3f6ff);color:var(--text-bright);padding:18px 22px;min-height:72px;border-bottom:1px solid rgba(109,87,242,.14);box-shadow:0 16px 40px #634aff1a}.rogue-btn{font-size:13px;font-weight:700;color:var(--button-end);border:1px solid rgba(139,120,255,.18);background:#d8c0ff2e;padding:10px 16px;border-radius:18px;transition:.2s}.rogue-btn:hover{background:#8b78ff2e}.launch-popup{position:absolute;top:90px;right:28px;z-index:40;width:min(360px,calc(100vw - 32px))}.launch-popup-card{background:var(--surface);border:1px solid rgba(24,144,255,.1);border-radius:26px;box-shadow:0 28px 80px #1890ff14;padding:22px;display:grid;gap:18px}.launch-asset{width:100%;border-radius:22px;object-fit:contain;box-shadow:0 28px 70px #1890ff14}.launch-copy{display:grid;gap:10px}.launch-title{font-size:18px;font-weight:800;color:var(--text-bright)}.launch-text{color:var(--muted);font-size:14px;line-height:1.6}.launch-message{color:var(--text);font-size:13px;padding:12px 14px;border-radius:18px;background:#8b78ff14;border:1px solid rgba(139,120,255,.1)}.launch-help{padding:16px 18px;border-radius:24px;background:#34c8dc17;border:1px solid rgba(52,200,220,.2);display:grid;gap:10px;color:var(--text)}.launch-help-details{padding:14px 16px;border-radius:18px;background:#fffffff5;border:1px solid rgba(24,144,255,.08);color:var(--text);font-size:13px;line-height:1.7}.launch-help .help-toggle{font-size:13px;color:var(--button-end);font-weight:700;padding:0;text-align:left;display:inline-flex;align-items:center;gap:6px}.launch-actions{display:grid;gap:10px}.topbar .brand{font-weight:700;display:flex;align-items:center;gap:10px;color:var(--text-bright);font-size:20px}.topbar .brand-logo{width:40px;height:40px;border-radius:8px;object-fit:contain}.topbar .brand-title{display:flex;flex-direction:column;line-height:1.1}.topbar .brand-title span{font-size:18px;font-weight:800}.topbar .brand-title small{font-size:11px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-top:2px}.topbar .spacer{flex:1}.topbar .badge{font-size:11px;background:var(--lavender);padding:8px 14px;border-radius:999px;font-weight:700;color:var(--purple);border:1px solid rgba(139,120,255,.2)}.topbar .who{font-size:12.5px;color:var(--muted)}.topbar .out{font-size:12.5px;color:var(--text-bright);border:1px solid rgba(99,74,255,.16);padding:10px 14px;border-radius:16px;transition:.15s;background:var(--surface-soft)}.topbar .out:hover{background:var(--surface);border-color:#634aff38}.shell{display:grid;grid-template-columns:250px 1fr;min-height:calc(100vh - 72px);background:var(--bg-0)}.shell.nonav{grid-template-columns:1fr}.side{background:var(--surface);border-right:1px solid var(--line);border-radius:0 26px 26px 0;color:var(--muted);padding:20px 16px;display:flex;flex-direction:column;gap:8px;box-shadow:8px 0 40px #634aff0d}.side .grp{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin:16px 10px 6px}.side a{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:18px;color:var(--text-bright);font-size:14px;font-weight:560;transition:all .18s ease;cursor:pointer;-webkit-user-select:none;user-select:none}.side a .ic{width:18px;text-align:center;opacity:.78}.side a:hover{background:var(--surface-soft);color:var(--text-bright)}.side a.on{background:linear-gradient(135deg,#1890ff14,#6657f51f);color:var(--text-bright);font-weight:700;border-left:4px solid var(--button-end);padding-left:12px;box-shadow:inset 0 0 0 1px #1890ff14}.side .uplug{margin-top:auto;background:var(--surface-soft);border-radius:18px;padding:16px 14px;font-size:13px;color:var(--muted);border:1px solid rgba(24,144,255,.08);transition:.15s}.side .uplug:hover{background:#f4f1ff}.side .uplug b{color:var(--button-end);display:block;font-size:14px;margin-bottom:4px}.work{padding:28px 32px;overflow:auto;background:linear-gradient(180deg,#ffffffbf,#f8f6fff2)}.ph{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:14px}.ph h1{font-size:28px;font-weight:800;letter-spacing:-.04em;color:var(--text-bright)}.ph p{color:var(--muted);font-size:14px;margin-top:4px;max-width:640px}.ph .act{display:flex;gap:10px;flex-wrap:wrap}.dashboard-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;margin-bottom:28px;padding:28px 30px;background:linear-gradient(135deg,#b58dff29,#6d57f21f);border:1px solid rgba(24,144,255,.1);border-radius:var(--r-lg);box-shadow:var(--shadow)}.dashboard-hero h2{font-size:30px;font-weight:800;line-height:1.05;color:var(--text-bright);margin-top:12px}.dashboard-hero p{max-width:660px;color:var(--muted);margin-top:10px;font-size:15px}.hero-pill{display:inline-flex;padding:8px 14px;border-radius:999px;font-size:12px;font-weight:700;color:var(--button-end);background:#b58dff29;border:1px solid rgba(109,87,242,.18)}.hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.hero-actions .btn{min-width:170px}.btn{background:linear-gradient(135deg,var(--button-start),var(--button-end));color:#fff;padding:12px 18px;border-radius:22px;font-size:14px;font-weight:700;transition:all .18s ease;border:1px solid rgba(99,74,255,.18);box-shadow:0 18px 40px #634aff29}.btn:hover{box-shadow:0 22px 50px #634aff3d;transform:translateY(-2px)}.btn.ghost{background:var(--surface-soft);color:var(--text-bright);border:1px solid rgba(99,74,255,.16)}.btn.ghost:hover{background:var(--surface);border-color:#634aff38;box-shadow:0 12px 24px #1890ff14}.btn.green{background:linear-gradient(135deg,var(--button-start),var(--button-end));box-shadow:0 0 20px #8b78ff59}.btn.sm{padding:7px 12px;font-size:12.5px}.btn.danger{background:#ff525233;color:var(--red);border:1px solid rgba(255,82,82,.3);box-shadow:0 0 15px #ff525233}.btn.danger:hover{background:#ff52524d;box-shadow:0 0 25px #ff525259}.btn.ghost.active{background:linear-gradient(135deg,var(--button-start),var(--button-end));color:#fff;border-color:transparent}.rpt-leave-top-taker{padding:12px 18px 18px;border-top:1px solid var(--surface-border)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--r-lg);padding:20px 22px;box-shadow:var(--shadow);animation:fade-rise .4s ease forwards}.stat .k{font-size:12px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.08em}.stat .v{font-size:28px;font-weight:800;margin-top:10px;color:var(--text-bright)}.stat .d{font-size:13px;color:var(--faint);margin-top:8px}.stat.click{cursor:pointer;transition:all .18s ease}.stat.click:hover{border-color:#8b78ff66;box-shadow:0 12px 32px #0006,0 0 0 1px #8b78ff4d,0 0 20px #8b78ff26;transform:translateY(-2px)}.stat .k{font-size:12px;color:var(--muted);font-weight:550}.stat .v{font-size:25px;font-weight:680;margin-top:7px;letter-spacing:-.5px;color:var(--text-bright);text-shadow:0 0 12px rgba(139,120,255,.15)}.stat .d{font-size:11.5px;margin-top:4px;color:var(--faint)}.stat .d.up{color:var(--button-end)}.stat .d.link{color:var(--accent-teal);font-weight:600}.chip{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:20px;font-size:11.5px;font-weight:600;border:1px solid rgba(255,255,255,.08);transition:.15s}.chip.g{background:#8b78ff33;color:var(--button-end);border-color:#8b78ff4d}.chip.a{background:#ffc10733;color:var(--amber);border-color:#ffc1074d}.chip.r{background:#ff525233;color:var(--red);border-color:#ff52524d}.chip.b{background:#a082ff33;color:var(--accent-teal);border-color:#a082ff4d}.chip.t{background:#8b78ff33;color:var(--button-end);border-color:#8b78ff4d}.chip.p{background:#9a7cff33;color:var(--purple);border-color:#9a7cff4d}.panel{background:var(--surface);border:1px solid rgba(24,144,255,.08);border-radius:var(--r-lg);overflow:hidden;margin-bottom:20px;box-shadow:var(--shadow);animation:fade-rise .5s ease forwards}.panel .pt{padding:18px 20px;border-bottom:1px solid rgba(24,144,255,.08);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.panel .pt h3{font-size:16px;font-weight:700;color:var(--text-bright)}.panel .pt .live{font-size:12px;color:var(--button-end);display:flex;align-items:center;gap:6px;font-weight:600;text-shadow:0 0 8px rgba(139,120,255,.3)}.panel .pt .live i{width:7px;height:7px;border-radius:50%;background:var(--button-end);display:inline-block;animation:pulse 1.6s infinite;box-shadow:0 0 6px #8b78ff99}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 6px #8b78ff99}50%{opacity:.3;box-shadow:0 0 2px #8b78ff4d}}.pbody{padding:18px}.permissions-panel{overflow:hidden;max-height:0;opacity:0;transform:translateY(-8px);transition:all .28s ease}.permissions-panel.open{max-height:720px;opacity:1;transform:translateY(0)}.field-error{color:var(--red);font-size:12px;margin-top:6px}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--faint);font-weight:650;padding:10px 17px;border-bottom:1px solid rgba(255,255,255,.06)}td{padding:11px 17px;border-bottom:1px solid rgba(255,255,255,.04);font-size:13.5px;color:var(--text)}tr:last-child td{border-bottom:none}tbody tr{transition:.1s}tbody tr:hover{background:#8b78ff0d}.ava{width:27px;height:27px;border-radius:12px;background:#8b78ff33;color:var(--button-end);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:650;margin-right:9px;vertical-align:middle;border:1px solid rgba(139,120,255,.3);box-shadow:0 0 8px #8b78ff1a}.nm{font-weight:570}.flash{animation:flash 1.4s ease}@keyframes flash{0%{background:#8b78ff4d}to{background:transparent}}.clockwrap{display:grid;grid-template-columns:1.2fr .9fr;gap:18px;flex-wrap:wrap;align-items:stretch;margin-bottom:16px}.clockcard{background:var(--surface);border:1px solid rgba(24,144,255,.08);border-radius:var(--r-lg);padding:22px;box-shadow:var(--shadow);min-width:0}.manual-card{display:grid;gap:14px}.timesheet-empty{padding:28px 20px;text-align:center}.timesheet-empty .empty-state{display:grid;gap:16px;align-items:center;justify-items:center}.timesheet-empty .empty-emoji{font-size:42px}.timesheet-empty strong{display:block;font-size:18px;color:var(--text-bright);margin-bottom:8px}.timesheet-empty p{color:var(--muted);max-width:320px}.entry .chip{padding:6px 12px;font-size:12px}.entry .edesc{color:var(--text)}.entry .etime{color:var(--muted)}.entry .mono{color:var(--button-end)}.entry.head{background:#8b78ff0a;border-bottom:1px solid rgba(255,255,255,.06)}.entry.head div{color:var(--muted)}.timer{font-family:var(--mono);font-size:42px;font-weight:680;letter-spacing:-1.5px;text-align:center;margin:6px 0;color:var(--button-end);text-shadow:0 0 20px rgba(139,120,255,.4)}.timer.run{color:var(--button-end)}.desc-in{width:100%;padding:11px 13px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:12px;outline:none;resize:vertical;min-height:44px;color:var(--text);transition:.15s}.desc-in::placeholder{color:var(--faint)}.desc-in:focus{border-color:#8b78ff66;box-shadow:0 0 0 3px #8b78ff26,inset 0 0 10px #8b78ff0d;background:#ffffff14}.timer-btns{display:flex;gap:8px;margin-top:12px}.timer-btns button{flex:1;padding:12px;border-radius:14px;font-weight:620;font-size:14px;color:#fff;border:1px solid rgba(255,255,255,.1)}.start{background:linear-gradient(135deg,var(--button-start),var(--button-end));box-shadow:0 0 20px #8b78ff59}.stop{background:linear-gradient(135deg,#c0392b,#ff5252);box-shadow:0 0 20px #ff525259}.timer-btns button:hover{transform:translateY(-2px)}.tabs{display:flex;gap:4px;background:var(--surface-soft);border:1px solid rgba(24,144,255,.08);padding:4px;border-radius:14px;margin-bottom:18px;width:fit-content}.tabs button{padding:8px 16px;border-radius:11px;font-size:13px;font-weight:560;color:var(--muted);transition:.15s}.tabs button.on{background:#8b78ff29;color:var(--button-end);box-shadow:0 0 12px #8b78ff2e;border:1px solid rgba(99,74,255,.18)}.entry{display:grid;grid-template-columns:120px 1fr 90px 70px 60px;gap:10px;align-items:center;padding:11px 17px;border-bottom:1px solid rgba(255,255,255,.04);font-size:13.5px}.entry.head{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--faint);font-weight:650}.entry:last-child{border-bottom:none}.entry .etime{font-family:var(--mono);font-size:12.5px;color:var(--muted)}.entry .edesc{font-weight:500;color:var(--text)}.entry .proj{font-size:11px;color:var(--faint)}.entry button{color:var(--faint);font-size:13px;padding:3px 5px;border-radius:6px;transition:.15s}.entry button:hover{background:#8b78ff26;color:var(--button-end)}.daybar{padding:10px 17px;background:#8b78ff0f;font-size:12.5px;color:var(--muted);display:flex;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.06);border-left:3px solid var(--button-end)}.daybar b{color:var(--text-bright)}.bf-send{max-width:420px;margin:0 auto;text-align:center;padding:24px}.bf-send .amt{display:flex;align-items:center;justify-content:center;gap:8px;margin:14px 0}.bf-send .amt span{font-size:30px;font-weight:680;color:var(--text);text-shadow:0 0 12px rgba(139,120,255,.2)}.bf-send .amt input::-webkit-outer-spin-button,.bf-send .amt input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.bf-send .amt input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.bf-send .amt input{width:140px;font-size:38px;font-weight:720;text-align:center;border:none;border-bottom:2px solid var(--glow-teal);outline:none;font-family:var(--mono);padding:4px;background:transparent;color:var(--text-bright)}.bf-send .amt input:focus{border-color:var(--button-end);box-shadow:0 0 12px #a082ff42}.quickrow{display:flex;gap:8px;justify-content:center;margin:10px 0 18px;flex-wrap:wrap}.quickrow button{padding:8px 16px;border:1px solid rgba(24,144,255,.1);border-radius:20px;font-weight:600;font-size:13px;transition:.12s;background:var(--surface-soft);color:var(--text)}.quickrow button:hover{border-color:#8b78ff4d;color:var(--button-end);background:#8b78ff26}.sendbtn{width:100%;background:linear-gradient(135deg,var(--button-start),var(--button-end));color:#fff;padding:15px;border-radius:14px;font-weight:680;font-size:16px;transition:.15s;border:1px solid rgba(255,255,255,.1);box-shadow:0 0 20px #8b78ff4d}.sendbtn:hover{box-shadow:0 0 30px #8b78ff80,0 4px 12px #0000004d;transform:translateY(-2px)}.sendbtn:disabled{background:#ffffff0f;box-shadow:none;cursor:not-allowed;opacity:.5}.capnote{font-size:12px;color:var(--faint);margin-top:10px}.sent-ok{text-align:center;padding:30px}.sent-ok .mark{width:74px;height:74px;border-radius:50%;background:#8b78ff33;color:var(--button-end);font-size:38px;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;box-shadow:0 0 30px #8b78ff4d}.sent-ok h2{font-size:24px;font-weight:680;color:var(--text-bright)}.locked{text-align:center;padding:30px}.locked .mark{width:74px;height:74px;border-radius:50%;background:#ffc10733;color:var(--amber);font-size:34px;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;box-shadow:0 0 20px #ffc10733}.locked h2{font-size:20px;font-weight:680;color:var(--text-bright)}.bars{display:flex;align-items:flex-end;gap:14px;height:180px;padding:18px 6px 0}.barcol{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;justify-content:flex-end}.barcol .bk{width:100%;max-width:54px;border-radius:12px 12px 0 0;transition:height .6s;background:linear-gradient(180deg,var(--glow-cyan) 0%,var(--accent-teal) 100%);box-shadow:0 0 20px #8b78ff66}.barcol .bl{font-size:11.5px;color:var(--muted);font-weight:550}.barcol .bv{font-size:11px;color:var(--faint);font-family:var(--mono)}.catbreak{padding:6px 17px 16px}.catrow{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.04)}.catrow:last-child{border-bottom:none}.catrow .cn{width:160px;font-weight:560;font-size:13px;color:var(--text)}.catrow .ctrack{flex:1;height:10px;background:#ffffff0f;border-radius:6px;overflow:hidden}.catrow .ctrack i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--accent-teal),var(--glow-cyan));box-shadow:0 0 12px #8b78ff4d}.catrow .camt{width:90px;text-align:right;font-family:var(--mono);font-weight:600;font-size:13px;color:var(--button-end)}.donutwrap{display:flex;align-items:center;gap:24px;padding:18px;flex-wrap:wrap}.donut{flex-shrink:0}.dlegend{display:flex;flex-direction:column;gap:8px}.dlegend .li{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--text)}.dlegend .sw{width:12px;height:12px;border-radius:3px;box-shadow:0 0 8px #8b78ff33}.dlegend .lv{margin-left:auto;font-family:var(--mono);font-weight:600;color:var(--button-end)}.summary-report{background:linear-gradient(180deg,#8b78ff14,#f8f6fff2);min-height:100%;padding:24px 0}.summary-frame{max-width:1280px;margin:0 auto;padding:0 24px}.report-topbar,.report-filterbar,.report-strip,.report-card{background:var(--surface);border:1px solid rgba(99,74,255,.1);border-radius:var(--r-lg);box-shadow:var(--shadow);margin-bottom:16px}.report-topbar,.report-filterbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;flex-wrap:wrap}.report-left,.report-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.report-label{padding:10px 14px;border-radius:14px;background:#1890ff14;color:var(--text-bright);font-weight:700;border:1px solid rgba(139,120,255,.16);font-size:12px}.report-tabs{display:flex;gap:10px}.report-tabs button{padding:10px 14px;border-radius:14px;background:transparent;color:var(--muted);border:none;cursor:pointer;transition:.15s}.report-tabs button.on{color:var(--button-end);background:#8b78ff26;box-shadow:inset 0 0 0 1px #8b78ff40;border-bottom:2px solid var(--glow-teal)}.report-date{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:14px;border:1px solid rgba(24,144,255,.08);background:var(--surface-soft);font-size:13px;color:var(--text)}.icon-btn{width:34px;height:34px;border-radius:14px;background:var(--surface-soft);border:1px solid rgba(24,144,255,.08);display:inline-flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;transition:.15s}.icon-btn:hover{background:#1890ff1a;border-color:#634aff33}.btn.blue{background:linear-gradient(135deg,var(--button-start),var(--button-end));color:#fff;box-shadow:0 0 20px #8b78ff59}.report-filterbar .filter-group{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.report-filterbar select{min-width:130px;padding:10px 12px;border-radius:14px;border:1px solid rgba(24,144,255,.08);background:var(--surface-soft);outline:none;color:var(--text)}.report-strip{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:16px 20px}.strip-left{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--text)}.strip-left strong{font-size:24px;letter-spacing:-.02em;color:var(--button-end);text-shadow:0 0 12px rgba(139,120,255,.2)}.strip-right{display:flex;align-items:center;gap:10px}.switch{position:relative;display:inline-block;width:42px;height:24px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#ffffff14;border-radius:999px;transition:.2s;border:1px solid rgba(255,255,255,.12)}.slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}.switch input:checked+.slider{background:linear-gradient(135deg,var(--button-start),var(--button-end));border-color:#634aff38;box-shadow:0 0 15px #634aff2e}.switch input:checked+.slider:before{transform:translate(18px)}.switch-label{font-size:13px;color:var(--muted)}.report-card{padding:18px}.report-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.report-note{font-size:13px;color:var(--muted)}.report-select{min-width:160px;padding:10px 12px;border-radius:14px;border:1px solid rgba(24,144,255,.08);background:var(--surface-soft);outline:none;color:var(--text)}.chart-axis{display:flex;gap:16px;align-items:flex-end}.y-axis{display:flex;flex-direction:column;justify-content:space-between;padding:8px 0;color:var(--muted);font-size:12px;min-width:70px}.chart-bars{display:flex;align-items:flex-end;gap:12px;flex:1;min-height:280px;padding-bottom:6px}.chart-bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:8px;border-radius:12px;padding:8px 4px;color:#fff;cursor:pointer;transition:.15s;position:relative;min-width:48px;background:linear-gradient(180deg,var(--glow-cyan) 0%,var(--accent-teal) 100%);box-shadow:0 0 16px #8b78ff4d}.chart-bar:hover{transform:scaleY(1.05);box-shadow:0 0 24px #8b78ff80}.chart-bar span{font-family:var(--mono);font-size:12px;color:var(--text)}.chart-bar small{font-size:11px;color:var(--text);opacity:.75}.report-bottom-grid{display:grid;grid-template-columns:1.5fr .9fr;gap:16px}.report-table-panel{background:var(--surface);border:1px solid rgba(24,144,255,.08);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}.report-table-wrap{overflow:auto}.report-table{width:100%;border-collapse:collapse;table-layout:fixed}.report-table th{padding:14px 16px;background:#8b78ff0f;font-size:12px;text-align:left;color:var(--faint);text-transform:uppercase;letter-spacing:.7px;border-bottom:1px solid rgba(255,255,255,.06)}.report-table td{padding:12px 16px;font-size:14px;border-bottom:1px solid rgba(24,144,255,.08);color:var(--text)}.report-table tr:hover{background:#8b78ff0d}.report-table tr.selected{background:#8b78ff1a}.report-table th:first-child,.report-table td:first-child{width:calc(100% - 120px)}.report-table th.right,.report-table td.right{width:120px;white-space:nowrap}.row-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:10px;background:#8b78ff26;color:var(--button-end);font-weight:700;margin-right:8px;font-size:11px}.row-dot{width:10px;height:10px;border-radius:50%;margin-right:8px;flex-shrink:0;background:var(--glow-teal);box-shadow:0 0 6px #8b78ff4d}.row-title{font-weight:600;color:var(--text-bright)}.subheader td{background:#8b78ff0f;font-size:12px;color:var(--muted);padding:10px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.subrow td{padding-left:36px}.report-donut-panel{background:var(--surface);border:1px solid rgba(24,144,255,.08);border-radius:var(--r-lg);padding:18px;display:flex;flex-direction:column;gap:16px;justify-content:center;box-shadow:var(--shadow)}.report-card-body{padding:0}@media (max-width:960px){.report-bottom-grid{grid-template-columns:1fr}.report-filterbar{flex-direction:column;align-items:flex-start}.report-right{justify-content:flex-start}.report-topbar{flex-direction:column;align-items:flex-start}}@media (max-width:900px){.login-form-wrapper{grid-template-columns:1fr}.login-form-card{max-width:100%}.topbar{flex-wrap:wrap;justify-content:center}.launch-popup{position:static;margin:16px auto 0}.launch-popup-card{width:100%}.clockwrap{grid-template-columns:1fr}}.calendar-small{max-width:300px;margin:0 auto}.calendar-small .calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar-small .calendar-cell{aspect-ratio:1;width:100%;padding:0;min-height:auto}.calendar-small .calendar-head{font-size:11px;font-weight:700;color:var(--muted);padding:2px 0 8px}.calendar-small .calendar-day{width:100%;height:100%;border-radius:12px;font-size:12px}.calendar-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.calendar-panel-head h3{margin:0;font-size:1rem}.calendar-panel-head span{display:block;margin-top:4px;color:var(--muted);font-size:.92rem}.calendar-controls{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;width:100%;max-width:100%}.calendar-controls select{min-width:110px;padding:8px 10px;border-radius:12px;border:1px solid rgba(24,144,255,.12);background:var(--surface-soft);color:var(--text);outline:none}.calendar-controls button{padding:8px 10px;border-radius:12px;border:1px solid rgba(24,144,255,.12);background:var(--surface);color:var(--text)}.calendar-controls button:hover{background:#8b78ff14}.calendar-small .calendar-cell.empty{background:transparent}.calendar-small .calendar-cell.cal-future .calendar-day{opacity:.45}.calendar-day{width:100%;height:100%;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;color:var(--muted);background:transparent;border:1px solid transparent;box-sizing:border-box;transition:background .15s,border-color .15s,color .15s}.calendar-day.cal-worked{background:linear-gradient(135deg,#8b78ff40,#8b78ff66);border-color:#8b78ff59;color:var(--button-end)}.calendar-day.cal-leave{background:#ffc1072e;border-color:#ffc10759;color:var(--amber)}.calendar-day.cal-missing{background:#ff52521f;border-color:#ff525240;color:var(--red)}.calendar-day.cal-today{background:var(--button-end);border-color:var(--button-end);color:#fff;box-shadow:0 3px 14px #634aff40}.calendar-day.cal-weekend{background:#94a3b81a;border-color:#94a3b82e;color:var(--faint)}.calendar-day.cal-holiday{background:#9a7cff26;border-color:#9a7cff59;color:var(--purple)}.calendar-legend{display:flex;flex-wrap:wrap;gap:10px 14px;margin-top:14px;padding:0 4px}.detail-grid{display:grid;grid-template-columns:1fr 320px;gap:20px;align-items:start;margin-bottom:18px}.calendar-panel{justify-self:end}.side-drawer{background:var(--surface);border:1px solid rgba(24,144,255,.08);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}.timeline-entry{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.04)}.timeline-entry:last-child{border-bottom:none}.dashboard-page{background:transparent;min-height:100%;padding-bottom:24px}.dashboard-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;min-height:74px;background:var(--surface);border:1px solid rgba(99,74,255,.1);border-radius:var(--r-lg);box-shadow:0 20px 40px #1890ff14}.dashboard-topbar-left{font-size:18px;font-weight:700;color:var(--text-bright);text-shadow:0 0 15px rgba(139,120,255,.15)}.dashboard-topbar-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.dashboard-topbar-right select{min-width:140px;padding:10px 12px;border:1px solid rgba(24,144,255,.08);border-radius:14px;background:var(--surface-soft);outline:none;color:var(--text)}.range-picker{display:flex;align-items:center;gap:8px}.range-picker .icon-btn{width:38px;height:38px;border-radius:14px}.dashboard-export{position:relative}.export-popup{position:absolute;right:0;top:45px;background:var(--surface);border:1px solid rgba(24,144,255,.08);border-radius:16px;box-shadow:0 24px 60px #1890ff14;z-index:10;overflow:hidden}.export-popup button{width:220px;text-align:left;padding:12px 14px;border-radius:0;display:block;border:none;background:transparent;color:var(--text);transition:.15s}.export-popup button:hover{background:#8b78ff26}.dashboard-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.dashboard-kpis .stat{padding:22px 24px;min-height:96px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.dashboard-kpis .stat .k{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.dashboard-kpis .stat .v{font-size:28px;font-weight:700;line-height:1.1;color:var(--button-end);text-shadow:0 0 15px rgba(139,120,255,.2)}.dashboard-grid{display:grid;grid-template-columns:1.45fr .95fr;gap:18px;margin-bottom:18px}.dashboard-grid>div{display:flex;flex-direction:column}.dashboard-left .panel,.dashboard-right .panel{border-radius:var(--r-lg)}.rpt-trend-panel{flex:1;display:flex;flex-direction:column;margin-bottom:0}.rpt-trend-panel .pbody{flex:1;display:flex;flex-direction:column;justify-content:center;gap:14px;min-height:120px}.rpt-leave-top-taker{margin-top:auto}.dashboard-bar-chart{display:flex;gap:18px;padding:8px 14px 18px}.dashboard-bar-chart .y-axis{display:flex;flex-direction:column;justify-content:space-between;color:var(--muted);font-size:12px;min-width:60px}.bar-chart-bars{display:flex;align-items:flex-end;gap:12px;flex:1;min-height:320px}.day-bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px}.bar-label{font-family:var(--mono);font-size:12px;color:var(--text);line-height:1.2}.bar-stack{width:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:14px;overflow:hidden;min-height:220px;position:relative}.bar-segment{width:100%;transition:all .2s ease}.bar-day{font-size:12px;color:var(--muted);font-weight:600}.project-list{display:flex;flex-direction:column;gap:12px}.project-row{display:grid;grid-template-columns:1.75fr 1fr;gap:10px;align-items:center;padding:14px 0;border-bottom:1px solid rgba(99,74,255,.1)}.project-row:last-child{border-bottom:none}.project-name{font-weight:600;margin-bottom:6px;color:var(--text)}.project-client{font-size:12px;color:var(--muted)}.project-stats{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:center}.project-duration{font-family:var(--mono);font-size:13px;color:var(--button-end);font-weight:700}.project-bar{width:100%;background:#ffffff0a;border-radius:10px;overflow:hidden;height:9px}.project-bar-fill{height:100%;border-radius:10px;background:linear-gradient(90deg,var(--accent-teal),var(--glow-cyan));box-shadow:0 0 8px #8b78ff4d}.project-percent{font-size:12px;color:var(--muted);white-space:nowrap}.team-activity-panel .pt{position:relative}.team-activity-panel .pin-icon{position:absolute;right:18px;top:18px;font-size:16px}.team-table{width:100%;border-collapse:collapse}.team-table th{padding:16px 18px;background:var(--surface-soft);font-size:12px;letter-spacing:.05em;color:var(--faint);cursor:pointer;border-bottom:1px solid rgba(24,144,255,.08)}.team-table td{padding:16px 18px;border-bottom:1px solid rgba(255,255,255,.04);color:var(--text)}.status-running{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--button-end)}.running-dot{color:var(--button-end);font-size:14px;line-height:1;animation:glow-pulse 2s infinite}.team-total{font-family:var(--mono);font-weight:700;margin-bottom:6px;color:var(--button-end);text-shadow:0 0 8px rgba(139,120,255,.2)}.team-progress-bar{width:100%;height:8px;background:#1890ff14;border-radius:99px;overflow:hidden}.team-progress-bar div{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent-teal),var(--glow-cyan));box-shadow:0 0 8px #8b78ff4d}@media (max-width:1120px){.dashboard-grid,.dashboard-kpis{grid-template-columns:1fr}.dashboard-topbar{flex-direction:column;align-items:flex-start}.dashboard-topbar-right{width:100%;justify-content:flex-start}}@media (max-width:760px){.dashboard-kpis,.dashboard-topbar-right{flex-direction:column}.team-table th,.team-table td{font-size:12px;padding:12px}}.timeline-entry time{font-size:12px;color:var(--muted)}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:10px;padding:0 4px}.calendar-head{text-align:center;font-size:10.5px;font-weight:700;color:var(--faint);padding:4px 0 8px}.calendar-cell{aspect-ratio:1;padding:0;background:transparent;display:flex;align-items:center;justify-content:center;position:relative;border-radius:50%}.calendar-cell.empty{background:transparent}.calendar-cell.cal-future .calendar-day{opacity:.38}.calendar-day{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px;color:var(--muted);background:transparent;border:1.5px solid transparent;box-sizing:border-box;transition:background .13s,border-color .13s;cursor:pointer}.calendar-cell:hover .calendar-day{background:#8b78ff14;border-color:#8b78ff33}.calendar-day.cal-worked{background:#8b78ff2e;border-color:#8b78ff61;color:var(--button-end);font-weight:700}.calendar-day.cal-leave{background:#ffc1072e;border-color:#ffc10766;color:var(--amber);font-weight:700}.calendar-day.cal-missing{background:#ff525226;border-color:#ff525252;color:var(--red);font-weight:700}.calendar-day.cal-today{background:var(--button-end);border-color:var(--button-end);color:#fff;font-weight:800;box-shadow:0 2px 10px #634aff73}.calendar-day.cal-weekend{background:transparent;border-color:transparent;color:var(--faint)}.calendar-day.cal-holiday{background:#9a7cff26;border-color:#9a7cff4d;color:var(--purple);font-weight:700}.calendar-legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:14px;padding:0 4px}.calendar-legend-item{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--muted);white-space:nowrap}.calendar-swatch{width:13px;height:13px;border-radius:50%;display:inline-block;flex-shrink:0;border:1.5px solid transparent}.calendar-swatch.cal-today{background:var(--button-end);border-color:var(--button-end)}.calendar-swatch.cal-missing{background:#ff5252;border-color:#ff5252}.calendar-swatch.cal-leave{background:#ffc107;border-color:#ffc107}.calendar-swatch.cal-weekend{background:#94a3b866;border-color:#94a3b899}.calendar-swatch.cal-holiday{background:#9a7cff;border-color:#9a7cff}.dashboard-row{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px;margin-bottom:18px}.summary-card{background:var(--surface);border:1px solid rgba(24,144,255,.08);border-radius:var(--r-lg);padding:18px;box-shadow:var(--shadow)}.summary-card .k{font-size:12px;color:var(--muted);font-weight:600}.summary-card .v{font-size:22px;font-weight:700;margin-top:8px;color:var(--button-end);text-shadow:0 0 10px rgba(139,120,255,.15)}.summary-card .d{margin-top:8px;font-size:12px;color:var(--faint)}.toggle-group{display:flex;gap:6px;align-items:center;margin-right:8px}.toggle-group button{padding:8px 12px;border-radius:10px;border:1px solid rgba(24,144,255,.1);background:var(--surface-soft);color:var(--muted);font-size:12.5px;transition:.15s}.toggle-group button.on{background:#8b78ff26;color:var(--button-end);border-color:#8b78ff4d}.calendar-week{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-top:14px}.calendar-week-cell{background:#8b78ff1a;border:1px solid rgba(99,74,255,.16);border-radius:16px;padding:14px;min-height:96px;display:flex;flex-direction:column;justify-content:space-between;gap:10px}.calendar-week-cell.today{border-color:#8b78ff66;background:#8b78ff26;box-shadow:0 0 20px #8b78ff33}.calendar-week-cell .day-label{font-size:12px;color:var(--muted);font-weight:700}.calendar-week-cell .hours{font-size:18px;font-weight:700;color:var(--button-end);text-shadow:0 0 8px rgba(139,120,255,.2)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:20px;z-index:60;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.modal-box{width:min(720px,100%);background:var(--surface);border-radius:var(--r-lg);overflow:hidden;box-shadow:0 40px 100px #1890ff1a;border:1px solid rgba(24,144,255,.08);animation:fade-rise .4s ease}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.06)}.modal-content{padding:20px;max-height:70vh;overflow:auto;color:var(--text)}.modal-content .timeline-entry{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.04)}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters select,.filters input{padding:8px 11px;border:1px solid rgba(24,144,255,.08);border-radius:9px;outline:none;background:var(--surface-soft);color:var(--text)}.billform{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding:17px}.billform .fl{display:flex;flex-direction:column;gap:6px}.billform .fl.full{grid-column:1/-1}.billform label{font-size:12px;font-weight:600;color:var(--muted)}.billform input,.billform select{padding:10px 12px;border:1px solid rgba(24,144,255,.08);border-radius:10px;outline:none;background:var(--surface-soft);color:var(--text)}.billform input::placeholder,.billform select::placeholder{color:var(--faint)}.billform input:focus,.billform select:focus{border-color:#8b78ff66;box-shadow:0 0 0 3px #8b78ff26}.drop{border:1.5px dashed rgba(139,120,255,.3);border-radius:11px;padding:18px;text-align:center;color:var(--faint);font-size:13px;background:#8b78ff0f}.note{background:#a082ff1a;border:1px solid rgba(160,130,255,.2);border-left:3px solid var(--accent-teal);border-radius:0 var(--r) var(--r) 0;padding:12px 15px;font-size:12.5px;color:var(--text);margin-bottom:16px}.note b{color:var(--accent-teal)}@media (max-width:820px){.shell{grid-template-columns:1fr}.side{flex-direction:row;flex-wrap:wrap}.side .grp,.side .uplug{display:none}.stats,.billform{grid-template-columns:1fr 1fr}.entry{grid-template-columns:90px 1fr 70px 50px 44px}}@media (max-width:520px){.stats{grid-template-columns:1fr}}.ts-root{max-width:1060px;margin:0 auto}.ts-page-head{margin-bottom:14px}.ts-page-title{font-size:26px;font-weight:800;color:var(--text, #23203a);margin:0}.ts-page-sub{color:var(--muted, #6e6a7f);font-size:13px;margin:4px 0 0}.tabs{display:flex;gap:6px;margin-bottom:16px}.tabs button{border:none;background:transparent;padding:8px 18px;border-radius:10px;font-size:13.5px;font-weight:600;color:var(--muted, #6e6a7f);cursor:pointer;font-family:inherit}.tabs button.on{background:#fff;color:var(--purple, #6d57f2);box-shadow:0 2px 10px #6d57f21f}.ts-live{display:flex;align-items:center;justify-content:space-between;border-radius:18px;padding:18px 22px;margin-bottom:14px;background:linear-gradient(120deg,#f4f0ff,#fff);border:1.5px solid rgba(109,87,242,.25)}.ts-live-paused{border-color:#f59e0b66;background:linear-gradient(120deg,#fff8ec,#fff)}.ts-live-badge{display:flex;gap:8px;align-items:center;margin-bottom:6px}.ts-live-timer{font-size:34px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--text, #23203a)}.ts-live-desc{color:var(--muted, #6e6a7f);font-size:13px;margin-top:2px}.ts-live-since{color:var(--faint, #a5a1b5);font-size:12px;margin-top:4px}.pulse-dot{width:14px;height:14px;border-radius:50%;background:#22c55e;display:inline-block;animation:tspulse 1.4s ease-in-out infinite}.pause-dot{width:14px;height:14px;border-radius:50%;background:#f59e0b;display:inline-block}@keyframes tspulse{0%,to{box-shadow:0 0 #22c55e80}50%{box-shadow:0 0 0 9px #22c55e00}}.ts-manual-bar{margin-bottom:14px}.ts-manual-toggle{border:1.5px dashed rgba(109,87,242,.4);background:transparent;color:var(--purple, #6d57f2);border-radius:12px;padding:9px 18px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}.ts-manual-toggle:hover{background:#6d57f20f}.ts-manual-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}@media (max-width: 860px){.ts-manual-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 520px){.ts-manual-grid{grid-template-columns:1fr}}.ts-entries{display:flex;flex-direction:column;gap:6px}.daybar{display:flex;justify-content:space-between;padding:10px 6px 6px;color:var(--muted, #6e6a7f);font-size:13px}.ts-cards{display:flex;flex-direction:column;gap:10px}.ts-card{background:#fff;border-radius:16px;padding:14px 18px;box-shadow:0 2px 12px #23203a0f;transition:box-shadow .15s,transform .15s}.ts-card:hover{box-shadow:0 4px 18px #23203a1a;transform:translateY(-1px)}.ts-card-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}.ts-card-date-tag{font-size:11.5px;font-weight:700;color:var(--purple, #6d57f2);background:#6d57f217;border-radius:8px;padding:3px 9px}.ts-card-time{display:flex;align-items:baseline;gap:8px}.ts-time-val{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text, #23203a)}.ts-arrow{color:var(--faint, #a5a1b5);font-size:12px}.ts-card-dur{margin-left:auto;font-weight:800;color:var(--purple, #6d57f2);font-size:15px}.ts-card-desc{color:var(--muted, #6e6a7f);font-size:13px;margin-top:6px}.ts-card-actions{display:flex;gap:8px;margin-top:10px}.ts-act-btn{border:none;background:#6d57f212;color:var(--purple, #6d57f2);border-radius:8px;padding:5px 12px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}.ts-act-btn.danger{background:#ef444412;color:#ef4444}.ts-card-edit{display:flex;flex-direction:column;gap:8px}.ts-edit-btns{display:flex;gap:8px}.ts-edit-time-row{display:flex;align-items:center;gap:8px}.ts-edit-time-row .login-input{flex:1;min-width:0}.status-pill{font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px}.pill-run{background:#22c55e1f;color:#16a34a}.pill-pause{background:#f59e0b24;color:#d97706}.pill-done{background:#6d57f21a;color:var(--purple, #6d57f2)}.timesheet-empty .empty-state{text-align:center;padding:46px 20px;color:var(--muted, #6e6a7f)}.empty-icon{font-size:30px;font-weight:800;color:var(--faint, #cfcbe2);letter-spacing:3px;margin-bottom:8px}.rpt-root{display:flex;flex-direction:column;gap:16px}.rpt-header{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px}.rpt-greeting{font-size:22px;font-weight:800;color:var(--text, #23203a)}.rpt-date{color:var(--muted, #6e6a7f);font-size:13px;margin-top:2px}.rpt-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.rpt-range-tabs{display:flex;background:#fff;border-radius:12px;padding:4px;box-shadow:0 2px 8px #23203a0f}.rpt-range-btn{border:none;background:transparent;padding:7px 14px;border-radius:9px;font-size:12.5px;font-weight:600;color:var(--muted, #6e6a7f);cursor:pointer;font-family:inherit}.rpt-range-btn.on{background:linear-gradient(120deg,var(--button-start, #b58dff),var(--button-end, #6d57f2));color:#fff}.rpt-export-btn{border:none;background:#fff;color:var(--purple, #6d57f2);border-radius:12px;padding:9px 18px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:0 2px 8px #23203a0f}.rpt-export-menu{position:absolute;right:0;top:calc(100% + 6px);background:#fff;border-radius:12px;box-shadow:0 8px 30px #23203a29;padding:6px;z-index:30;display:flex;flex-direction:column;min-width:130px}.rpt-export-menu button{border:none;background:transparent;text-align:left;padding:8px 12px;border-radius:8px;font-size:13px;cursor:pointer;font-family:inherit;color:var(--text, #23203a)}.rpt-export-menu button:hover{background:#6d57f212}.rpt-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}@media (max-width: 860px){.rpt-stats{grid-template-columns:repeat(2,1fr)}}.rpt-stat{background:#fff;border-radius:16px;padding:16px 18px;box-shadow:0 2px 12px #23203a0f}.rpt-stat-label{font-size:12px;font-weight:600;color:var(--muted, #6e6a7f)}.rpt-stat-val{font-size:26px;font-weight:800;color:var(--text, #23203a);margin-top:4px}.rpt-stat-sub{font-size:11.5px;color:var(--faint, #a5a1b5);margin-top:2px}.rpt-streak-num{background:linear-gradient(120deg,var(--button-start, #b58dff),var(--button-end, #6d57f2));-webkit-background-clip:text;background-clip:text;color:transparent}.rpt-card{background:#fff;border-radius:18px;padding:18px 20px;box-shadow:0 2px 12px #23203a0f}.rpt-card-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}.rpt-card-title{font-size:15px;font-weight:700;color:var(--text, #23203a)}.rpt-card-sub{font-size:12px;color:var(--faint, #a5a1b5)}.rpt-mid-row{display:grid;grid-template-columns:1fr 300px;gap:14px}@media (max-width: 860px){.rpt-mid-row{grid-template-columns:1fr}}.rpt-loading,.rpt-empty{color:var(--faint, #a5a1b5);font-size:13px;padding:30px 0;text-align:center}.rpt-bars{display:grid;align-items:end;gap:8px;height:210px;padding-top:26px}.rpt-barcol{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;position:relative;height:100%;cursor:pointer}.rpt-bar{width:70%;max-width:34px;border-radius:7px 7px 3px 3px;transition:height .35s cubic-bezier(.34,1.3,.64,1)}.rpt-barlabel{margin-top:6px;color:var(--muted, #6e6a7f);font-weight:600}.rpt-barcol.rpt-today .rpt-barlabel{color:var(--purple, #6d57f2);font-weight:800}.rpt-tooltip{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);background:#23203a;color:#fff;border-radius:10px;padding:8px 12px;font-size:11.5px;white-space:nowrap;z-index:20;box-shadow:0 6px 20px #00000040}.rpt-tip-date{font-weight:700}.rpt-tip-hours{color:#b8a8ff;font-weight:700;margin-top:2px}.rpt-tip-proj{color:#cfcbe2;margin-top:2px;max-width:190px;white-space:normal}.rpt-proj-list{display:flex;flex-direction:column;gap:12px}.rpt-proj-row{display:flex;align-items:center;gap:10px}.rpt-proj-rank{width:22px;height:22px;border-radius:7px;background:#6d57f214;color:var(--purple, #6d57f2);font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.rpt-proj-info{flex:1;min-width:0}.rpt-proj-name{font-size:13px;font-weight:600;color:var(--text, #23203a);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rpt-proj-bar-wrap{height:6px;border-radius:4px;background:#f0eefa;margin-top:4px;overflow:hidden}.rpt-proj-bar-fill{height:100%;border-radius:4px;transition:width .4s ease}.rpt-proj-hrs{font-size:12.5px;font-weight:700;color:var(--muted, #6e6a7f);flex-shrink:0}.rpt-streak-body{display:flex;gap:20px 24px;align-items:flex-start}.rpt-streak-left{display:flex;flex-direction:column;align-items:center;gap:10px;flex:0 0 180px;width:180px}.rpt-streak-msg{font-size:12.5px;color:var(--muted, #6e6a7f);text-align:center;max-width:170px}.rpt-streak-right{flex:1 1 auto;min-width:0;max-width:none;width:auto}.rpt-streak-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.rpt-cal-nav-btn{border:none;background:#6d57f212;color:var(--purple, #6d57f2);width:26px;height:26px;border-radius:8px;font-weight:700;cursor:pointer;font-family:inherit}.rpt-cal-month{font-size:12px;font-weight:700;color:var(--text, #23203a)}.rpt-mini-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;width:100%;max-width:none}.rpt-cal-hd{text-align:center;font-size:9px;font-weight:700;color:var(--faint, #a5a1b5);padding:2px 0}.rpt-cal-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:10px;font-weight:600;color:var(--muted, #6e6a7f);cursor:pointer;background:#f6f4fd;transition:transform .1s;min-height:30px}.rpt-cal-cell:hover{transform:scale(1.06)}.rpt-cal-empty{background:transparent;cursor:default}.rpt-cal-empty:hover{transform:none}.rpt-cal-worked{background:linear-gradient(135deg,#b58dff,#6d57f2);color:#fff}.rpt-cal-holiday{background:#9a7cff4d;color:var(--purple, #6d57f2);font-weight:700}.rpt-cal-leave{background:#ffc10752;color:var(--amber, #d97706);font-weight:700}.rpt-cal-weekend{background:transparent;color:var(--faint, #a5a1b5)}.rpt-cal-today{outline:2px solid var(--purple, #6d57f2);outline-offset:1px}.rpt-cal-sel{box-shadow:0 0 0 3px #6d57f24d}.rpt-cal-legend{display:flex;gap:14px;margin-top:10px;flex-wrap:wrap;row-gap:8px}@media (max-width: 860px){.rpt-streak-body{flex-wrap:wrap}.rpt-streak-left{width:100%;flex-basis:100%;flex:0 0 100%}.rpt-streak-right{width:100%}}.rpt-leg-item{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted, #6e6a7f)}.rpt-leg-dot{width:10px;height:10px;border-radius:4px;display:inline-block}.rpt-leg-dot.worked{background:linear-gradient(135deg,#b58dff,#6d57f2)}.rpt-leg-dot.missed{background:#f6f4fd;border:1px solid #e3ddf6}.rpt-leg-dot.today-dot{background:#fff;outline:2px solid var(--purple, #6d57f2);outline-offset:-1px}.rpt-leg-dot.leave-dot{background:#ffc10752;border:1px solid var(--amber, #d97706)}.rpt-leg-dot.holiday-dot{background:#9a7cff4d;border:1px solid var(--purple, #6d57f2)}.rpt-cal-detail{margin-top:12px;background:#f8f6ff;border-radius:12px;padding:12px 14px}.rpt-cal-breaks{margin-top:8px;border-top:1px dashed rgba(109,87,242,.2);padding-top:8px;display:grid;gap:4px}.rpt-cal-break-row{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted, #6e6a7f)}.rpt-cal-break-row span:first-child{font-weight:700;color:var(--purple, #6d57f2)}.rpt-cal-detail-title{font-size:13px;font-weight:700;color:var(--text, #23203a)}.rpt-cal-detail-empty{font-size:12px;color:var(--faint, #a5a1b5);margin-top:4px}.rpt-cal-detail-stats{display:flex;gap:16px;margin-top:6px;font-size:13px;font-weight:700;color:var(--purple, #6d57f2)}.rpt-leave-btn{margin-top:14px;padding:10px 16px;border-radius:10px;border:none;background:#f7e18b;color:#3a2e13;font-weight:700;cursor:pointer;box-shadow:0 6px 18px #ffce3d1f}.rpt-leave-btn:hover{background:#ffeb8c}.rpt-leave-modal{max-width:860px;width:min(92vw,860px);max-height:min(88vh,720px);overflow-y:auto}.rpt-leave-panel{margin-top:16px;background:linear-gradient(180deg,#fff,#fbf9ff);border:1px solid rgba(109,87,242,.16);border-radius:16px;padding:18px 20px;box-shadow:0 16px 48px #23203a14}.rpt-leave-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}.rpt-leave-title{font-size:16px;font-weight:700;color:var(--purple, #6d57f2)}.rpt-leave-sub{font-size:12.5px;color:var(--muted, #6e6a7f);margin-top:4px}.rpt-leave-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.rpt-leave-row{display:grid;gap:6px}.rpt-leave-fullwidth{grid-column:1 / -1}.rpt-leave-row label{font-size:12.5px;font-weight:700;color:var(--text, #23203a)}.rpt-leave-row input,.rpt-leave-row select,.rpt-leave-row textarea{width:100%;border:1px solid rgba(109,87,242,.18);border-radius:12px;background:#fcfbff;padding:9px 11px;font-family:inherit;font-size:13px;color:var(--text, #23203a);transition:border-color .2s ease,box-shadow .2s ease}.rpt-leave-row input:focus,.rpt-leave-row select:focus,.rpt-leave-row textarea:focus{outline:none;border-color:var(--purple, #6d57f2);box-shadow:0 0 0 3px #6d57f21f}.rpt-leave-row textarea{min-height:78px;resize:vertical}.rpt-leave-mode{display:flex;gap:8px;flex-wrap:wrap}.rpt-leave-mode-btn{border:1px solid rgba(109,87,242,.16);background:#f7f4ff;color:var(--muted, #6e6a7f);padding:8px 10px;border-radius:999px;cursor:pointer;font-size:12.5px;min-width:96px;transition:all .2s ease}.rpt-leave-mode-btn:hover{transform:translateY(-1px);border-color:#6d57f24d}.rpt-leave-mode-btn.active{background:#6d57f21a;border-color:#6d57f273;color:var(--purple, #6d57f2);box-shadow:inset 0 0 0 1px #6d57f214}.rpt-leave-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.rpt-leave-actions .btn{min-width:132px}.rpt-leave-error{margin-top:10px;font-size:12px;color:#b42318;background:#fef3f2;border:1px solid #fecdca;border-radius:10px;padding:8px 10px}.rpt-leave-success{margin-top:10px;font-size:12px;color:#067647;background:#ecfdf3;border:1px solid #a7f3d0;border-radius:10px;padding:8px 10px}.rpt-leave-history{margin-top:12px;border-top:1px solid rgba(109,87,242,.12);padding-top:10px;display:grid;gap:8px}.rpt-leave-history-title{font-size:12px;font-weight:700;color:var(--text, #23203a)}.rpt-leave-history-item{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:10px;background:#faf8ff;font-size:12px;color:var(--muted, #6e6a7f)}.rpt-leave-toggle{display:flex;gap:8px}@media (max-width: 700px){.rpt-leave-grid{grid-template-columns:1fr}.rpt-leave-fullwidth{grid-column:auto}.rpt-leave-actions{flex-direction:column-reverse}.rpt-leave-actions .btn{width:100%}}.rpt-leave-toggle button{border:1px solid rgba(209,173,66,.45);background:#fff8e4;color:#6d5a32;padding:8px 12px;border-radius:10px;cursor:pointer;font-size:12.5px}.rpt-leave-toggle button.active{background:#ffed9a;border-color:#f5d675}.rpt-leave-error{margin-top:10px;color:#7a2300;font-size:12.5px}.rpt-leave-success{margin-top:10px;color:#4b5a14;font-size:12.5px}.rpt-leave-history{margin-top:16px;display:grid;gap:10px}.rpt-leave-history-title{font-size:13px;font-weight:700;color:#7a5c15}.rpt-leave-history-item{display:flex;justify-content:space-between;gap:10px;background:#fff0b3b3;border:1px solid rgba(209,173,66,.35);border-radius:12px;padding:10px 12px;font-size:12.5px;color:#5d4a17}.emp-role-select{border:1px solid rgba(99,74,255,.18);background:#f8f7ff;color:var(--text, #23203a);border-radius:10px;padding:6px 10px;font-size:12.5px;font-weight:600;font-family:inherit;cursor:pointer}.desc-in{border:1.5px solid rgba(99,74,255,.18)!important;background:#634aff06!important;color:var(--text)!important}.desc-in:hover{border-color:#634aff47!important}.desc-in:focus{border-color:#8b78ff7a!important;background:#634aff0b!important;box-shadow:0 0 0 3px #8b78ff1f!important}.proj-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600;background:#8b78ff24;color:var(--button-end);border:1px solid rgba(139,120,255,.22);vertical-align:middle}.proj-panel{position:relative}.proj-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:14px 20px;border-bottom:1px solid rgba(99,74,255,.06);background:#f8f6ff99}.proj-filters select,.proj-filters input{height:38px;padding:0 12px;border-radius:10px;border:1px solid rgba(99,74,255,.14);background:var(--surface);color:var(--text);font-size:13px;outline:none;font-family:inherit}.proj-filters select:focus,.proj-filters input:focus{border-color:#8b78ff5c;box-shadow:0 0 0 3px #8b78ff1a}.proj-emp-dd{position:relative}.proj-emp-dd-btn{height:38px;padding:0 14px;border-radius:10px;border:1px solid rgba(99,74,255,.14);background:var(--surface);color:var(--text);font-size:13px;cursor:pointer;display:flex;align-items:center;gap:8px;white-space:nowrap;font-family:inherit}.proj-emp-dd-btn:hover{border-color:#8b78ff4d}.proj-emp-dd-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:20;min-width:220px;max-height:260px;overflow-y:auto;background:var(--surface);border:1px solid rgba(99,74,255,.14);border-radius:14px;box-shadow:0 20px 50px #634aff1f;padding:6px}.proj-emp-dd-item{display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:10px;cursor:pointer;font-size:13.5px;color:var(--text);transition:background .13s}.proj-emp-dd-item:hover{background:#8b78ff1a}.proj-emp-dd-item input[type=checkbox]{accent-color:var(--button-end);width:15px;height:15px;cursor:pointer}.proj-table-wrap{overflow-x:auto}.proj-table{width:100%;border-collapse:collapse}.proj-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--faint);font-weight:700;padding:10px 16px;border-bottom:1px solid rgba(99,74,255,.1);background:#f8f6ffcc}.proj-table td{padding:12px 16px;border-bottom:1px solid rgba(99,74,255,.06);font-size:13.5px;color:var(--text);vertical-align:middle}.proj-table tr:last-child td{border-bottom:none}.proj-table tbody tr:hover{background:#8b78ff08}.proj-access-chips{display:flex;flex-wrap:wrap;gap:4px}.proj-access-chip{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#8b78ff1f;color:var(--button-end);border:1px solid rgba(139,120,255,.2)}.proj-access-everyone{font-size:11.5px;color:var(--muted);font-style:italic}.proj-row-actions{display:flex;gap:4px;align-items:center}.proj-icon-btn{width:30px;height:30px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;transition:background .13s,border-color .13s,color .13s;background:transparent;border:1px solid transparent;color:var(--muted)}.proj-icon-btn:hover{background:#8b78ff1f;color:var(--button-end);border-color:#8b78ff33}.proj-icon-btn.danger:hover{background:#ff52521f;color:var(--red);border-color:#ff525233}.proj-archived-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#ffc1071f;color:var(--amber);border:1px solid rgba(255,193,7,.2)}.proj-inline-form td{padding:10px 16px;background:#8b78ff0a}.proj-form-grid{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.proj-form-field{display:flex;flex-direction:column;gap:5px;min-width:120px}.proj-form-field label{font-size:11px;font-weight:700;color:var(--muted)}.proj-form-field input,.proj-form-field select{height:36px;padding:0 10px;border-radius:8px;border:1px solid rgba(99,74,255,.18);background:var(--surface);color:var(--text);font-size:13px;outline:none;font-family:inherit}.proj-form-field input:focus,.proj-form-field select:focus{border-color:#8b78ff66;box-shadow:0 0 0 3px #8b78ff1a}.proj-add-popover{position:absolute;right:20px;top:60px;z-index:30;width:min(420px,calc(100vw - 40px));background:var(--surface);border:1px solid rgba(99,74,255,.14);border-radius:20px;box-shadow:0 28px 70px #634aff24;padding:20px;animation:fade-rise .22s ease}.proj-add-popover h4{font-size:15px;font-weight:700;color:var(--text-bright);margin-bottom:16px}.proj-add-row{display:flex;gap:10px;margin-top:14px;justify-content:flex-end}.emp-card>.pt{border-bottom:none;padding-bottom:8px}.emp-list{padding:4px 0 14px}.emp-list-hdr{display:grid;grid-template-columns:1.8fr .7fr 1.6fr 200px;gap:0 16px;align-items:center;padding:8px 24px 6px;margin:0;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--faint)}.emp-row{display:grid;grid-template-columns:1.8fr .7fr 1.6fr 200px;gap:0 16px;align-items:center;padding:13px 24px;border-radius:10px;margin:1px 0;transition:background .15s}.emp-row:hover{background:#8b78ff0d}.emp-item.expanded .emp-row{background:#8b78ff0f}.emp-name-cell{display:flex;align-items:center}.emp-accordion{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease}.emp-accordion.open{grid-template-rows:1fr}.emp-accordion-inner{overflow:hidden}.emp-perms-card{margin:4px 22px 14px;padding:16px 18px;background:#8b78ff0a;border:1px solid rgba(139,120,255,.13);border-radius:14px}.emp-perms-card-hdr{display:flex;align-items:center;gap:8px;margin-bottom:14px}.emp-perms-card-title{font-size:12.5px;font-weight:700;color:var(--text-bright)}.emp-perms-card-name{font-size:12.5px;color:var(--muted)}.emp-perms-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.perm-item{display:flex;align-items:flex-start;gap:9px;padding:9px 11px;border-radius:10px;background:#ffffffb3;border:1px solid rgba(139,120,255,.1);cursor:pointer;transition:border-color .13s,background .13s}.perm-item:hover{border-color:#8b78ff40;background:#8b78ff0d}.perm-item input[type=checkbox]{margin-top:2px;accent-color:var(--button-end);flex-shrink:0}.perm-label{font-size:13px;font-weight:600;color:var(--text);line-height:1.3}.perm-desc{font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.4}.proj-editor-wrap{margin:0 20px 4px;border:1px solid rgba(99,74,255,.15);border-radius:16px;background:#f8f6ff99;overflow:visible}.proj-editor-header{padding:14px 20px 0;font-size:13.5px;font-weight:700;color:var(--text-bright);letter-spacing:-.01em}.proj-editor-body{padding:14px 20px 18px;display:flex;flex-direction:column;gap:14px}.proj-editor-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.proj-editor-field{display:flex;flex-direction:column;gap:5px}.proj-editor-label{font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.proj-editor-input{height:40px;padding:0 12px;border-radius:10px;border:1px solid rgba(99,74,255,.18);background:var(--surface);color:var(--text);font-size:13.5px;outline:none;font-family:inherit;width:100%;box-sizing:border-box}.proj-editor-input:focus{border-color:#8b78ff73;box-shadow:0 0 0 3px #8b78ff1a}textarea.proj-editor-input{height:auto;padding:10px 12px}.proj-editor-dd-btn{display:flex;align-items:center;justify-content:space-between;cursor:pointer;text-align:left;background:var(--surface);border:1px solid rgba(99,74,255,.18)}.proj-editor-dd-btn:hover{border-color:#8b78ff59}.proj-editor-dd-arrow{font-size:10px;color:var(--muted);flex-shrink:0;margin-left:6px}.proj-editor-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}.ts-kpi-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.ts-kpi-card{background:var(--surface);border:1px solid rgba(99,74,255,.1);border-radius:16px;padding:18px 22px 16px;display:flex;flex-direction:column;gap:3px}.ts-kpi-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);margin-bottom:4px}.ts-kpi-value{font-size:26px;font-weight:800;color:var(--text-bright);line-height:1.1;letter-spacing:-.02em}.ts-kpi-value.ts-kpi-proj{font-size:15px;font-weight:700;letter-spacing:-.01em;margin-top:2px}.ts-kpi-sub{font-size:16px;font-weight:400;color:var(--muted);letter-spacing:0}.ts-kpi-note{font-size:11.5px;color:var(--muted);margin-top:3px}.ts-filter-panel{margin-bottom:18px}.ts-filter-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;padding:16px 20px 18px;overflow:visible}.ts-filter-field{display:flex;flex-direction:column;gap:6px}.ts-filter-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.date-modal-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;background:#8b78ff12;border:1px solid rgba(139,120,255,.12);border-radius:12px;margin-bottom:16px}.date-modal-total-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:2px}.date-modal-total-value{font-size:24px;font-weight:800;color:var(--button-end);letter-spacing:-.02em;line-height:1.1}.date-modal-status{font-size:12.5px;color:var(--muted);text-align:right}.date-session-list{display:flex;flex-direction:column;gap:10px}.date-session-card{border:1px solid rgba(99,74,255,.12);border-radius:12px;padding:14px 16px;background:var(--surface);transition:border-color .13s}.date-session-card:hover{border-color:#8b78ff40}.date-session-times{display:flex;align-items:center;gap:10px;margin-bottom:10px}.date-session-time-block{min-width:52px}.date-session-time-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);margin-bottom:3px}.date-session-time-val{font-size:15px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.date-session-sep{color:var(--faint);font-size:14px;flex:1;text-align:center}.date-session-dur{text-align:right}.date-session-dur-val{font-size:15px;font-weight:700;color:var(--button-end);font-variant-numeric:tabular-nums}.date-session-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:8px;border-top:1px solid rgba(99,74,255,.07)}.date-session-desc{font-size:12.5px;color:var(--muted)}.ts-emp-link{background:none;border:none;padding:0;cursor:pointer;font-size:13.5px;font-weight:600;color:var(--button-end);font-family:inherit;line-height:inherit;transition:color .13s}.ts-emp-link:hover{color:var(--blue);text-decoration:underline}.dash-page{display:flex;flex-direction:column;gap:18px}.dash-filter-bar{padding:12px 20px}.dash-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dash-range-menu{min-width:200px;padding:6px 0!important}.dash-range-item{display:block;width:100%;text-align:left;background:none;border:none;padding:8px 14px;font-size:13px;color:var(--text);cursor:pointer;font-family:inherit;transition:background .1s}.dash-range-item:hover{background:#634aff12}.dash-range-item.active{color:var(--button-end);font-weight:600;background:#634aff12}.dash-range-divider{height:1px;background:#634aff14;margin:4px 0}.dash-custom-range{padding:10px 14px 4px;display:flex;flex-direction:column;gap:8px}.dash-custom-row{display:flex;align-items:center;gap:8px}.dash-custom-label{font-size:11.5px;color:var(--muted);min-width:28px}.dash-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}@media (max-width: 900px){.dash-kpi-row{grid-template-columns:repeat(2,1fr)}}.dash-kpi-card{background:var(--surface);border:1px solid rgba(99,74,255,.1);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:4px;box-shadow:0 1px 4px #634aff0d;transition:box-shadow .15s}.dash-kpi-card:hover{box-shadow:0 4px 16px #634aff1a}.dash-kpi-label{font-size:11.5px;color:var(--muted);font-weight:500;text-transform:uppercase;letter-spacing:.4px}.dash-kpi-val{font-size:24px;font-weight:800;color:var(--text);line-height:1.2;font-variant-numeric:tabular-nums}.dash-kpi-sub{font-size:11.5px;color:var(--muted)}.dash-mode-btn{padding:4px 12px;border-radius:8px;border:1px solid rgba(99,74,255,.18);background:transparent;color:var(--muted);font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .13s}.dash-mode-btn:hover{background:#634aff12;color:var(--text)}.dash-mode-btn.active{background:#634aff1f;color:var(--button-end);border-color:#634aff4d;font-weight:600}.dash-two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media (max-width: 860px){.dash-two-col{grid-template-columns:1fr}}.dash-proj-list{padding:8px 20px 16px;display:flex;flex-direction:column;gap:12px}.dash-proj-row{display:flex;align-items:center;gap:12px}.dash-proj-rank{font-size:11px;color:var(--faint);font-weight:700;min-width:22px;text-align:right}.dash-proj-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.dash-proj-name{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-proj-bar-wrap{height:4px;background:#634aff17;border-radius:3px;overflow:hidden}.dash-proj-bar-fill{height:100%;border-radius:3px;transition:width .4s ease;opacity:.8}.dash-proj-stat{text-align:right;min-width:36px}.dash-proj-count{font-size:16px;font-weight:800;color:var(--button-end);line-height:1.1}.dash-proj-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}.proj-emp-dd-menu .proj-editor-input{width:100%;box-sizing:border-box;border-radius:8px;font-size:12.5px}table th{white-space:nowrap}.holiday-edit-row td{padding:0;border-bottom:none}.holiday-edit-panel{padding:16px;background:#634aff0a;border-bottom:1px solid rgba(99,74,255,.12);transition:all .2s ease}.holiday-edit-grid{display:grid;grid-template-columns:minmax(210px,2fr) minmax(160px,1fr) minmax(160px,1fr) 220px;gap:12px;align-items:end}.holiday-edit-grid>div{min-width:0}.holiday-edit-grid label{display:block;margin-bottom:8px;font-size:12px;color:var(--muted);text-align:left}.holiday-edit-grid input,.holiday-edit-grid select{width:100%}.holiday-edit-actions{display:flex;justify-content:flex-end;gap:8px}.panel table td:last-child,.panel table th:last-child{text-align:right;white-space:nowrap}.modal-archive-hint{margin-top:10px;padding:10px 14px;background:#634aff0f;border:1px solid rgba(99,74,255,.15);border-radius:10px;font-size:13.5px}.confirm-dialog{width:min(360px,100%);border-radius:16px;overflow:hidden;box-shadow:0 22px 55px #0f172a38;border:1px solid rgba(99,74,255,.15)}.confirm-dialog-body{display:flex;flex-direction:column;gap:10px;padding:18px 18px 16px}.confirm-dialog-body h3{margin:0;font-size:17px;color:var(--text)}.confirm-dialog-body p{margin:0;font-size:14px;line-height:1.45;color:var(--muted)}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.proj-logo-upload-btn{cursor:pointer;display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1.5px dashed rgba(99,74,255,.3);border-radius:10px;background:#634aff0a;color:var(--purple);font-size:13px;font-weight:600;transition:border-color .15s,background .15s}.proj-logo-upload-btn:hover{border-color:#634aff8c;background:#634aff14}.ss-wrap{position:relative;width:100%}.ss-trigger{width:100%;min-height:40px;padding:0 13px;border-radius:10px;border:1px solid rgba(99,74,255,.18);background:var(--surface);color:var(--text);font-size:13.5px;font-family:inherit;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s;outline:none}.ss-trigger:hover{border-color:#8b78ff61}.ss-trigger.ss-open,.ss-trigger:focus-visible{border-color:#8b78ff8c;box-shadow:0 0 0 3px #8b78ff1f}.ss-trigger:disabled{opacity:.5;cursor:not-allowed}.ss-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.ss-menu{position:absolute;top:calc(100% + 5px);left:0;right:0;min-width:180px;background:var(--surface);border:1px solid rgba(99,74,255,.13);border-radius:13px;box-shadow:0 10px 32px #0f172a26,0 2px 8px #0f172a0f;z-index:300;overflow:hidden;animation:ss-in .13s ease}.ss-menu.ss-up{top:auto;bottom:calc(100% + 5px);animation:ss-in-up .13s ease}@keyframes ss-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes ss-in-up{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.ss-search-wrap{padding:8px 8px 6px;border-bottom:1px solid rgba(99,74,255,.07);background:var(--surface);position:sticky;top:0;z-index:1}.ss-search{width:100%;height:32px;padding:0 11px;border-radius:8px;border:1px solid rgba(99,74,255,.16);background:#634aff0a;color:var(--text);font-size:13px;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .12s,background .12s}.ss-search::placeholder{color:var(--muted)}.ss-search:focus{border-color:#8b78ff70;background:#634aff12}.ss-options{max-height:210px;overflow-y:auto;padding:4px;scrollbar-width:thin}.ss-option{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:8px;font-size:13.5px;color:var(--text);cursor:pointer;transition:background .1s;gap:8px;-webkit-user-select:none;user-select:none}.ss-option:hover,.ss-option.ss-hl{background:#634aff12}.ss-option.ss-selected{background:#634aff17;font-weight:600;color:var(--button-end, #634aff)}.ss-option.ss-selected svg{flex-shrink:0}.ss-empty{padding:18px 12px;text-align:center;color:var(--muted);font-size:13px;font-style:italic}@media (prefers-color-scheme: dark){.ss-menu,.ss-search-wrap{background:var(--surface, #1e1b2e)}.ss-search{background:#8b78ff14}}:root[data-theme=dark] .ss-menu{background:var(--surface, #1e1b2e)}:root[data-theme=dark] .ss-search-wrap{background:var(--surface, #1e1b2e)}:root[data-theme=dark] .ss-search{background:#8b78ff14}body{background:radial-gradient(60% 42% at 12% 0%,rgba(124,92,255,.05),transparent 70%),radial-gradient(52% 38% at 88% 4%,rgba(79,141,255,.05),transparent 70%),radial-gradient(50% 40% at 55% 100%,rgba(110,231,249,.04),transparent 72%),#f5f7fb;background-attachment:fixed;color:var(--text);font-size:14px;line-height:1.6;letter-spacing:-.006em;font-feature-settings:"cv02","cv03","cv04","cv11"}::selection{background:#4f46e529}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:#d4d4d8;border-radius:8px;border:2px solid var(--bg-0)}*::-webkit-scrollbar-thumb:hover{background:#a1a1aa}*::-webkit-scrollbar-track{background:transparent}button{font-family:inherit}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:6px}@keyframes ds-fade-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes ds-shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg,#f1f5f9 25%,#e8edf3 37%,#f1f5f9 63%);background-size:800px 100%;animation:ds-shimmer 1.4s ease infinite;border-radius:8px;color:transparent!important}body .topbar{background:linear-gradient(110deg,#7c5cff1a,#4f8dff14,#6ee7f912 68%,#9b8cff17),#ffffffd1;backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);border-bottom:1px solid rgba(124,92,255,.14);box-shadow:0 10px 30px #6581ff14,inset 0 1px #ffffffe6;min-height:56px;padding:8px 20px;gap:10px}body .topbar .brand{font-size:15px;gap:9px}body .topbar .brand-logo{width:26px;height:26px;border-radius:6px}body .topbar .brand-title span{font-size:15px;font-weight:800;letter-spacing:-.025em;background:linear-gradient(96deg,#2563eb,#0ea5e9 48%,#10b981);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}body .rogue-btn{font-size:12.5px;font-weight:560;color:var(--indigo);background:var(--indigo-soft);border:1px solid #e0e7ff;padding:7px 13px;border-radius:8px;display:inline-flex;align-items:center;gap:6px;transition:background .14s ease,border-color .14s ease}body .rogue-btn:hover{background:#e0e7ff;border-color:#c7d2fe}body .topbar .out{font-size:12.5px;font-weight:560;color:var(--text);background:#fff;border:1px solid var(--surface-border);padding:7px 13px;border-radius:8px;display:inline-flex;align-items:center;gap:6px;transition:background .14s ease,border-color .14s ease,color .14s ease}body .topbar .out:hover{background:var(--surface-soft);border-color:#cbd5e1;color:var(--text-bright)}body .launch-popup{top:64px;right:20px}body .launch-popup-card{border-radius:14px;border:1px solid var(--line);box-shadow:var(--shadow-lg);padding:18px;gap:14px;animation:ds-fade-up .18s ease}body .launch-asset{border-radius:10px;box-shadow:none;width:88px;margin:0 auto}body .launch-title{font-size:15px;font-weight:650;letter-spacing:-.01em}body .launch-text{font-size:13px}body .launch-message{border-radius:8px;background:var(--surface-soft);border:1px solid var(--line);font-size:12.5px;padding:10px 12px}body .shell{grid-template-columns:224px 1fr;min-height:calc(100vh - 56px);background:transparent}body .side{background:#ffffff61;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-right:1px solid rgba(124,92,255,.1);border-radius:0;box-shadow:none;padding:14px 10px;gap:1px}body .side .grp{font-size:10.5px;letter-spacing:.07em;font-weight:600;color:var(--faint);margin:14px 10px 4px}body .side a{gap:9px;padding:7px 10px;border-radius:7px;font-size:13px;font-weight:500;color:var(--muted);border-left:none;position:relative;transition:background .12s ease,color .12s ease}body .side a svg{width:15px;height:15px;flex-shrink:0;opacity:.72;transition:opacity .12s ease}body .side a:hover{background:#0f172a0d;color:var(--text-bright)}body .side a:hover svg{opacity:1}body .side a.on{background:#fff;color:var(--text-bright);font-weight:600;border-left:none;padding-left:10px;box-shadow:0 4px 12px #6581ff1f,inset 0 1px #fffffff2,inset 0 0 0 1px #7c5cff14}body .side a.on:before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:2.5px;border-radius:4px;background:var(--indigo)}body .side a.on svg{opacity:1;color:var(--indigo)}body .side .uplug{background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 12px;font-size:11.5px;box-shadow:var(--shadow)}body .side .uplug:hover{background:#fff}body .side .uplug b{color:var(--text-bright);font-size:12.5px;margin-bottom:2px}body .work{background:transparent;padding:26px 32px 48px}body .ph{margin-bottom:20px;align-items:center}body .ph h1{font-size:21px;font-weight:650;letter-spacing:-.02em}body .ph p{font-size:13px;margin-top:2px;color:var(--muted)}body .btn{background:var(--indigo);color:#fff;padding:8px 14px;border-radius:8px;font-size:13px;font-weight:560;letter-spacing:-.005em;border:1px solid var(--indigo);box-shadow:0 1px 2px #4f46e547;transition:background .14s ease,box-shadow .14s ease,border-color .14s ease;display:inline-flex;align-items:center;justify-content:center;gap:6px}body .btn:hover{background:#4338ca;border-color:#4338ca;transform:none;box-shadow:0 2px 6px #4f46e552}body .btn:active{background:#3730a3}body .btn.green,body .btn.blue{background:var(--indigo);border-color:var(--indigo);box-shadow:0 1px 2px #4f46e547}body .btn.green:hover,body .btn.blue:hover{background:#4338ca}body .btn.ghost{background:linear-gradient(135deg,#fff,#f7f9fd);color:var(--text);border:1px solid rgba(148,163,184,.28);box-shadow:0 3px 10px #6581ff14,inset 0 1px #ffffffe6}body .btn.ghost:hover{background:#fff;border-color:#7c5cff4d;color:var(--text-bright);box-shadow:0 6px 16px #6581ff24,inset 0 1px #ffffffe6}body .btn.danger{background:#fff;color:var(--red);border:1px solid #fecaca;box-shadow:var(--shadow)}body .btn.danger:hover{background:#fef2f2;border-color:#fca5a5;box-shadow:var(--shadow)}body .btn.sm{padding:5px 10px;font-size:12px;border-radius:7px}body .stats{gap:12px;margin-bottom:20px}body .stat{border-radius:14px;border:1px solid rgba(255,255,255,.85);padding:16px 18px;background:linear-gradient(135deg,#fff,#fbfcfe);box-shadow:0 8px 24px #6581ff14,0 1px 3px #0f172a0a,inset 0 1px #fffffff2;animation:ds-fade-up .25s ease both}body .stat .k{font-size:11px;font-weight:560;letter-spacing:.05em;color:var(--muted)}body .stat .v{font-size:24px;font-weight:650;letter-spacing:-.02em;margin-top:6px;text-shadow:none}body .stat .d{font-size:11.5px;margin-top:3px}body .stat.click:hover{border-color:#c7d2fe;transform:none;box-shadow:var(--shadow-md)}body .stat .d.link{color:var(--indigo)}body .chip{padding:2.5px 9px;border-radius:6px;font-size:11px;font-weight:560;letter-spacing:0;border:1px solid transparent}body .chip.g{background:#f0fdf4;color:#15803d;border-color:#bbf7d0}body .chip.a{background:#fffbeb;color:#b45309;border-color:#fde68a}body .chip.r{background:#fef2f2;color:#b91c1c;border-color:#fecaca}body .chip.b{background:var(--indigo-soft);color:var(--indigo);border-color:#e0e7ff}body .chip.t{background:#f0fdfa;color:#0f766e;border-color:#99f6e4}body .chip.p{background:#faf5ff;color:#7e22ce;border-color:#e9d5ff}body .panel{border-radius:14px;border:1px solid rgba(255,255,255,.85);background:#fff;box-shadow:0 10px 28px #6581ff12,0 1px 3px #0f172a0a,inset 0 1px #fffffff2;margin-bottom:16px;animation:ds-fade-up .25s ease both}body .panel .pt{padding:13px 16px;border-bottom:1px solid var(--line-bright);gap:10px}body .panel .pt h3{font-size:13.5px;font-weight:620;letter-spacing:-.01em}body .pbody{padding:16px}body th{font-size:10.5px;letter-spacing:.06em;font-weight:600;color:var(--faint);padding:9px 16px;border-bottom:1px solid var(--line);background:var(--surface-soft);position:sticky;top:0;z-index:1}body td{padding:10px 16px;border-bottom:1px solid var(--line-bright);font-size:13px}body tbody tr{transition:background .1s ease}body tbody tr:hover{background:var(--surface-soft)}body .ava{width:26px;height:26px;border-radius:50%;background:var(--indigo-soft);color:var(--indigo);border:1px solid #e0e7ff;box-shadow:none;font-size:10.5px;font-weight:620}body .nm{font-weight:560;color:var(--text-bright)}body .tabs{background:var(--bg-1);border:1px solid var(--line);border-radius:9px;padding:3px;gap:2px;margin-bottom:16px}body .tabs button{padding:6px 14px;border-radius:7px;font-size:12.5px;font-weight:530;color:var(--muted);border:none;transition:color .12s ease,background .12s ease,box-shadow .12s ease}body .tabs button.on{background:#fff;color:var(--text-bright);font-weight:600;border:none;box-shadow:0 1px 3px #0f172a1a}body .desc-in,body .login-input,body .login-select,body .proj-editor-input,body .field input{background:#fff;border:1px solid var(--surface-border);border-radius:8px;color:var(--text-bright);font-size:13.5px;padding:9px 12px;transition:border-color .14s ease,box-shadow .14s ease}body .desc-in:focus,body .login-input:focus,body .login-select:focus,body .proj-editor-input:focus,body .field input:focus{border-color:var(--indigo);box-shadow:var(--ring);background:#fff}body .desc-in::placeholder,body .login-input::placeholder,body .field input::placeholder{color:var(--faint)}body select{border-radius:8px;border:1px solid var(--surface-border);background:#fff;color:var(--text);padding:7px 10px;font-size:13px}body select:focus{border-color:var(--indigo);box-shadow:var(--ring);outline:none}body input[type=checkbox],body input[type=radio]{accent-color:var(--indigo)}body .login-label{font-size:12px;font-weight:560;color:var(--muted)}body .export-popup,body .rpt-export-menu,body .proj-emp-dd-menu{background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-lg);padding:5px;animation:ds-fade-up .14s ease}body .export-popup .btn,body .export-popup button{border-radius:7px}body .rpt-export-menu button{border-radius:7px;padding:8px 12px;font-size:12.5px;font-weight:530}body .rpt-export-menu button:hover{background:var(--surface-soft)}body .proj-emp-dd-item{border-radius:7px;font-size:13px}body .proj-emp-dd-item:hover{background:var(--surface-soft)}body .modal-overlay{background:#0f172a61;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}body .modal-box{border-radius:14px;border:1px solid var(--line);box-shadow:0 24px 64px #0f172a38;animation:ds-fade-up .18s ease}body .modal-header h3{font-size:15px;font-weight:650;letter-spacing:-.01em}body .lerr{border-radius:8px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:12.5px}body .ts-page-title{font-size:21px;font-weight:650;letter-spacing:-.02em}body .ts-page-sub{font-size:13px;color:var(--muted)}body .ts-live{border-radius:12px;border:1px solid #c7d2fe;box-shadow:var(--shadow-md)}body .ts-live-timer{font-family:var(--mono);letter-spacing:-.01em}body .ts-card{border-radius:10px;border:1px solid var(--line);box-shadow:var(--shadow);transition:border-color .14s ease,box-shadow .14s ease}body .ts-card:hover{border-color:#cbd5e1;box-shadow:var(--shadow-md)}body .ts-act-btn{border-radius:6px;font-weight:560;background:var(--indigo-soft);color:var(--indigo)}body .ts-act-btn.danger{background:#fef2f2;color:var(--red)}body .ts-manual-toggle{border:1px dashed #c7d2fe;color:var(--indigo);border-radius:8px;font-weight:560;transition:background .14s ease}body .ts-manual-toggle:hover{background:var(--indigo-soft)}body .daybar{background:transparent;border:none;border-left:none;padding:14px 4px 6px;font-size:12px;color:var(--muted)}body .daybar b{font-weight:620}body .rpt-greeting{font-size:19px;font-weight:650;letter-spacing:-.02em}body .rpt-date{font-size:12.5px;color:var(--muted)}body .rpt-stat{border-radius:14px;border:1px solid rgba(255,255,255,.85);background:linear-gradient(135deg,#fff,#fbfcfe);box-shadow:0 8px 24px #6581ff14,inset 0 1px #fffffff2}body .rpt-stat-label{font-size:11px;font-weight:560;letter-spacing:.05em;color:var(--muted);text-transform:uppercase}body .rpt-stat-val{font-weight:650;letter-spacing:-.02em}body .rpt-card{border-radius:14px;border:1px solid rgba(255,255,255,.85);background:#fff;box-shadow:0 10px 28px #6581ff12,inset 0 1px #fffffff2}body .rpt-card-title{font-size:13.5px;font-weight:620}body .rpt-range-tabs{background:var(--bg-1);border:1px solid var(--line);border-radius:9px;padding:3px}body .rpt-range-btn{border-radius:7px;font-weight:530}body .rpt-range-btn.on{background:#fff;color:var(--text-bright);font-weight:600;box-shadow:0 1px 3px #0f172a1a}body .rpt-export-btn{background:#fff;border:1px solid var(--surface-border);border-radius:8px;color:var(--text);font-weight:560;box-shadow:var(--shadow)}body .rpt-export-btn:hover{border-color:#cbd5e1}body .rpt-cal-cell{border-radius:6px;background:var(--bg-1);font-weight:530}body .rpt-cal-worked{background:#c7d2fe;color:#3730a3}body .rpt-cal-today{outline:1.5px solid var(--indigo);outline-offset:-1.5px}body .rpt-cal-sel{background:var(--indigo);color:#fff}body .rpt-tooltip{border-radius:8px;box-shadow:var(--shadow-lg)}body .bf-send .amt input{border-bottom:2px solid #e0e7ff;font-weight:650}body .bf-send .amt input:focus{border-color:var(--indigo);box-shadow:none}body .quickrow button{border-radius:8px;border:1px solid var(--surface-border);background:#fff;font-weight:530;box-shadow:var(--shadow)}body .quickrow button:hover{border-color:#c7d2fe;color:var(--indigo);background:var(--indigo-soft)}body .sendbtn{background:var(--indigo);border:1px solid var(--indigo);border-radius:10px;font-weight:600;font-size:14px;padding:12px;box-shadow:0 1px 2px #4f46e547}body .sendbtn:hover{background:#4338ca;box-shadow:0 2px 8px #4f46e552;transform:none}body .sendbtn:disabled{background:var(--bg-2);border-color:var(--bg-2);color:var(--faint)}body .calendar-cell{border-radius:8px;transition:transform .1s ease,box-shadow .12s ease}body .calendar-cell:hover{box-shadow:var(--shadow-md)}body .calendar-legend{font-size:11.5px;color:var(--muted)}body .timer{text-shadow:none;color:var(--indigo);font-weight:650;letter-spacing:-1px}body .glass{border-radius:12px;box-shadow:var(--shadow);border:1px solid var(--line)}body .glass:hover{transform:none;box-shadow:var(--shadow-md)}body .dashboard-hero{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}body .hero-pill{background:var(--indigo-soft);border-color:#e0e7ff;color:var(--indigo);border-radius:6px}body .empty-state{color:var(--muted)}body .empty-icon{font-size:30px;color:var(--faint);font-family:var(--mono)}body .timesheet-empty strong{font-size:15px;font-weight:620}@media (max-width: 900px){body .shell{grid-template-columns:1fr}body .side{display:none}body .work{padding:18px 16px 40px}body .stats{grid-template-columns:repeat(2,1fr)}}[data-theme=dark]{--bg-0: #0b0c0f;--bg-1: #141519;--bg-2: #1e2026;--surface: #141519;--surface-soft: #1a1c21;--surface-muted: #1e2026;--surface-border: #2a2d35;--text: #c8ccd4;--text-bright: #f4f5f7;--muted: #8b909c;--faint: #5d626e;--indigo-soft: #1e1b4b;--line: #23252c;--line-bright: #1e2026;--shadow: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .6)}body .proj-table th{background:var(--surface-soft)}body .proj-editor-wrap{border-radius:12px;border:1px solid var(--line)}body .proj-editor-header{font-size:13.5px;font-weight:620}body .proj-editor-label{font-size:12px;font-weight:560;color:var(--muted)}body .proj-pill{border-radius:6px;font-size:11px;font-weight:560;background:var(--indigo-soft);color:var(--indigo)}body .proj-icon-btn{border-radius:7px}body .emp-card,body .emp-perms-card{border-radius:12px}body .emp-row{transition:background .1s ease}body .emp-row:hover{background:var(--surface-soft)}body .perm-item{border-radius:9px;border:1px solid var(--line)}body .ts-kpi-card,body .dash-kpi-card{border-radius:14px;border:1px solid rgba(255,255,255,.85);background:linear-gradient(135deg,#fff,#fbfcfe);box-shadow:0 8px 24px #6581ff14,inset 0 1px #fffffff2}body .ts-kpi-label,body .dash-kpi-label{font-size:11px;font-weight:560;letter-spacing:.05em;color:var(--muted);text-transform:uppercase}body .ts-kpi-value,body .dash-kpi-val{font-weight:650;letter-spacing:-.02em}body .ts-filter-panel,body .dash-filter-bar{border-radius:12px}body .ts-filter-label,body .dash-custom-label{font-size:11.5px;font-weight:560;color:var(--muted)}body .dash-range-menu{border-radius:10px;border:1px solid var(--line);box-shadow:var(--shadow-lg)}body .dash-range-item{border-radius:7px;font-size:13px}body .dash-range-item:hover{background:var(--surface-soft)}body .dash-proj-bar-fill{border-radius:6px}body .date-session-card{border-radius:10px;border:1px solid var(--line)}body .date-modal-total-value{font-weight:650;letter-spacing:-.02em;color:var(--indigo)}body .summary-frame{border-radius:12px}body .report-topbar select,body .report-filterbar select{border-radius:7px;font-size:12.5px}body .catrow .cn{font-size:13px}body .ctrack{border-radius:6px;background:var(--bg-1)}body .ctrack i{border-radius:6px}@media (min-width: 1800px){body:not(:has(#login)){zoom:1.12}}@media (min-width: 2200px){body:not(:has(#login)){zoom:1.28}}@media (min-width: 2900px){body:not(:has(#login)){zoom:1.55}}@media (min-width: 3600px){body:not(:has(#login)){zoom:1.9}}body .work{max-width:1760px;margin:0 auto;width:100%}@media (max-width: 1280px){body .shell{grid-template-columns:200px 1fr}body .work{padding:22px 22px 44px}.ts-filter-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 1100px){body .stats,.ts-kpi-bar,.dash-kpi-row{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:1fr}.calendar-panel{justify-self:stretch}.clockwrap{grid-template-columns:1fr}}@media (max-width: 760px){.ts-filter-grid{grid-template-columns:1fr 1fr}.ts-kpi-bar{grid-template-columns:1fr}body .ph{flex-direction:column;align-items:flex-start}body .ph .act{width:100%}}@media (max-width: 900px){body .panel .pbody,body .proj-table-wrap{overflow-x:auto}}
