@import "tailwindcss";

@custom-variant dark (&:where([data-theme="dark"], [data-theme="dark"] *));

:root {
  --font-apple-sans:
    var(--font-pretendard),
    "Pretendard Variable",
    Pretendard,
    "Apple SD Gothic Neo",
    -apple-system,
    BlinkMacSystemFont,
    "SF Pro Display",
    "SF Pro Text",
    "Helvetica Neue",
    "Noto Sans KR",
    system-ui,
    sans-serif;
  --font-apple-mono:
    "SF Mono",
    ui-monospace,
    Menlo,
    Monaco,
    Consolas,
    "Liberation Mono",
    monospace;
  --color-page: #f7f4fb;
  --desktop-bg:
    linear-gradient(135deg, rgba(255, 232, 238, 0.78) 0%, rgba(255, 232, 238, 0) 36%),
    linear-gradient(155deg, rgba(218, 235, 255, 0.86) 6%, rgba(218, 235, 255, 0) 50%),
    linear-gradient(42deg, rgba(222, 251, 236, 0.74) 48%, rgba(222, 251, 236, 0) 88%),
    linear-gradient(180deg, #fbf8ff 0%, #eef5ff 100%);
  --window-bg: rgba(255, 255, 255, 0.6);
  --window-bg-strong: rgba(255, 255, 255, 0.8);
  --window-titlebar: rgba(255, 255, 255, 0.5);
  --window-border: rgba(255, 255, 255, 0.68);
  --window-titlebar-border: rgba(39, 54, 82, 0.1);
  --card-bg: rgba(255, 255, 255, 0.46);
  --card-bg-strong: rgba(255, 255, 255, 0.68);
  --card-border: rgba(39, 54, 82, 0.11);
  --card-border-hover: rgba(39, 54, 82, 0.18);
  --control-border: rgba(39, 54, 82, 0.12);
  --menubar-bg: rgba(255, 255, 255, 0.5);
  --menubar-border: rgba(255, 255, 255, 0.7);
  --dock-bg: rgba(255, 255, 255, 0.54);
  --dock-border: rgba(255, 255, 255, 0.72);
  --sidebar-bg: rgba(255, 255, 255, 0.48);
  --sidebar-border: rgba(255, 255, 255, 0.6);
  --color-surface: var(--card-bg);
  --color-surface-strong: var(--card-bg-strong);
  --color-control: rgba(255, 255, 255, 0.56);
  --color-line: rgba(39, 54, 82, 0.13);
  --color-text: #1d1d1f;
  --color-text-muted: #62646d;
  --color-text-subtle: #858892;
  --color-accent: #0066cc;
  --color-accent-hover: #0071e3;
  --color-accent-soft: rgba(0, 102, 204, 0.1);
  --color-danger-soft: rgba(255, 59, 48, 0.1);
  --shadow-window: 0 28px 80px rgba(70, 92, 130, 0.18), 0 10px 28px rgba(70, 92, 130, 0.08), 0 1px 0 rgba(255, 255, 255, 0.72) inset;
  --shadow-sidebar: 16px 0 42px rgba(70, 92, 130, 0.12), -1px 0 0 rgba(255, 255, 255, 0.46) inset;
  --shadow-menubar: 0 16px 40px rgba(70, 92, 130, 0.12), 0 1px 0 rgba(255, 255, 255, 0.58) inset;
  --shadow-panel: var(--shadow-sidebar);
  --shadow-card: 0 14px 34px rgba(70, 92, 130, 0.09), 0 1px 0 rgba(255, 255, 255, 0.5) inset;
  --shadow-dock: 0 22px 58px rgba(70, 92, 130, 0.18), 0 8px 18px rgba(70, 92, 130, 0.1), 0 1px 0 rgba(255, 255, 255, 0.68) inset;
  --shadow-control: 0 12px 26px rgba(70, 92, 130, 0.1), 0 1px 0 rgba(255, 255, 255, 0.46) inset;
  --focus-ring: 0 0 0 4px rgba(0, 102, 204, 0.14);
  --background: var(--color-page);
  --foreground: var(--color-text);
  color-scheme: light;
}

@theme inline {
  --color-background: var(--background);
  --color-foreground: var(--foreground);
  --font-sans: var(--font-apple-sans);
  --font-mono: var(--font-apple-mono);
}

html[data-theme="dark"] {
  --color-page: #11131d;
  --desktop-bg:
    linear-gradient(135deg, rgba(88, 56, 104, 0.42) 0%, rgba(88, 56, 104, 0) 38%),
    linear-gradient(150deg, rgba(43, 73, 110, 0.5) 10%, rgba(43, 73, 110, 0) 54%),
    linear-gradient(42deg, rgba(38, 91, 72, 0.38) 48%, rgba(38, 91, 72, 0) 88%),
    linear-gradient(180deg, #131620 0%, #07090f 100%);
  --window-bg: rgba(28, 31, 42, 0.68);
  --window-bg-strong: rgba(39, 42, 56, 0.84);
  --window-titlebar: rgba(255, 255, 255, 0.075);
  --window-border: rgba(255, 255, 255, 0.18);
  --window-titlebar-border: rgba(255, 255, 255, 0.13);
  --card-bg: rgba(43, 46, 60, 0.5);
  --card-bg-strong: rgba(52, 55, 70, 0.66);
  --card-border: rgba(255, 255, 255, 0.14);
  --card-border-hover: rgba(255, 255, 255, 0.22);
  --control-border: rgba(255, 255, 255, 0.13);
  --menubar-bg: rgba(24, 27, 38, 0.62);
  --menubar-border: rgba(255, 255, 255, 0.16);
  --dock-bg: rgba(27, 30, 42, 0.66);
  --dock-border: rgba(255, 255, 255, 0.18);
  --sidebar-bg: rgba(21, 24, 34, 0.64);
  --sidebar-border: rgba(255, 255, 255, 0.14);
  --color-surface: var(--card-bg);
  --color-surface-strong: var(--card-bg-strong);
  --color-control: rgba(255, 255, 255, 0.085);
  --color-line: rgba(255, 255, 255, 0.13);
  --color-text: #f5f5f7;
  --color-text-muted: #b2b5bf;
  --color-text-subtle: #8f939f;
  --color-accent: #2997ff;
  --color-accent-hover: #46a6ff;
  --color-accent-soft: rgba(41, 151, 255, 0.16);
  --color-danger-soft: rgba(255, 69, 58, 0.16);
  --shadow-window: 0 32px 100px rgba(0, 0, 0, 0.54), 0 14px 36px rgba(0, 0, 0, 0.28), 0 1px 0 rgba(255, 255, 255, 0.1) inset;
  --shadow-sidebar: 18px 0 46px rgba(0, 0, 0, 0.38), -1px 0 0 rgba(255, 255, 255, 0.08) inset;
  --shadow-menubar: 0 18px 46px rgba(0, 0, 0, 0.32), 0 1px 0 rgba(255, 255, 255, 0.09) inset;
  --shadow-panel: var(--shadow-sidebar);
  --shadow-card: 0 16px 34px rgba(0, 0, 0, 0.32), 0 1px 0 rgba(255, 255, 255, 0.08) inset;
  --shadow-dock: 0 26px 68px rgba(0, 0, 0, 0.44), 0 10px 24px rgba(0, 0, 0, 0.3), 0 1px 0 rgba(255, 255, 255, 0.12) inset;
  --shadow-control: 0 14px 30px rgba(0, 0, 0, 0.28), 0 1px 0 rgba(255, 255, 255, 0.08) inset;
  --focus-ring: 0 0 0 4px rgba(41, 151, 255, 0.18);
  --background: var(--color-page);
  --foreground: var(--color-text);
  color-scheme: dark;
}

html {
  overflow-x: hidden;
}

body {
  min-height: 100vh;
  overflow-x: clip;
  background: var(--desktop-bg);
  background-attachment: fixed;
  color: var(--foreground);
  font-family: var(--font-apple-sans);
  font-feature-settings: "kern", "ss05";
  font-size: 16px;
  font-weight: 450;
  letter-spacing: 0;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

pre,
code,
table {
  max-width: 100%;
}

::selection {
  background: var(--color-accent-soft);
  color: var(--color-text);
}

code,
kbd,
pre,
samp,
.tabular-nums {
  font-family: var(--font-apple-mono);
}

:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}

.bg-white {
  background-color: var(--window-bg-strong);
}

.bg-gray-50,
.bg-gray-100 {
  background-color: rgba(255, 255, 255, 0.38);
}

.bg-blue-50,
.bg-blue-100 {
  background-color: var(--color-accent-soft);
}

.bg-red-50,
.bg-red-100 {
  background-color: var(--color-danger-soft);
}

.bg-green-100 {
  background-color: rgba(52, 199, 89, 0.14);
}

.bg-blue-600 {
  background-color: var(--color-accent);
}

.hover\:bg-blue-700:hover {
  background-color: var(--color-accent-hover);
}

.border-gray-100,
.border-gray-200,
.border-gray-300 {
  border-color: var(--color-line);
}

.border-blue-100 {
  border-color: rgba(0, 102, 204, 0.22);
}

.border-red-100 {
  border-color: rgba(255, 59, 48, 0.22);
}

.text-gray-950,
.text-gray-900,
.text-gray-800,
.text-gray-700 {
  color: var(--color-text);
}

.text-gray-600,
.text-gray-500 {
  color: var(--color-text-muted);
}

.text-gray-400,
.text-gray-300 {
  color: var(--color-text-subtle);
}

.text-blue-700,
.text-blue-600 {
  color: var(--color-accent);
}

.text-red-950,
.text-red-700,
.text-red-600 {
  color: #d9362e;
}

.text-green-600 {
  color: #22863a;
}

.divide-gray-100 > :not([hidden]) ~ :not([hidden]) {
  border-color: var(--color-line);
}

.hover\:bg-white:hover,
.hover\:bg-gray-50:hover,
.hover\:bg-gray-100:hover,
.hover\:bg-gray-200:hover,
.focus\:bg-white:focus {
  background-color: var(--card-bg-strong);
}

.hover\:bg-blue-50:hover {
  background-color: rgba(0, 102, 204, 0.12);
}

.hover\:bg-red-50:hover {
  background-color: rgba(255, 59, 48, 0.12);
}

.hover\:text-gray-600:hover,
.hover\:text-gray-700:hover,
.hover\:text-gray-800:hover {
  color: var(--color-text);
}

.placeholder\:text-gray-300::placeholder,
.placeholder\:text-gray-400::placeholder {
  color: var(--color-text-subtle);
}

.disabled\:bg-gray-50:disabled,
.disabled\:bg-gray-300:disabled,
.disabled\:bg-gray-400:disabled {
  background-color: rgba(255, 255, 255, 0.32);
  color: var(--color-text-subtle);
}

.shadow-xl,
.shadow-md,
.shadow-sm {
  box-shadow: var(--shadow-card);
}

.rounded-xl {
  border-radius: 0.5rem;
}

input:not([type="checkbox"]):not([type="radio"]),
textarea,
select {
  background-color: var(--color-control);
  border-color: var(--control-border);
  color: var(--color-text);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.42) inset;
  backdrop-filter: blur(18px);
}

input:not([type="checkbox"]):not([type="radio"]):focus,
textarea:focus,
select:focus {
  background-color: var(--card-bg-strong);
  border-color: var(--color-accent);
}

input::placeholder,
textarea::placeholder {
  color: var(--color-text-subtle);
}

option {
  background-color: var(--color-surface-strong);
  color: var(--color-text);
}

html[data-theme="dark"] .bg-gray-50,
html[data-theme="dark"] .bg-gray-100 {
  background-color: rgba(255, 255, 255, 0.08);
}

html[data-theme="dark"] .bg-blue-50,
html[data-theme="dark"] .bg-blue-100 {
  background-color: rgba(10, 132, 255, 0.14);
}

html[data-theme="dark"] .bg-red-50,
html[data-theme="dark"] .bg-red-100 {
  background-color: rgba(255, 69, 58, 0.13);
}

html[data-theme="dark"] .border-blue-100 {
  border-color: rgba(10, 132, 255, 0.28);
}

html[data-theme="dark"] .border-red-100 {
  border-color: rgba(255, 105, 97, 0.28);
}

html[data-theme="dark"] .text-blue-700,
html[data-theme="dark"] .text-blue-600 {
  color: #8ecbff;
}

html[data-theme="dark"] .text-red-950,
html[data-theme="dark"] .text-red-700,
html[data-theme="dark"] .text-red-600 {
  color: #ffb4ad;
}

html[data-theme="dark"] .text-green-600 {
  color: #8ff0a4;
}

html[data-theme="dark"] .hover\:bg-white:hover,
html[data-theme="dark"] .hover\:bg-gray-50:hover,
html[data-theme="dark"] .hover\:bg-gray-100:hover,
html[data-theme="dark"] .hover\:bg-gray-200:hover,
html[data-theme="dark"] .focus\:bg-white:focus {
  background-color: var(--card-bg-strong);
}

html[data-theme="dark"] .hover\:bg-blue-50:hover {
  background-color: rgba(10, 132, 255, 0.16);
}

html[data-theme="dark"] .hover\:bg-red-50:hover {
  background-color: rgba(255, 69, 58, 0.16);
}

html[data-theme="dark"] .disabled\:bg-gray-50:disabled,
html[data-theme="dark"] .disabled\:bg-gray-300:disabled,
html[data-theme="dark"] .disabled\:bg-gray-400:disabled {
  background-color: rgba(255, 255, 255, 0.1);
  color: var(--color-text-subtle);
}

html[data-theme="dark"] input:not([type="checkbox"]):not([type="radio"]),
html[data-theme="dark"] textarea,
html[data-theme="dark"] select {
  background-color: var(--color-control);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08) inset;
}

html[data-theme="dark"] input:not([type="checkbox"]):not([type="radio"]):focus,
html[data-theme="dark"] textarea:focus,
html[data-theme="dark"] select:focus {
  background-color: var(--card-bg-strong);
}

.w-md-editor {
  border-radius: 0.5rem !important;
  border-color: var(--card-border) !important;
  background-color: var(--card-bg-strong) !important;
  box-shadow: var(--shadow-card);
  backdrop-filter: blur(20px);
}

.w-md-editor-toolbar {
  border-radius: 0.5rem 0.5rem 0 0 !important;
  border-color: var(--window-titlebar-border) !important;
  background-color: var(--window-titlebar) !important;
}

html[data-theme="dark"] .w-md-editor {
  background-color: var(--card-bg-strong) !important;
  border-color: var(--card-border) !important;
}

html[data-theme="dark"] .w-md-editor-toolbar {
  background-color: var(--window-titlebar) !important;
  border-color: var(--window-titlebar-border) !important;
}

.wy-editor-shell {
  --color-canvas-default: transparent;
  --color-canvas-subtle: transparent;
  --color-border-default: var(--card-border);
  --color-border-muted: var(--card-border);
  --color-fg-default: var(--color-text);
  --color-fg-muted: var(--color-text-muted);
  --color-accent-fg: var(--color-accent);
  color: var(--color-text);
}

.wy-editor-shell .w-md-editor {
  min-height: 520px;
  overflow: hidden;
  border-radius: 0.5rem !important;
  border: 1px solid var(--card-border) !important;
  background-color: var(--card-bg-strong) !important;
  color: var(--color-text) !important;
  box-shadow: var(--shadow-card) !important;
  backdrop-filter: blur(20px);
}

.wy-editor-shell .w-md-editor-toolbar {
  border-color: var(--window-titlebar-border) !important;
  background-color: var(--window-titlebar) !important;
}

.wy-editor-shell .w-md-editor-toolbar button,
.wy-editor-shell .w-md-editor-toolbar li,
.wy-editor-shell .w-md-editor-toolbar svg {
  color: var(--color-text-muted) !important;
}

.wy-editor-shell .w-md-editor-toolbar button:hover {
  background-color: var(--color-control) !important;
  color: var(--color-text) !important;
}

.wy-editor-shell .w-md-editor-content,
.wy-editor-shell .w-md-editor-area,
.wy-editor-shell .w-md-editor-text,
.wy-editor-shell .w-md-editor-text-pre,
.wy-editor-shell .w-md-editor-text-input,
.wy-editor-shell .w-md-editor-preview,
.wy-editor-shell .wmde-markdown {
  background: transparent !important;
  color: var(--color-text) !important;
}

.wy-editor-shell .w-md-editor-text {
  color: var(--color-text) !important;
}

.wy-editor-shell .w-md-editor-text-pre,
.wy-editor-shell .w-md-editor-text-pre *,
.wy-editor-shell .w-md-editor-text-pre > code,
.wy-editor-shell .w-md-editor-text-pre code,
.wy-editor-shell .w-md-editor-text-pre .token,
.wy-editor-shell .w-md-editor-text-pre .punctuation {
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
}

.wy-editor-shell .w-md-editor-text-input {
  opacity: 1 !important;
  background: transparent !important;
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
  caret-color: var(--color-accent);
  text-shadow: none !important;
}

.wy-editor-shell .w-md-editor-text-input::placeholder {
  color: var(--color-text-subtle) !important;
  -webkit-text-fill-color: var(--color-text-subtle) !important;
}

.wy-editor-shell .wmde-markdown,
.wy-editor-shell .wmde-markdown p,
.wy-editor-shell .wmde-markdown li,
.wy-editor-shell .wmde-markdown h1,
.wy-editor-shell .wmde-markdown h2,
.wy-editor-shell .wmde-markdown h3,
.wy-editor-shell .wmde-markdown h4,
.wy-editor-shell .wmde-markdown h5,
.wy-editor-shell .wmde-markdown h6 {
  color: var(--color-text) !important;
}

.wy-editor-shell .wmde-markdown a {
  color: var(--color-accent) !important;
}

.wy-editor-shell .wmde-markdown blockquote {
  color: var(--color-text-muted) !important;
  border-left-color: var(--color-line) !important;
}

.wy-editor-shell .wmde-markdown pre,
.wy-editor-shell .wmde-markdown code {
  background-color: rgba(30, 30, 30, 0.9) !important;
  color: #f4f4f5 !important;
}
