/* Figma v2.1 foundations. Fonts are self-hosted; no third-party requests. */
/* STIX Two Math v2.13b171 wordmark subset; license: fonts/LICENSE-STIX.txt. */
@font-face{font-family:'Stella Wordmark';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/stella-wordmark.woff2') format('woff2')}
.brand-wordmark{font-family:'Stella Wordmark','Cambria Math',serif;font-size:22px;font-weight:400;letter-spacing:0}
@font-face{font-family:'IBM Plex Sans KR';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/ibm-plex-sans-kr-400.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Sans KR';font-style:normal;font-weight:500 700;font-display:swap;src:url('/fonts/ibm-plex-sans-kr-500.woff2') format('woff2')}
@font-face{font-family:'Noto Serif KR';font-style:normal;font-weight:300;font-display:swap;src:url('/fonts/noto-serif-kr-300.woff2') format('woff2')}
@font-face{font-family:'Noto Serif KR';font-style:normal;font-weight:400 700;font-display:swap;src:url('/fonts/noto-serif-kr-400.woff2') format('woff2')}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/geist-mono-400.woff2') format('woff2')}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:500 700;font-display:swap;src:url('/fonts/geist-mono-500.woff2') format('woff2')}
:root {
  color-scheme: dark;
  --ink: #F4EFE6;
  --muted: #AEB6C8;
  --faint: #8d98b0;
  --line: #1B2438;
  --gold: #F3D08A;
  --panel: #10172A;
  --lavender: #9C8CFF;
  --surface: #10172A;
  --surface-raised: #161F36;
  --field: #0A0F1C;
  --border: #26314B;
  --success: #6FDCCB;
  --error: #F3A6BB;
  --sans: 'IBM Plex Sans KR','Malgun Gothic',sans-serif;
  --serif: 'Noto Serif KR','Batang',serif;
  --mono: 'Geist Mono',Consolas,monospace;
  font-family:var(--sans);
}
::selection { background: var(--gold); color: #161b22; }
dialog {
  border-color: var(--border);
  border-radius: 18px;
  background: radial-gradient(ellipse at 95% 0%, #f1d59505, transparent 45%), linear-gradient(155deg, #171d26, #10161f);
  box-shadow: 0 28px 100px #0009;
  scrollbar-color: #9e947644 transparent;
}
dialog::backdrop { background: #04070db3; backdrop-filter: blur(7px); }
.dialog-top { background: #121821f5; border-color: var(--line); }
.dialog-top h2 { font-size: 18px; font-weight: 400; letter-spacing: -.4px; }
.dialog-top h2::before { content: '✧'; color: var(--gold); margin-right: 10px; }
.dialog-top .eyebrow { color: #b3a98f; font-size: 10px; }
.icon-button { color: var(--muted); }
.icon-button:hover { color: var(--gold); background: #ffe2a00a; }
.soft-button { border-color: var(--border); background: #ead6a906; color: #d7d1c5; border-radius: 9px; }
.soft-button:hover { border-color: #ead6a94d; background: #ead6a911; color: var(--gold); }
.soft-button[aria-pressed=true] { border-color: #ead6a96b; color: var(--gold); background: #ead6a914; }
.primary-button { background: #f5dfa9; color: #282722; border: 1px solid #ffe9b8; border-radius: 9px; }
.primary-button:hover { background: #ffebbb; color: #201f1a; }
.primary-button:disabled,.soft-button:disabled { opacity: .5; }
.text-button { color: var(--muted); }
.text-button:hover,.text-link:hover { color: var(--gold); }
.search-field { background: var(--field); border-color: var(--border); color: var(--faint); }
.search-field:focus-within { border-color: #ead09c99; box-shadow: 0 0 0 3px #ffe2a009; }
.search-field input::placeholder { color: #8e99aa; }
.search-field kbd { border-color: var(--border); color: var(--faint); }
select,.profile-form input,.profile-form textarea,.note-form input,.note-form textarea,
.annotation-editor input,.annotation-editor textarea,.inventory-filters input,.preview-controls input {
  background: var(--field); border-color: var(--border); color: var(--ink); border-radius: 9px;
}
option { background: var(--surface); color: var(--ink); }
input::placeholder,textarea::placeholder { color: #8e99aa; }
input[type=checkbox],input[type=radio],progress { accent-color: var(--gold); }
input[type=file] { max-width: 100%; color: var(--muted); font-size: 12px; }
input[type=file]::file-selector-button { font: inherit; border: 1px solid var(--border); background: var(--surface-raised); color: var(--ink); border-radius: 8px; padding: 9px 12px; margin: 8px 10px 8px 0; cursor: pointer; }
input[type=file]::file-selector-button:hover { border-color: #ead6a966; color: var(--gold); }
.panel-kicker { font-size: 10px; letter-spacing: 2px; color: #d1bd92; }
.document-content h2,.profile-head h2 { font-weight: 400; color: var(--ink); }
.doc-card { padding: 18px; margin: 10px 0; border: 1px solid var(--line); border-radius: 12px; background: #faf2df03; transition: background .18s,border-color .18s; }
.doc-card:hover { background: #ffe2a007; border-color: #e8d2a330; }
.doc-card small,.card-path,.source-line { color: #909dad; }
.card-arrow { color: #bfb299; }
.file-badge { border-color: #ead6a930; background: #ead6a905; color: #dbc698; }
.tag-pill { border-color: #d7c6a126; background: #ead6a908; color: #d3c6a7; border-radius: 20px; }
.tag-pill:hover { border-color: #ead6a94d; background: #ead6a914; color: var(--gold); }
.article { color: #d6d7d8; }
.article blockquote { border-color: #d8be85; color: var(--muted); background: #f5dfa907; border-radius: 0 8px 8px 0; }
.article code { background: #080d1666; color: #e1d4b8; }
.article pre { background: #090f18; border: 1px solid var(--line); }
.article pre code { background: none; }
.article hr { border: 0; border-top: 1px solid var(--line); margin: 26px 0; }
.profile-avatar { border-color: #ead6a936; color: var(--gold); background: radial-gradient(circle,#f5dfa914,transparent 75%); }
.profile-details { border-color: var(--line); }
.profile-bio { color: #d6d7d8; }
.note-preview { border-color: var(--border); background: #0b111a80; }
.annotation-editor { border-color: var(--line); }
.notice { color: #d9c9a6; background: #f5dfa907; border-color: #dfc58e; border-radius: 0 8px 8px 0; }
.error-message { color: var(--error); }
.toast { color: #eee2c7; background: #1b222cf5; border-color: #e8d2a34d; box-shadow: 0 10px 35px #0008; max-width: calc(100vw - 32px); line-height: 1.6; }
.admin-tabs { background: #10161c55; border-color: var(--line); gap: 24px; scrollbar-width: thin; scrollbar-color: #b6a78140 transparent; }
.admin-tabs button { font-size: 13px; color: #a3adbc; }
.admin-tabs button:hover { color: #e3d8be; }
.admin-tabs button[aria-selected=true] { color: var(--gold); border-color: #e6cb92; }
.admin-content h3 { color: var(--ink); font-weight: 400; }
.stat-grid>div { background: linear-gradient(145deg,#f5dfa907,#f5dfa902); border-color: var(--border); border-radius: 12px; }
.stat-grid strong { color: #f3dba5; }
.path-box,.log-row pre { background: #090f18; color: #b6c0cd; border: 1px solid var(--line); }
.inventory-table>div { border-color: var(--line); }
.inventory-table small,.backup-list { color: var(--muted); }
.status-chip { color: #d7c39d; background: #e2c58c10; border: 1px solid #e2c58c16; }
.status-chip.indexed { color: var(--success); background: #85bd9f0c; border-color: #85bd9f24; }
.status-chip.failed { color: var(--error); background: #efa2a10c; border-color: #efa2a126; }
.text-link { color: #dbd8d0; }
.log-row { border-color: var(--line); }
.log-row summary span { color: #c3c8cf; }
.storage-heading h3 { color: var(--ink); letter-spacing: 1px; }
.storage-card>p { color: var(--muted); font-size: 14px; line-height: 1.85; }
.storage-badge { border-color: #d8c6a138; background: #ead6a90a; color: #e0cd9f; font-size: 12px; }
.storage-progress { border: 1px solid var(--border); background: #ead6a907; border-radius: 12px; }
.storage-progress progress { accent-color: var(--gold); }
.storage-details { border-top: 1px solid var(--line); padding-top: 22px; }
.storage-details dd { color: #ccd0d5; overflow-wrap: anywhere; }
.storage-custom { padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: #080e1540; margin-top: 24px; }
.storage-custom summary { color: #d6cbb2; cursor: pointer; font-size: 13px; line-height: 1.7; }
.storage-custom label { display: block; font-size: 12px; color: var(--muted); }
.storage-custom input { display: block; margin-top: 8px; }
.storage-custom a { font-size: 12px; color: #dcc591; text-decoration: underline; text-underline-offset: 4px; }
.upload-intro>h3 { color: var(--ink); font-weight: 400; }
.upload-guide-card { border-color: #e5d0a033; background: linear-gradient(135deg,#f5dfa908,#f5dfa902); }
.upload-card-heading h3 { color: #eee4ce; }
.upload-steps li { background: #eef1f903; border-color: var(--line); }
.upload-topics span { color: #cbbb99; background: #ead6a90b; border: 1px solid #ead6a917; }
.upload-guide-toc { background: #090f1880; border: 1px solid var(--line); }
.upload-guide-toc button { color: #c9c1af; }
.upload-guide-toc button:hover { color: var(--gold); background: #ead6a90c; }
.upload-guide-body th { background: #e6cd980b; color: #e0c994; }
.upload-guide-body th,.upload-guide-body td { border-color: var(--border); }
.source-viewer { border-color: var(--border); background: #090f184d; }
.preview-heading h3 { color: #e1d6bd; }
.preview-frame { background: #080d15; }
.page-record { border-color: var(--border); background: #131a24; }
.page-record>header { background: #ead6a906; border-color: var(--line); }
.page-thumbnail { background: #0a101a; }
.extract-label { color: #b9aa8e; }
.page-extract .plain-document { color: #d7d8dc; }
.extracted-document { border-color: var(--line); }
@media(max-width:700px) {
  .dialog-top h2 { font-size: 17px; }
  .admin-tabs { gap: 20px; }
  .admin-tabs button { font-size: 12px; }
  .doc-card { padding: 15px; }
  .toast { font-size: 12px; padding: 11px 15px; }
  .top-right>.soft-button { padding: 7px 9px; font-size: 11px; white-space: nowrap; }
  .topbar:has(.top-right>.soft-button) { flex-wrap: wrap; height: auto; min-height: 70px; padding-block: 12px; row-gap: 8px; }
  .topbar:has(.top-right>.soft-button) nav { order: 3; width: 100%; justify-content: center; height: 30px; }
}

.article .prepared-screen {display:block;max-width:100%;height:auto;margin:1.2rem auto;border:1px solid #54505a;border-radius:12px;background:#fff;}
