feat: complete release preparation, 10+ ad mediation, CI/CD, and docker deployment
Some checks failed
CI Pipeline / Code Quality & Typecheck (push) Waiting to run
CI Pipeline / Test Suite (macos-latest) (push) Blocked by required conditions
CI Pipeline / Test Suite (ubuntu-latest) (push) Blocked by required conditions
CI Pipeline / Test Suite (windows-latest) (push) Blocked by required conditions
CI Pipeline / Build Validation (admin) (push) Blocked by required conditions
CI Pipeline / Build Validation (desktop) (push) Blocked by required conditions
Deploy Landing Page / deploy (push) Blocked by required conditions
Deploy Landing Page / build (push) Waiting to run
Release & Packaging Pipeline / Build & Publish Admin Docker Image (push) Failing after 8s
Release & Code Signing CA Pipeline / build-and-sign-windows (push) Failing after 1m51s
Build macOS / Build & Package (macOS) (push) Failing after 4s
Build macOS / Build & Package (macOS)-1 (push) Failing after 5s
Release & Code Signing CA Pipeline / build-and-sign-macos (push) Failing after 3s
Release & Packaging Pipeline / Package macOS Desktop App (push) Failing after 4s
Release & Packaging Pipeline / Package Windows Desktop App (push) Failing after 2m28s
Release & Packaging Pipeline / Publish Official GitHub Release (push) Has been skipped

This commit is contained in:
Yun Chan 2026-08-20 11:12:05 +09:00
parent 5cd1de6859
commit 708e20f747
406 changed files with 42464 additions and 6199 deletions

View file

@ -1,70 +1,103 @@
/* D3RO Console — Global Styles */
/* D3RO Voice Admin CRM — "Midnight Glass v2" Global Styles */
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css');
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap');
:root {
--sys-base: #000000;
--sys-panel: #09090b;
--sys-panel-hover: #121214;
--sys-border: #1f1f22;
--sys-border-hl: #27272a;
--text-dim: #71717a;
--text-base: #a1a1aa;
--text-bright: #ffffff;
--accent: #ff5c28;
--d3-bg-base: #070b16;
--d3-bg-app: #0a0e1c;
--d3-bg-card: #111a30;
--d3-bg-card-hover: #152039;
--d3-bg-elevated: #1a2540;
--d3-bg-input: #0d1526;
--d3-bg-sidebar: #0b101f;
--d3-border: rgba(148, 180, 255, 0.08);
--d3-border-hl: rgba(148, 180, 255, 0.16);
--d3-accent: #3b82f6;
--d3-accent-light: #60a5fa;
--d3-cyan: #06b6d4;
--d3-purple: #8b5cf6;
--text-dim: #67789e;
--text-base: #93a4c8;
--text-bright: #eef2fb;
}
* {
box-sizing: border-box;
}
body {
background-color: var(--sys-base);
margin: 0;
padding: 0;
background-color: var(--d3-bg-base);
color: var(--text-bright);
font-family: 'JetBrains Mono', ui-monospace, monospace;
font-family: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, 'Helvetica Neue', 'Segoe UI', 'Apple SD Gothic Neo', 'Noto Sans KR', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
overflow-x: hidden;
background-image:
radial-gradient(ellipse 60% 40% at 10% 0%, rgba(6, 182, 212, 0.08) 0%, transparent 60%),
radial-gradient(ellipse 50% 50% at 90% 10%, rgba(59, 130, 246, 0.09) 0%, transparent 60%),
radial-gradient(ellipse 40% 40% at 50% 90%, rgba(139, 92, 246, 0.06) 0%, transparent 50%);
background-attachment: fixed;
}
/* Scanline */
.console-scanline {
/* Ambient Radial Top Glow */
.admin-ambient-glow {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 4px;
background: linear-gradient(to bottom, transparent, rgba(255, 92, 40, 0.2), transparent);
opacity: 0.5;
animation: scan 8s linear infinite;
right: 0;
height: 320px;
background: radial-gradient(50% 100% at 50% 0%, rgba(59, 130, 246, 0.12) 0%, rgba(6, 182, 212, 0.04) 40%, transparent 100%);
pointer-events: none;
z-index: 9999;
z-index: 0;
}
@keyframes scan {
0% { transform: translateY(-100%); }
100% { transform: translateY(100vh); }
}
/* Grid pattern overlay */
/* High-End Subtle Grid Pattern */
.bg-grid {
background-image:
linear-gradient(to right, rgba(255, 255, 255, 0.02) 1px, transparent 1px),
linear-gradient(to bottom, rgba(255, 255, 255, 0.02) 1px, transparent 1px);
background-size: 24px 24px;
linear-gradient(to right, rgba(148, 180, 255, 0.03) 1px, transparent 1px),
linear-gradient(to bottom, rgba(148, 180, 255, 0.03) 1px, transparent 1px);
background-size: 32px 32px;
}
/* Glass Sheen Effect */
.glass-sheen {
position: relative;
overflow: hidden;
}
.glass-sheen::before {
content: '';
position: absolute;
inset: 0;
border-radius: inherit;
background: radial-gradient(ellipse 70% 55% at 18% -8%, rgba(59, 130, 246, 0.12) 0%, transparent 55%),
linear-gradient(180deg, rgba(148, 180, 255, 0.05) 0%, rgba(148, 180, 255, 0) 40%);
pointer-events: none;
}
/* Glow effects */
.glow-white { text-shadow: 0 0 15px rgba(255, 255, 255, 0.5), 0 0 30px rgba(255, 255, 255, 0.2); }
.glow-green { text-shadow: 0 0 15px rgba(34, 197, 94, 0.6), 0 0 30px rgba(34, 197, 94, 0.3); }
.glow-orange { text-shadow: 0 0 15px rgba(249, 115, 22, 0.6), 0 0 30px rgba(249, 115, 22, 0.3); }
.glow-red { text-shadow: 0 0 15px rgba(239, 68, 68, 0.6), 0 0 30px rgba(239, 68, 68, 0.3); }
.glow-accent { text-shadow: 0 0 15px rgba(255, 92, 40, 0.6), 0 0 30px rgba(255, 92, 40, 0.3); }
.glow-white { text-shadow: 0 0 15px rgba(255, 255, 255, 0.4); }
.glow-green { text-shadow: 0 0 15px rgba(16, 185, 129, 0.5); }
.glow-orange { text-shadow: 0 0 15px rgba(245, 158, 11, 0.5); }
.glow-red { text-shadow: 0 0 15px rgba(239, 68, 68, 0.5); }
.glow-blue { text-shadow: 0 0 15px rgba(59, 130, 246, 0.5); }
.glow-purple { text-shadow: 0 0 15px rgba(139, 92, 246, 0.5); }
.glow-cyan { text-shadow: 0 0 15px rgba(6, 182, 212, 0.5); }
/* Scrollbar */
::-webkit-scrollbar { width: 4px; height: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--sys-border-hl); border-radius: 2px; }
::-webkit-scrollbar-thumb:hover { background: var(--text-dim); }
/* Custom Sleek Scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: rgba(7, 11, 22, 0.4); }
::-webkit-scrollbar-thumb { background: rgba(148, 180, 255, 0.15); border-radius: 999px; }
::-webkit-scrollbar-thumb:hover { background: rgba(148, 180, 255, 0.3); }
/* Pulse animation for status dot */
/* Pulse animation for live status */
@keyframes pulse-ring {
0% { transform: scale(0.8); opacity: 1; }
100% { transform: scale(2); opacity: 0; }
100% { transform: scale(2.2); opacity: 0; }
}
.status-dot-pulse {
position: relative;
}
@ -73,12 +106,13 @@ body {
position: absolute;
inset: 0;
border-radius: 50%;
background: #22c55e;
animation: pulse-ring 1.5s ease-out infinite;
background: #10b981;
animation: pulse-ring 2s cubic-bezier(0.24, 0, 0.38, 1) infinite;
}
/* Selection */
::selection {
background: var(--accent);
color: white;
background: rgba(59, 130, 246, 0.35);
color: #ffffff;
}