:root{--bg-color:#f0f4f8;--bg-secondary:#e6ecf2;--text-color:#1e293b;--text-muted:#64748b;--card-bg:#fff;--primary-color:#2563eb;--primary-hover:#1d4ed8;--primary-light:rgba(37,99,235,.08);--border-color:#dde3ea;--danger-color:#ef4444;--danger-hover:#dc2626;--success-color:#10b981;--success-hover:#059669;--warning-color:#f59e0b;--warning-hover:#d97706;--shadow-sm:0 1px 3px rgba(15,23,42,.07);--shadow:0 2px 8px rgba(15,23,42,.09),0 1px 3px rgba(15,23,42,.06);--shadow-lg:0 8px 28px rgba(15,23,42,.11),0 3px 10px rgba(15,23,42,.06);--nav-h:60px;--bnav-h:62px;--radius-sm:6px;--radius:10px;--radius-lg:16px}[data-theme=dark]{--bg-color:#0f172a;--bg-secondary:#172033;--text-color:#f1f5f9;--text-muted:#94a3b8;--card-bg:#1e293b;--primary-color:#3b82f6;--primary-hover:#60a5fa;--primary-light:rgba(59,130,246,.1);--border-color:#2a3a50;--shadow-sm:0 1px 3px rgba(0,0,0,.35);--shadow:0 2px 8px rgba(0,0,0,.3);--shadow-lg:0 8px 28px rgba(0,0,0,.38)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--bg-color);color:var(--text-color);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .25s,color .25s;overflow-x:clip}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.container{max-width:1200px;margin:0 auto;padding:calc(var(--nav-h) + 1.5rem) 1.75rem 2rem}.card{background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow);padding:1.75rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;background:var(--primary-color);color:#fff;border:none;padding:.55rem 1.1rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;letter-spacing:.01em;cursor:pointer;white-space:nowrap;text-decoration:none;outline:none;transition:background-color .16s,transform .12s,box-shadow .16s;font-family:inherit}.btn:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px rgba(37,99,235,.28)}.btn:active{transform:translateY(0);box-shadow:none}.input-field{width:100%;padding:.65rem .9rem;border:1.5px solid var(--border-color);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text-color);font-size:.9rem;margin-bottom:1rem;outline:none;font-family:inherit;transition:border-color .16s,box-shadow .16s;-webkit-appearance:none}.input-field:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-light)}textarea.input-field{resize:vertical;min-height:80px}table{width:100%;border-collapse:collapse}thead tr{background:var(--bg-secondary);border-bottom:2px solid var(--border-color)}th{padding:.7rem 1rem;text-align:left;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);white-space:nowrap}td{padding:.875rem 1rem;border-bottom:1px solid var(--border-color);font-size:.875rem;vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background-color .1s}tbody tr:hover td{background:var(--primary-light)}.navbar{position:fixed;top:0;left:0;right:0;height:var(--nav-h);background:var(--card-bg);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow-sm);z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;gap:1rem}.navbar-brand{gap:.6rem;text-decoration:none}.brand-logo,.navbar-brand{display:flex;align-items:center;flex-shrink:0}.brand-logo{width:34px;height:34px;border-radius:var(--radius-sm);background:linear-gradient(135deg,#2563eb,#7c3aed);justify-content:center;font-size:1rem;color:#fff;box-shadow:0 2px 6px rgba(37,99,235,.35)}.brand-logo-img{height:38px;width:auto;display:block;object-fit:contain;flex-shrink:0}.navbar-brand h2{font-size:1rem;font-weight:700;color:var(--text-color);letter-spacing:-.02em;line-height:1.2}.navbar-brand span{font-size:.68rem;color:var(--text-muted);font-weight:400;display:block}.desktop-nav{display:flex;align-items:center;gap:.125rem;flex:1 1;justify-content:center}.desktop-nav a{text-decoration:none;color:var(--text-muted);font-size:.85rem;font-weight:500;padding:.45rem .85rem;border-radius:var(--radius-sm);transition:color .14s,background-color .14s;white-space:nowrap}.desktop-nav a.active,.desktop-nav a:hover{color:var(--primary-color);background:var(--primary-light)}.desktop-nav a.active{font-weight:600}.nav-actions{gap:.375rem}.btn-icon,.nav-actions{display:flex;align-items:center;flex-shrink:0}.btn-icon{width:34px;height:34px;justify-content:center;background:transparent;border:1.5px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-muted);font-size:.95rem;transition:all .14s}.btn-icon:hover{background:var(--primary-light);border-color:var(--primary-color);color:var(--primary-color)}.hamburger{display:none;width:36px;height:36px;background:none;border:1.5px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;align-items:center;justify-content:center;color:var(--text-color);transition:all .14s}.hamburger:hover{background:var(--primary-light);border-color:var(--primary-color);color:var(--primary-color)}.drawer-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:200;animation:fadeIn .18s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.drawer{position:fixed;top:0;left:0;width:min(290px,90vw);height:100dvh;background:var(--card-bg);z-index:201;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:drawerSlideIn .24s cubic-bezier(.32,.72,0,1);overflow-y:auto}@keyframes drawerSlideIn{0%{transform:translateX(-100%)}to{transform:translateX(0)}}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem;border-bottom:1px solid var(--border-color);flex-shrink:0}.drawer-nav{flex:1 1;padding:.75rem;display:flex;flex-direction:column;gap:.2rem;overflow-y:auto}.drawer-nav a{display:flex;align-items:center;gap:.875rem;text-decoration:none;color:var(--text-muted);font-size:.95rem;font-weight:500;padding:.75rem 1rem;border-radius:var(--radius);transition:all .14s}.drawer-nav a.active,.drawer-nav a:hover{color:var(--primary-color);background:var(--primary-light)}.drawer-nav a.active{font-weight:600}.drawer-nav-icon{width:38px;height:38px;border-radius:var(--radius-sm);background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;font-size:1.05rem;flex-shrink:0;transition:all .14s}.drawer-nav a.active .drawer-nav-icon{background:var(--primary-color);color:#fff;filter:brightness(1.1)}.drawer-footer{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.5rem;flex-shrink:0}.bottom-nav,.drawer-footer{border-top:1px solid var(--border-color)}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:var(--bnav-h);background:var(--card-bg);z-index:99;padding:.375rem .25rem;box-shadow:0 -2px 14px rgba(15,23,42,.07)}.bottom-nav a{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.18rem;text-decoration:none;color:var(--text-muted);font-size:.6rem;font-weight:500;padding:.25rem;border-radius:var(--radius-sm);transition:all .14s;min-width:0;position:relative}.bottom-nav a .bnav-icon{font-size:1.2rem;line-height:1;transition:transform .14s}.bottom-nav a.active{color:var(--primary-color)}.bottom-nav a.active .bnav-icon{transform:scale(1.15)}.bottom-nav a.active:before{content:"";position:absolute;top:2px;width:18px;height:2.5px;background:var(--primary-color);border-radius:0 0 3px 3px;top:0}.login-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:linear-gradient(135deg,#e0e7ff,#f0f4f8 50%,#e0f2fe)}[data-theme=dark] .login-page{background:linear-gradient(135deg,#0f172a,#1a2442 50%,#0f172a)}.login-card{width:100%;max-width:400px;background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);padding:2.5rem 2rem;text-align:center}@media (max-width:768px){.hamburger{display:flex}.desktop-nav{display:none!important}.bottom-nav{display:flex}.desktop-only{display:none!important}.container{padding:calc(var(--nav-h) + 1rem) 1rem calc(var(--bnav-h) + 1rem)}.card{padding:1.25rem;border-radius:var(--radius)}th{padding:.6rem .625rem;font-size:.68rem}td{padding:.7rem .625rem;font-size:.825rem}h2{font-size:1.1rem}.btn{font-size:.82rem;padding:.45rem .75rem}}@media (min-width:769px){.mobile-only{display:none!important}}.ws-employees{gap:1.5rem}.ws-emp,.ws-employees{display:flex;flex-direction:column}.ws-emp{gap:1rem}.ws-emp-head{display:flex;align-items:center;gap:.875rem;flex-wrap:wrap;padding:1rem 1.25rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.ws-avatar{background:var(--primary-light);color:var(--primary-color);font-weight:700;font-size:.95rem;letter-spacing:.02em;display:flex;align-items:center;justify-content:center}.ws-avatar,.ws-avatar-img{width:46px;height:46px;border-radius:50%;flex-shrink:0}.ws-avatar-img{object-fit:cover;border:1px solid var(--border-color);background:var(--bg-secondary)}.ws-emp-info{flex:1 1;min-width:0}.ws-emp-name{font-size:1.02rem;font-weight:700;line-height:1.3;overflow-wrap:anywhere}.ws-emp-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.2rem;font-size:.78rem;color:var(--text-muted)}.ws-chip{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:.72rem;border:1px solid var(--border-color);padding:.1rem .5rem}.ws-chip,.ws-count{background:var(--bg-secondary);color:var(--text-muted);border-radius:99px;white-space:nowrap}.ws-count{font-size:.8rem;padding:.25rem .7rem}.ws-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:1rem;gap:1rem}.ws-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column;min-width:0;transition:box-shadow .18s ease,transform .18s ease}.ws-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.ws-thumb{position:relative;aspect-ratio:4/3;background:var(--bg-secondary);cursor:zoom-in;overflow:hidden}.ws-thumb img{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .25s ease,transform .25s ease}.ws-thumb img.ws-loaded{opacity:1}.ws-card:hover .ws-thumb img.ws-loaded{transform:scale(1.04)}.ws-thumb-fail{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.75rem}.ws-badge{position:absolute;top:8px;left:8px;font-size:.66rem;font-weight:600;color:#fff;padding:2px 8px;border-radius:99px;letter-spacing:.01em;white-space:nowrap;max-width:calc(100% - 16px);overflow:hidden;text-overflow:ellipsis}.ws-meta{padding:.65rem .8rem;display:flex;flex-direction:column;gap:.35rem}.ws-time{font-size:.76rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ws-addr,.ws-time{color:var(--text-muted)}.ws-addr{font-size:.72rem;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-actions{display:flex;gap:.4rem;padding:0 .8rem .8rem;flex-wrap:wrap}.ws-action{flex:1 1;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:.3rem;font-size:.74rem;font-weight:500;padding:.35rem .5rem;border-radius:var(--radius-sm);border:1.5px solid var(--border-color);background:transparent;color:var(--text-muted);text-decoration:none;cursor:pointer;font-family:inherit;white-space:nowrap;transition:all .14s}.ws-action:hover{border-color:var(--primary-color);color:var(--primary-color);background:var(--primary-light)}.ws-lightbox{position:fixed;inset:0;background:rgba(15,23,42,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:300;display:flex;flex-direction:column;animation:fadeIn .18s ease}.ws-lb-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;flex-wrap:wrap}.ws-lb-caption{color:#fff;font-size:.85rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-lb-caption .ws-lb-sub{display:block;font-size:.72rem;opacity:.65}.ws-lb-close{width:36px;height:36px;border-radius:50%;border:none;background:hsla(0,0%,100%,.12);color:#fff;font-size:.9rem;cursor:pointer;flex-shrink:0;transition:background-color .14s}.ws-lb-close:hover{background:hsla(0,0%,100%,.24)}.ws-lb-stage{flex:1 1;position:relative;min-height:0;padding:.5rem 3.25rem}.ws-lb-imgwrap,.ws-lb-stage{display:flex;align-items:center;justify-content:center;overflow:hidden}.ws-lb-imgwrap{width:100%;height:100%}.ws-lb-imgwrap img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;transition:transform .18s ease-out}.ws-lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:none;background:hsla(0,0%,100%,.12);color:#fff;font-size:1.25rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .14s;z-index:2}.ws-lb-nav:hover{background:hsla(0,0%,100%,.24)}.ws-lb-prev{left:.75rem}.ws-lb-next{right:.75rem}.ws-lb-bottom{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;flex-wrap:wrap}.ws-lb-btn{display:inline-flex;align-items:center;gap:.35rem;background:hsla(0,0%,100%,.12);color:#fff;border:none;padding:.45rem .9rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:500;cursor:pointer;text-decoration:none;font-family:inherit;white-space:nowrap;transition:background-color .14s}.ws-lb-btn:hover{background:hsla(0,0%,100%,.24)}.ws-skel-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius);overflow:hidden}.ws-skel-thumb{aspect-ratio:4/3;background:var(--bg-secondary);animation:wsPulse 1.4s ease-in-out infinite}@keyframes wsPulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.ws-card,.ws-lb-imgwrap img,.ws-thumb img{transition:none}.ws-lightbox,.ws-skel-thumb{animation:none}}@media (max-width:768px){.ws-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem}.ws-lb-stage{padding:.5rem}.ws-lb-nav{width:34px;height:34px;font-size:1.05rem}.ws-lb-prev{left:.4rem}.ws-lb-next{right:.4rem}}.ws-folders{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:1rem;gap:1rem}.ws-folder-card{display:flex;align-items:center;gap:.75rem;text-align:left;padding:1rem 1.1rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-sm);cursor:pointer;font-family:inherit;color:var(--text-color);min-width:0;transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease}.ws-folder-card:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:var(--primary-color)}.ws-folder-info{flex:1 1;min-width:0}.ws-folder-name{font-weight:700;font-size:.92rem;line-height:1.3;overflow-wrap:anywhere}.ws-folder-meta{display:flex;flex-direction:column;gap:.15rem;margin-top:.3rem;font-size:.74rem;color:var(--text-muted)}.ws-back{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:500;padding:.45rem .9rem;border-radius:var(--radius-sm);border:1.5px solid var(--border-color);background:transparent;color:var(--text-muted);cursor:pointer;font-family:inherit;white-space:nowrap;transition:all .14s}.ws-back:hover{border-color:var(--primary-color);color:var(--primary-color);background:var(--primary-light)}@media (max-width:768px){.ws-folders{grid-template-columns:1fr}}