@import "tailwindcss"; @layer base { *, ::before, ::after { box-sizing: border-box; } body { margin: 0; background: var(--pc-bg-base); color: var(--pc-text-primary); font-family: var(--font-sans), ui-sans-serif, system-ui, sans-serif; } } @layer components { .btn-electric { display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--pc-accent-dim); border-radius: 9999px; background: linear-gradient(135deg, var(--pc-accent-glow), transparent); color: var(--pc-accent-light); font-weight: 600; cursor: pointer; transition: all 0.2s; } .btn-electric:hover { background: var(--pc-accent); color: #fff; border-color: var(--pc-accent); } .btn-electric:disabled { opacity: 0.4; cursor: not-allowed; } .input-electric { border: 1px solid var(--pc-border); border-radius: 12px; background: var(--pc-bg-elevated); color: var(--pc-text-primary); outline: none; transition: border-color 0.2s; } .input-electric:focus { border-color: var(--pc-accent); box-shadow: 0 0 0 3px var(--pc-accent-glow); } .input-electric::placeholder { color: var(--pc-text-faint); } .card { border: 1px solid var(--pc-border); border-radius: 16px; background: var(--pc-bg-surface); } .surface-panel { background: var(--pc-bg-elevated); border: 1px solid var(--pc-border); border-radius: 24px; } .btn-icon { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: transparent; color: var(--pc-text-muted); border: none; cursor: pointer; transition: all 0.15s; } .btn-icon:hover { background: var(--pc-hover); color: var(--pc-text-primary); } .table-electric { width: 100%; border-collapse: collapse; } .table-electric th { text-align: left; padding: 10px 16px; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--pc-text-muted); border-bottom: 1px solid var(--pc-border); } .table-electric td { padding: 12px 16px; font-size: 13px; border-bottom: 1px solid var(--pc-border); } .chat-markdown > :first-child { margin-top: 0; } .chat-markdown > :last-child { margin-bottom: 0; } .chat-markdown p { margin: 0; } .chat-markdown p + p { margin-top: 0.75em; } .chat-markdown ul, .chat-markdown ol { margin: 0.5em 0; padding-left: 1.25em; } .chat-markdown pre { margin: 0.5em 0 0; } .chat-markdown code { white-space: break-spaces; } } @layer utilities { .text-gradient-blue { background: linear-gradient(135deg, var(--pc-accent), #818cf8); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .animate-fade-in { animation: fadeIn 0.3s ease-out; } .animate-fade-in-scale { animation: fadeInScale 0.3s ease-out; } .animate-slide-in-up { animation: slideInUp 0.4s ease-out; } .animate-float { animation: float 3s ease-in-out infinite; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes fadeInScale { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } @keyframes slideInUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } } @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } } } /* ===== Digital Employee Visual Tokens ===== */ :root { /* -- 主色 -- */ --de-primary: #4facfe; --de-primary-2: #00f2fe; --de-primary-3: #00d4ff; --de-primary-4: #2d8cf0; --de-header-gradient: linear-gradient(135deg, #2d8cf0, #4facfe 40%, #00d4ff); /* -- 文字色 -- */ --de-text-primary: #16324e; --de-text-heading: #1e3a5c; --de-text-body: #4a6a8a; --de-text-muted: #5b7590; --de-text-label: #6a8198; /* -- 状态色 -- */ --de-success: #1b9c5a; --de-success-text: #0f7a44; --de-success-bg: rgba(32, 191, 107, 0.14); --de-warning: #faad14; --de-warning-text: #8c5b04; --de-warning-bg: rgba(255, 184, 61, 0.18); --de-danger: #d94a4a; --de-danger-text: #a33b3b; --de-danger-bg: rgba(244, 96, 96, 0.16); /* -- 玻璃拟态 -- */ --de-glass-bg: rgba(230, 242, 255, 0.65); --de-glass-border: rgba(79, 172, 254, 0.22); --de-glass-border-light: rgba(79, 172, 254, 0.12); --de-glass-border-lighter: rgba(79, 172, 254, 0.08); --de-glass-blur: blur(20px) saturate(1.2); /* -- 半透明工具 -- */ --de-overlay-bg: rgba(79, 172, 254, 0.06); --de-overlay-md: rgba(79, 172, 254, 0.12); --de-overlay-hover: rgba(79, 172, 254, 0.18); --de-overlay-active: rgba(79, 172, 254, 0.22); /* -- 按钮渐变 -- */ --de-btn-gradient: linear-gradient(135deg, #2ca8ff, #00c6ff); --de-btn-shadow: 0 10px 18px rgba(44, 168, 255, 0.22); --de-btn-gradient-blue: linear-gradient(135deg, rgba(89, 173, 245, 0.92), rgba(58, 214, 243, 0.9)); --de-btn-gradient-active: linear-gradient(135deg, rgba(79, 172, 254, 0.9), rgba(0, 242, 254, 0.85)); /* -- 页面背景 -- */ --de-page-bg: linear-gradient(180deg, #d6e8f7, #e2f0fb 25%, #d8eaf8 50%, #cce2f5 75%, #c0d8f0); --de-page-grid: rgba(79, 172, 254, 0.04); /* -- 字体 -- */ --de-font-family: Microsoft YaHei, PingFang SC, Helvetica Neue, Arial, sans-serif; --de-font-mono: Fira Code, Consolas, monospace; } /* ===== Digital Employee Layout ===== */ .de-page { min-height: 100vh; background: var(--de-page-bg); font-family: var(--de-font-family); position: relative; } .de-page::before { content: ""; position: fixed; inset: 0; background-image: linear-gradient(var(--de-page-grid) 1px, transparent 0), linear-gradient(90deg, var(--de-page-grid) 1px, transparent 0); background-size: 40px 40px; pointer-events: none; z-index: 0; } .de-page::after { content: ""; position: fixed; left: 0; right: 0; bottom: 0; height: 40%; background: radial-gradient(ellipse at 20% 100%, rgba(79,172,254,0.08) 0, transparent 50%), radial-gradient(ellipse at 80% 100%, rgba(0,242,254,0.06) 0, transparent 50%), radial-gradient(ellipse at 50% 100%, rgba(79,172,254,0.05) 0, transparent 40%); pointer-events: none; z-index: 0; } .de-page-content { position: relative; z-index: 1; } /* ===== GlassCard ===== */ .de-card { background: var(--de-glass-bg); border-radius: 12px; border: 1px solid var(--de-glass-border); box-shadow: 0 4px 24px rgba(30, 144, 255, 0.06), inset 0 0 0 1px hsla(0, 0%, 100%, 0.5), inset 0 1px 0 hsla(0, 0%, 100%, 0.6), inset 0 -1px 0 rgba(79, 172, 254, 0.1), 0 0 0 1.5px rgba(79, 172, 254, 0.12); backdrop-filter: var(--de-glass-blur); overflow: hidden; position: relative; } .de-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient( 90deg, transparent 5%, rgba(79, 172, 254, 0.35) 25%, rgba(0, 242, 254, 0.25) 50%, rgba(79, 172, 254, 0.35) 75%, transparent 95% ); } .de-card::after { content: ""; position: absolute; top: 2px; left: 2px; right: 2px; bottom: 2px; border-radius: 10px; background: linear-gradient(180deg, hsla(0, 0%, 100%, 0.25), transparent 40%); pointer-events: none; z-index: 0; } .de-card-body { padding: 14px 16px; position: relative; z-index: 1; } /* ===== CardTitleBar ===== */ .de-card-title-bar { background: linear-gradient(90deg, rgba(156,206,246,0.9), rgba(184,222,251,0.84) 46%, rgba(215,238,255,0.76)); border-bottom: 1px solid rgba(79,172,254,0.18); box-shadow: inset 0 1px 0 hsla(0,0%,100%,0.68), inset 0 -1px 0 rgba(79,172,254,0.08); padding: 10px 18px; display: flex; align-items: center; justify-content: space-between; gap: 8px; position: relative; z-index: 1; } .de-card-title-bar::before { content: ""; display: inline-block; width: 3px; height: 12px; background: linear-gradient(180deg, rgba(121,191,247,0.88), rgba(170,224,255,0.78)); border-radius: 2px; margin-right: 4px; box-shadow: 0 0 8px rgba(155,214,255,0.16); } .de-card-title-bar::after { content: ""; position: absolute; top: 8px; right: 14px; width: 32px; height: 10px; background: linear-gradient(135deg, rgba(168,216,255,0.3), rgba(208,238,255,0.12)); border-radius: 5px; box-shadow: inset 0 1px 0 hsla(0,0%,100%,0.32); } .de-card-title-bar-text { min-width: 0; flex: 1; color: #1e3a5c; font-size: 16px; font-weight: 700; letter-spacing: 1.5px; } /* ===== Status Badge (DE 风格) ===== */ .de-badge { display: inline-flex; align-items: center; justify-content: center; min-height: 24px; padding: 0 10px; border-radius: 999px; font-size: 12px; font-weight: 700; } .de-badge-info { color: #22659a; background: rgba(79,172,254,0.12); } .de-badge-success { color: #0f7a44; background: rgba(32,191,107,0.14); } .de-badge-warning { color: #8c5b04; background: rgba(255,184,61,0.18); } .de-badge-danger { color: #a33b3b; background: rgba(244,96,96,0.16); } /* ===== NavSkewButton ===== */ .de-nav-btn { padding: 6px 26px; font-size: 13px; color: hsla(0,0%,100%,0.75); cursor: pointer; transition: all 0.25s; transform: skewX(-15deg); background: hsla(0,0%,100%,0.06); border: 1px solid hsla(0,0%,100%,0.08); position: relative; } .de-nav-btn span { transform: skewX(15deg); display: inline-block; } .de-nav-btn.active { background: hsla(0,0%,100%,0.95); color: #1e88e5; font-weight: 700; border-color: hsla(0,0%,100%,0.6); box-shadow: 0 2px 10px rgba(0,0,0,0.15); } .de-nav-btn:hover:not(.active) { background: hsla(0,0%,100%,0.18); color: #fff; } /* Responsive */ @media (max-width: 1679px) { .de-card-body { padding: 12px 14px; } .de-card-title-bar { padding: 9px 16px; } .de-nav-btn { padding: 6px 20px; font-size: 12px; } } @media (max-width: 1439px) { .de-card-body { padding: 12px; } .de-card-title-bar-text { font-size: 15px; letter-spacing: 1px; } .de-nav-btn { padding: 5px 16px; font-size: 12px; } } /* ===== Gem (动画宝石) ===== */ .de-gem { position: absolute; width: 16px; height: 16px; background: radial-gradient(circle, #4facfe 0, rgba(79,172,254,0.5) 100%); transform: rotate(45deg); box-shadow: 0 0 15px #4facfe, 0 0 30px rgba(79,172,254,0.6); z-index: 8; animation: de-gem-pulse 2s ease-in-out infinite; } @keyframes de-gem-pulse { 0%, 100% { opacity: 0.5; transform: rotate(45deg) scale(0.9); } 50% { opacity: 1; transform: rotate(45deg) scale(1.4); } } .de-gem-1 { top: 35%; left: 38%; animation-delay: 0s; } .de-gem-2 { top: 54%; left: 32%; animation-delay: 0.6s; } .de-gem-3 { top: 36%; right: 28%; animation-delay: 1.2s; } @media (prefers-reduced-motion: reduce) { .de-gem { animation: none; } } /* ===== Stage (3层椭圆舞台) ===== */ .de-stage { position: relative; width: 58%; max-width: 360px; height: 50px; display: flex; align-items: flex-end; justify-content: center; z-index: 1; flex-shrink: 0; } .de-stage-layer { position: absolute; left: 50%; transform: translateX(-50%); border-radius: 50%; } .de-stage-layer-1 { width: 100%; height: 42px; bottom: 0; background: linear-gradient(180deg, #b3d9ff, #80bfff 25%, #4da6ff 50%, #39f 75%, #1a8cff); box-shadow: 0 3px 15px rgba(26,140,255,0.35), 0 0 30px rgba(79,172,254,0.2), inset 0 2px 8px hsla(0,0%,100%,0.5), inset 0 -2px 6px rgba(0,80,180,0.15); z-index: 1; } .de-stage-layer-1::after { content: ""; position: absolute; top: 2px; left: 3%; right: 3%; height: 3px; background: linear-gradient(90deg, transparent, hsla(0,0%,100%,0.6) 20%, hsla(0,0%,100%,0.8) 50%, hsla(0,0%,100%,0.6) 80%, transparent); border-radius: 50%; filter: blur(1px); } .de-stage-layer-2 { width: 75%; height: 32px; bottom: 6px; background: linear-gradient(180deg, #d4eaff, #a8d4ff 25%, #7ab8ff 50%, #4da6ff 75%, #39f); box-shadow: 0 3px 12px rgba(51,153,255,0.3), 0 0 25px rgba(79,172,254,0.15), inset 0 2px 6px hsla(0,0%,100%,0.6), inset 0 -2px 5px rgba(0,80,180,0.12); z-index: 2; } .de-stage-layer-2::after { content: ""; position: absolute; top: 2px; left: 4%; right: 4%; height: 2px; background: linear-gradient(90deg, transparent, hsla(0,0%,100%,0.7) 25%, hsla(0,0%,100%,0.9) 50%, hsla(0,0%,100%,0.7) 75%, transparent); border-radius: 50%; filter: blur(1px); } .de-stage-layer-3 { width: 48%; height: 22px; bottom: 12px; background: linear-gradient(180deg, #e8f4ff, #c8e4ff 25%, #a8d4ff 50%, #7ab8ff 75%, #4da6ff); box-shadow: 0 2px 10px rgba(77,166,255,0.3), 0 0 30px rgba(79,172,254,0.25), 0 0 60px rgba(79,172,254,0.1), inset 0 2px 8px hsla(0,0%,100%,0.7), inset 0 -2px 4px rgba(0,80,180,0.1); z-index: 3; } .de-stage-layer-3::after { content: ""; position: absolute; top: 1px; left: 5%; right: 5%; height: 2px; background: linear-gradient(90deg, transparent, hsla(0,0%,100%,0.8) 30%, #fff 50%, hsla(0,0%,100%,0.8) 70%, transparent); border-radius: 50%; filter: blur(1px); } .de-stage-glow { position: absolute; width: 140%; height: 55px; bottom: -8px; left: 50%; transform: translateX(-50%); background: radial-gradient(ellipse at center, rgba(79,172,254,0.25) 0, rgba(0,242,254,0.1) 35%, rgba(79,172,254,0.04) 60%, transparent 80%); filter: blur(10px); z-index: 0; pointer-events: none; } /* ===== Avatar3D ===== */ .de-avatar-container { width: 100%; height: 100%; min-height: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; } .de-avatar-glass-space { position: absolute; width: 84%; max-width: 560px; height: 92%; max-height: 760px; top: 0; left: 50%; transform: translateX(-50%); pointer-events: none; perspective: 1200px; z-index: 3; } .de-avatar-roof { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 68%; max-width: 440px; height: 16%; z-index: 6; } .de-avatar-roof-face { position: absolute; inset: 0 0 15% 0; background: linear-gradient(180deg, rgba(79,172,254,0.45), rgba(0,242,254,0.25) 45%, rgba(79,172,254,0.08)); clip-path: polygon(50% 0, 3% 100%, 97% 100%); } .de-avatar-roof-glow { position: absolute; bottom: 12%; left: 2%; right: 2%; height: 2px; background: linear-gradient(90deg, transparent, rgba(79,172,254,0.7) 10%, #00f2fe 50%, rgba(79,172,254,0.7) 90%, transparent); box-shadow: 0 0 8px rgba(79,172,254,0.8), 0 0 20px rgba(0,242,254,0.4); } .de-avatar-glass-left { top: 18%; left: 6%; width: 5%; bottom: 6%; background: linear-gradient(90deg, rgba(79,172,254,0.15), transparent); position: absolute; z-index: 2; } .de-avatar-glass-right { top: 18%; right: 6%; width: 5%; bottom: 6%; background: linear-gradient(270deg, rgba(0,242,254,0.15), transparent); position: absolute; z-index: 2; } .de-avatar-img { height: 56vh; max-height: calc(100vh - 236px); width: auto; object-fit: contain; filter: drop-shadow(0 10px 40px rgba(30,144,255,0.35)); position: relative; z-index: 5; flex-shrink: 0; margin-bottom: -50px; } .de-avatar-state-label { position: absolute; top: 19%; left: 50%; z-index: 8; transform: translateX(-50%); min-height: 28px; display: inline-flex; align-items: center; justify-content: center; padding: 0 14px; border-radius: 999px; color: #0b4a6d; font-size: 13px; font-weight: 700; background: rgba(241, 249, 255, 0.88); border: 1px solid rgba(79,172,254,0.3); box-shadow: 0 8px 18px rgba(30,144,255,0.12); backdrop-filter: blur(10px); } /* ===== CommandDeck Layout ===== */ .de-dashboard-grid { display: grid; grid-template-columns: minmax(240px, 0.9fr) minmax(420px, 1.6fr) minmax(280px, 1fr); gap: 14px; min-height: 0; align-items: stretch; } .de-dashboard-left, .de-dashboard-center, .de-dashboard-right { display: flex; flex-direction: column; min-height: 0; min-width: 0; } .de-dashboard-left { gap: 12px; overflow: hidden; } .de-dashboard-center { align-items: center; justify-content: center; position: relative; padding-bottom: 56px; overflow: visible; } .de-dashboard-right { overflow: hidden; } /* Header */ .de-header { height: 52px; flex-shrink: 0; background: var(--de-header-gradient); box-shadow: 0 2px 12px rgba(30,144,255,0.3); position: relative; z-index: 100; } .de-header::before { content: none; } .de-header::after { content: none; } .de-header-content { height: 100%; display: flex; align-items: center; justify-content: space-between; padding: 0 36px; position: relative; z-index: 2; } .de-header-left { display: flex; align-items: center; gap: 14px; min-width: 300px; } .de-header-accent-bar { width: 5px; height: 30px; background: hsla(0,0%,100%,0.9); border-radius: 3px; box-shadow: 0 0 8px hsla(0,0%,100%,0.6); } .de-header-title { color: #fff; font-size: 24px; font-weight: 700; letter-spacing: 3px; text-shadow: 0 2px 6px rgba(0,0,0,0.2); } .de-header-center { display: flex; gap: 4px; position: absolute; left: 50%; transform: translateX(-50%); max-width: 52%; } .de-header-right { display: flex; align-items: center; gap: 16px; min-width: 220px; justify-content: flex-end; } .de-header-welcome { color: hsla(0,0%,100%,0.95); font-size: 13px; } .de-header-icon { width: 28px; height: 28px; border: none; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: rgba(255,255,255,0.12); cursor: pointer; transition: background 0.18s ease, transform 0.18s ease; } .de-header-icon:hover, .de-header-icon.active { background: rgba(255,255,255,0.22); transform: translateY(-1px); } .de-header-close { background: rgba(255,255,255,0.18); } .de-notification-anchor { position: relative; display: inline-flex; align-items: center; } .de-notification-count { position: absolute; top: -5px; right: -8px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 999px; background: #ff5d73; color: #fff; border: 1px solid rgba(255,255,255,0.82); font-size: 10px; font-weight: 800; line-height: 15px; box-shadow: 0 4px 12px rgba(198,33,70,0.32); } .de-notification-popover { position: absolute; top: 38px; right: 0; z-index: 360; width: min(380px, calc(100vw - 28px)); max-height: min(620px, calc(100vh - 88px)); display: grid; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; border-radius: 14px; background: rgba(252,254,255,0.98); border: 1px solid rgba(61,132,184,0.18); box-shadow: 0 22px 60px rgba(18,52,79,0.24); } .de-notification-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px; border-bottom: 1px solid rgba(61,132,184,0.12); } .de-notification-head div { min-width: 0; display: grid; gap: 2px; } .de-notification-head strong { color: #12344f; font-size: 15px; } .de-notification-head span { color: #6a8094; font-size: 12px; } .de-notification-close { width: 26px; height: 26px; color: #496a85; background: rgba(79,172,254,0.1); } .de-notification-list { min-height: 0; overflow-y: auto; display: grid; gap: 10px; padding: 12px; } .de-notification-empty { min-height: 86px; display: grid; place-items: center; color: #6a8094; font-size: 13px; } .de-notification-item { display: grid; gap: 8px; padding: 12px; border-radius: 10px; background: #fff; border: 1px solid rgba(61,132,184,0.12); } .de-notification-item--action { border-color: rgba(79,172,254,0.3); } .de-notification-item--warn { border-color: rgba(255,184,61,0.34); } .de-notification-item--error { border-color: rgba(244,96,96,0.3); } .de-notification-item-head, .de-notification-title-row, .de-notification-actions, .de-notification-reply-row { display: flex; align-items: center; gap: 8px; } .de-notification-item-head, .de-notification-title-row { justify-content: space-between; } .de-notification-level, .de-notification-title-row span { flex-shrink: 0; min-height: 20px; display: inline-flex; align-items: center; padding: 0 7px; border-radius: 999px; background: rgba(79,172,254,0.1); color: #22659a; font-size: 11px; font-weight: 700; } .de-notification-time { color: #7890a7; font-size: 11px; } .de-notification-title-row h3 { min-width: 0; margin: 0; color: #12344f; font-size: 14px; line-height: 1.32; } .de-notification-item p, .de-notification-reply { margin: 0; color: #536b80; font-size: 12px; line-height: 1.5; } .de-notification-reply { padding: 8px; border-radius: 8px; background: rgba(79,172,254,0.08); color: #31526d; } .de-notification-actions { justify-content: flex-end; } .de-notification-icon-btn { width: 28px; height: 28px; border: 1px solid rgba(61,132,184,0.16); border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; color: #31526d; background: rgba(247,251,255,0.96); cursor: pointer; } .de-notification-icon-btn:hover { background: rgba(79,172,254,0.14); } .de-notification-reply-row input { min-width: 0; flex: 1; height: 30px; border-radius: 8px; border: 1px solid rgba(61,132,184,0.18); padding: 0 9px; color: #12344f; background: #fff; } .de-digital-modal-close-hitbox { position: absolute; top: 8px; right: 24px; z-index: 3; width: 38px; height: 38px; border: 0; border-radius: 999px; background: transparent; cursor: pointer; } /* Mission mini cards */ .de-mission-list { display: flex; flex-direction: column; gap: 8px; } .de-mission-card-mini { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; border-radius: 12px; background: linear-gradient(180deg, rgba(244,250,255,0.92), rgba(235,246,255,0.86)); border: 1px solid var(--de-glass-border-light); } .de-mission-title { font-size: 14px; font-weight: 600; color: var(--de-text-primary); } /* Approval items */ .de-approval-item { display: flex; align-items: center; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid var(--de-glass-border-lighter); } .de-approval-item:last-child { border-bottom: none; } .de-approval-actions { display: flex; gap: 6px; } .de-btn-approve, .de-btn-reject { border: none; border-radius: 8px; padding: 4px 12px; font-size: 12px; font-weight: 600; cursor: pointer; } .de-btn-approve { background: var(--de-success-bg); color: var(--de-success-text); } .de-btn-reject { background: var(--de-danger-bg); color: var(--de-danger-text); } /* Stats row */ .de-stats-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--de-glass-border-lighter); } .de-stat { text-align: center; } .de-stat strong { display: block; font-size: 22px; color: var(--de-text-primary); } .de-stat span { font-size: 11px; color: var(--de-text-muted); } /* Empty + loading */ .de-empty-text { text-align: center; color: var(--de-text-label); padding: 32px 12px; font-size: 13px; } .de-loading-skeleton { background: linear-gradient(90deg, var(--de-overlay-bg), var(--de-overlay-md), var(--de-overlay-bg)); background-size: 200% 100%; animation: de-shimmer 1.5s infinite; border-radius: 8px; } @keyframes de-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } .de-btn-sm { padding: 4px 10px; font-size: 12px; } .de-btn-sm svg { flex-shrink: 0; } .de-btn-primary { border: none; border-radius: 12px; padding: 11px 18px; color: #fff; font-weight: 700; cursor: pointer; background: var(--de-btn-gradient); box-shadow: var(--de-btn-shadow); } .de-btn-secondary { border: 1px solid rgba(79,172,254,0.24); border-radius: 12px; color: #22659a; font-weight: 700; cursor: pointer; background: linear-gradient(180deg, rgba(248,252,255,0.96), rgba(229,243,255,0.88)); box-shadow: inset 0 1px 0 rgba(255,255,255,0.64); } .de-btn-secondary:hover:not(:disabled) { border-color: rgba(44,168,255,0.42); background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(214,237,255,0.94)); } .de-btn-secondary:disabled, .de-btn-primary:disabled { opacity: 0.52; cursor: not-allowed; } /* Responsive */ @media (max-width: 1679px) { .de-header { height: 50px; } .de-header-content { padding: 0 24px; } .de-header-left { min-width: 240px; } .de-header-title { font-size: 20px; letter-spacing: 2px; } .de-dashboard-grid { gap: 12px; } } @media (max-width: 1439px) { .de-header { height: 48px; } .de-header-content { padding: 0 16px; } .de-header-accent-bar { height: 24px; } .de-header-title { font-size: 18px; letter-spacing: 1px; } } @media (max-width: 1023px) { .de-dashboard-grid { grid-template-columns: 1fr 1fr; } .de-dashboard-right { grid-column: 1 / -1; } } @media (max-width: 767px) { .de-dashboard-grid { grid-template-columns: 1fr; } } /* ===== MissionCenter ===== */ .de-mission-center-layout { display: grid; grid-template-columns: minmax(320px, 1fr) minmax(400px, 1.6fr); gap: 16px; min-height: 0; height: 100%; } .de-mission-center-page { padding: 14px 18px; height: 100%; min-height: 0; overflow: hidden; } .de-mc-list, .de-mc-detail { min-height: 0; display: flex; flex-direction: column; } .de-mc-list > .de-card, .de-mc-detail > .de-card { height: 100%; min-height: 0; display: flex; flex-direction: column; } .de-mc-list .de-card-body, .de-mc-detail .de-card-body { flex: 1; min-height: 0; overflow: hidden; display: flex; flex-direction: column; } .de-mc-card-list { display: flex; flex-direction: column; gap: 8px; overflow-y: auto; min-height: 0; padding-right: 4px; } .de-mission-empty-panel { display: grid; gap: 10px; align-content: center; justify-items: center; min-height: 220px; padding: 28px 18px; text-align: center; border-radius: 14px; border: 1px dashed rgba(79,172,254,0.3); background: rgba(255,255,255,0.46); color: var(--de-text-body); } .de-mission-empty-panel strong { color: var(--de-text-primary); font-size: 15px; } .de-mission-empty-panel p { max-width: 520px; margin: 0; color: var(--de-text-muted); font-size: 13px; line-height: 1.65; } .de-mission-empty-panel--detail { min-height: 100%; } .de-mission-empty-actions { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; } .de-mission-focus-notice { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px; margin-bottom: 10px; padding: 9px 11px; border-radius: 10px; background: rgba(79,172,254,0.12); border: 1px solid rgba(79,172,254,0.24); color: var(--de-text-primary); font-size: 12px; } .de-mission-focus-notice strong { color: #1769aa; white-space: nowrap; } .de-mission-focus-notice span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; } .de-mission-focus-notice code { min-width: 0; max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 2px 6px; border-radius: 6px; background: rgba(255,255,255,0.7); color: var(--de-text-muted); } .de-date-filter-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; padding: 9px 10px; border-radius: 12px; background: rgba(244,250,255,0.82); border: 1px solid rgba(79,172,254,0.14); } .de-date-filter-field { display: inline-flex; align-items: center; gap: 8px; min-width: 0; color: var(--de-text-muted); font-size: 12px; font-weight: 700; } .de-date-filter-field input { height: 30px; min-width: 138px; border-radius: 999px; border: 1px solid rgba(79,172,254,0.24); background: rgba(255,255,255,0.86); color: var(--de-text-primary); padding: 0 10px; font: inherit; font-size: 12px; } .de-date-filter-actions { display: flex; flex-wrap: wrap; gap: 6px; } .de-date-filter-summary { margin-left: auto; color: var(--de-text-muted); font-size: 12px; font-weight: 700; white-space: nowrap; } .de-mission-card { width: 100%; text-align: left; padding: 14px; border-radius: 14px; background: linear-gradient(180deg, rgba(244,250,255,0.92), rgba(235,246,255,0.86)); border: 1px solid var(--de-glass-border-light); box-shadow: 0 2px 10px rgba(30,144,255,0.04), inset 0 1px 0 hsla(0,0%,100%,0.5); cursor: pointer; transition: border-color 0.18s ease, box-shadow 0.18s ease; } .de-mission-card:hover, .de-mission-card--selected { border-color: var(--de-glass-border); box-shadow: 0 0 0 2px var(--de-overlay-hover); } .de-mission-card--selected { border-color: #2d8cf0; box-shadow: 0 0 0 2px rgba(45,140,240,0.22), 0 8px 24px rgba(29,67,109,0.12); background: linear-gradient(180deg, rgba(240,248,255,0.98), rgba(226,242,255,0.96)); } .de-mission-card-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; } .de-mission-card-title { font-size: 15px; font-weight: 600; color: var(--de-text-primary); } .de-mission-card-badges { display: flex; align-items: center; gap: 6px; flex-shrink: 0; } .de-mission-card-focus-chip { border-radius: 999px; padding: 2px 7px; background: rgba(45,140,240,0.14); border: 1px solid rgba(45,140,240,0.24); color: #1769aa; font-size: 11px; font-weight: 800; white-space: nowrap; } .de-mission-card-desc { font-size: 13px; color: var(--de-text-body); line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 8px; } .de-mission-card-meta { display: flex; gap: 12px; font-size: 12px; color: var(--de-text-muted); } .de-mission-card-actions { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 10px; padding-top: 9px; border-top: 1px solid var(--de-glass-border-light); } .de-mission-card-actions > .de-btn-restart, .de-mission-card-actions > .de-btn-run { flex-shrink: 0; } .de-mission-card-time { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; color: var(--de-text-muted); font-weight: 600; } .de-btn-restart, .de-btn-run { border: none; border-radius: 999px; padding: 5px 12px; font-size: 12px; font-weight: 700; cursor: pointer; } .de-btn-run { background: var(--de-btn-gradient-active); color: #fff; box-shadow: 0 2px 8px rgba(79,172,254,0.22); } .de-btn-restart { background: rgba(79,172,254,0.12); color: #1769aa; border: 1px solid rgba(79,172,254,0.22); } .de-btn-restart:not(:disabled):hover { background: rgba(79,172,254,0.2); border-color: rgba(45,140,240,0.42); } .de-btn-restart:disabled, .de-btn-run:disabled { cursor: not-allowed; box-shadow: none; background: rgba(142, 142, 147, 0.18); color: var(--de-text-muted); border-color: transparent; } .de-filter-row { display: flex; gap: 6px; margin-bottom: 12px; flex-wrap: wrap; } .de-filter-chip { padding: 4px 12px; border-radius: 999px; border: 1px solid var(--de-glass-border-light); background: var(--de-overlay-bg); color: var(--de-text-body); font-size: 12px; cursor: pointer; transition: all 0.2s; } .de-filter-chip.active { background: var(--de-btn-gradient-active); color: #fff; border-color: transparent; box-shadow: 0 2px 8px rgba(79,172,254,0.25); } /* FlowDetailPanel + Drawer */ .de-drawer { position: relative; width: 100%; height: 100%; display: grid; grid-template-rows: auto auto minmax(0, 1fr); gap: 14px; padding: 18px; border-radius: 24px; background: linear-gradient(180deg, hsla(0,0%,100%,0.96), rgba(232,244,255,0.98)); border: 1px solid rgba(79,172,254,0.2); box-shadow: 0 24px 60px rgba(29,67,109,0.18), inset 0 1px 0 hsla(0,0%,100%,0.9); backdrop-filter: blur(18px); overflow-y: auto; } .de-drawer-head { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: start; } .de-drawer-title-group h3 { font-size: 22px; color: var(--de-text-primary); margin: 0; } .de-drawer-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--de-primary); } .de-drawer-status-line { display: flex; gap: 8px; align-items: center; } .de-drawer-meta { font-size: 12px; color: var(--de-text-muted); } .de-drawer-timeline { display: flex; flex-direction: column; gap: 12px; overflow-y: auto; min-height: 0; } .de-detail-section { padding: 12px; border-radius: 14px; background: rgba(255,255,255,0.54); border: 1px solid var(--de-glass-border-light); } .de-detail-section h4 { margin: 0 0 10px; font-size: 13px; color: var(--de-text-primary); } .de-detail-section-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; } .de-detail-section-head h4 { margin: 0; } .de-detail-kv { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 7px 10px; font-size: 12px; } .de-detail-kv span, .de-task-run-meta, .de-event-row time { color: var(--de-text-muted); } .de-detail-kv strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--de-text-primary); font-weight: 600; } .de-execution-chain { border-color: rgba(0, 184, 148, 0.22); background: linear-gradient(180deg, rgba(255,255,255,0.72), rgba(232,255,248,0.62)); } .de-chain-plan-id { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--de-text-muted); font-size: 11px; } .de-chain-list { display: flex; flex-direction: column; gap: 7px; } .de-chain-row { display: grid; grid-template-columns: 78px minmax(0, 1fr) 132px; gap: 8px; align-items: start; padding: 8px 9px; border-radius: 10px; background: rgba(255,255,255,0.68); border: 1px solid rgba(0,184,148,0.16); font-size: 11px; } .de-chain-row strong { color: #087f5b; font-weight: 800; } .de-chain-row span { min-width: 0; color: var(--de-text-primary); line-height: 1.35; overflow: visible; text-overflow: clip; white-space: normal; word-break: break-word; } .de-chain-row time { color: var(--de-text-muted); text-align: right; } .de-chain-row--danger strong { color: var(--de-danger); } .de-step-node { display: grid; grid-template-columns: 24px 1fr; gap: 10px; align-items: start; position: relative; padding-bottom: 16px; } .de-step-dot { width: 12px; height: 12px; border-radius: 50%; margin-top: 4px; } .de-step-dot--succeeded, .de-step-dot--completed { background: var(--de-success); box-shadow: 0 0 8px rgba(27,156,90,0.4); } .de-step-dot--running { background: var(--de-primary); box-shadow: 0 0 8px rgba(79,172,254,0.6); animation: de-pulse-dot 1.5s ease-in-out infinite; } .de-step-dot--failed { background: var(--de-danger); } .de-step-dot--pending, .de-step-dot--queued { background: #94a3b8; } @keyframes de-pulse-dot { 0%,100% { box-shadow: 0 0 4px rgba(79,172,254,0.3); } 50% { box-shadow: 0 0 12px rgba(79,172,254,0.8); } } .de-step-line { position: absolute; top: 20px; left: 5px; width: 2px; height: calc(100% - 8px); background: rgba(79,172,254,0.15); } .de-step-content { display: flex; flex-direction: column; gap: 4px; } .de-step-content strong { font-size: 14px; color: var(--de-text-primary); } .de-step-content span { font-size: 12px; color: var(--de-text-muted); } .de-task-run-card { margin-top: 6px; padding: 9px 10px; border-radius: 10px; background: rgba(255,255,255,0.64); border: 1px solid var(--de-glass-border-light); } .de-task-run-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; } .de-task-run-head span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 700; color: var(--de-text-primary); } .de-task-run-meta { display: flex; flex-wrap: wrap; gap: 8px 12px; margin-top: 5px; font-size: 11px; } .de-event-list { display: flex; flex-direction: column; gap: 6px; } .de-event-row { display: grid; grid-template-columns: 74px minmax(0, 1fr) 132px; gap: 8px; align-items: start; padding: 7px 8px; border-radius: 9px; background: rgba(255,255,255,0.58); border: 1px solid var(--de-glass-border-light); font-size: 11px; } .de-event-row strong { color: var(--de-primary); } .de-event-row--danger strong { color: var(--de-danger); } .de-event-row span { min-width: 0; overflow: visible; text-overflow: clip; white-space: normal; color: var(--de-text-primary); line-height: 1.35; word-break: break-word; } .de-event-row time { text-align: right; } .de-session-message-list { display: flex; flex-direction: column; gap: 8px; } .de-session-message { padding: 8px 10px; border-radius: 10px; background: rgba(255,255,255,0.6); border: 1px solid var(--de-glass-border-light); } .de-session-message--user { background: rgba(79,172,254,0.1); border-color: rgba(79,172,254,0.18); } .de-session-message-role { margin-bottom: 4px; font-size: 11px; font-weight: 700; color: var(--de-primary); } .de-session-message p { margin: 0; color: var(--de-text-primary); font-size: 12px; line-height: 1.55; white-space: pre-wrap; word-break: break-word; } /* SkillLibrary */ .de-skill-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; } .de-skill-card { padding: 14px; border-radius: 14px; background: linear-gradient(180deg, rgba(244,250,255,0.92), rgba(235,246,255,0.86)); border: 1px solid var(--de-glass-border-light); display: flex; flex-direction: column; gap: 8px; cursor: pointer; transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease; } .de-skill-card:hover, .de-skill-card--selected { border-color: rgba(79,172,254,0.5); box-shadow: 0 0 0 2px rgba(79,172,254,0.14); transform: translateY(-1px); } .de-skill-card-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; } .de-skill-name { font-size: 15px; font-weight: 600; color: var(--de-text-primary); } .de-skill-desc { font-size: 13px; color: var(--de-text-body); line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; flex: 1; } .de-skill-meta-row { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; min-height: 24px; } .de-skill-meta-chip { display: inline-flex; align-items: center; max-width: 160px; min-height: 22px; padding: 0 8px; border-radius: 999px; border: 1px solid rgba(79,172,254,0.14); background: rgba(79,172,254,0.08); color: #41627f; font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .de-skill-recent { margin: 0; font-size: 12px; color: var(--de-text-muted); line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; } .de-skill-card-foot { display: flex; align-items: center; justify-content: space-between; } .de-skill-version { font-size: 11px; color: var(--de-text-muted); } .de-skill-status { font-size: 11px; font-weight: 600; } .de-skill-status.enabled { color: var(--de-success-text); } .de-skill-status.disabled { color: var(--de-text-muted); } .de-skill-toolbar { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; } .de-input { height: 40px; padding: 0 14px; border-radius: 12px; border: 1px solid rgba(79,172,254,0.18); background: hsla(0,0%,100%,0.88); color: var(--de-text-primary); font-size: 14px; font-family: var(--de-font-family); } .de-input:focus { outline: none; border-color: var(--de-primary); box-shadow: 0 0 0 3px rgba(79,172,254,0.15); } .de-capability-badge { font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 999px; letter-spacing: 0.04em; } .de-capability-core { background: rgba(79,172,254,0.12); color: #22659a; } .de-capability-standard { background: rgba(32,191,107,0.12); color: #0f7a44; } .de-capability-specialized { background: rgba(124,58,237,0.10); color: #6d28d9; } .de-capability-experimental { background: rgba(245,158,11,0.12); color: #92400e; } /* DailyReport */ .de-journal-list { display: flex; flex-direction: column; gap: 6px; } .de-journal-entry { display: grid; grid-template-columns: 60px 80px 1fr; gap: 10px; align-items: baseline; padding: 10px 12px; border-radius: 10px; border: 1px solid var(--de-glass-border-lighter); font-size: 13px; } .de-journal-time { color: var(--de-text-muted); white-space: nowrap; } .de-journal-kind { font-weight: 700; font-size: 11px; text-transform: uppercase; } .de-journal-kind--error, .de-journal-kind--failed { color: var(--de-danger-text); } .de-journal-kind--success, .de-journal-kind--succeeded { color: var(--de-success-text); } .de-journal-kind--running { color: #22659a; } .de-journal-msg { color: var(--de-text-primary); word-break: break-word; } .de-card-meta-text { font-size: 12px; color: var(--de-text-muted); } /* OpsSettings */ .de-settings-section { margin-bottom: 24px; } .de-settings-heading { font-size: 16px; font-weight: 700; color: var(--de-text-heading); margin-bottom: 4px; } .de-settings-desc { font-size: 13px; color: var(--de-text-muted); margin-bottom: 14px; } .de-role-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; } .de-role-card { padding: 16px; border-radius: 14px; text-align: center; cursor: pointer; background: linear-gradient(180deg, rgba(244,250,255,0.92), rgba(235,246,255,0.86)); border: 1px solid var(--de-glass-border-light); transition: all 0.2s; } .de-role-card:hover { border-color: var(--de-glass-border); } .de-role-card.active { border-color: var(--de-primary); box-shadow: 0 0 0 2px rgba(79,172,254,0.2); } .de-role-label { display: block; font-size: 15px; font-weight: 600; color: var(--de-text-primary); } .de-role-density { display: block; font-size: 11px; color: var(--de-text-muted); margin-top: 4px; } .de-saved-hint { font-size: 12px; color: var(--de-success-text); margin-top: 8px; } .de-btn-approve:disabled, .de-btn-reject:disabled { opacity: 0.45; cursor: not-allowed; } @media (max-width: 1023px) { .de-mission-center-layout { grid-template-columns: 1fr; } } /* ===== Digital Employee Shell (popup window) ===== */ .de-shell { height: 100vh; min-height: 0; background: var(--de-page-bg); font-family: var(--de-font-family); display: flex; flex-direction: column; position: relative; overflow: hidden; } .de-shell::before { content: ""; position: fixed; inset: 0; background-image: linear-gradient(var(--de-page-grid) 1px, transparent 0), linear-gradient(90deg, var(--de-page-grid) 1px, transparent 0); background-size: 40px 40px; pointer-events: none; z-index: 0; } .de-shell-header { height: 56px; flex-shrink: 0; background: var(--de-header-gradient); box-shadow: 0 2px 12px rgba(30,144,255,0.3); position: relative; z-index: 100; } .de-shell-header-content { height: 100%; display: flex; align-items: center; justify-content: space-between; padding: 0 24px; position: relative; z-index: 2; } .de-shell-header-left { display: flex; align-items: center; gap: 12px; } .de-shell-title { color: #fff; font-size: 18px; font-weight: 700; letter-spacing: 1.5px; text-shadow: 0 2px 6px rgba(0,0,0,0.2); } .de-shell-header-right { display: flex; align-items: center; gap: 12px; } /* ===== CommandDeck Full Dashboard (1:1 replica) ===== */ .de-dashboard { width: 100%; height: 100%; background: var(--de-page-bg); position: relative; overflow: hidden; } /* Connection layer */ .de-connection-layer { position: absolute; inset: 0; pointer-events: none; z-index: 0; overflow: hidden; } .de-connection-svg { position: absolute; inset: 0; width: 100%; height: 100%; } /* Dashboard content grid */ .de-dashboard-content { flex: 1; display: grid; grid-template-columns: minmax(300px, 0.86fr) minmax(420px, 1.08fr) minmax(280px, 0.78fr); padding: 8px 18px 10px; gap: 12px; min-height: 0; position: relative; z-index: 1; align-items: stretch; overflow: hidden; } .de-dashboard-left, .de-dashboard-center, .de-dashboard-right { display: flex; flex-direction: column; min-height: 0; min-width: 0; position: relative; z-index: 2; } .de-dashboard-left { gap: 12px; overflow: hidden; } .de-dashboard-center { align-items: center; justify-content: center; position: relative; padding: 4px 0 76px; overflow: visible; } .de-dashboard-right { overflow: hidden; } /* Right panels container */ .de-right-panels { height: 100%; display: grid; grid-template-rows: minmax(0, 1fr) minmax(178px, 0.34fr); gap: 8px; overflow: hidden; } /* User Info */ .de-info-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 10px 14px; background: linear-gradient(135deg, rgba(79,172,254,0.06), rgba(0,242,254,0.03)); border-radius: 10px; border: 1px solid rgba(79,172,254,0.1); } .de-info-item { display: grid; gap: 6px; min-width: 0; padding: 6px 0; } .de-info-item label { color: #2d5a8a; font-weight: 700; font-size: 14px; } .de-info-item span { color: #1e3a5c; font-size: 15px; line-height: 1.5; word-break: break-all; } .de-status-working { color: #0f7a44 !important; font-weight: 800; } .de-status-resting { color: #8c5b04 !important; font-weight: 800; } /* Task Template Manager */ .de-template-manager-card { flex: 1; display: flex; flex-direction: column; min-height: 0; } .de-template-manager-body { flex: 1; display: flex; flex-direction: column; min-height: 0; overflow: hidden; } .de-template-overview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-bottom: 12px; border-radius: 16px; overflow: hidden; border: 1px solid rgba(79,172,254,0.14); background: linear-gradient(180deg, rgba(246,251,255,0.94), rgba(231,242,253,0.9)); box-shadow: inset 0 1px 0 hsla(0,0%,100%,0.55), 0 2px 8px rgba(30,144,255,0.04); } .de-template-overview-item { border: none; text-align: left; cursor: pointer; background: transparent; position: relative; display: flex; flex-direction: column; justify-content: center; gap: 6px; min-height: 74px; padding: 10px 16px 14px; } .de-template-overview-item.active { background: linear-gradient(180deg, rgba(224,243,255,0.98), rgba(204,233,255,0.94)); box-shadow: inset 0 0 0 2px rgba(45,140,240,0.16); } .de-template-overview-item + .de-template-overview-item { border-left: 1px solid rgba(79,172,254,0.12); } .de-template-overview-item::after { content: ""; position: absolute; left: 16px; right: 16px; bottom: 0; height: 3px; border-radius: 999px; opacity: 0.92; } .de-template-overview-label { font-size: 12px; color: #6a8198; } .de-template-overview-value { font-size: 34px; font-weight: 700; line-height: 1; color: #1e3a5c; } .de-template-overview-item--total .de-template-overview-value { color: #0c4a6e; } .de-template-overview-item--total::after { background: linear-gradient(90deg, rgba(59,130,246,0.7), rgba(125,211,252,0.5)); } .de-template-overview-item--scheduled .de-template-overview-value { color: #8c5b04; } .de-template-overview-item--scheduled::after { background: linear-gradient(90deg, rgba(255,184,61,0.86), rgba(255,210,112,0.5)); } .de-template-overview-item--runnable .de-template-overview-value { color: #0369a1; } .de-template-overview-item--runnable::after { background: linear-gradient(90deg, rgba(34,211,238,0.78), rgba(59,130,246,0.46)); } .de-template-list-scroll { display: flex; flex-direction: column; gap: 8px; overflow-y: auto; padding-right: 4px; min-height: 0; flex: 1; } .de-template-card-row { display: flex; min-height: 116px; padding: 10px 12px; border-radius: 12px; background: linear-gradient(180deg, rgba(244,250,255,0.92), rgba(235,246,255,0.86)); border: 1px solid rgba(79,172,254,0.12); box-shadow: 0 2px 10px rgba(30,144,255,0.04), inset 0 1px 0 hsla(0,0%,100%,0.5); cursor: pointer; transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease; } .de-template-card-row:hover { border-color: rgba(79,172,254,0.48); box-shadow: 0 0 0 2px rgba(79,172,254,0.12); transform: translateY(-1px); } .de-template-card-main { flex: 1; min-width: 0; display: grid; gap: 7px; } .de-template-card-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; } .de-template-card-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 15px; font-weight: 700; color: #214566; line-height: 1.2; } .de-template-card-desc { margin: 0; color: #58728e; font-size: 12px; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .de-plan-progress-bar { height: 7px; overflow: hidden; border-radius: 999px; background: rgba(145,181,210,0.22); } .de-plan-progress-bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, rgba(34,211,238,0.86), rgba(59,130,246,0.82)); } .de-template-card-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; color: #5b7590; font-size: 11px; } .de-template-card-meta span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .de-template-card-actions { display: flex; gap: 8px; justify-content: flex-end; } .de-person-card { cursor: default; transition: border-color 0.18s ease, box-shadow 0.18s ease; } .de-person-card:hover { border-color: rgba(79,172,254,0.36); box-shadow: 0 0 0 2px rgba(79,172,254,0.1); } .de-workday-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; margin-bottom: 10px; } .de-workday-toolbar label { display: flex; align-items: center; gap: 8px; font-size: 11px; color: #5b7590; } .de-workday-toolbar label span { white-space: nowrap; font-weight: 800; } .de-workday-toolbar input { height: 32px; min-width: 0; padding: 0 10px; border-radius: 10px; border: 1px solid rgba(79,172,254,0.18); color: #16324e; background: rgba(247,251,255,0.96); } .de-management-sync-strip { display: flex; align-items: center; gap: 8px; min-height: 34px; margin: -2px 0 10px; padding: 7px 10px; border-radius: 12px; font-size: 12px; line-height: 1.35; color: #315576; border: 1px solid rgba(79,172,254,0.14); background: rgba(79,172,254,0.07); } .de-management-sync-strip > span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .de-management-sync-strip--success { color: #176a3a; border-color: rgba(27,156,90,0.2); background: rgba(27,156,90,0.08); } .de-management-sync-strip--warning { color: #7a5509; border-color: rgba(245,173,45,0.22); background: rgba(245,173,45,0.1); } .de-management-sync-strip--danger { color: #ad3434; border-color: rgba(224,72,72,0.2); background: rgba(224,72,72,0.08); } .de-management-sync-failures { display: grid; gap: 6px; margin: -4px 0 10px; } .de-management-sync-failure { width: 100%; font-family: inherit; text-align: left; cursor: pointer; display: grid; grid-template-columns: 56px 54px minmax(54px, 0.7fr) minmax(0, 1.6fr); align-items: center; gap: 8px; min-height: 28px; padding: 6px 9px; border-radius: 10px; border: 1px solid rgba(224,72,72,0.14); background: rgba(224,72,72,0.055); color: #7b4450; font-size: 11px; } .de-management-sync-failure:hover { border-color: rgba(224,72,72,0.28); box-shadow: 0 0 0 2px rgba(224,72,72,0.06); } .de-management-sync-failure span, .de-management-sync-failure em, .de-management-sync-failure small { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .de-management-sync-failure strong { color: #ad3434; font-weight: 800; } .de-management-sync-failure em { color: #59738b; font-style: normal; } .de-management-sync-failure small { color: #6d5260; } .de-duty-card { min-height: 120px; } .de-duty-card--selected { border-color: rgba(32,191,107,0.42); box-shadow: inset 4px 0 0 rgba(32,191,107,0.64), 0 0 0 2px rgba(32,191,107,0.08); } .de-duty-card--running { border-color: rgba(255,184,61,0.44); box-shadow: inset 4px 0 0 rgba(255,184,61,0.72), 0 0 0 2px rgba(255,184,61,0.1); } .de-duty-card--disabled { cursor: pointer; opacity: 0.7; background: linear-gradient(180deg, rgba(246,248,250,0.92), rgba(236,241,245,0.86)); filter: grayscale(0.28); } .de-duty-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; } .de-duty-card-actions { min-width: 0; display: flex; align-items: center; justify-content: flex-end; gap: 6px; flex-wrap: wrap; } .de-duty-card-actions .de-btn-sm { min-height: 26px; padding: 4px 9px; white-space: nowrap; } .de-duty-selected-mark { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 24px; border-radius: 999px; font-size: 11px; font-weight: 700; color: #60758a; background: rgba(148,163,184,0.12); } .de-duty-selected-mark.active { color: #0f7a44; background: rgba(32,191,107,0.14); } .de-task-date-context { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-top: 8px; min-width: 0; } .de-template-manager-body > .de-task-date-context { margin: -2px 0 8px; padding: 7px 8px; border-radius: 11px; background: rgba(244,250,255,0.76); border: 1px solid rgba(79,172,254,0.1); } .de-task-date-context span { display: inline-flex; align-items: center; min-height: 22px; padding: 0 8px; border-radius: 999px; color: #0c5a85; font-size: 11px; font-weight: 800; background: rgba(79,172,254,0.12); } .de-task-date-context em { flex: 1; min-width: 0; color: #58728e; font-size: 11px; font-style: normal; line-height: 1.35; } .de-task-date-context .de-btn-sm { min-height: 26px; padding: 0 9px; border-radius: 9px; } .de-task-manager-preview { flex: 1; min-height: 0; display: grid; gap: 8px; align-content: start; padding: 10px; border-radius: 14px; background: rgba(247,251,255,0.82); border: 1px solid rgba(79,172,254,0.12); overflow: hidden; } .de-task-manager-preview-scroll { overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; } .de-task-manager-preview-head { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 28px; padding: 0 2px 6px; color: #5b7590; font-size: 11px; background: rgba(247,251,255,0.96); } .de-task-manager-preview-head strong { color: #143450; font-size: 12px; } .de-task-manager-preview-row { display: grid; gap: 4px; min-width: 0; padding: 9px 10px; border-radius: 11px; border: 1px solid rgba(79,172,254,0.12); background: rgba(255,255,255,0.78); color: #173550; text-align: left; font: inherit; } .de-task-manager-preview-row.is-selected { border-color: rgba(32,191,107,0.36); box-shadow: inset 3px 0 0 rgba(32,191,107,0.58); } .de-template-task-main { min-width: 0; display: grid; gap: 4px; padding: 0; border: 0; background: transparent; color: inherit; text-align: left; font: inherit; cursor: pointer; } .de-template-task-main:hover strong { color: #0877c7; } .de-template-task-main strong, .de-template-task-main span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .de-template-task-main strong { font-size: 13px; } .de-template-task-main span { color: #5b7590; font-size: 11px; } .de-template-task-list .de-task-manager-preview-row { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; } .de-template-item-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; } .de-template-item-actions .de-btn-sm, .de-duty-card-actions .de-btn-sm { display: inline-flex; align-items: center; justify-content: center; gap: 4px; } .de-task-manager-modal-overlay { position: fixed; inset: 0; z-index: 260; display: flex; align-items: center; justify-content: center; padding: 26px; background: rgba(13, 36, 55, 0.24); backdrop-filter: blur(6px); } .de-plan-action-overlay { z-index: 320; } .de-task-manager-modal { width: min(1040px, calc(100vw - 56px)); max-height: min(760px, calc(100vh - 54px)); display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 16px; padding: 18px; border-radius: 20px; background: linear-gradient(180deg, rgba(252,254,255,0.96), rgba(231,243,255,0.94)); border: 1px solid rgba(79,172,254,0.2); box-shadow: 0 24px 70px rgba(21, 55, 84, 0.24), inset 0 1px 0 rgba(255,255,255,0.6); } .de-task-manager-modal-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 14px; } .de-task-manager-modal-head h3 { margin: 2px 0 4px; color: #12344f; font-size: 22px; } .de-task-manager-modal-head p { margin: 0; color: #58728e; font-size: 13px; line-height: 1.55; } .de-workday-guide-modal { width: min(1120px, calc(100vw - 56px)); grid-template-rows: auto auto minmax(0, 1fr); } .de-workday-guide-head h3 { font-size: 24px; } .de-workday-guide-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; } .de-workday-guide-step { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 8px; align-items: start; padding: 10px 11px; border-radius: 14px; background: rgba(255,255,255,0.74); border: 1px solid rgba(79,172,254,0.14); } .de-workday-guide-step span { grid-row: span 2; width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; color: #fff; font-size: 12px; font-weight: 800; background: linear-gradient(135deg, #1e90ff, #20bf6b); } .de-workday-guide-step strong { min-width: 0; color: #143450; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .de-workday-guide-step p { min-width: 0; margin: 0; color: #5b7590; font-size: 11px; line-height: 1.38; } .de-workday-guide-body { min-height: 0; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.72fr); gap: 14px; } .de-workday-guide-column { grid-template-rows: auto minmax(0, 1fr); } .de-workday-guide-duty-list { min-height: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; overflow-y: auto; padding-right: 4px; } .de-workday-guide-duty-list .de-duty-card { min-height: 116px; display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: 9px; } .de-duty-card--guide .de-template-card-desc { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .de-workday-guide-side { min-height: 0; display: grid; align-content: start; gap: 10px; padding: 12px; border-radius: 16px; background: rgba(247,251,255,0.92); border: 1px solid rgba(79,172,254,0.14); overflow-y: auto; } .de-workday-guide-summary { display: grid; gap: 5px; padding: 11px; border-radius: 13px; background: rgba(255,255,255,0.78); border: 1px solid rgba(79,172,254,0.12); } .de-workday-guide-summary span { color: #5b7590; font-size: 11px; font-weight: 700; } .de-workday-guide-summary strong { color: #12344f; font-size: 16px; } .de-workday-guide-summary p { margin: 0; color: #58728e; font-size: 12px; line-height: 1.5; } .de-workday-guide-actions { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; } .de-task-manager-modal-body { min-height: 0; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(300px, 0.78fr); gap: 14px; } .de-task-manager-column { min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 10px; padding: 12px; border-radius: 16px; background: rgba(247,251,255,0.9); border: 1px solid rgba(79,172,254,0.14); overflow: hidden; } .de-task-manager-section-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; } .de-task-manager-section-head strong { display: block; color: #143450; font-size: 15px; } .de-task-manager-section-head span { display: block; margin-top: 3px; color: #5b7590; font-size: 11px; } .de-task-manager-duty-list, .de-task-manager-decision-list { min-height: 0; display: flex; flex-direction: column; gap: 8px; overflow-y: auto; padding-right: 4px; } .de-task-manager-duty-list .de-duty-card { min-height: 104px; display: grid; grid-template-columns: 86px minmax(0, 1fr); gap: 10px; } .de-task-manager-duty-check { min-width: 0; display: grid; justify-items: center; align-content: center; gap: 8px; color: #315576; font-size: 12px; font-weight: 700; border-right: 1px solid rgba(79,172,254,0.1); } .de-task-manager-duty-check input { width: 22px; height: 22px; accent-color: #20bf6b; } .de-task-manager-duty-check input:disabled { opacity: 0.48; } .de-task-manager-decision-card { display: grid; gap: 8px; padding: 11px 12px; border-radius: 12px; color: #16324e; background: rgba(255,255,255,0.8); border: 1px solid rgba(79,172,254,0.12); } .de-task-manager-decision-card p { margin: 0; color: #58728e; font-size: 12px; line-height: 1.48; } .de-event-detail-modal, .de-event-history-modal { width: min(760px, calc(100vw - 52px)); max-height: min(720px, calc(100vh - 48px)); display: grid; grid-template-rows: auto auto auto; gap: 14px; padding: 18px; border-radius: 20px; background: linear-gradient(180deg, rgba(252,254,255,0.97), rgba(231,243,255,0.95)); border: 1px solid rgba(79,172,254,0.2); box-shadow: 0 24px 70px rgba(21, 55, 84, 0.24), inset 0 1px 0 rgba(255,255,255,0.6); } .de-event-history-modal { width: min(1080px, calc(100vw - 56px)); grid-template-rows: auto auto minmax(0, 1fr); } .de-plan-action-modal { width: min(640px, calc(100vw - 56px)); max-height: min(680px, calc(100vh - 48px)); display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 14px; padding: 18px; border-radius: 20px; background: linear-gradient(180deg, rgba(252,254,255,0.97), rgba(232,244,255,0.95)); border: 1px solid rgba(79,172,254,0.22); box-shadow: 0 24px 70px rgba(21, 55, 84, 0.24), inset 0 1px 0 rgba(255,255,255,0.62); } .de-plan-action-body { min-height: 0; display: grid; gap: 12px; overflow: auto; } .de-plan-action-field { display: grid; gap: 6px; color: #41627f; font-size: 12px; } .de-plan-action-field input { height: 36px; padding: 0 12px; border-radius: 11px; border: 1px solid rgba(79,172,254,0.2); background: rgba(255,255,255,0.9); color: #173550; } .de-plan-action-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .de-event-detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; } .de-event-detail-grid > div, .de-event-detail-result { min-width: 0; display: grid; gap: 4px; padding: 10px 11px; border-radius: 12px; background: rgba(247,251,255,0.92); border: 1px solid rgba(79,172,254,0.14); } .de-event-detail-grid span, .de-event-detail-result span, .de-event-history-row em { color: #5b7590; font-size: 11px; font-style: normal; font-weight: 700; } .de-event-detail-grid strong { min-width: 0; color: #143450; font-size: 13px; line-height: 1.36; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .de-event-detail-result p { margin: 0; color: #173550; font-size: 13px; line-height: 1.55; } .de-sync-attempt-history { display: grid; gap: 8px; padding: 14px; border: 1px solid rgba(126,163,194,0.2); border-radius: 14px; background: rgba(247,251,255,0.82); } .de-sync-attempt-history > span { color: #6f8196; font-size: 12px; font-weight: 800; } .de-sync-attempt-list { display: grid; gap: 8px; } .de-sync-attempt-row { display: grid; gap: 5px; padding: 9px 10px; border-radius: 12px; background: rgba(255,255,255,0.72); } .de-sync-attempt-row > div { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; } .de-sync-attempt-row strong { color: #153754; font-size: 12px; } .de-sync-attempt-row em { font-size: 12px; font-style: normal; font-weight: 800; } .de-sync-attempt-row span, .de-sync-attempt-row small { color: #667b90; font-size: 12px; } .de-sync-attempt-row small { line-height: 1.45; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .de-sync-attempt-row--success em { color: #23805d; } .de-sync-attempt-row--danger em { color: #bb3b3b; } .de-sync-attempt-row--info em { color: #2e6fa5; } .de-event-modal-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; } .de-event-modal-actions .de-btn-sm { display: inline-flex; align-items: center; gap: 6px; } .de-event-history-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; } .de-event-history-list { min-height: 0; display: grid; align-content: start; gap: 8px; overflow-y: auto; padding-right: 4px; } .de-event-history-row { width: 100%; min-height: 64px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(78px, 0.58fr) minmax(0, 1.36fr); gap: 8px; align-items: stretch; padding: 8px 9px; border: 1px solid rgba(79,172,254,0.13); border-left: 4px solid rgba(79,172,254,0.42); border-radius: 12px; background: rgba(248,251,255,0.96); color: #16324e; text-align: left; font: inherit; cursor: pointer; } .de-event-history-row span { min-width: 0; display: grid; align-content: start; gap: 3px; } .de-event-history-row strong { min-width: 0; color: #173550; font-size: 12px; line-height: 1.35; display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .de-event-history-row small { color: #6d8499; font-size: 10px; line-height: 1.1; } .de-workday-execution { min-height: 260px; } .de-workday-execution--clickable { cursor: pointer; transition: border-color 0.16s ease, box-shadow 0.16s ease; } .de-workday-execution--clickable:hover { border-color: rgba(79,172,254,0.34); box-shadow: 0 14px 34px rgba(38, 125, 191, 0.14), inset 0 1px 0 rgba(255,255,255,0.62); } .de-workday-execution--clickable:focus-visible { outline: 2px solid rgba(79,172,254,0.56); outline-offset: 2px; } .de-workday-execution--clickable button, .de-workday-execution--clickable input { cursor: pointer; } .de-live-feed { min-height: 0; overflow: hidden; display: grid; align-content: start; gap: 8px; } .de-live-feed-row { position: relative; min-height: 66px; border-left: 4px solid rgba(79,172,254,0.38); animation: deFeedIn 0.28s ease both; } .de-live-feed-row--running { border-left-color: rgba(255,184,61,0.9); } .de-live-feed-row--success { border-left-color: rgba(32,191,107,0.82); } .de-live-feed-row--danger { border-left-color: rgba(244,96,96,0.82); } .de-live-feed-row--warning { border-left-color: rgba(255,184,61,0.9); } .de-workday-execution-body { min-height: 0; overflow: hidden; display: grid; grid-template-rows: auto minmax(96px, 0.58fr) auto minmax(0, 1fr); gap: 8px; } .de-execution-status-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; } .de-execution-status-strip span { display: grid; gap: 3px; min-width: 0; padding: 7px 8px; border-radius: 10px; background: rgba(247,251,255,0.94); border: 1px solid rgba(79,172,254,0.12); } .de-execution-status-strip em { color: #5b7590; font-size: 11px; font-style: normal; white-space: nowrap; } .de-execution-status-strip strong { color: #12344f; font-size: 18px; line-height: 1; } .de-task-summary-scroll { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding-right: 4px; scrollbar-gutter: stable; } .de-task-summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; min-height: 0; } .de-task-summary-scroll .de-task-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .de-task-summary-card { min-width: 0; min-height: 84px; padding: 8px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 6px; align-content: start; text-align: left; cursor: pointer; border-radius: 11px; border: 1px solid rgba(79,172,254,0.14); background: rgba(247,251,255,0.9); } .de-task-summary-card:hover { border-color: rgba(79,172,254,0.42); box-shadow: 0 0 0 2px rgba(79,172,254,0.1); } .de-task-summary-title { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #143450; font-size: 12px; font-weight: 800; } .de-task-summary-counts { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; } .de-task-summary-counts span { min-width: 0; display: grid; gap: 2px; padding: 6px 6px; border-radius: 9px; background: rgba(255,255,255,0.74); border: 1px solid rgba(79,172,254,0.1); } .de-task-summary-counts em { color: #5b7590; font-size: 10px; font-style: normal; line-height: 1; } .de-task-summary-counts strong { color: #0c4a6e; font-size: 15px; line-height: 1; } .de-stage-feed-tools { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; min-height: 30px; padding: 4px 2px 0; } .de-stage-feed-tools > span { color: #55718b; font-size: 11px; font-weight: 700; white-space: nowrap; } .de-stage-feed-tools > div { display: flex; align-items: center; gap: 6px; min-width: 0; } .de-task-agent-control-strip { display: grid; gap: 6px; min-width: 0; } .de-task-agent-control { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 7px 8px; border-radius: 10px; border: 1px solid rgba(79,172,254,0.14); background: rgba(247,251,255,0.9); } .de-task-agent-control-main { min-width: 0; display: grid; gap: 2px; } .de-task-agent-control-main span { color: #0c5a85; font-size: 10px; font-weight: 800; line-height: 1; } .de-task-agent-control-main strong { min-width: 0; overflow: hidden; color: #143450; font-size: 12px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; } .de-task-agent-control-main small { min-width: 0; overflow: hidden; color: #58728e; font-size: 10px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; } .de-task-agent-control-actions { display: flex; align-items: center; gap: 5px; min-width: 0; } .de-task-agent-control-actions .de-btn-sm { min-width: 58px; justify-content: center; } .de-task-agent-cancel-btn { color: #b42318; border-color: rgba(180,35,24,0.22); } .de-run-detail-list-scroll { overscroll-behavior: contain; scrollbar-gutter: stable; } .de-run-detail-panel { min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 8px; } .de-run-detail-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; } .de-run-detail-head span { color: #12344f; font-size: 14px; font-weight: 800; } .de-run-detail-head small { color: #5b7590; font-size: 11px; } .de-run-detail-list { min-height: 0; overflow-y: auto; display: grid; align-content: start; gap: 6px; padding-right: 4px; } .de-run-detail-row { display: grid; grid-template-columns: 50px minmax(72px, 0.95fr) minmax(70px, 0.85fr) 74px minmax(90px, 1.2fr); gap: 7px; align-items: center; min-width: 0; padding: 7px 8px; border-radius: 10px; border: 1px solid rgba(79,172,254,0.12); background: rgba(247,251,255,0.88); color: #173550; font-size: 11px; text-align: left; } .de-run-detail-row--head { position: sticky; top: 0; z-index: 1; background: rgba(220,236,252,0.98); color: #29577f; font-weight: 800; cursor: default; } .de-run-detail-row strong, .de-run-detail-row span, .de-run-detail-row em { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .de-run-detail-row em { color: #58728e; font-style: normal; } .de-run-detail-row i { font-style: normal; min-height: 20px; padding: 0 7px; font-size: 10px; } .de-workday-result { overflow: auto; min-height: 0; } .de-workday-result-summary { margin: 0; color: #173550; font-size: 13px; line-height: 1.55; } .de-artifact-pills { display: flex; flex-wrap: wrap; gap: 8px; } .de-artifact-source-list { display: grid; gap: 8px; max-height: 320px; overflow-y: auto; padding-right: 4px; } .de-artifact-source-row { display: grid; grid-template-columns: minmax(120px, 1fr) minmax(88px, 140px); gap: 4px 10px; align-items: center; padding: 9px 10px; border-radius: 8px; border: 1px solid rgba(79,172,254,0.12); background: rgba(244,250,255,0.62); } .de-artifact-source-row strong { min-width: 0; color: var(--de-text-primary); font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .de-artifact-source-row span { color: var(--de-text-muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: right; } .de-artifact-source-row code, .de-artifact-source-row em { grid-column: 1 / -1; min-width: 0; color: var(--de-text-body); font-size: 12px; font-style: normal; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .de-decision-card { background: rgba(247,251,255,0.96); } .de-decision-chain-note { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 8px; color: #60758a; font-size: 12px; line-height: 1.45; } @keyframes deFeedIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } } /* Skill Manager */ .de-skill-manager-card { flex: 1; display: flex; flex-direction: column; min-height: 0; } .de-skill-manager-body { flex: 1; display: flex; flex-direction: column; min-height: 0; overflow: hidden; } .de-skill-overview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-bottom: 12px; border-radius: 18px; overflow: hidden; border: 1px solid rgba(79,172,254,0.14); background: linear-gradient(180deg, rgba(246,251,255,0.94), rgba(231,242,253,0.9)); box-shadow: inset 0 1px 0 hsla(0,0%,100%,0.55), 0 2px 8px rgba(30,144,255,0.04); } .de-skill-overview-item { position: relative; display: flex; flex-direction: column; justify-content: center; gap: 6px; min-height: 74px; padding: 10px 16px 14px; } .de-skill-overview-item + .de-skill-overview-item { border-left: 1px solid rgba(79,172,254,0.12); } .de-skill-overview-item::after { content: ""; position: absolute; left: 16px; right: 16px; bottom: 0; height: 3px; border-radius: 999px; opacity: 0.92; } .de-skill-overview-label { font-size: 12px; color: #6a8198; } .de-skill-overview-value { font-size: 34px; font-weight: 700; line-height: 1; color: #1e3a5c; } .de-skill-overview-item--total .de-skill-overview-value { color: #0c4a6e; } .de-skill-overview-item--total::after { background: linear-gradient(90deg, rgba(59,130,246,0.7), rgba(125,211,252,0.5)); } .de-skill-overview-item--learned .de-skill-overview-value { color: #0369a1; } .de-skill-overview-item--learned::after { background: linear-gradient(90deg, rgba(34,211,238,0.78), rgba(59,130,246,0.46)); } .de-skill-overview-item--unlearned .de-skill-overview-value { color: #c2410c; } .de-skill-overview-item--unlearned::after { background: linear-gradient(90deg, rgba(251,146,60,0.86), rgba(255,205,124,0.5)); } .de-skill-tabs { display: flex; gap: 0; margin-bottom: 12px; background: rgba(30,144,255,0.05); border-radius: 16px; padding: 2px; border: 1px solid rgba(79,172,254,0.08); } .de-skill-tab { flex: 1; text-align: center; padding: 8px 10px; font-size: 14px; color: #4a6a8a; cursor: pointer; border-radius: 14px; transition: all 0.3s; border: none; background: transparent; } .de-skill-tab.active { background: linear-gradient(135deg, rgba(79,172,254,0.9), rgba(0,242,254,0.85)); color: #fff; font-weight: 700; box-shadow: 0 2px 8px rgba(79,172,254,0.25); } /* Category slider */ .de-category-slider { display: grid; grid-template-columns: 28px minmax(0, 1fr) 28px; align-items: center; gap: 8px; margin-bottom: 12px; } .de-category-nav { width: 28px; height: 28px; border: 1px solid rgba(79,172,254,0.12); border-radius: 999px; background: rgba(240,248,255,0.7); color: #4a6a8a; cursor: pointer; font-size: 18px; line-height: 1; } .de-category-tags { display: flex; gap: 8px; overflow-x: auto; padding: 2px 4px 2px 0; scrollbar-width: none; } .de-category-tags::-webkit-scrollbar { display: none; } .de-workbench-table-wrap, .de-log-list, .de-shell-body { scrollbar-width: thin; scrollbar-color: rgba(46, 161, 255, 0.8) rgba(201, 227, 252, 0.48); } .de-workbench-table-wrap::-webkit-scrollbar, .de-log-list::-webkit-scrollbar, .de-shell-body::-webkit-scrollbar { width: 10px; } .de-workbench-table-wrap::-webkit-scrollbar-track, .de-log-list::-webkit-scrollbar-track, .de-shell-body::-webkit-scrollbar-track { background: linear-gradient(180deg, rgba(231, 243, 255, 0.88), rgba(210, 230, 250, 0.58)); border-radius: 999px; border: 1px solid rgba(151, 198, 238, 0.5); } .de-workbench-table-wrap::-webkit-scrollbar-thumb, .de-log-list::-webkit-scrollbar-thumb, .de-shell-body::-webkit-scrollbar-thumb { background: linear-gradient(180deg, rgba(70, 179, 255, 0.98), rgba(36, 144, 244, 0.95)); border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.82); box-shadow: inset 0 1px 0 rgba(255,255,255,0.55), 0 0 8px rgba(79,172,254,0.18); } .de-workbench-table-wrap::-webkit-scrollbar-thumb:hover, .de-log-list::-webkit-scrollbar-thumb:hover, .de-shell-body::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, rgba(58, 170, 255, 1), rgba(23, 128, 231, 0.98)); } .de-tag { flex: 0 0 auto; min-width: 58px; padding: 8px 14px; font-size: 13px; text-align: center; border-radius: 999px; background: rgba(30,144,255,0.06); color: #4a6a8a; cursor: pointer; border: 1px solid rgba(79,172,254,0.08); transition: all 0.3s; } .de-tag-label { display: block; text-align: center; font-weight: 600; } .de-tag.active { background: linear-gradient(135deg, rgba(79,172,254,0.9), rgba(0,242,254,0.85)); color: #fff; border-color: transparent; box-shadow: 0 4px 10px rgba(79,172,254,0.18); } /* Skill list */ .de-skill-list-scroll { display: flex; flex-direction: column; gap: 6px; overflow-y: auto; padding-right: 4px; min-height: 0; flex: 1; } .de-skill-card-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 52px; padding: 8px 12px; border-radius: 12px; background: linear-gradient(180deg, rgba(244,250,255,0.92), rgba(235,246,255,0.86)); border: 1px solid rgba(79,172,254,0.12); box-shadow: 0 2px 10px rgba(30,144,255,0.04), inset 0 1px 0 hsla(0,0%,100%,0.5); } .de-skill-card-row--clickable { cursor: pointer; transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease; } .de-skill-card-row--clickable:hover { border-color: rgba(79,172,254,0.48); box-shadow: 0 0 0 2px rgba(79,172,254,0.12); transform: translateY(-1px); } .de-skill-card-main { flex: 1; min-width: 0; display: grid; gap: 6px; } .de-skill-card-name { font-size: 15px; font-weight: 600; color: #214566; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .de-skill-card-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .de-skill-card-badge, .de-skill-card-schedule { display: inline-flex; align-items: center; min-height: 24px; padding: 0 10px; border-radius: 999px; font-size: 12px; color: #41627f; background: rgba(79,172,254,0.08); border: 1px solid rgba(79,172,254,0.12); } .de-skill-card-actions { display: flex; align-items: center; gap: 8px; } .de-skill-btn { min-width: 68px; border: none; border-radius: 999px; padding: 7px 14px; font-size: 13px; font-weight: 600; color: #fff; cursor: pointer; background: linear-gradient(135deg, rgba(89,173,245,0.92), rgba(58,214,243,0.9)); box-shadow: 0 2px 8px rgba(79,172,254,0.16); } .de-skill-btn--danger { background: linear-gradient(135deg, rgba(255,150,105,0.92), rgba(255,120,94,0.92)); } .de-skill-btn:disabled { cursor: not-allowed; opacity: 0.62; box-shadow: none; } /* Avatar wrapper */ .de-avatar-wrapper { width: 100%; flex: 1; min-height: 520px; max-width: 780px; position: relative; } /* Speech bubble */ .de-speech-bubble { position: absolute; top: 24%; right: 2%; width: min(100%, 320px); max-width: 320px; padding: 16px 16px 14px; border-radius: 24px 24px 24px 12px; background: linear-gradient(180deg, rgba(252,254,255,0.78), rgba(225,238,255,0.68)); border: 1px solid rgba(79,172,254,0.22); box-shadow: 0 14px 28px rgba(30,58,92,0.1), inset 0 1px 0 hsla(0,0%,100%,0.58); backdrop-filter: blur(10px); z-index: 12; pointer-events: auto; } .de-speech-label { font-size: 12px; font-weight: 700; color: #27567f; letter-spacing: 0.08em; display: block; margin-bottom: 8px; } .de-speech-text { color: #16324e; font-size: 13px; line-height: 1.52; min-height: 60px; } .de-speech-bubble--employee { border-radius: 18px 18px 18px 8px; box-shadow: 0 10px 22px rgba(30,58,92,0.1), inset 0 1px 0 hsla(0,0%,100%,0.58); } .de-speech-bubble--employee .de-speech-text { min-height: 0; margin: 0 0 8px; } .de-speech-workflow { width: 100%; min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2px 7px; padding: 8px 9px; border: 1px solid rgba(79,172,254,0.16); border-radius: 12px; text-align: left; background: rgba(247,251,255,0.78); cursor: pointer; } .de-speech-workflow:hover { border-color: rgba(79,172,254,0.38); background: rgba(239,248,255,0.92); } .de-speech-workflow:focus-visible { outline: 2px solid rgba(79,172,254,0.56); outline-offset: 2px; } .de-speech-workflow span { color: #0c5a85; font-size: 10px; font-weight: 800; line-height: 1.35; white-space: nowrap; } .de-speech-workflow strong { min-width: 0; overflow: hidden; color: #143450; font-size: 12px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; } .de-speech-workflow small { grid-column: 2; min-width: 0; color: #58728e; font-size: 10px; line-height: 1.35; display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .de-speech-workflow span:last-of-type, .de-speech-workflow span:last-of-type + small { margin-top: 3px; } /* Workbench (right column) */ .de-workbench { display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 10px; padding: 12px; border-radius: 14px; background: linear-gradient(180deg, hsla(0,0%,100%,0.78), rgba(235,244,255,0.94)); border: 1px solid rgba(79,172,254,0.16); overflow: hidden; min-height: 0; } .de-workbench-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .de-workbench > .de-card-title-bar { margin: -12px -12px 0; min-height: 42px; border-radius: 14px 14px 0 0; } .de-workbench-head--bar { flex-wrap: nowrap; } .de-workbench-head--bar::after, .de-report-summary-head--bar::after { content: none; } .de-workbench-title-row { min-width: 0; display: flex; align-items: baseline; gap: 10px; } .de-workbench-title-row h3 { font-size: 16px; color: #143450; margin: 0; } .de-workbench-count { font-size: 11px; color: #5b7590; white-space: nowrap; } .de-workbench-table-wrap { min-height: 0; overflow-y: auto; border-radius: 12px; border: 1px solid rgba(79,172,254,0.14); background: rgba(247,251,255,0.92); } .de-workbench-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 12px; table-layout: fixed; } .de-workbench-table th { position: sticky; top: 0; z-index: 1; background: rgba(220,236,252,0.98); color: #29577f; font-weight: 700; padding: 9px 8px; text-align: left; border-bottom: 1px solid rgba(79,172,254,0.08); } .de-workbench-table td { padding: 9px 8px; color: #173550; border-bottom: 1px solid rgba(79,172,254,0.08); vertical-align: top; } .de-workbench-clickable-row { cursor: pointer; transition: background 0.18s ease, box-shadow 0.18s ease; } .de-workbench-clickable-row:hover { background: rgba(79,172,254,0.1); box-shadow: inset 3px 0 0 rgba(44,168,255,0.72); } .de-workbench-empty { text-align: center; color: #6b849d; padding: 40px 12px; } .de-workbench-task-name { display: -webkit-box; overflow: hidden; color: #16324e; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .de-workbench-desc { display: -webkit-box; overflow: hidden; color: #58728e; line-height: 1.55; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .de-workbench-plan-progress { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; color: #5b7590; } .de-workbench-actions { display: flex; flex-wrap: wrap; gap: 6px; } .de-workbench-actions button { border: none; border-radius: 999px; min-height: 28px; padding: 0 9px; font-size: 11px; color: #22659a; background: rgba(79,172,254,0.14); cursor: pointer; } .de-workbench-action-accent { color: #8c5b04 !important; background: rgba(255,184,61,0.2) !important; } /* Log panel */ .de-log-panel { display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 12px; padding: 12px; border-radius: 14px; background: linear-gradient(180deg, hsla(0,0%,100%,0.76), rgba(234,243,255,0.94)); border: 1px solid rgba(79,172,254,0.16); overflow: hidden; min-height: 0; } .de-log-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .de-log-panel-title-row { min-width: 0; display: flex; align-items: baseline; gap: 10px; } .de-log-panel-title-row h3 { font-size: 16px; color: #143450; margin: 0; } .de-log-panel-title-row p { font-size: 11px; color: #5b7590; margin: 0; } .de-log-list { overflow-y: auto; min-height: 0; display: flex; align-items: center; justify-content: center; } /* Report summary */ .de-report-summary { display: grid; gap: 10px; padding: 12px; border-radius: 14px; background: linear-gradient(180deg, hsla(0,0%,100%,0.76), rgba(231,242,255,0.94)); border: 1px solid rgba(79,172,254,0.16); min-height: 0; overflow: hidden; } .de-report-summary-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .de-report-summary > .de-card-title-bar { margin: -12px -12px 0; min-height: 42px; border-radius: 14px 14px 0 0; } .de-report-summary-head--bar { flex-wrap: nowrap; } .de-report-summary-title-row { min-width: 0; display: flex; align-items: baseline; gap: 10px; } .de-report-summary-title-row h3 { font-size: 16px; color: #143450; margin: 0; } .de-report-badge { display: inline-flex; align-items: center; padding: 6px 12px; border: 0; border-radius: 999px; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; } .de-report-badge:hover { box-shadow: 0 0 0 2px rgba(79,172,254,0.14); } .de-report-badge--waiting { background: rgba(255,184,61,0.18); color: #8c5b04; } .de-report-badge--ready { background: rgba(32,191,107,0.14); color: #0f7a44; } .de-report-summary-body { display: grid; gap: 10px; } .de-report-schedule-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: center; gap: 8px; } .de-report-schedule-row label { grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; min-width: 0; color: #5b7590; font-size: 12px; font-weight: 800; } .de-report-schedule-row input { min-width: 0; height: 30px; border-radius: 9px; border: 1px solid rgba(79,172,254,0.18); color: #16324e; background: rgba(247,251,255,0.96); padding: 0 9px; } .de-report-download-btn, .de-report-preview-btn { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-width: 0; min-height: 30px; white-space: nowrap; } .de-report-download-btn:not(:disabled) { color: #0c5a85; border-color: rgba(44,168,255,0.42); background: linear-gradient(180deg, rgba(235,248,255,0.98), rgba(200,233,255,0.9)); box-shadow: 0 4px 10px rgba(44,168,255,0.12), inset 0 1px 0 rgba(255,255,255,0.68); } .de-report-download-btn:disabled { opacity: 0.5; cursor: not-allowed; } .de-report-preview-overlay { z-index: 330; } .de-report-preview-modal { width: min(780px, calc(100vw - 56px)); max-height: min(720px, calc(100vh - 54px)); display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; gap: 14px; padding: 18px; border-radius: 20px; background: linear-gradient(180deg, rgba(252,254,255,0.98), rgba(233,245,255,0.96)); border: 1px solid rgba(79,172,254,0.2); box-shadow: 0 24px 70px rgba(21,55,84,0.26), inset 0 1px 0 rgba(255,255,255,0.62); } .de-report-preview-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; } .de-report-preview-summary div { min-width: 0; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 9px 10px; border-radius: 12px; background: rgba(247,251,255,0.96); border: 1px solid rgba(79,172,254,0.12); } .de-report-preview-summary span { color: #5b7590; font-size: 12px; white-space: nowrap; } .de-report-preview-summary strong { color: #16324e; font-size: 20px; line-height: 1; } .de-report-preview-content { min-height: 0; max-height: min(460px, calc(100vh - 260px)); overflow-y: auto; display: grid; align-content: start; gap: 10px; padding: 14px; border-radius: 14px; background: rgba(247,251,255,0.86); border: 1px solid rgba(79,172,254,0.12); scrollbar-gutter: stable; } .de-report-preview-content p { margin: 0; color: #173550; font-size: 13px; line-height: 1.65; } .de-report-actions { display: flex; gap: 10px; } .de-report-generate-btn { min-width: 118px; border: none; border-radius: 12px; padding: 10px 16px; font-size: 14px; font-weight: 700; color: #fff; cursor: pointer; background: linear-gradient(135deg, #2ca8ff, #00c6ff); } .de-report-generate-btn:disabled { opacity: 0.6; cursor: not-allowed; } .de-report-download { flex: 1; display: flex; align-items: center; padding: 10px 16px; border-radius: 12px; font-size: 14px; color: #16324e; background: hsla(0,0%,100%,0.9); border: 1px solid rgba(79,172,254,0.16); } .de-report-download--disabled { opacity: 0.55; } .de-report-meta { display: grid; gap: 4px; } .de-report-meta p { font-size: 12px; color: #5b7590; margin: 0; } .de-profile-settings-modal { width: min(520px, 100%); max-height: min(720px, calc(100vh - 48px)); display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 14px; padding: 18px; border-radius: 18px; background: linear-gradient(180deg, rgba(250,253,255,0.98), rgba(232,244,255,0.98)); border: 1px solid rgba(79,172,254,0.22); box-shadow: 0 24px 60px rgba(29,67,109,0.18); } .de-profile-settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .de-profile-settings-grid label, .de-profile-status-toggle { display: grid; gap: 6px; color: #5b7590; font-size: 12px; font-weight: 800; } .de-profile-settings-grid input { min-width: 0; height: 36px; border-radius: 10px; border: 1px solid rgba(79,172,254,0.18); color: #16324e; background: rgba(247,251,255,0.96); padding: 0 10px; } .de-profile-status-toggle div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } .de-profile-status-toggle button { min-height: 36px; border-radius: 10px; border: 1px solid rgba(79,172,254,0.18); color: #22659a; background: rgba(79,172,254,0.1); font-weight: 800; cursor: pointer; } .de-profile-status-toggle button.active { color: #fff; border-color: transparent; background: var(--de-btn-gradient-active); box-shadow: 0 2px 8px rgba(79,172,254,0.22); } /* Skin Switch */ .de-gender-toggle { display: flex; gap: 0; } .de-gender-btn { padding: 8px 36px; font-size: 15px; font-weight: 700; color: rgba(30,144,255,0.5); cursor: pointer; transition: all 0.3s; transform: skewX(-15deg); background: hsla(0,0%,100%,0.5); border: 1px solid rgba(79,172,254,0.25); } .de-gender-btn:first-child { border-radius: 10px 0 0 10px; } .de-gender-btn:last-child { border-radius: 0 10px 10px 0; } .de-gender-btn span { transform: skewX(15deg); display: inline-block; } .de-gender-btn.active { background: linear-gradient(135deg, #4facfe, #00f2fe); color: #fff; border-color: transparent; box-shadow: 0 3px 12px rgba(79,172,254,0.4); } .de-skin-row { display: flex; gap: 6px; padding: 8px 10px; margin-top: 8px; background: rgba(230,242,255,0.75); border: 1px solid rgba(79,172,254,0.22); border-radius: 12px; box-shadow: 0 4px 24px rgba(30,144,255,0.08); backdrop-filter: blur(20px) saturate(1.2); } .de-skin-option { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 5px 8px; border-radius: 8px; cursor: pointer; border: 2px solid transparent; background: hsla(0,0%,100%,0.3); transition: all 0.3s; } .de-skin-option.active { border-color: #4facfe; box-shadow: 0 0 12px rgba(79,172,254,0.3); background: linear-gradient(135deg, rgba(79,172,254,0.2), rgba(0,242,254,0.15)); } .de-skin-preview { width: 38px; height: 50px; overflow: hidden; border-radius: 6px; background: hsla(0,0%,100%,0.5); } .de-skin-preview img { width: 100%; height: 100%; object-fit: contain; object-position: center top; } .de-skin-label { font-size: 11px; color: #4a6a8a; white-space: nowrap; } /* Shell body */ .de-shell-body { flex: 1; min-height: 0; overflow-x: hidden; overflow-y: auto; position: relative; } /* Fix card styles to work inside de-dashboard */ .de-dashboard .de-card { margin: 0; } .de-dashboard .de-card-body { padding: 14px 16px; } @media (max-width: 1280px) { .de-mission-center-page { padding: 10px 12px; } .de-dashboard { min-height: calc(100vh - 60px); height: auto; } .de-dashboard-content { grid-template-columns: minmax(248px, 0.76fr) minmax(340px, 1.18fr) minmax(248px, 0.68fr); padding: 7px 8px 72px; gap: 8px; overflow: hidden; } .de-dashboard-center { min-height: 0; padding: 0 0 44px; overflow: visible; } .de-right-panels { grid-template-rows: minmax(0, 1fr) minmax(158px, 0.34fr); gap: 8px; overflow: hidden; } .de-workbench-table-wrap, .de-log-list { max-height: none; } .de-speech-bubble { top: 24%; left: 50%; right: auto; width: min(260px, calc(100% + 12px)); padding: 8px 10px; transform: translateX(-50%); } .de-card { border-radius: 10px; } .de-card-body { padding: 10px 12px; } .de-card-title-bar { padding: 7px 13px; } .de-card-title-bar-text { font-size: 14px; letter-spacing: 0.5px; } .de-badge { min-height: 20px; padding: 0 8px; font-size: 11px; } .de-speech-label { font-size: 11px; margin-bottom: 5px; } .de-speech-text { min-height: 36px; font-size: 11px; line-height: 1.4; } .de-speech-bubble--employee .de-speech-text { min-height: 0; } .de-speech-workflow { padding: 7px 8px; gap: 2px 6px; } .de-speech-workflow strong { font-size: 11px; } .de-speech-workflow small { font-size: 10px; -webkit-line-clamp: 1; } .de-avatar-wrapper { min-height: 420px; max-width: 560px; } .de-avatar-img { height: 56vh; max-height: 470px; margin-bottom: -10px; max-width: 96%; } .de-avatar-glass-space { width: 100%; max-width: 360px; } .de-skin-switch { bottom: 5px !important; } .de-gender-btn { padding: 6px 24px; font-size: 13px; } .de-skin-row { gap: 5px; padding: 6px 8px; margin-top: 6px; } .de-skin-preview { width: 28px; height: 36px; } .de-skin-option { padding: 3px 6px; } .de-skin-label { font-size: 10px; } .de-info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 7px 10px; } .de-info-item { gap: 3px; padding: 4px 0; } .de-info-item label { font-size: 12px; } .de-info-item span { font-size: 13px; line-height: 1.4; } .de-template-overview, .de-skill-overview { margin-bottom: 8px; border-radius: 14px; } .de-template-overview-item, .de-skill-overview-item { min-height: 54px; padding: 7px 10px 10px; gap: 4px; } .de-template-overview-label, .de-skill-overview-label { font-size: 11px; } .de-template-overview-value, .de-skill-overview-value { font-size: 24px; } .de-skill-tabs { margin-bottom: 8px; border-radius: 12px; } .de-skill-tab { padding: 6px 8px; font-size: 12px; border-radius: 10px; } .de-category-slider { grid-template-columns: 24px minmax(0, 1fr) 24px; gap: 6px; margin-bottom: 8px; } .de-category-nav { width: 24px; height: 24px; font-size: 16px; } .de-tag { min-width: 50px; padding: 6px 11px; font-size: 12px; } .de-workbench, .de-log-panel { padding: 10px; gap: 8px; border-radius: 12px; } .de-report-summary { padding: 10px; gap: 8px; border-radius: 12px; } .de-workbench-head, .de-log-panel-head, .de-report-summary-head { align-items: flex-start; } .de-workbench-title-row, .de-log-panel-title-row, .de-report-summary-title-row { display: grid; gap: 2px; } .de-workbench-title-row h3, .de-log-panel-title-row h3, .de-report-summary-title-row h3 { font-size: 15px; } .de-workbench-count, .de-log-panel-title-row p { font-size: 11px; } .de-workbench-table { table-layout: fixed; font-size: 12px; } .de-workbench-table th, .de-workbench-table td { padding: 7px 6px; } .de-workbench-table th:nth-child(4), .de-workbench-table td:nth-child(4) { display: none; } .de-workbench-actions button { min-height: 26px; padding: 0 7px; font-size: 11px; } .de-report-actions { flex-direction: column; } .de-report-generate-btn { min-width: 96px; padding: 8px 12px; font-size: 12px; } .de-report-download { padding: 8px 12px; font-size: 12px; } .de-mission-center-layout { grid-template-columns: minmax(300px, 0.9fr) minmax(380px, 1.35fr); gap: 10px; } .de-mc-card-list { gap: 6px; } .de-mission-card { padding: 9px 10px; border-radius: 10px; } .de-mission-card-header { margin-bottom: 5px; } .de-mission-card-title { font-size: 13px; } .de-mission-card-desc { font-size: 12px; line-height: 1.38; margin-bottom: 5px; -webkit-line-clamp: 1; } .de-mission-card-meta { gap: 8px; font-size: 11px; } .de-mission-card-actions { margin-top: 7px; padding-top: 7px; } .de-mission-card-time { font-size: 10px; } .de-btn-run { padding: 4px 10px; font-size: 11px; } .de-date-filter-row { gap: 6px; margin-bottom: 8px; padding: 8px; } .de-date-filter-field { width: 100%; justify-content: space-between; } .de-date-filter-field input { min-width: 136px; } .de-date-filter-summary { width: 100%; margin-left: 0; } .de-filter-row { margin-bottom: 8px; gap: 5px; } .de-filter-chip { padding: 3px 9px; font-size: 11px; } .de-drawer { gap: 10px; padding: 12px; border-radius: 14px; } .de-drawer-title-group h3 { font-size: 17px; } .de-drawer-eyebrow { font-size: 10px; } .de-drawer-meta { font-size: 11px; } .de-detail-section { padding: 9px; border-radius: 10px; } .de-detail-section h4 { margin-bottom: 7px; font-size: 12px; } .de-detail-section-head h4 { margin-bottom: 0; } .de-detail-kv { grid-template-columns: 60px minmax(0, 1fr); gap: 5px 8px; font-size: 11px; } .de-chain-row { grid-template-columns: 64px minmax(0, 1fr); font-size: 10px; } .de-chain-row time { grid-column: 1 / -1; text-align: left; } .de-step-node { grid-template-columns: 20px 1fr; gap: 8px; padding-bottom: 11px; } .de-step-content strong { font-size: 13px; } .de-step-content span { font-size: 11px; } .de-step-dot { width: 10px; height: 10px; } .de-step-line { left: 4px; } .de-task-run-card { padding: 7px 8px; border-radius: 9px; } .de-task-run-meta { gap: 5px 8px; font-size: 10px; } .de-event-row { grid-template-columns: 64px minmax(0, 1fr); font-size: 10px; } .de-event-row time { grid-column: 1 / -1; text-align: left; } .de-log-entry { gap: 4px; padding: 8px 10px; border-radius: 10px; font-size: 11px; } .de-log-entry-meta strong { font-size: 12px; } .de-log-entry p { font-size: 11px; line-height: 1.38; } } @media (max-width: 1679px) { .de-dashboard-content { padding: 8px 14px 10px; gap: 12px; } .de-dashboard-content { grid-template-columns: minmax(278px, 0.86fr) minmax(360px, 1.08fr) minmax(276px, 0.78fr); } .de-dashboard-center { padding: 4px 0 80px; } } @media (max-width: 1439px) { .de-dashboard-content { padding: 8px 12px 8px; gap: 10px; } .de-dashboard-content { grid-template-columns: minmax(260px, 0.9fr) minmax(300px, 0.96fr) minmax(260px, 0.74fr); } .de-dashboard-center { padding: 4px 0 72px; } } @media (max-width: 1280px) { .de-dashboard-content { padding: 7px 8px 72px; gap: 8px; } .de-dashboard-center { padding: 4px 0 56px; } .de-log-entry { gap: 4px; padding: 8px 10px; border-radius: 10px; font-size: 11px; } .de-log-entry-meta strong { font-size: 12px; } .de-log-entry p { font-size: 11px; line-height: 1.38; } } @media (max-height: 820px) and (min-width: 1180px) { .de-dashboard--compact .de-dashboard-content { grid-template-columns: minmax(320px, 0.9fr) minmax(360px, 0.86fr) minmax(410px, 1.05fr); padding: 6px 14px 8px; gap: 10px; } .de-dashboard--compact .de-dashboard-left { gap: 8px; } .de-dashboard--compact .de-card-title-bar { min-height: 40px; padding: 7px 14px; } .de-dashboard--compact .de-card-title-bar-text { font-size: 15px; } .de-dashboard--compact .de-card-body { padding: 10px 14px; } .de-person-card--compact .de-info-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; padding: 7px 10px; } .de-person-card--compact .de-info-item { gap: 2px; padding: 2px 0; } .de-person-card--compact .de-info-item label { font-size: 11px; } .de-person-card--compact .de-info-item span { font-size: 12px; line-height: 1.32; } .de-person-card--compact .de-report-download { margin-top: 8px !important; padding: 7px 10px; font-size: 11px !important; line-height: 1.32 !important; } .de-dashboard--compact .de-workday-toolbar { grid-template-columns: minmax(0, 1fr) 92px; gap: 8px; margin-bottom: 8px; } .de-dashboard--compact .de-workday-toolbar input { height: 30px; border-radius: 9px; } .de-dashboard--compact .de-template-overview { margin-bottom: 8px; border-radius: 12px; } .de-dashboard--compact .de-template-overview-item { min-height: 54px; padding: 7px 10px 10px; gap: 3px; } .de-dashboard--compact .de-template-overview-label { font-size: 11px; } .de-dashboard--compact .de-template-overview-value { font-size: 24px; } .de-dashboard--compact .de-template-list-scroll { gap: 6px; } .de-dashboard--compact .de-template-manager-body > .de-task-date-context { margin: -2px 0 6px; padding: 6px 7px; } .de-dashboard--compact .de-task-manager-preview { gap: 6px; padding: 8px; border-radius: 12px; } .de-dashboard--compact .de-task-manager-preview-row { padding: 8px 9px; border-radius: 10px; } .de-dashboard--compact .de-template-task-list .de-task-manager-preview-row { grid-template-columns: minmax(0, 1fr) auto; gap: 6px; } .de-dashboard--compact .de-template-item-actions .de-btn-sm { min-height: 24px; padding: 0 7px; font-size: 10px; } .de-dashboard--compact .de-duty-card--compact { min-height: 86px; padding: 8px 10px; border-radius: 10px; } .de-dashboard--compact .de-template-card-main { gap: 4px; } .de-dashboard--compact .de-template-card-name { font-size: 13px; } .de-dashboard--compact .de-template-card-desc { font-size: 11px; line-height: 1.34; -webkit-line-clamp: 1; } .de-dashboard--compact .de-template-card-meta { font-size: 10px; gap: 6px; } .de-dashboard--compact .de-duty-card-foot { margin-top: 0; } .de-dashboard--compact .de-duty-card-foot .de-btn-sm { min-height: 24px; padding: 0 9px; font-size: 11px; } .de-dashboard--compact .de-duty-selected-mark { min-width: 36px; height: 22px; font-size: 10px; } .de-dashboard--compact .de-dashboard-center { padding: 0 0 10px !important; } .de-dashboard--compact .de-avatar-wrapper { min-height: 430px !important; max-width: 520px !important; transform: translateY(-2px) !important; } .de-dashboard--compact .de-avatar-img { height: 58vh; max-height: 450px; margin-bottom: -32px; } .de-dashboard--compact .de-avatar-glass-space { max-width: 340px; max-height: 520px; } .de-dashboard--compact .de-avatar-state-label { top: 17%; min-height: 24px; font-size: 12px; } .de-dashboard--compact .de-speech-bubble { top: 38% !important; left: 27% !important; width: 250px !important; padding: 9px 11px !important; border-radius: 18px 18px 18px 10px; } .de-dashboard--compact .de-speech-label { font-size: 11px; margin-bottom: 5px; } .de-dashboard--compact .de-speech-text { min-height: 0; font-size: 11px; line-height: 1.38; } .de-dashboard--compact .de-speech-workflow { padding: 7px 8px; gap: 2px 6px; } .de-dashboard--compact .de-speech-workflow strong { font-size: 11px; } .de-dashboard--compact .de-speech-workflow small { font-size: 10px; -webkit-line-clamp: 1; } .de-dashboard--compact .de-skin-row { gap: 5px; padding: 6px 8px; margin-top: 5px; } .de-dashboard--compact .de-right-panels { grid-template-rows: minmax(0, 1fr) minmax(156px, 0.33fr); gap: 8px; } .de-dashboard--compact .de-workbench, .de-dashboard--compact .de-log-panel, .de-dashboard--compact .de-report-summary { padding: 10px; gap: 8px; border-radius: 12px; } .de-dashboard--compact .de-workbench-title-row, .de-dashboard--compact .de-log-panel-title-row, .de-dashboard--compact .de-report-summary-title-row { display: grid; gap: 2px; } .de-dashboard--compact .de-workbench-title-row h3, .de-dashboard--compact .de-log-panel-title-row h3, .de-dashboard--compact .de-report-summary-title-row h3 { font-size: 15px; } .de-dashboard--compact .de-workday-execution-body { gap: 6px; grid-template-rows: auto minmax(80px, 0.48fr) auto minmax(0, 1fr); } .de-dashboard--compact .de-execution-status-strip { gap: 5px; } .de-dashboard--compact .de-execution-status-strip span { padding: 6px 7px; } .de-dashboard--compact .de-execution-status-strip strong { font-size: 16px; } .de-dashboard--compact .de-task-summary-grid { gap: 5px; } .de-dashboard--compact .de-task-summary-scroll .de-task-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .de-dashboard--compact .de-task-summary-card { min-height: 76px; padding: 7px; gap: 3px 5px; border-radius: 10px; } .de-dashboard--compact .de-task-summary-title { font-size: 11px; } .de-dashboard--compact .de-task-summary-counts { gap: 4px; } .de-dashboard--compact .de-task-summary-counts span { padding: 5px; } .de-dashboard--compact .de-task-summary-counts em { font-size: 9px; } .de-dashboard--compact .de-task-summary-counts strong { font-size: 13px; } .de-dashboard--compact .de-log-entry { padding: 7px 9px; gap: 4px; border-radius: 10px; } .de-dashboard--compact .de-log-entry-meta strong { font-size: 12px; } .de-dashboard--compact .de-log-entry p { font-size: 11px; line-height: 1.34; -webkit-line-clamp: 1; } .de-dashboard--compact .de-decision-chain-note { margin-top: 4px; font-size: 10px; } .de-dashboard--compact .de-report-summary { gap: 6px; } .de-dashboard--compact .de-report-summary-body { gap: 6px; } .de-dashboard--compact .de-report-schedule-row { gap: 6px; } .de-dashboard--compact .de-report-download-btn { min-height: 28px; gap: 4px; } .de-dashboard--compact .de-report-preview-btn { min-height: 28px; gap: 4px; } .de-dashboard--compact .de-report-meta p { font-size: 10px; line-height: 1.3; } .de-task-manager-modal-overlay { padding: 16px; } .de-task-manager-modal { width: min(1000px, calc(100vw - 36px)); max-height: calc(100vh - 36px); gap: 12px; padding: 14px; border-radius: 16px; } .de-task-manager-modal-body { grid-template-columns: minmax(0, 1.24fr) minmax(280px, 0.78fr); gap: 10px; } .de-task-manager-modal-head h3 { font-size: 19px; } .de-task-manager-modal-head p { font-size: 12px; line-height: 1.42; } .de-workday-guide-modal { width: min(1040px, calc(100vw - 36px)); gap: 10px; } .de-workday-guide-steps { gap: 8px; } .de-workday-guide-step { padding: 8px 9px; border-radius: 12px; } .de-workday-guide-step span { width: 22px; height: 22px; font-size: 11px; } .de-workday-guide-step strong { font-size: 12px; } .de-workday-guide-step p { font-size: 10px; line-height: 1.32; } .de-workday-guide-body { grid-template-columns: minmax(0, 1.32fr) minmax(260px, 0.72fr); gap: 10px; } .de-workday-guide-duty-list { gap: 7px; } .de-workday-guide-duty-list .de-duty-card { min-height: 94px; grid-template-columns: 68px minmax(0, 1fr); gap: 7px; } .de-workday-guide-side { padding: 10px; border-radius: 13px; gap: 8px; } .de-workday-guide-summary { padding: 9px; border-radius: 11px; } .de-workday-guide-summary strong { font-size: 14px; } .de-workday-guide-summary p { font-size: 11px; line-height: 1.38; } .de-task-manager-column { padding: 10px; border-radius: 13px; gap: 8px; } .de-task-manager-duty-list .de-duty-card { min-height: 88px; grid-template-columns: 72px minmax(0, 1fr); gap: 8px; } .de-task-manager-duty-check { font-size: 11px; gap: 6px; } .de-task-manager-duty-check input { width: 20px; height: 20px; } .de-task-manager-decision-card { padding: 9px 10px; border-radius: 10px; } } @media (max-width: 1023px) { .de-mission-center-page { height: auto; min-height: 100%; overflow: visible; padding: 10px 12px 96px; } .de-mission-center-layout { grid-template-columns: 1fr; height: auto; min-height: auto; overflow: visible; } .de-mc-list, .de-mc-detail { display: flex; min-height: auto; overflow: visible; } .de-mc-list > .de-card, .de-mc-detail > .de-card { height: auto; min-height: 0; } .de-mc-list .de-card-body, .de-mc-detail .de-card-body { overflow: visible; } .de-dashboard { height: auto; min-height: 100%; overflow: visible; } .de-dashboard-content { grid-template-columns: 1fr; min-height: auto; overflow: visible; padding: 8px 12px 96px; } .de-dashboard-left, .de-dashboard-center, .de-dashboard-right { overflow: visible; } .de-right-panels { height: auto; grid-template-rows: auto auto; } .de-workbench, .de-log-panel, .de-report-summary { min-height: 180px; } .de-workday-execution-body { grid-template-rows: auto auto auto auto; } .de-task-summary-scroll, .de-run-detail-list { max-height: 360px; } .de-run-detail-panel { min-height: 260px; } } /* Log entries in CommandDeck */ .de-log-entries { display: flex; flex-direction: column; gap: 6px; overflow-y: auto; } .de-log-entry { width: 100%; display: grid; gap: 6px; padding: 10px 12px; text-align: left; border: 1px solid rgba(79,172,254,0.12); border-radius: 12px; background: rgba(248,251,255,0.96); color: #16324e; cursor: pointer; font-family: inherit; font-size: 12px; transition: border-color 0.18s ease, box-shadow 0.18s ease; } .de-log-entry:hover, .de-log-entry--active { border-color: rgba(79,172,254,0.34); box-shadow: 0 0 0 2px rgba(79,172,254,0.08); } .de-log-entry-meta { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; } .de-log-entry-meta strong { font-size: 13px; line-height: 1.4; } .de-log-entry-meta span { font-size: 11px; color: #5b7590; } .de-log-entry p { font-size: 12px; color: #5b7590; line-height: 1.5; margin: 0; display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } /* Workbench real data */ .de-workbench-actions button:hover { background: rgba(79,172,254,0.22); } .de-workbench-actions button:disabled { opacity: 0.45; cursor: not-allowed; } /* Digital Employee — real-time task indicators */ .de-status-dot--running { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--de-primary); margin-right: 6px; animation: de-pulse-dot 1.5s ease-in-out infinite; } .de-elapsed { font-size: 11px; color: var(--de-text-muted); font-variant-numeric: tabular-nums; } /* Tag count badge */ .de-tag-count-badge { position: absolute; top: -6px; right: -2px; display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; font-size: 11px; font-weight: 700; line-height: 1; color: #fff; background: linear-gradient(135deg, #ff7d66, #ff5b6b); box-shadow: 0 3px 8px rgba(255,91,107,0.28); } /* Schedule skill button */ .de-skill-btn--schedule { background: linear-gradient(135deg, rgba(14,165,233,0.94), rgba(6,182,212,0.88)) !important; } /* Schedule Dialog */ .de-schedule-overlay { position: fixed; inset: 0; z-index: 28; display: flex; align-items: center; justify-content: center; background: rgba(10,28,44,0.28); backdrop-filter: blur(4px); } .de-schedule-dialog { width: min(520px, calc(100vw - 32px)); display: grid; gap: 18px; padding: 20px; border-radius: 24px; background: linear-gradient(180deg, rgba(252,254,255,0.9), rgba(229,240,255,0.88)); border: 1px solid rgba(79,172,254,0.2); box-shadow: 0 20px 48px rgba(30,58,92,0.18), inset 0 1px 0 hsla(0,0%,100%,0.5); } .de-schedule-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; } .de-schedule-title { display: block; font-size: 18px; font-weight: 700; color: #173553; } .de-schedule-skill-id { display: block; margin-top: 4px; font-size: 13px; color: #5b7590; } .de-schedule-close { border: none; border-radius: 999px; padding: 8px 14px; cursor: pointer; color: #3c6486; background: rgba(79,172,254,0.12); } .de-schedule-section { display: grid; gap: 12px; } .de-schedule-label { font-size: 13px; color: #41627f; } .de-schedule-desc { font-size: 13px; color: #315576; line-height: 1.6; margin: 0; } .de-schedule-presets { display: flex; flex-wrap: wrap; gap: 10px; } .de-schedule-preset { padding: 8px 14px; font-size: 13px; border: none; border-radius: 999px; color: #315576; background: rgba(79,172,254,0.1); cursor: pointer; } .de-schedule-preset.is-active { color: #fff; font-weight: 700; background: linear-gradient(135deg, rgba(79,172,254,0.92), rgba(0,242,254,0.86)); box-shadow: 0 4px 12px rgba(79,172,254,0.22); } .de-schedule-switch { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 12px; background: hsla(0,0%,100%,0.74); border: 1px solid rgba(79,172,254,0.12); font-size: 13px; color: #315576; } .de-schedule-switch input[type="checkbox"] { width: 18px; height: 18px; accent-color: #4facfe; } .de-schedule-notice { padding: 12px 14px; border-radius: 14px; background: rgba(79,172,254,0.08); border: 1px solid rgba(79,172,254,0.12); font-size: 13px; line-height: 1.5; color: #315576; } .de-schedule-result { padding: 10px 12px; border-radius: 12px; font-size: 13px; line-height: 1.5; } .de-schedule-result--success { color: #176a3a; background: rgba(27,156,90,0.1); border: 1px solid rgba(27,156,90,0.2); } .de-schedule-result--pending { color: #7a5509; background: rgba(245,173,45,0.12); border: 1px solid rgba(245,173,45,0.24); } .de-schedule-result--error { color: #ad3434; background: rgba(224,72,72,0.1); border: 1px solid rgba(224,72,72,0.2); } .de-schedule-footer { display: flex; justify-content: flex-end; gap: 12px; } .de-schedule-btn-secondary { padding: 8px 14px; border: none; border-radius: 999px; cursor: pointer; color: #3c6486; background: rgba(79,172,254,0.12); } .de-schedule-btn-primary { padding: 8px 18px; border: none; border-radius: 999px; cursor: pointer; color: #fff; background: linear-gradient(135deg, rgba(79,172,254,0.92), rgba(0,242,254,0.86)); box-shadow: 0 4px 12px rgba(79,172,254,0.22); } .de-schedule-btn-primary:disabled { opacity: 0.55; cursor: not-allowed; }