Models, pipelines, users, subscriptions, usage, audit log, ads, and releases still rendered placeholder or duplicated implementations from the earlier admin split. They now read the live back-office API, share one sidebar and console theme, and the license issuer dialog uses the rotated signing key.
105 lines
3.7 KiB
CSS
105 lines
3.7 KiB
CSS
/* D3RO Voice Admin CRM — "Midnight Glass v3" Global Styles */
|
|
/* 폰트는 layout.tsx <head>의 Pretendard Variable 다이나믹 서브셋 링크로 로드한다
|
|
(렌더를 막는 @import 이중 로드는 제거).
|
|
색은 @d3ro/ui SSOT가 MuiCssBaseline로 주입하는 --d3-* 만 쓴다 (로컬 hex 폴백 없음). */
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
/* 의미적 강조는 세미볼드(600)까지 — 볼드(700+) 타이포그래피 금지 */
|
|
strong, b { font-weight: var(--d3-weight-strong); }
|
|
|
|
body {
|
|
margin: 0;
|
|
padding: 0;
|
|
background-color: var(--d3-bg-app);
|
|
color: var(--d3-text-primary);
|
|
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%, color-mix(in srgb, var(--d3-tag-cyan) 8%, transparent) 0%, transparent 60%),
|
|
radial-gradient(ellipse 50% 50% at 90% 10%, color-mix(in srgb, var(--d3-accent-main) 9%, transparent) 0%, transparent 60%),
|
|
radial-gradient(ellipse 40% 40% at 50% 90%, color-mix(in srgb, var(--d3-tag-purple) 6%, transparent) 0%, transparent 50%);
|
|
background-attachment: fixed;
|
|
}
|
|
|
|
/* Ambient Radial Top Glow */
|
|
.admin-ambient-glow {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 320px;
|
|
background: radial-gradient(
|
|
50% 100% at 50% 0%,
|
|
color-mix(in srgb, var(--d3-accent-main) 12%, transparent) 0%,
|
|
color-mix(in srgb, var(--d3-tag-cyan) 4%, transparent) 40%,
|
|
transparent 100%
|
|
);
|
|
pointer-events: none;
|
|
z-index: 0;
|
|
}
|
|
|
|
/* High-End Subtle Grid Pattern */
|
|
.bg-grid {
|
|
background-image:
|
|
linear-gradient(to right, var(--d3-glass-hairline) 1px, transparent 1px),
|
|
linear-gradient(to bottom, var(--d3-glass-hairline) 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: var(--d3-glass-sheen);
|
|
pointer-events: none;
|
|
}
|
|
|
|
/* Glow effects */
|
|
.glow-white { text-shadow: 0 0 15px color-mix(in srgb, var(--d3-text-primary) 40%, transparent); }
|
|
.glow-green { text-shadow: 0 0 15px color-mix(in srgb, var(--d3-status-success) 50%, transparent); }
|
|
.glow-orange { text-shadow: 0 0 15px color-mix(in srgb, var(--d3-status-warning) 50%, transparent); }
|
|
.glow-red { text-shadow: 0 0 15px color-mix(in srgb, var(--d3-status-danger) 50%, transparent); }
|
|
.glow-blue { text-shadow: 0 0 15px color-mix(in srgb, var(--d3-accent-main) 50%, transparent); }
|
|
.glow-purple { text-shadow: 0 0 15px color-mix(in srgb, var(--d3-tag-purple) 50%, transparent); }
|
|
.glow-cyan { text-shadow: 0 0 15px color-mix(in srgb, var(--d3-tag-cyan) 50%, transparent); }
|
|
|
|
/* Custom Sleek Scrollbar */
|
|
::-webkit-scrollbar { width: 6px; height: 6px; }
|
|
::-webkit-scrollbar-track { background: var(--d3-bg-inset-soft); }
|
|
::-webkit-scrollbar-thumb { background: var(--d3-glass-hairline); border-radius: 999px; }
|
|
::-webkit-scrollbar-thumb:hover { background: var(--d3-glass-hairlineStrong); }
|
|
|
|
/* Pulse animation for live status */
|
|
@keyframes pulse-ring {
|
|
0% { transform: scale(0.8); opacity: 1; }
|
|
100% { transform: scale(2.2); opacity: 0; }
|
|
}
|
|
|
|
.status-dot-pulse {
|
|
position: relative;
|
|
}
|
|
.status-dot-pulse::before {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
border-radius: 50%;
|
|
background: var(--d3-status-success);
|
|
animation: pulse-ring 2s var(--d3-ease-out) infinite;
|
|
}
|
|
|
|
/* Selection */
|
|
::selection {
|
|
background: color-mix(in srgb, var(--d3-accent-main) 35%, transparent);
|
|
color: var(--d3-accent-ink);
|
|
}
|