@keyframes loginWrapIn{0%{opacity:0;transform:translateY(32px) scale(.97)}to{opacity:1;transform:none}}@keyframes logoPulse{0%,to{filter:drop-shadow(0 4px 16px rgba(8,128,173,.28))}50%{filter:drop-shadow(0 6px 24px rgba(8,128,173,.5))}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes successPop{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes loginShake{0%,to{transform:none}20%{transform:translateX(-7px)}40%{transform:translateX(7px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}@keyframes cardIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translateX(10px)}to{opacity:1;transform:translateX(0)}}#login-page{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;z-index:99999;background:var(--bg);display:flex;align-items:center;justify-content:center;overflow-y:auto;overflow-x:hidden;transition:background .3s}#login-page.hidden{display:none!important}body.login-active .app-wrap{visibility:hidden;pointer-events:none}.login-bg,.login-bg::after{position:absolute;inset:0;pointer-events:none}.login-grid{position:absolute;inset:0;background-image:radial-gradient(var(--grid-color) 1.2px,transparent 1.2px);background-size:24px 24px;-webkit-mask-image:linear-gradient(to bottom,#000,transparent 75%);mask-image:linear-gradient(to bottom,#000,transparent 75%)}.login-bg::after{content:"";background:radial-gradient(120% 60%at 80% -10%,var(--brand-100),transparent 55%),radial-gradient(70% 50%at 0% 100%,rgba(8,128,173,.08),transparent 60%),radial-gradient(60% 40%at 100% 100%,var(--accent-100),transparent 50%)}.login-wrap{position:relative;z-index:1;width:100%;max-width:520px;padding:28px;margin:0 auto;animation:loginWrapIn .7s cubic-bezier(.16,1,.3,1) both}@media (min-width:880px){#login-page{display:grid;grid-template-columns:1fr 1fr;padding:0;align-items:stretch}.login-bg{position:fixed;grid-column:unset;grid-row:unset}.login-identity-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 48px;background:linear-gradient(155deg,var(--brand-700) 0%,#0772a1 45%,var(--brand) 75%,var(--brand-300) 115%);position:relative;overflow:hidden}.login-identity-panel::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.08) 1.5px,transparent 1.5px);background-size:28px 28px;-webkit-mask-image:linear-gradient(to bottom,#000 30%,transparent 85%);mask-image:linear-gradient(to bottom,#000 30%,transparent 85%)}.login-identity-panel::after{content:"";position:absolute;inset:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg width='48' height='48' viewBox='0 0 48 48' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='rgba(255,255,255,0.04)'%3E%3Crect x='19' y='10' width='10' height='28'/%3E%3Crect x='10' y='19' width='28' height='10'/%3E%3C/g%3E%3C/svg%3E");background-size:48px 48px;opacity:.7}.login-identity-content{position:relative;z-index:1;color:#fff;text-align:center;max-width:320px}.login-identity-icon{width:auto;height:auto;background:0 0;border:0;box-shadow:none;display:flex;align-items:center;justify-content:center;margin:0 auto 28px}.login-identity-icon img{width:120px;height:120px;border-radius:22px;background:#fff;padding:8px;box-shadow:0 12px 40px rgba(0,0,0,.3)}.login-identity-title{font-family:var(--font-display);font-size:30px;font-weight:700;color:#fff;line-height:1.2;margin-bottom:12px;letter-spacing:-.3px}.login-identity-desc{font-size:16px;color:rgba(255,255,255,.8);line-height:1.7}.login-identity-badges{display:flex;gap:8px;justify-content:center;margin-top:24px;flex-wrap:wrap}.login-identity-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 13px;border-radius:99px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.2);font-size:12px;font-weight:600;color:rgba(255,255,255,.9)}.login-wrap{justify-self:center;align-self:center;max-width:580px;width:100%;padding:56px 52px}.login-logo{display:none}}@media (max-width:879px){.login-identity-content,.login-identity-panel{position:relative;display:flex!important;flex-direction:column;align-items:center}.login-identity-panel{justify-content:center;padding:40px 24px 36px;background:linear-gradient(170deg,var(--brand-100) 0%,#e8f5fb 50%,#fff 100%);width:100%;border-bottom:1px solid var(--line)}.login-identity-panel::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--brand-700),var(--brand),var(--brand-300));border-radius:0;pointer-events:none}.login-identity-panel::after{display:none!important}.login-identity-content{z-index:1;gap:0;background:0 0;border-radius:0;padding:0;box-shadow:none;text-align:center}.login-identity-icon{margin:0 0 16px!important;width:auto!important;height:auto!important;display:flex;align-items:center;justify-content:center}.login-identity-icon img{width:76px!important;height:76px!important;border-radius:20px;padding:0!important;background:0 0!important;box-shadow:0 4px 20px rgba(8,128,173,.18)}.login-identity-title{font-size:25px!important;font-weight:700!important;color:var(--text-100)!important;margin-bottom:6px!important;letter-spacing:-.5px;text-shadow:none!important}.login-identity-desc{font-size:14px!important;color:var(--text-400)!important;line-height:1.6!important;max-width:230px}.login-identity-badges{display:none}}.login-logo{text-align:center;margin-bottom:28px}.login-icon-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;margin-bottom:14px;background:0 0;border:0;box-shadow:none;width:auto;height:auto}.login-ring,.login-ring-2{display:none}.login-icon-wrap img{animation:logoPulse 4s ease-in-out infinite 1.2s;filter:drop-shadow(0 4px 16px rgba(8,128,173,.28));border-radius:12px}.login-title{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--text-100)}.login-subtitle{font-size:13px;color:var(--text-400);margin-top:5px;letter-spacing:.6px}.login-card{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-xl);padding:40px 36px;position:relative;overflow:hidden;box-shadow:var(--shadow-lg)}.login-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--brand),transparent);border-radius:var(--radius-xl) var(--radius-xl)0 0}.login-card-title{font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--text-100);margin-bottom:8px;letter-spacing:-.2px}.login-card-desc{font-size:14px;color:var(--text-400);margin-bottom:26px}.login-field{margin-bottom:16px}.login-field-label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--text-200);margin-bottom:6px}.login-field-wrap{position:relative}.login-input{width:100%;padding:12px 42px 12px 14px;background:var(--surface-2);border:1px solid var(--line-strong);border-radius:var(--radius-md);color:var(--text-100);font-family:var(--font-body);font-size:16px;outline:0;transition:border-color .18s,box-shadow .18s,background .18s;direction:rtl}.login-input::placeholder{color:var(--text-400)}.login-input:focus{border-color:var(--brand);background:var(--surface-1);box-shadow:var(--ring)}.login-input.has-error{border-color:var(--danger);background:var(--danger-100)}.login-field-icon{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:var(--text-400);pointer-events:none;transition:color .18s}.login-field-wrap:focus-within .login-field-icon{color:var(--brand)}.login-eye-btn{position:absolute;left:11px;top:50%;transform:translateY(-50%);background:0 0;border:0;color:var(--text-400);cursor:pointer;padding:4px;display:flex;align-items:center;transition:color .18s}.login-eye-btn:hover{color:var(--text-200)}.login-error-msg{display:none;align-items:center;gap:6px;margin-top:7px;padding:9px 12px;background:var(--danger-100);border:1px solid var(--danger);border-radius:var(--radius-sm);font-size:13px;color:var(--danger)}.login-btn,.login-error-msg.show{display:flex}.login-btn{width:100%;padding:15px;background:var(--brand);border:0;border-radius:var(--radius-md);color:#fff;font-family:var(--font-display);font-size:16px;font-weight:600;cursor:pointer;position:relative;overflow:hidden;transition:background .2s;box-shadow:var(--shadow-brand);margin-top:6px;align-items:center;justify-content:center;gap:8px}.login-btn:hover{background:var(--brand-600)}.login-btn:active{transform:none}.login-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-btn-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:none}.login-btn.loading .login-btn-spinner{display:block}.login-btn.loading .login-btn-text{display:none}.login-divider{display:flex;align-items:center;gap:12px;margin:16px 0 12px}.login-divider-line{flex:1;height:1px;background:var(--line)}.login-divider-text{font-size:12px;color:var(--text-400);white-space:nowrap}.login-footer,.login-hint{text-align:center;color:var(--text-400)}.login-hint{font-size:13px;margin-top:14px;display:flex;align-items:center;justify-content:center;gap:5px}.login-footer{margin-top:18px;font-size:12px;opacity:.5}.login-success,.login-success-icon{display:flex;align-items:center;justify-content:center}.login-success{position:absolute;inset:0;background:var(--modal-bg);border-radius:var(--radius-xl);flex-direction:column;gap:13px;opacity:0;pointer-events:none;transition:opacity .4s;z-index:10}.login-success.show{opacity:1;pointer-events:all}.login-success-icon{width:64px;height:64px;background:var(--ok-100);border:2px solid var(--ok);border-radius:50%;animation:successPop .5s cubic-bezier(.16,1,.3,1) both}.login-success-text{font-family:var(--font-display);font-size:17px;font-weight:700;color:var(--ok)}.login-success-sub{font-size:13px;color:var(--text-400)}#confirm-backdrop{z-index:500}.confirm-body{text-align:center;padding:24px 22px}.confirm-icon{font-size:32px;margin-bottom:10px}.confirm-msg{font-size:15px;color:var(--text-200);line-height:1.65}.confirm-footer{display:flex;justify-content:center;gap:10px;padding:14px 22px;border-top:1px solid var(--line)}tbody tr:nth-child(even) td{background:rgba(0,0,0,.018)}html.light tbody tr:nth-child(even) td{background:rgba(0,0,0,.022)}.section-divider{height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent);margin:24px 0}.main{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}.main::-webkit-scrollbar{width:5px}.main::-webkit-scrollbar-track{background:0 0}.main::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}.stats-row .stat-card:nth-child(1){animation:cardIn .4s ease .05s both}.stats-row .stat-card:nth-child(2){animation:cardIn .4s ease .12s both}.stats-row .stat-card:nth-child(3){animation:cardIn .4s ease .19s both}.stats-row .stat-card:nth-child(4){animation:cardIn .4s ease .26s both}.sidebar-nav .nav-item:nth-child(1){animation:slideIn .3s ease .1s both}.sidebar-nav .nav-item:nth-child(2){animation:slideIn .3s ease .15s both}.sidebar-nav .nav-item:nth-child(3){animation:slideIn .3s ease .2s both}.sidebar-nav .nav-item:nth-child(4){animation:slideIn .3s ease .25s both}.sidebar-nav .nav-item:nth-child(5){animation:slideIn .3s ease .3s both}html.light #login-page{background:var(--bg)}html.light .login-card{background:var(--surface-1);border-color:var(--line);box-shadow:var(--shadow-lg)}html.light .login-card::before{background:linear-gradient(90deg,transparent,rgba(8,128,173,.4),transparent)}html.light .login-input{background:var(--surface-2);border-color:var(--line-strong)}html.light .login-input:focus{background:#fff;border-color:var(--brand)}html.light .table-toolbar{background:rgba(0,0,0,.015)}html.light thead tr{background:rgba(0,0,0,.025);border-bottom:1px solid rgba(0,0,0,.07)}html.light tbody tr:hover{background:rgba(0,0,0,.02)}html.light .modal-backdrop{background:rgba(0,0,0,.38)}html.light .modal-box{box-shadow:var(--shadow-pop)}html.light .modal-header{border-bottom-color:rgba(0,0,0,.07)}html.light .modal-footer{border-top-color:rgba(0,0,0,.07);background:rgba(0,0,0,.025)}html.light .sidebar-brand{border-bottom-color:rgba(0,0,0,.07)}html.light .sidebar-footer{border-top-color:rgba(0,0,0,.07)}html.light .nav-item.active{background:var(--surface-3);border-color:transparent;color:var(--brand)}html.light .stat-card,html.light .table-wrap{box-shadow:var(--shadow-sm)}html.light .stat-card:hover{box-shadow:var(--shadow-md)}html.light .search-input{background:var(--surface-2);border-color:var(--line-strong)}html.light .search-input:focus{background:#fff}html.light .branch-drawer{background:var(--surface-1);border-left-color:var(--line)}html.light .branch-drawer-overlay{background:rgba(0,0,0,.28)}html.light .form-input,html.light .form-select{background:var(--surface-2);border-color:var(--line-strong)}html.light .form-input:focus,html.light .form-select:focus{background:#fff;border-color:var(--brand)}html.light .drawer-header,html.light .phase-acc-header{background:var(--surface-2)}html.light .drawer-header{border-bottom-color:var(--line)}html.light .drawer-footer{background:var(--surface-2);border-top-color:var(--line)}html.light .table-toolbar .form-select:focus{border-color:var(--brand)}html.light .btn-ghost,html.light .pe-input{border-color:var(--line-strong);color:var(--text-100)}html.light .btn-ghost:hover{background:var(--surface-3);color:var(--text-100)}html.light .pe-input{background:var(--surface-2)}html.light .pe-input:focus{border-color:var(--brand);background:#fff}html.light .pe-dept-name-input{color:var(--text-100)}html.light .pe-dept-name-input:focus,html.light .pe-dept-name-input:hover{background:var(--surface-2);border-color:var(--line-strong)}html.light .pe-dept-card{border-color:var(--line)}html.light .pe-dept-header{background:var(--surface-2)}html.light .pe-mgr-row:hover{background:var(--surface-hover)}html.light .rt-indicator.rt-live{background:var(--ok-100);border-color:rgba(31,157,107,.3);color:var(--ok-600)}html.light .rt-indicator.rt-polling{background:var(--warn-100);border-color:rgba(214,148,18,.3);color:var(--warn)}html.light .status-badge.done{background:var(--ok-100);color:var(--ok-600)}html.light .status-badge.inprogress{background:var(--info-100);color:var(--info-600)}html.light .status-badge.notstarted{background:var(--surface-3);color:var(--text-300)}html.light .theme-toggle{color:var(--text-100);border-color:var(--line-strong)}html.light .theme-toggle:hover,html.light .topbar-page-icon svg{color:var(--brand)}html.light .topbar-page-icon{background:var(--brand-100)}