@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600;700&display=swap";.auth-page{min-height:100vh;display:flex;background-color:var(--bg-secondary)}.auth-container{display:flex;width:100%;min-height:100vh}.auth-branding{flex:1;background:linear-gradient(135deg,#1e3a8a,#2563eb,#3b82f6);background-size:200% 200%;animation:gradient-shift 15s ease infinite;color:#fff;display:none;padding:var(--space-12);position:relative;overflow:hidden}.auth-branding:before{content:"";position:absolute;top:-50%;right:-50%;width:100%;height:100%;background:radial-gradient(circle,rgba(255,255,255,.15) 0%,transparent 70%);pointer-events:none;animation:float 8s ease-in-out infinite}.auth-branding:after{content:"";position:absolute;bottom:-30%;left:-30%;width:80%;height:80%;background:radial-gradient(circle,rgba(124,58,237,.3) 0%,transparent 60%);pointer-events:none;animation:float 10s ease-in-out infinite reverse}.auth-branding-content{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;height:100%;max-width:480px}.auth-logo{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-10)}.logo-icon{width:48px;height:48px;color:#fff;filter:drop-shadow(0 4px 12px rgba(0,0,0,.3));animation:float 4s ease-in-out infinite}.logo-text{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);letter-spacing:-.025em;text-shadow:0 2px 10px rgba(0,0,0,.2)}.auth-branding-title{font-size:clamp(2rem,5vw,3rem);font-weight:var(--font-weight-bold);line-height:1.1;margin-bottom:var(--space-6);letter-spacing:-.025em;animation:slide-up .8s ease-out backwards;animation-delay:.2s}.auth-branding-description{font-size:var(--font-size-lg);opacity:.9;line-height:var(--line-height-relaxed);margin-bottom:var(--space-10);animation:slide-up .8s ease-out backwards;animation-delay:.4s}.auth-features{display:flex;flex-direction:column;gap:var(--space-4)}.auth-feature{display:flex;align-items:center;gap:var(--space-3);font-size:var(--font-size-base);opacity:.95;animation:slide-up .6s ease-out backwards;transition:transform var(--transition-fast)}.auth-feature:nth-child(1){animation-delay:.5s}.auth-feature:nth-child(2){animation-delay:.6s}.auth-feature:nth-child(3){animation-delay:.7s}.auth-feature:hover{transform:translate(8px)}.feature-icon{width:24px;height:24px;flex-shrink:0;filter:drop-shadow(0 0 8px rgba(255,255,255,.5))}.auth-form-panel{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-8);background-color:var(--bg-primary);position:relative;overflow:hidden}.auth-form-panel:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--gradient-mesh);opacity:.5;pointer-events:none}.auth-form-container{width:100%;max-width:400px;position:relative;z-index:1;animation:scale-in .5s ease-out}.auth-form-header{text-align:center;margin-bottom:var(--space-8)}.auth-form-header h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--space-2);letter-spacing:-.025em}.auth-form-header p{font-size:var(--font-size-base);color:var(--text-tertiary)}.auth-form{display:flex;flex-direction:column;gap:var(--space-5)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-group label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}.label-row{display:flex;justify-content:space-between;align-items:center}.forgot-link{font-size:var(--font-size-sm);color:var(--color-primary);text-decoration:none;transition:all var(--transition-fast)}.forgot-link:hover{color:var(--color-primary-hover);text-decoration:underline}.input-wrapper{position:relative}.input-icon{position:absolute;left:var(--space-4);top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none;transition:color var(--transition-fast)}.input-wrapper input{width:100%;padding-left:calc(var(--space-4) + 18px + var(--space-3));height:52px;background:var(--bg-secondary);border:2px solid var(--border-light);border-radius:var(--radius-xl);font-size:var(--font-size-base);color:var(--text-primary);transition:all var(--transition-fast)}.input-wrapper input:focus{outline:none;border-color:var(--color-primary);background:var(--bg-primary);box-shadow:0 0 0 4px rgba(var(--color-primary-rgb),.1)}.input-wrapper input:focus+.input-icon,.input-wrapper:focus-within .input-icon{color:var(--color-primary)}.input-wrapper input::placeholder{color:var(--text-muted)}.auth-error{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:linear-gradient(135deg,rgba(var(--color-error-rgb),.1),rgba(var(--color-error-rgb),.05));border:1px solid var(--color-error);border-radius:var(--radius-xl);color:var(--color-error);font-size:var(--font-size-sm);animation:scale-in .3s ease-out}.error-icon{width:20px;height:20px;flex-shrink:0}.auth-submit{height:52px;background:linear-gradient(135deg,var(--color-primary) 0%,#1D4ED8 100%);color:#fff;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);border:none;border-radius:var(--radius-xl);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--space-2);transition:all var(--transition-normal);margin-top:var(--space-2);position:relative;overflow:hidden}.auth-submit:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.auth-submit:hover:not(:disabled):before{left:100%}.auth-submit:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#1e40af);transform:translateY(-2px);box-shadow:0 8px 20px -4px rgba(var(--color-primary-rgb),.5)}.auth-submit:active:not(:disabled){transform:translateY(0)}.auth-submit:disabled{opacity:.7;cursor:not-allowed}.spin{animation:spin 1s linear infinite}.auth-divider{display:flex;align-items:center;gap:var(--space-4);margin:var(--space-6) 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--border-light),transparent)}.auth-divider span{font-size:var(--font-size-sm);color:var(--text-muted)}.auth-alternate{width:100%;height:52px;background:var(--bg-secondary);color:var(--text-primary);border:2px solid var(--border-light);border-radius:var(--radius-xl);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--space-3);transition:all var(--transition-fast)}.auth-alternate:hover{background-color:var(--bg-hover);border-color:var(--color-primary);color:var(--color-primary);transform:translateY(-2px);box-shadow:0 4px 12px -2px rgba(var(--color-primary-rgb),.15)}.auth-footer{text-align:center;margin-top:var(--space-8);font-size:var(--font-size-sm);color:var(--text-tertiary)}.auth-footer a{color:var(--color-primary);font-weight:var(--font-weight-medium);text-decoration:none;transition:color var(--transition-fast)}.auth-footer a:hover{color:var(--color-primary-hover);text-decoration:underline}.auth-success{text-align:center;padding:var(--space-8);animation:scale-in .4s ease-out}.auth-success-icon{width:80px;height:80px;margin:0 auto var(--space-6);color:var(--color-success);filter:drop-shadow(0 4px 12px rgba(var(--color-success-rgb),.4));animation:float 3s ease-in-out infinite}.auth-success h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--space-2)}.auth-success p{color:var(--text-tertiary);line-height:var(--line-height-relaxed)}.auth-success strong{color:var(--text-primary)}.loading-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);background-color:var(--bg-secondary);background-image:var(--gradient-mesh)}.loading-spinner{width:48px;height:48px;border:3px solid var(--border-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.loading-container p{color:var(--text-tertiary);font-size:var(--font-size-sm)}.access-denied{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-8);background-color:var(--bg-secondary);background-image:var(--gradient-mesh)}.access-denied h2{color:var(--color-error);font-size:var(--font-size-2xl);margin-bottom:var(--space-4)}.access-denied p{color:var(--text-tertiary);margin-bottom:var(--space-2)}@media (min-width: 1024px){.auth-branding{display:flex}.auth-form-panel{flex:0 0 50%;max-width:600px}}@media (min-width: 1280px){.auth-form-panel{flex:0 0 45%}}.app-layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:50;transition:width var(--transition-slow),box-shadow var(--transition-normal);box-shadow:4px 0 24px -4px #00000026}.sidebar:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 20% 0%,rgba(59,130,246,.15) 0%,transparent 50%),radial-gradient(ellipse at 80% 100%,rgba(124,58,237,.1) 0%,transparent 50%);pointer-events:none;opacity:.8}.sidebar-collapsed{width:var(--sidebar-collapsed-width)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5);border-bottom:1px solid rgba(255,255,255,.08);position:relative;z-index:1}.sidebar-logo{display:flex;align-items:center;gap:var(--space-3)}.sidebar-logo-icon{width:36px;height:36px;flex-shrink:0;color:var(--color-primary);filter:drop-shadow(0 0 8px rgba(var(--color-primary-rgb),.5));transition:filter var(--transition-normal),transform var(--transition-normal)}.sidebar-logo:hover .sidebar-logo-icon{filter:drop-shadow(0 0 12px rgba(var(--color-primary-rgb),.7));transform:scale(1.05)}.sidebar-logo-text{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--sidebar-text);letter-spacing:-.025em;background:linear-gradient(135deg,#fff,#94a3b8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.sidebar-toggle{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:var(--sidebar-text-muted);cursor:pointer;transition:all var(--transition-fast)}.sidebar-toggle:hover{background-color:var(--sidebar-hover);color:var(--sidebar-text);border-color:#fff3;transform:scale(1.05)}.sidebar-collapsed .sidebar-toggle{transform:rotate(180deg)}.sidebar-collapsed .sidebar-toggle:hover{transform:rotate(180deg) scale(1.05)}.sidebar-nav{flex:1;padding:var(--space-4);overflow-y:auto;position:relative;z-index:1}.sidebar-nav-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-1)}.sidebar-nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);color:var(--sidebar-text-muted);text-decoration:none;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);cursor:pointer;position:relative;overflow:hidden}.sidebar-nav-item:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(255,255,255,.1) 0%,transparent 100%);opacity:0;transition:opacity var(--transition-fast)}.sidebar-nav-item:hover{background-color:var(--sidebar-hover);color:var(--sidebar-text);transform:translate(4px)}.sidebar-nav-item:hover:before{opacity:1}.sidebar-nav-item.active{background:var(--sidebar-active);color:#fff;box-shadow:0 4px 12px -2px rgba(var(--color-primary-rgb),.4)}.sidebar-nav-item.active:before{opacity:0}.sidebar-nav-item.active svg{filter:drop-shadow(0 0 4px rgba(255,255,255,.5))}.sidebar-collapsed .sidebar-nav-item{justify-content:center;padding:var(--space-3)}.sidebar-collapsed .sidebar-nav-item:hover{transform:scale(1.05)}.sidebar-collapsed .sidebar-nav-item span{display:none}.sidebar-bottom{padding:var(--space-4);border-top:1px solid rgba(255,255,255,.08);position:relative;z-index:1}.sidebar-bottom .sidebar-nav-list{margin-bottom:var(--space-4)}.sidebar-user{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);transition:all var(--transition-normal)}.sidebar-user:hover{background:#ffffff14;border-color:#ffffff1f}.sidebar-user-avatar{width:40px;height:40px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);flex-shrink:0;box-shadow:0 4px 12px -2px rgba(var(--color-primary-rgb),.4);transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.sidebar-user:hover .sidebar-user-avatar{transform:scale(1.05);box-shadow:0 6px 16px -2px rgba(var(--color-primary-rgb),.5)}.sidebar-user-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.sidebar-user-email{font-size:var(--font-size-sm);color:var(--sidebar-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:var(--radius-full);width:fit-content;font-weight:var(--font-weight-semibold)}.sidebar-user-role.badge-staff{background:linear-gradient(135deg,#64748b4d,#64748b1a);color:#94a3b8}.sidebar-user-role.badge-manager{background:linear-gradient(135deg,#2563eb4d,#2563eb1a);color:#60a5fa}.sidebar-user-role.badge-partner{background:linear-gradient(135deg,#7c3aed4d,#7c3aed1a);color:#a78bfa}.sidebar-logout{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--sidebar-text-muted);cursor:pointer;transition:all var(--transition-fast)}.sidebar-logout:hover{background-color:#ef444426;border-color:#ef44444d;color:#f87171;transform:scale(1.05)}.sidebar-collapsed .sidebar-user{flex-direction:column;padding:var(--space-2)}.sidebar-collapsed .sidebar-user-info,.sidebar-collapsed .sidebar-logout{display:none}.main-wrapper{flex:1;margin-left:var(--sidebar-width);min-height:100vh;display:flex;flex-direction:column;transition:margin-left var(--transition-slow);background:var(--bg-secondary);position:relative}.main-wrapper:before{content:"";position:fixed;top:0;left:var(--sidebar-width);right:0;bottom:0;background:var(--gradient-mesh);pointer-events:none;z-index:0;transition:left var(--transition-slow)}.main-wrapper.sidebar-collapsed{margin-left:var(--sidebar-collapsed-width)}.main-wrapper.sidebar-collapsed:before{left:var(--sidebar-collapsed-width)}.main-header{height:var(--header-height);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--glass-border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6);position:sticky;top:0;z-index:40}.header-left{display:flex;align-items:center;gap:var(--space-4)}.header-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.header-right{display:flex;align-items:center;gap:var(--space-3)}.header-icon-btn{width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:var(--glass-bg);border:1px solid var(--border-light);border-radius:var(--radius-xl);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.header-icon-btn:hover{background-color:var(--bg-hover);border-color:var(--color-primary);color:var(--color-primary);transform:translateY(-2px);box-shadow:0 4px 12px -2px rgba(var(--color-primary-rgb),.2)}.main-content{flex:1;padding:var(--space-6);position:relative;z-index:1}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-6);animation:slide-up .5s ease-out}.page-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--space-2);letter-spacing:-.025em}.page-description{font-size:var(--font-size-base);color:var(--text-tertiary)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-5);margin-bottom:var(--space-6)}.stat-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-2xl);padding:var(--space-6);display:flex;align-items:flex-start;gap:var(--space-4);transition:all var(--transition-normal);animation:scale-in .4s ease-out backwards;cursor:pointer;position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--color-primary),transparent);opacity:0;transition:opacity var(--transition-normal)}.stat-card:nth-child(1){animation-delay:.1s}.stat-card:nth-child(2){animation-delay:.2s}.stat-card:nth-child(3){animation-delay:.3s}.stat-card:nth-child(4){animation-delay:.4s}.stat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl),0 0 40px -10px rgba(var(--color-primary-rgb),.15);border-color:rgba(var(--color-primary-rgb),.3)}.stat-card:hover:before{opacity:1}.stat-icon{width:56px;height:56px;border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.stat-card:hover .stat-icon{transform:scale(1.1)}.stat-icon.blue{background:linear-gradient(135deg,rgba(var(--color-primary-rgb),.2),rgba(var(--color-primary-rgb),.1));color:var(--color-primary);box-shadow:0 4px 12px -2px rgba(var(--color-primary-rgb),.3)}.stat-icon.green{background:linear-gradient(135deg,rgba(var(--color-success-rgb),.2),rgba(var(--color-success-rgb),.1));color:var(--color-success);box-shadow:0 4px 12px -2px rgba(var(--color-success-rgb),.3)}.stat-icon.orange{background:linear-gradient(135deg,rgba(var(--color-warning-rgb),.2),rgba(var(--color-warning-rgb),.1));color:var(--color-warning);box-shadow:0 4px 12px -2px rgba(var(--color-warning-rgb),.3)}.stat-icon.purple{background:linear-gradient(135deg,#7c3aed33,#7c3aed1a);color:var(--role-partner);box-shadow:0 4px 12px -2px #7c3aed4d}.stat-content{flex:1;display:flex;flex-direction:column;gap:var(--space-1)}.stat-label{font-size:var(--font-size-sm);color:var(--text-tertiary);font-weight:var(--font-weight-medium)}.stat-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--text-primary);letter-spacing:-.025em;animation:count-up .6s ease-out backwards}.stat-card:nth-child(1) .stat-value{animation-delay:.3s}.stat-card:nth-child(2) .stat-value{animation-delay:.4s}.stat-card:nth-child(3) .stat-value{animation-delay:.5s}.stat-card:nth-child(4) .stat-value{animation-delay:.6s}.stat-change{font-size:var(--font-size-sm);display:flex;align-items:center;gap:var(--space-1);font-weight:var(--font-weight-medium)}.stat-change.positive{color:var(--color-success)}.stat-change.negative{color:var(--color-error)}.content-grid{display:grid;grid-template-columns:1fr;gap:var(--space-6)}@media (min-width: 1200px){.content-grid{grid-template-columns:2fr 1fr}}.card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-2xl);padding:var(--space-6);animation:slide-up .5s ease-out backwards;animation-delay:.3s;transition:all var(--transition-normal)}.card:hover{box-shadow:var(--shadow-lg)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.btn-text{display:flex;align-items:center;gap:var(--space-1);background:transparent;border:none;color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg)}.btn-text:hover{color:var(--color-primary-hover);background:rgba(var(--color-primary-rgb),.1);transform:translate(4px)}.activity-list{display:flex;flex-direction:column}.activity-item{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-4) 0;border-bottom:1px solid var(--border-light);transition:all var(--transition-fast)}.activity-item:last-child{border-bottom:none}.activity-item:hover{background:rgba(var(--color-primary-rgb),.03);margin:0 calc(-1 * var(--space-4));padding-left:var(--space-4);padding-right:var(--space-4);border-radius:var(--radius-lg)}.activity-icon{width:44px;height:44px;border-radius:var(--radius-xl);background:linear-gradient(135deg,var(--bg-tertiary) 0%,var(--bg-secondary) 100%);display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);flex-shrink:0;transition:all var(--transition-fast)}.activity-item:hover .activity-icon{background:linear-gradient(135deg,rgba(var(--color-primary-rgb),.15),rgba(var(--color-primary-rgb),.05));color:var(--color-primary);transform:scale(1.05)}.activity-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.activity-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.activity-description{font-size:var(--font-size-sm);color:var(--text-tertiary)}.activity-time{font-size:var(--font-size-xs);color:var(--text-muted);white-space:nowrap}.quick-actions{display:flex;flex-direction:column;gap:var(--space-3)}.quick-action-btn{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);border:1px solid var(--border-light);border-radius:var(--radius-xl);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);text-align:left;position:relative;overflow:hidden}.quick-action-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(var(--color-primary-rgb),.1),transparent);transition:left var(--transition-slow)}.quick-action-btn:hover:before{left:100%}.quick-action-btn:hover{border-color:var(--color-primary);transform:translate(4px);box-shadow:0 4px 12px -2px rgba(var(--color-primary-rgb),.15)}.quick-action-btn svg{color:var(--color-primary);transition:transform var(--transition-fast)}.quick-action-btn:hover svg{transform:scale(1.15)}.role-info{margin-top:var(--space-5);padding:var(--space-4);background:linear-gradient(135deg,rgba(var(--color-primary-rgb),.1),rgba(var(--color-primary-rgb),.05));border-radius:var(--radius-xl);border-left:4px solid var(--color-primary);transition:all var(--transition-normal)}.role-info:hover{transform:translate(4px)}.role-info h4{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary);margin-bottom:var(--space-1)}.role-info p{font-size:var(--font-size-sm);color:var(--text-secondary)}.role-info.partner{background:linear-gradient(135deg,#7c3aed26,#7c3aed0d);border-left-color:var(--role-partner)}.role-info.partner h4{color:var(--role-partner)}.skip-link{position:absolute;top:-100%;left:var(--space-4);padding:var(--space-2) var(--space-4);background:var(--color-primary);color:#fff;border-radius:var(--radius-md);z-index:100;text-decoration:none;font-weight:var(--font-weight-medium);transition:top var(--transition-fast)}.skip-link:focus{top:var(--space-4)}.page-loading{display:flex;align-items:center;justify-content:center;min-height:50vh;color:var(--text-tertiary);font-size:var(--font-size-lg);animation:fade-in .3s ease-out}@media (max-width: 768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-wrapper{margin-left:0}.main-wrapper:before{left:0}.main-content{padding:var(--space-4)}.page-title{font-size:var(--font-size-2xl)}.stat-card{padding:var(--space-4)}.stat-icon{width:48px;height:48px}.stat-value{font-size:var(--font-size-2xl)}}.hamburger-btn{display:none;width:44px;height:44px;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-light);border-radius:var(--radius-lg);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast)}.hamburger-btn:hover{background:var(--bg-hover)}.sidebar-overlay{display:none}@media (max-width: 768px){.hamburger-btn{display:flex}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:45;animation:fade-in .2s ease-out}.sidebar.mobile-open{transform:translate(0);box-shadow:4px 0 24px #0000004d}}@media (max-width: 480px){.main-content{padding:var(--space-3)}.page-title{font-size:var(--font-size-xl)}.page-header{flex-direction:column;gap:var(--space-3)}.stats-grid{grid-template-columns:1fr}.stat-card{padding:var(--space-3)}.stat-value{font-size:var(--font-size-xl)}.header-right{gap:var(--space-2)}.sidebar-toggle{min-width:44px;min-height:44px}}.search-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;padding-top:15vh}.search-modal{width:100%;max-width:640px;max-height:70vh;background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-2xl);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-2xl)}.search-input-wrapper{padding:var(--space-4);border-bottom:1px solid var(--border-light);display:flex;align-items:center;gap:var(--space-3)}.search-input{flex:1;border:none;background:none;font-size:var(--font-size-lg);color:var(--text-primary);outline:none}.search-input::placeholder{color:var(--text-tertiary)}.search-results{flex:1;overflow-y:auto;padding:var(--space-2)}.search-result-group{margin-bottom:var(--space-3)}.search-group-header{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.search-group-count{color:var(--text-tertiary);font-weight:400}.search-result-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);cursor:pointer;transition:background var(--transition-fast)}.search-result-item:hover,.search-result-item.selected{background:var(--bg-hover)}.search-type-badge{font-size:var(--font-size-xs);padding:2px 8px;background:var(--bg-tertiary);color:var(--text-tertiary);border:1px solid var(--border-light);border-radius:var(--radius-sm);text-transform:capitalize}.search-empty{text-align:center;padding:var(--space-8);color:var(--text-tertiary)}.search-kbd{font-size:var(--font-size-xs);padding:2px 6px;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:var(--radius-sm);font-family:monospace}.spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.search-overlay{padding-top:0;align-items:flex-start}.search-modal{max-width:100%;max-height:100vh;border-radius:0}.search-kbd{display:none}}.notification-badge{position:absolute;top:-4px;right:-4px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-size:10px;font-weight:var(--font-weight-bold);min-width:18px;height:18px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;padding:0 4px;box-shadow:0 2px 8px #ef444466;animation:pulse-badge 2s ease-in-out infinite}@keyframes pulse-badge{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.notification-panel{position:absolute;top:calc(100% + 8px);right:0;width:380px;max-height:480px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl),0 0 40px -10px #0003;display:flex;flex-direction:column;overflow:hidden;z-index:1000;animation:slide-down .3s ease-out}@keyframes slide-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.notification-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-light);background:linear-gradient(135deg,rgba(var(--color-primary-rgb),.05) 0%,transparent 100%)}.notification-panel-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.notification-panel-action{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:transparent;border:1px solid var(--border-light);border-radius:var(--radius-lg);color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.notification-panel-action:hover:not(:disabled){background:rgba(var(--color-primary-rgb),.1);border-color:var(--color-primary)}.notification-panel-action:disabled{opacity:.5;cursor:not-allowed}.notification-panel-body{flex:1;overflow-y:auto;min-height:200px}.notification-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);gap:var(--space-3);color:var(--text-tertiary);text-align:center}.notification-empty svg{color:var(--text-muted);opacity:.5}.notification-empty p{font-size:var(--font-size-sm);color:var(--text-tertiary)}.notification-list{display:flex;flex-direction:column}.notification-item{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--border-light);cursor:pointer;transition:all var(--transition-fast);position:relative}.notification-item:last-child{border-bottom:none}.notification-item.unread{background:linear-gradient(90deg,rgba(var(--color-primary-rgb),.08) 0%,transparent 100%)}.notification-item.unread:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--color-primary)}.notification-item:hover{background:rgba(var(--color-primary-rgb),.05)}.notification-icon{width:36px;height:36px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform var(--transition-fast)}.notification-item:hover .notification-icon{transform:scale(1.1)}.notification-icon.deadline,.notification-icon.escalation{background:linear-gradient(135deg,rgba(var(--color-warning-rgb),.2),rgba(var(--color-warning-rgb),.1));color:var(--color-warning)}.notification-icon.approval_request,.notification-icon.gate_satisfied{background:linear-gradient(135deg,rgba(var(--color-success-rgb),.2),rgba(var(--color-success-rgb),.1));color:var(--color-success)}.notification-icon.system{background:linear-gradient(135deg,rgba(var(--color-primary-rgb),.2),rgba(var(--color-primary-rgb),.1));color:var(--color-primary)}.notification-icon.filing_deadline{background:linear-gradient(135deg,#3b82f633,#3b82f61a);color:#3b82f6}.notification-icon.dormancy{background:linear-gradient(135deg,#6b728033,#6b72801a);color:#6b7280}.notification-icon.milestone_advance{background:linear-gradient(135deg,#10b98133,#10b9811a);color:#10b981}.notification-icon.milestone_blocked{background:linear-gradient(135deg,#ef444433,#ef44441a);color:#ef4444}.notification-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.notification-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.notification-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-time{font-size:var(--font-size-xs);color:var(--text-muted);white-space:nowrap;flex-shrink:0}.notification-message{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:var(--line-height-relaxed);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notification-dismiss{width:24px;height:24px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;opacity:0}.notification-item:hover .notification-dismiss{opacity:1}.notification-dismiss:hover{background:#ef44441a;color:var(--color-error);transform:scale(1.1)}.notification-preferences{padding:var(--space-6)}.notification-preferences-header{margin-bottom:var(--space-5)}.notification-preferences-header h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--space-2)}.notification-preferences-header p{font-size:var(--font-size-sm);color:var(--text-tertiary)}.notification-preferences-list{display:flex;flex-direction:column;gap:var(--space-4)}.notification-preference-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);background:var(--glass-bg);border:1px solid var(--border-light);border-radius:var(--radius-xl);transition:all var(--transition-fast)}.notification-preference-item:hover{border-color:var(--color-primary);background:rgba(var(--color-primary-rgb),.03)}.notification-preference-info{flex:1}.notification-preference-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}.notification-toggle{position:relative;display:inline-block;width:48px;height:26px;cursor:pointer}.notification-toggle input{opacity:0;width:0;height:0}.notification-toggle-slider{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:var(--radius-full);transition:all var(--transition-normal)}.notification-toggle-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:var(--radius-full);box-shadow:0 2px 4px #0000001a;transition:all var(--transition-normal)}.notification-toggle input:checked+.notification-toggle-slider{background:var(--color-primary);border-color:var(--color-primary)}.notification-toggle input:checked+.notification-toggle-slider:before{transform:translate(22px)}.notification-toggle input:disabled+.notification-toggle-slider{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.notification-panel{position:fixed;top:var(--header-height);right:0;left:0;width:100%;max-height:calc(100vh - var(--header-height));border-radius:0}}@media (max-width: 480px){.notification-panel{width:calc(100vw - 32px);right:16px;left:16px}}.portal-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-secondary, #f9fafb)}.portal-header{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6, 1.5rem);height:60px;background:var(--bg-primary, #fff);border-bottom:1px solid var(--border-light, #e5e7eb);position:sticky;top:0;z-index:40}.portal-header-left{display:flex;align-items:center;gap:var(--space-4, 1rem)}.portal-logo{display:flex;align-items:center;gap:var(--space-2, .5rem)}.portal-logo-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-primary, #3b82f6);color:#fff;border-radius:var(--radius-md, .375rem);font-size:.75rem;font-weight:700;letter-spacing:-.5px}.portal-logo-text{font-size:var(--font-size-lg, 1.125rem);font-weight:var(--font-weight-bold, 700);color:var(--text-primary, #111827)}.portal-nav{display:flex;align-items:center;gap:var(--space-1, .25rem)}.portal-nav-link{display:flex;align-items:center;gap:var(--space-2, .5rem);padding:var(--space-2, .5rem) var(--space-3, .75rem);font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);color:var(--text-secondary, #6b7280);text-decoration:none;border-radius:var(--radius-md, .375rem);transition:all .15s ease}.portal-nav-link:hover{color:var(--text-primary, #111827);background:var(--bg-hover, #f3f4f6)}.portal-nav-link.active{color:var(--color-primary, #3b82f6);background:var(--color-primary-light, #eff6ff)}.portal-header-right{display:flex;align-items:center;gap:var(--space-3, .75rem)}.portal-icon-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md, .375rem);color:var(--text-secondary, #6b7280);cursor:pointer;transition:all .15s ease}.portal-icon-btn:hover{background:var(--bg-hover, #f3f4f6);color:var(--text-primary, #111827)}.portal-user-email{font-size:var(--font-size-sm, .875rem);color:var(--text-secondary, #6b7280)}.portal-main{flex:1;padding:var(--space-6, 1.5rem);max-width:1200px;width:100%;margin:0 auto}.portal-page-header{margin-bottom:var(--space-6, 1.5rem)}.portal-page-title{font-size:var(--font-size-2xl, 1.5rem);font-weight:var(--font-weight-bold, 700);color:var(--text-primary, #111827);margin:0 0 var(--space-1, .25rem)}.portal-page-subtitle{font-size:var(--font-size-sm, .875rem);color:var(--text-secondary, #6b7280);margin:0}.portal-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4, 1rem);margin-bottom:var(--space-6, 1.5rem)}.portal-summary-card{background:var(--bg-primary, #fff);border:1px solid var(--border-light, #e5e7eb);border-radius:var(--radius-xl, .75rem);padding:var(--space-5, 1.25rem)}.portal-summary-card-label{font-size:var(--font-size-sm, .875rem);color:var(--text-secondary, #6b7280);margin:0 0 var(--space-2, .5rem)}.portal-summary-card-value{font-size:var(--font-size-2xl, 1.5rem);font-weight:var(--font-weight-bold, 700);color:var(--text-primary, #111827);margin:0}.portal-card{background:var(--bg-primary, #fff);border:1px solid var(--border-light, #e5e7eb);border-radius:var(--radius-xl, .75rem);padding:var(--space-5, 1.25rem);margin-bottom:var(--space-4, 1rem)}.portal-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4, 1rem)}.portal-card-title{font-size:var(--font-size-lg, 1.125rem);font-weight:var(--font-weight-semibold, 600);color:var(--text-primary, #111827);margin:0}.portal-list-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3, .75rem) var(--space-4, 1rem);border-bottom:1px solid var(--border-light, #e5e7eb)}.portal-list-item:last-child{border-bottom:none}.portal-list-item-left{display:flex;align-items:center;gap:var(--space-3, .75rem)}.portal-list-item-right{display:flex;align-items:center;gap:var(--space-2, .5rem)}.portal-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-10, 2.5rem) var(--space-6, 1.5rem);text-align:center;color:var(--text-secondary, #6b7280)}.portal-empty svg{margin-bottom:var(--space-3, .75rem);opacity:.4}.portal-login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary, #f9fafb);padding:var(--space-6, 1.5rem)}.portal-login-card{background:var(--bg-primary, #fff);border:1px solid var(--border-light, #e5e7eb);border-radius:var(--radius-2xl, 1rem);padding:var(--space-8, 2rem);width:100%;max-width:420px;box-shadow:0 4px 24px #0000000f}.portal-login-header{text-align:center;margin-bottom:var(--space-6, 1.5rem)}.portal-login-header h1{font-size:var(--font-size-xl, 1.25rem);font-weight:var(--font-weight-bold, 700);margin:var(--space-3, .75rem) 0 var(--space-1, .25rem)}.portal-login-header p{font-size:var(--font-size-sm, .875rem);color:var(--text-secondary, #6b7280);margin:0}.portal-login-tabs{display:flex;gap:var(--space-1, .25rem);margin-bottom:var(--space-5, 1.25rem);background:var(--bg-secondary, #f3f4f6);border-radius:var(--radius-md, .375rem);padding:2px}.portal-login-tab{flex:1;padding:var(--space-2, .5rem);font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);text-align:center;border-radius:var(--radius-sm, .25rem);color:var(--text-secondary, #6b7280);cursor:pointer;transition:all .15s ease}.portal-login-tab.active{background:var(--bg-primary, #fff);color:var(--text-primary, #111827);box-shadow:0 1px 3px #00000014}.portal-login-form{display:flex;flex-direction:column;gap:var(--space-4, 1rem)}.portal-login-success{text-align:center;padding:var(--space-4, 1rem);background:var(--color-success-light, #f0fdf4);color:var(--color-success, #16a34a);border-radius:var(--radius-md, .375rem);font-size:var(--font-size-sm, .875rem)}.portal-login-error{text-align:center;padding:var(--space-3, .75rem);background:var(--color-danger-light, #fef2f2);color:var(--color-danger, #dc2626);border-radius:var(--radius-md, .375rem);font-size:var(--font-size-sm, .875rem)}.portal-login-footer{text-align:center;margin-top:var(--space-4, 1rem);font-size:var(--font-size-sm, .875rem);color:var(--text-secondary, #6b7280)}.portal-login-footer a{color:var(--color-primary, #3b82f6);text-decoration:none}.portal-message-thread{display:flex;flex-direction:column;gap:var(--space-3, .75rem);max-height:400px;overflow-y:auto;padding:var(--space-3, .75rem)}.portal-message{max-width:70%;padding:var(--space-3, .75rem) var(--space-4, 1rem);border-radius:var(--radius-lg, .5rem);font-size:var(--font-size-sm, .875rem)}.portal-message.client{align-self:flex-end;background:var(--color-primary, #3b82f6);color:#fff;border-bottom-right-radius:4px}.portal-message.staff{align-self:flex-start;background:var(--bg-secondary, #f3f4f6);color:var(--text-primary, #111827);border-bottom-left-radius:4px}.portal-message-time{font-size:.7rem;opacity:.7;margin-top:var(--space-1, .25rem)}.portal-message-composer{display:flex;gap:var(--space-2, .5rem);padding:var(--space-3, .75rem);border-top:1px solid var(--border-light, #e5e7eb)}.portal-message-input{flex:1;padding:var(--space-2, .5rem) var(--space-3, .75rem);border:1px solid var(--border-light, #e5e7eb);border-radius:var(--radius-md, .375rem);font-size:var(--font-size-sm, .875rem);background:var(--bg-primary, #fff);color:var(--text-primary, #111827)}.portal-signature-area{border:2px dashed var(--border-light, #e5e7eb);border-radius:var(--radius-lg, .5rem);padding:var(--space-6, 1.5rem);text-align:center;margin:var(--space-4, 1rem) 0}.portal-signature-input{font-family:Brush Script MT,Segoe Script,cursive;font-size:2rem;text-align:center;border:none;border-bottom:2px solid var(--border-light, #e5e7eb);background:transparent;color:var(--text-primary, #111827);width:100%;padding:var(--space-3, .75rem)}.portal-signature-input:focus{outline:none;border-bottom-color:var(--color-primary, #3b82f6)}@media (max-width: 768px){.portal-nav{display:none}.portal-header{padding:0 var(--space-3, .75rem)}.portal-user-email{display:none}}.portal-hamburger-btn{display:none;width:44px;height:44px;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-primary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.portal-hamburger-btn:hover{background:var(--bg-hover)}@media (max-width: 768px){.portal-hamburger-btn{display:flex}.portal-nav{display:none;position:fixed;top:60px;left:0;right:0;background:var(--bg-primary);border-bottom:1px solid var(--border-light);flex-direction:column;padding:var(--space-2);box-shadow:var(--shadow-lg);z-index:39}.portal-nav.portal-nav--mobile-open{display:flex}.portal-nav-link{padding:var(--space-3) var(--space-4)}.portal-main{padding:var(--space-4)}.portal-logo-text{display:none}}@media (max-width: 480px){.portal-summary-grid{grid-template-columns:1fr}.portal-main{padding:var(--space-3)}}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade-in var(--transition-fast) ease-out}.confirm-dialog{background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:var(--space-8);max-width:420px;width:90%;text-align:center;animation:scale-in var(--transition-normal) ease-out}.confirm-icon-wrapper{width:48px;height:48px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-4)}.confirm-icon-danger{background:var(--color-error-light);color:var(--color-error)}.confirm-icon-warning{background:var(--color-warning-light);color:var(--color-warning)}.confirm-icon-info{background:var(--color-info-light);color:var(--color-info)}.confirm-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--space-2)}.confirm-message{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:var(--line-height-relaxed);margin-bottom:var(--space-6);white-space:pre-line}.confirm-actions{display:flex;gap:var(--space-3);justify-content:center}.confirm-actions .btn-secondary{flex:1;max-width:140px}.btn-confirm{flex:1;max-width:140px;padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);color:#fff}.btn-confirm-danger{background:var(--color-error)}.btn-confirm-danger:hover{background:#dc2626}.btn-confirm-warning{background:var(--color-warning);color:var(--text-primary)}.btn-confirm-warning:hover{background:#d97706}.btn-confirm-info{background:var(--color-primary)}.btn-confirm-info:hover{background:var(--color-primary-hover)}@media (max-width: 480px){.confirm-dialog{max-width:calc(100vw - 32px)}.confirm-actions{flex-direction:column}.confirm-actions button{width:100%}}.toast-container{position:fixed;top:var(--space-4);right:var(--space-4);z-index:1100;display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none}.toast-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:var(--bg-primary);border-left:4px solid;min-width:300px;max-width:420px;pointer-events:auto;animation:toast-enter var(--transition-normal) ease-out}.toast-exit{animation:toast-leave var(--transition-normal) ease-in forwards}.toast-success{border-color:var(--color-success)}.toast-success .toast-icon{color:var(--color-success)}.toast-error{border-color:var(--color-error)}.toast-error .toast-icon{color:var(--color-error)}.toast-warning{border-color:var(--color-warning)}.toast-warning .toast-icon{color:var(--color-warning)}.toast-info{border-color:var(--color-info)}.toast-info .toast-icon{color:var(--color-info)}.toast-icon{flex-shrink:0}.toast-message{flex:1;font-size:var(--font-size-sm);color:var(--text-primary);line-height:var(--line-height-normal)}.toast-dismiss{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.toast-dismiss:hover{background:var(--bg-hover);color:var(--text-primary)}@keyframes toast-enter{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes toast-leave{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}@media (max-width: 768px){.toast-container{left:var(--space-4);right:var(--space-4)}.toast-item{min-width:auto;max-width:100%;width:100%}}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-secondary) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:skeleton-pulse 1.5s ease-in-out infinite;border-radius:var(--radius-md);min-height:1em}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-table{display:flex;flex-direction:column;gap:var(--space-3)}.skeleton-table-header,.skeleton-table-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:var(--space-4);padding:var(--space-3) 0}.skeleton-table-header{border-bottom:1px solid var(--border-light);padding-bottom:var(--space-4)}.skeleton-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-2xl);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}@media (prefers-reduced-motion: reduce){.skeleton{animation:skeleton-pulse-reduced 2s ease-in-out infinite}@keyframes skeleton-pulse-reduced{0%,to{opacity:1}50%{opacity:.7}}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-6);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-2xl);text-align:center;min-height:240px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.empty-state-icon{color:var(--text-tertiary);margin-bottom:var(--space-4);opacity:.6}.empty-state-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-2) 0}.empty-state-description{font-size:.875rem;color:var(--text-secondary);margin:0 0 var(--space-4) 0;max-width:400px;line-height:1.5}.empty-state-action{margin-top:var(--space-2)}@media (max-width: 640px){.empty-state{padding:var(--space-6) var(--space-4);min-height:200px}.empty-state-icon{width:40px;height:40px}.empty-state-title{font-size:1rem}.empty-state-description{font-size:.8125rem}}.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:var(--bg-primary);position:relative}.error-boundary:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--gradient-mesh);pointer-events:none;opacity:.5}.error-boundary-card{position:relative;z-index:1;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-2xl);padding:var(--space-8);max-width:480px;width:100%;text-align:center;box-shadow:var(--shadow-xl);animation:scale-in .4s ease-out}.error-boundary-icon{color:var(--color-error);margin:0 auto var(--space-6);animation:pulse-error 2s ease-in-out infinite}@keyframes pulse-error{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}.error-boundary-card h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--space-3);letter-spacing:-.025em}.error-boundary-message{font-size:var(--font-size-base);color:var(--text-tertiary);margin-bottom:var(--space-6);line-height:1.6}.error-boundary-actions{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap}.error-boundary-actions .btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-xl);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);border:1px solid transparent}.error-boundary-actions .btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.error-boundary-actions .btn-primary:hover{background:var(--color-primary-hover);transform:translateY(-2px);box-shadow:0 4px 12px -2px rgba(var(--color-primary-rgb),.4)}.error-boundary-actions .btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-light)}.error-boundary-actions .btn-secondary:hover{background:var(--bg-hover);border-color:var(--color-primary);color:var(--color-primary);transform:translateY(-2px)}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (max-width: 768px){.error-boundary-card{padding:var(--space-6)}.error-boundary-icon{width:40px;height:40px}.error-boundary-card h2{font-size:var(--font-size-xl)}.error-boundary-actions{flex-direction:column}.error-boundary-actions .btn{width:100%;justify-content:center}}:root{--font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-3xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / .25);--shadow-glow: 0 0 40px -10px var(--color-primary);--shadow-glow-sm: 0 0 20px -5px var(--color-primary);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .5s cubic-bezier(.34, 1.56, .64, 1);--sidebar-width: 260px;--sidebar-collapsed-width: 72px;--header-height: 64px}:root,[data-theme=light]{--color-primary: #2563EB;--color-primary-hover: #1D4ED8;--color-primary-light: #DBEAFE;--color-primary-rgb: 37, 99, 235;--color-secondary: #3B82F6;--color-accent: #F97316;--color-accent-hover: #EA580C;--color-accent-rgb: 249, 115, 22;--color-success: #10B981;--color-success-light: #D1FAE5;--color-success-rgb: 16, 185, 129;--color-warning: #F59E0B;--color-warning-light: #FEF3C7;--color-warning-rgb: 245, 158, 11;--color-error: #EF4444;--color-error-light: #FEE2E2;--color-error-rgb: 239, 68, 68;--color-info: #3B82F6;--color-info-light: #DBEAFE;--bg-primary: #FFFFFF;--bg-secondary: #F8FAFC;--bg-tertiary: #F1F5F9;--bg-hover: #E2E8F0;--bg-active: #CBD5E1;--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .5);--glass-blur: 20px;--gradient-mesh: radial-gradient(at 40% 20%, rgba(37, 99, 235, .1) 0px, transparent 50%), radial-gradient(at 80% 0%, rgba(124, 58, 237, .08) 0px, transparent 50%), radial-gradient(at 0% 50%, rgba(249, 115, 22, .05) 0px, transparent 50%), radial-gradient(at 80% 50%, rgba(16, 185, 129, .05) 0px, transparent 50%), radial-gradient(at 0% 100%, rgba(37, 99, 235, .08) 0px, transparent 50%);--text-primary: #0F172A;--text-secondary: #475569;--text-tertiary: #64748B;--text-muted: #94A3B8;--text-inverse: #FFFFFF;--border-light: #E2E8F0;--border-medium: #CBD5E1;--border-dark: #94A3B8;--sidebar-bg: linear-gradient(180deg, #0F172A 0%, #1E293B 100%);--sidebar-text: #E2E8F0;--sidebar-text-muted: #94A3B8;--sidebar-hover: rgba(255, 255, 255, .08);--sidebar-active: linear-gradient(135deg, #2563EB 0%, #3B82F6 100%)}[data-theme=dark]{--color-primary: #3B82F6;--color-primary-hover: #60A5FA;--color-primary-light: #1E3A5F;--color-primary-rgb: 59, 130, 246;--color-secondary: #60A5FA;--color-accent: #FB923C;--color-accent-hover: #FDBA74;--color-accent-rgb: 251, 146, 60;--color-success: #34D399;--color-success-light: #064E3B;--color-success-rgb: 52, 211, 153;--color-warning: #FBBF24;--color-warning-light: #78350F;--color-warning-rgb: 251, 191, 36;--color-error: #F87171;--color-error-light: #7F1D1D;--color-error-rgb: 248, 113, 113;--color-info: #60A5FA;--color-info-light: #1E3A5F;--bg-primary: #0F172A;--bg-secondary: #1E293B;--bg-tertiary: #334155;--bg-hover: #334155;--bg-active: #475569;--glass-bg: rgba(30, 41, 59, .7);--glass-border: rgba(255, 255, 255, .1);--glass-blur: 20px;--gradient-mesh: radial-gradient(at 40% 20%, rgba(59, 130, 246, .15) 0px, transparent 50%), radial-gradient(at 80% 0%, rgba(124, 58, 237, .12) 0px, transparent 50%), radial-gradient(at 0% 50%, rgba(251, 146, 60, .08) 0px, transparent 50%), radial-gradient(at 80% 50%, rgba(52, 211, 153, .08) 0px, transparent 50%), radial-gradient(at 0% 100%, rgba(59, 130, 246, .12) 0px, transparent 50%);--text-primary: #F8FAFC;--text-secondary: #CBD5E1;--text-tertiary: #94A3B8;--text-muted: #64748B;--text-inverse: #0F172A;--border-light: #334155;--border-medium: #475569;--border-dark: #64748B;--sidebar-bg: linear-gradient(180deg, #020617 0%, #0F172A 100%);--sidebar-text: #E2E8F0;--sidebar-text-muted: #64748B;--sidebar-hover: rgba(255, 255, 255, .05);--sidebar-active: linear-gradient(135deg, #3B82F6 0%, #60A5FA 100%)}:root{--role-staff: #64748B;--role-staff-bg: #F1F5F9;--role-manager: #2563EB;--role-manager-bg: #DBEAFE;--role-partner: #7C3AED;--role-partner-bg: #EDE9FE}[data-theme=dark]{--role-staff-bg: #334155;--role-manager-bg: #1E3A5F;--role-partner-bg: #4C1D95}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px -5px rgba(var(--color-primary-rgb),.4)}50%{box-shadow:0 0 30px -5px rgba(var(--color-primary-rgb),.6)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes scale-in{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes count-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root{--milestone-pending: var(--text-muted);--milestone-active: var(--color-primary);--milestone-completed: var(--color-success);--milestone-blocked: var(--color-error);--milestone-skipped: #CBD5E1;--milestone-step-size: 40px;--milestone-connector-height: 3px;--milestone-detail-max-height: 400px;--milestone-dormancy: var(--color-warning)}[data-theme=dark]{--milestone-pending: var(--text-muted);--milestone-active: var(--color-primary);--milestone-completed: var(--color-success);--milestone-blocked: var(--color-error);--milestone-skipped: #475569;--milestone-dormancy: var(--color-warning)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--bg-secondary);min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--text-primary)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}p{color:var(--text-secondary)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}input,textarea,select{font-family:inherit;font-size:var(--font-size-base);color:var(--text-primary);background-color:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}input::placeholder,textarea::placeholder{color:var(--text-muted)}input:disabled,textarea:disabled,select:disabled{opacity:.6;cursor:not-allowed;background-color:var(--bg-tertiary)}button{font-family:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;border:none;border-radius:var(--radius-lg);padding:0;background:transparent;color:inherit;transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2)}button:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:var(--text-inverse);padding:var(--space-3) var(--space-5)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-light);padding:var(--space-3) var(--space-5)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--border-medium)}.btn-ghost{background-color:transparent;color:var(--text-secondary);padding:var(--space-3) var(--space-5)}.btn-ghost:hover:not(:disabled){background-color:var(--bg-hover);color:var(--text-primary)}.btn-danger{background-color:var(--color-error);color:var(--text-inverse);padding:var(--space-3) var(--space-5)}.btn-danger:hover:not(:disabled){background-color:#dc2626}.btn-back{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:transparent;border:1px solid var(--border-light);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.btn-back:hover{background:var(--bg-hover);border-color:var(--border-medium);color:var(--text-primary)}.table-row-clickable{cursor:pointer;transition:background var(--transition-fast)}.table-row-clickable:hover{background:var(--bg-hover)}.card{background-color:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-sm)}.card-header{margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-light)}.card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.card-description{font-size:var(--font-size-sm);color:var(--text-tertiary);margin-top:var(--space-1)}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.025em}.badge-staff{background-color:var(--role-staff-bg);color:var(--role-staff)}.badge-manager{background-color:var(--role-manager-bg);color:var(--role-manager)}.badge-partner{background-color:var(--role-partner-bg);color:var(--role-partner)}.badge-success{background-color:var(--color-success-light);color:var(--color-success)}.badge-warning{background-color:var(--color-warning-light);color:var(--color-warning)}.badge-error{background-color:var(--color-error-light);color:var(--color-error)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-tertiary)}::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-dark)}
