NonInventPurchasingSystem/CPRNIMS.WebApps/wwwroot/css/sessionTimeOut.css
2026-01-20 07:44:30 +08:00

231 lines
3.9 KiB
CSS

* {
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
margin: 0;
padding: 20px;
background: #f5f5f5;
}
/* Modal Overlay */
.session-modal-overlay {
display: none;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.6);
backdrop-filter: blur(4px);
z-index: 10000;
animation: fadeIn 0.3s ease;
}
.session-modal-overlay.active {
display: flex;
align-items: center;
justify-content: center;
}
/* Modal Container */
.session-modal {
background: white;
border-radius: 16px;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
max-width: 440px;
width: 90%;
overflow: hidden;
animation: slideUp 0.3s ease;
}
/* Modal Header */
.session-modal-header {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
padding: 24px;
color: white;
text-align: center;
}
.session-modal-icon {
width: 56px;
height: 56px;
background: rgba(255, 255, 255, 0.2);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto 12px;
animation: pulse 2s ease infinite;
}
.session-modal-icon svg {
width: 32px;
height: 32px;
stroke: white;
fill: none;
stroke-width: 2;
}
.session-modal-title {
font-size: 24px;
font-weight: 600;
margin: 0 0 8px;
}
.session-modal-subtitle {
font-size: 14px;
opacity: 0.95;
margin: 0;
}
/* Modal Body */
.session-modal-body {
padding: 32px 24px;
text-align: center;
}
.session-modal-message {
color: #333;
font-size: 16px;
line-height: 1.6;
margin: 0 0 24px;
}
/* Countdown Timer */
.session-countdown {
display: flex;
align-items: center;
justify-content: center;
gap: 12px;
margin: 24px 0;
padding: 20px;
background: #f8f9fa;
border-radius: 12px;
}
.countdown-label {
font-size: 14px;
color: #666;
font-weight: 500;
}
.countdown-time {
font-size: 32px;
font-weight: 700;
color: #667eea;
font-variant-numeric: tabular-nums;
min-width: 80px;
}
.countdown-time.warning {
color: #f59e0b;
}
.countdown-time.critical {
color: #ef4444;
animation: shake 0.5s ease;
}
/* Progress Bar */
.session-progress {
width: 100%;
height: 4px;
background: #e5e7eb;
border-radius: 2px;
overflow: hidden;
margin-bottom: 24px;
}
.session-progress-bar {
height: 100%;
background: linear-gradient(90deg, #667eea 0%, #764ba2 100%);
border-radius: 2px;
transition: width 1s linear;
}
/* Modal Actions */
.session-modal-actions {
display: flex;
gap: 12px;
}
.session-btn {
flex: 1;
padding: 14px 24px;
border: none;
border-radius: 8px;
font-size: 15px;
font-weight: 600;
cursor: pointer;
transition: all 0.2s ease;
font-family: inherit;
}
.session-btn-primary {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}
.session-btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 8px 20px rgba(102, 126, 234, 0.4);
}
.session-btn-secondary {
background: #f3f4f6;
color: #6b7280;
}
.session-btn-secondary:hover {
background: #e5e7eb;
}
/* Animations */
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes slideUp {
from {
transform: translateY(30px);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
@keyframes pulse {
0%, 100% {
transform: scale(1);
}
50% {
transform: scale(1.05);
}
}
@keyframes shake {
0%, 100% {
transform: translateX(0);
}
25% {
transform: translateX(-4px);
}
75% {
transform: translateX(4px);
}
}