:root {
  --bg:#f6f5fa; --surface:#fff; --soft:#f4f0fb; --text:#282532; --muted:#777181;
  --line:#ded9e8; --line-strong:#c7bddc; --purple:#7458b4; --purple-dark:#544080;
  --purple-pale:#eee7fb; --header:#181322; --shadow:0 8px 28px rgba(59,42,86,.08);
}
:root[data-theme="dark"] {
  --bg:#15121c; --surface:#211b2b; --soft:#2a2137; --text:#f0ebf8; --muted:#b7aec4;
  --line:#3c324b; --line-strong:#56456d; --purple:#b497ee; --purple-dark:#d0baf8;
  --purple-pale:#362848; --header:#0e0b13; --shadow:0 12px 36px rgba(0,0,0,.24);
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--bg);color:var(--text);font-family:Pretendard,"Noto Sans KR",Arial,sans-serif} button,input,textarea{font:inherit} button,a{-webkit-tap-highlight-color:transparent} button{color:inherit}.site-shell{min-height:100vh}
.topbar{position:sticky;top:0;z-index:50;height:64px;display:flex;align-items:center;gap:24px;padding:0 28px;color:#fff;background:var(--header);border-bottom:1px solid rgba(255,255,255,.1)}
.topbar::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.3;background-image:radial-gradient(circle at 8% 35%,#fff 0 1px,transparent 1.5px),radial-gradient(circle at 31% 74%,#c9b3ff 0 1px,transparent 1.5px),radial-gradient(circle at 73% 28%,#fff 0 1px,transparent 1.5px),radial-gradient(circle at 91% 65%,#d2bfff 0 1px,transparent 1.5px);background-size:180px 64px,240px 64px,270px 64px,210px 64px}.topbar>*{position:relative;z-index:1}
.wordmark{border:0;background:transparent;display:flex;align-items:center;gap:11px;color:#fff;cursor:pointer;padding:0;min-width:188px;text-align:left}.wordmark-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:50% 50% 50% 8px;font:800 19px Georgia,serif;background:linear-gradient(145deg,#d9c8ff,#7e5cc8);box-shadow:0 0 20px rgba(185,147,255,.35)}.wordmark strong,.wordmark small{display:block}.wordmark strong{font-size:17px;letter-spacing:-.03em}.wordmark small{margin-top:1px;color:#bcb2cb;font-size:9px;letter-spacing:.18em}
.global-search{position:relative;flex:1;max-width:560px;margin:0 auto}.global-search>span{position:absolute;left:15px;top:10px;color:#aea4bb;font-size:22px;transform:rotate(-15deg)}.global-search input{width:100%;height:40px;padding:0 18px 0 43px;color:#f6f2fa;outline:0;border:1px solid #484052;border-radius:8px;background:#2b2533;transition:.2s}.global-search input:focus{border-color:#9d80d5;box-shadow:0 0 0 3px rgba(157,128,213,.16)}.global-search input::placeholder{color:#aaa1b5}
.search-results{position:absolute;top:46px;left:0;right:0;overflow:hidden;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 16px 38px rgba(0,0,0,.2)}.search-results button{width:100%;display:flex;justify-content:space-between;border:0;border-bottom:1px solid var(--line);background:transparent;padding:13px 16px;cursor:pointer;text-align:left}.search-results button:hover{background:var(--soft)}.search-results button span{font-size:12px;color:var(--muted)}.search-results p{margin:0;padding:18px;color:var(--muted)}
.header-actions{display:flex;gap:8px}.header-actions button,.mobile-menu{height:36px;min-width:36px;border:1px solid #4b4356;border-radius:7px;color:#ece5f7;background:#2b2533;cursor:pointer}.header-actions .edit-header{padding:0 15px;background:#7659ae;border-color:#9475cd;font-weight:700}.mobile-menu{display:none;font-size:20px}
.page-grid{max-width:1540px;min-height:calc(100vh - 64px);margin:0 auto;display:grid;grid-template-columns:228px minmax(0,900px) 190px;justify-content:center;gap:28px;padding:28px 28px 80px}.sidebar{position:sticky;top:92px;height:calc(100vh - 120px);align-self:start;display:flex;flex-direction:column}.sidebar nav{display:flex;flex-direction:column;gap:2px}.nav-label{margin:0 0 7px 12px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.nav-label.second{margin-top:22px}.sidebar nav button{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:0;border-radius:7px;color:var(--muted);background:transparent;cursor:pointer;text-align:left;font-size:14px;transition:.15s}.sidebar nav button span{width:17px;color:#a78bce;text-align:center}.sidebar nav button:hover{color:var(--text);background:var(--surface)}.sidebar nav button.active{color:var(--purple-dark);background:var(--purple-pale);font-weight:750;box-shadow:inset 3px 0 var(--purple)}
.side-card{margin-top:auto;padding:14px;border:1px solid var(--line);border-radius:9px;background:var(--surface);box-shadow:var(--shadow)}.side-card span{color:var(--purple);font-size:11px;font-weight:800}.side-card p{margin:7px 0 0;font-size:12px;line-height:1.6}.backup-button{margin-top:8px;padding:9px;border:1px solid var(--line);border-radius:7px;color:var(--muted);background:transparent;cursor:pointer;font-size:12px}
.wiki-main{min-width:0}.breadcrumb{display:flex;gap:8px;align-items:center;margin:3px 0 12px;color:var(--muted);font-size:12px}.breadcrumb button{padding:0;border:0;color:var(--purple);background:transparent;cursor:pointer}.article{padding:34px 42px 44px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}.article-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:2px solid var(--text)}.category-pill{display:inline-block;margin-bottom:8px;padding:4px 9px;border-radius:4px;color:var(--purple-dark);background:var(--purple-pale);font-size:11px;font-weight:800}.article-header h1{margin:0;font:750 clamp(30px,5vw,42px)/1.15 Georgia,"Noto Serif KR",serif;letter-spacing:-.05em}.article-header p{margin:9px 0 0;color:var(--muted);font-size:11px}.article-tools{display:flex;gap:6px}.article-tools button{padding:8px 12px;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface);cursor:pointer;font-size:12px}.article-tools button.primary{color:#fff;background:var(--purple);border-color:var(--purple)}.lead{margin:24px 0;padding:15px 18px;border-left:4px solid var(--purple);background:var(--soft);font-size:15px;line-height:1.75}
.profile-box{width:min(100%,610px);margin:28px auto 34px;border:1px solid #8e78b7;background:var(--surface)}.profile-title{padding:17px;color:#fff;text-align:center;background:linear-gradient(125deg,#46345f,#8769be)}.profile-title strong,.profile-title span{display:block}.profile-title strong{font:750 25px Georgia,"Noto Serif KR",serif}.profile-title span{margin-top:5px;color:#d9cafa;font-size:9px;letter-spacing:.24em}.profile-content{display:grid;grid-template-columns:210px 1fr}.profile-image-wrap{min-height:280px;border-right:1px solid var(--line);background:linear-gradient(160deg,#f3edfd,#ddd2f3)}.profile-image{width:100%;height:100%;min-height:280px;object-fit:cover;display:block}.profile-placeholder{height:100%;min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#6f55a1}.profile-placeholder span{font-size:55px;filter:drop-shadow(0 7px 10px rgba(78,50,122,.2))}.profile-placeholder strong{margin-top:9px;font:800 25px Georgia,serif;letter-spacing:.18em}.profile-placeholder small{margin-top:5px;font-size:10px;opacity:.7}.profile-table{margin:0}.profile-table>div{display:grid;grid-template-columns:90px 1fr;min-height:44px;border-bottom:1px solid var(--line)}.profile-table>div:last-child{border-bottom:0}.profile-table dt,.profile-table dd{margin:0;padding:12px 11px;font-size:12px;line-height:1.6}.profile-table dt{display:grid;place-items:center;color:var(--purple-dark);background:var(--purple-pale);font-weight:800;text-align:center}
.toc{width:290px;margin:26px 0 34px;border:1px solid var(--line-strong);background:var(--surface)}.toc>div{display:flex;align-items:center;gap:8px;padding:11px 14px;border-bottom:1px solid var(--line);background:var(--soft)}.toc>div span{color:var(--muted);font-size:9px;letter-spacing:.14em}.toc ol{margin:0;padding:10px 14px 12px 38px}.toc li{padding:5px 0;color:var(--purple);font-size:13px}.toc a{color:var(--text);text-decoration:none}.toc a:hover{color:var(--purple);text-decoration:underline}.toc a span{color:var(--purple)}.article-sections section{scroll-margin-top:84px}.article-sections h2{margin:42px 0 17px;padding-bottom:9px;border-bottom:1px solid var(--line-strong);font:730 24px Georgia,"Noto Serif KR",serif;letter-spacing:-.03em}.article-sections h2 span{color:var(--purple)}.article-sections p{margin:0 0 14px;font-size:15px;line-height:1.95;word-break:keep-all}.document-note{display:flex;gap:10px;margin-top:46px;padding:14px 16px;color:var(--muted);border:1px solid var(--line);background:var(--soft);font-size:12px;line-height:1.65}.document-note p{margin:0}.document-note span{color:var(--purple)}
.right-toc{position:sticky;top:94px;height:fit-content;align-self:start;padding-left:14px;border-left:1px solid var(--line)}.right-toc p{margin:0 0 11px;color:var(--muted);font-size:11px;font-weight:800}.right-toc a{display:flex;gap:8px;padding:7px 4px;color:var(--muted);text-decoration:none;font-size:12px}.right-toc a:hover{color:var(--purple)}.right-toc a span{color:var(--purple)}.right-toc button{margin-top:16px;border:0;color:var(--muted);background:transparent;cursor:pointer;font-size:11px}footer{display:flex;justify-content:center;gap:13px;padding:25px;color:#aaa0b4;background:#181322;font-size:12px}footer strong{color:#d6c5ef}
.editor-layer{position:fixed;inset:0;z-index:100}.editor-scrim{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(15,10,21,.68);backdrop-filter:blur(3px)}.editor-panel{position:absolute;top:0;right:0;width:min(680px,100%);height:100%;display:flex;flex-direction:column;color:var(--text);background:var(--surface);box-shadow:-15px 0 50px rgba(0,0,0,.25)}.editor-panel>header{display:flex;justify-content:space-between;align-items:center;padding:22px 26px;color:#fff;background:#1b1524}.editor-panel>header span{color:#bba6df;font-size:9px;letter-spacing:.18em}.editor-panel>header h2{margin:5px 0 0;font-size:20px}.editor-panel>header button{border:0;color:#fff;background:transparent;cursor:pointer;font-size:30px}.editor-body{flex:1;overflow-y:auto;padding:25px 28px 40px}.editor-body label{display:block;margin-bottom:17px;color:var(--muted);font-size:12px;font-weight:700}.editor-body input,.editor-body textarea{width:100%;margin-top:7px;padding:11px 12px;color:var(--text);outline:0;border:1px solid var(--line-strong);border-radius:6px;background:var(--bg);font-weight:400}.editor-body textarea{min-height:90px;resize:vertical;line-height:1.6}.editor-body input:focus,.editor-body textarea:focus{border-color:var(--purple);box-shadow:0 0 0 3px var(--purple-pale)}.editor-group-title{display:flex;align-items:center;justify-content:space-between;margin:28px 0 10px;padding-bottom:9px;border-bottom:1px solid var(--line)}.editor-group-title h3{margin:0;font-size:15px}.editor-group-title button{border:0;color:var(--purple);background:transparent;cursor:pointer;font-weight:750;font-size:12px}.editor-row{display:grid;grid-template-columns:130px 1fr 32px;gap:7px;margin-bottom:7px}.editor-row input{margin:0}.editor-row button{border:1px solid var(--line);border-radius:5px;background:var(--soft);cursor:pointer}.section-editor{margin-bottom:14px;padding:13px;border:1px solid var(--line);background:var(--soft)}.section-editor>div{display:grid;grid-template-columns:25px 1fr auto;gap:7px;align-items:center}.section-editor>div span{color:var(--purple);font-weight:800}.section-editor>div input{margin:0;background:var(--surface)}.section-editor>div button{border:0;color:#a34b61;background:transparent;cursor:pointer;font-size:11px}.section-editor textarea{min-height:130px;background:var(--surface)}.editor-footer{display:flex;justify-content:space-between;gap:15px;padding:16px 24px;border-top:1px solid var(--line);background:var(--surface)}.editor-footer>div{display:flex;gap:8px}.editor-footer button{padding:9px 14px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);cursor:pointer;font-size:12px}.editor-footer button.save{color:#fff;border-color:var(--purple);background:var(--purple);font-weight:800}.editor-footer button.danger{color:#a34b61;border-color:#e2b9c4}.menu-scrim{display:none}
@media(max-width:1180px){.page-grid{grid-template-columns:210px minmax(0,860px)}.right-toc{display:none}}
@media(max-width:820px){.topbar{gap:12px;padding:0 14px}.mobile-menu{display:block}.wordmark{min-width:auto}.wordmark>span:last-child{display:none}.header-actions .edit-header{display:none}.page-grid{display:block;padding:18px 12px 50px}.sidebar{position:fixed;z-index:80;top:64px;left:0;width:270px;height:calc(100vh - 64px);padding:22px 18px;background:var(--bg);transform:translateX(-105%);transition:transform .25s ease;box-shadow:15px 0 40px rgba(0,0,0,.18)}.sidebar.open{transform:translateX(0)}.menu-scrim{display:block;position:fixed;z-index:70;inset:64px 0 0;width:100%;border:0;background:rgba(0,0,0,.4)}.article{padding:26px 22px 35px}.article-header{align-items:flex-start}.article-tools button:first-child{display:none}.profile-content{grid-template-columns:1fr}.profile-image-wrap{border-right:0;border-bottom:1px solid var(--line);min-height:320px}.profile-image{min-height:320px;max-height:520px;object-position:top center}.toc{width:100%}}
@media(max-width:520px){.global-search input{padding-left:38px}.global-search>span{left:12px}.header-actions button{min-width:34px}.article{padding:22px 16px 30px}.article-header{display:block}.article-tools{margin-top:15px}.profile-image-wrap{min-height:260px}.profile-placeholder{min-height:260px}.profile-table>div{grid-template-columns:82px 1fr}.editor-body{padding:20px 16px 30px}.editor-row{grid-template-columns:100px 1fr 30px}.editor-footer{padding:12px}.editor-footer .danger{display:none}}
@media print{.topbar,.sidebar,.right-toc,footer,.article-tools,.breadcrumb{display:none!important}.page-grid{display:block;padding:0}.article{border:0;box-shadow:none}}

.backup-row{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.backup-row .backup-button{margin:0}.import-label{display:grid;place-items:center;cursor:pointer}.import-label input{display:none}.editor-help{margin:-6px 0 17px;color:var(--muted);font-size:11px;line-height:1.6}.image-upload-label{display:flex!important;align-items:center;justify-content:center;min-height:42px;border:1px dashed var(--line-strong);border-radius:6px;color:var(--purple)!important;background:var(--soft);cursor:pointer}.image-upload-label input{display:none}.toast{position:fixed;z-index:150;left:50%;bottom:24px;transform:translate(-50%,20px);padding:11px 17px;border-radius:8px;color:#fff;background:#332541;box-shadow:0 12px 30px rgba(0,0,0,.25);opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
.admin-button{padding:0 13px!important;white-space:nowrap}.admin-button.signed-in{color:#e8dbff;border-color:#8065aa;background:#46365d}.login-panel{position:absolute;top:50%;left:50%;width:min(410px,calc(100% - 28px));transform:translate(-50%,-50%);overflow:hidden;color:var(--text);border-radius:12px;background:var(--surface);box-shadow:0 24px 70px rgba(0,0,0,.38)}.login-panel header{padding:24px 25px;color:#fff;background:linear-gradient(125deg,#2c203b,#7356a9)}.login-panel header span{color:#cfbdea;font-size:9px;letter-spacing:.18em}.login-panel header h2{margin:6px 0 0;font-size:21px}.login-panel form{padding:24px}.login-panel label{display:block;margin-bottom:15px;color:var(--muted);font-size:12px;font-weight:700}.login-panel input{width:100%;margin-top:7px;padding:11px 12px;color:var(--text);outline:0;border:1px solid var(--line-strong);border-radius:6px;background:var(--bg)}.login-panel input:focus{border-color:var(--purple);box-shadow:0 0 0 3px var(--purple-pale)}.login-help{margin:0 0 16px;color:var(--muted);font-size:11px;line-height:1.6}.login-error{min-height:18px;margin:-4px 0 8px;color:#c24f69;font-size:11px}.login-actions{display:flex;justify-content:flex-end;gap:8px}.login-actions button{padding:9px 14px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);cursor:pointer}.login-actions .login-submit{color:#fff;border-color:var(--purple);background:var(--purple);font-weight:800}.login-actions button:disabled{opacity:.55;cursor:wait}.sync-badge{display:inline-flex;align-items:center;gap:5px;margin-left:7px;color:var(--muted);font-size:10px}.sync-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:#58b77a}.setup-warning{margin:0 0 16px;padding:10px 12px;color:#8d5d20;border:1px solid #e6c992;border-radius:6px;background:#fff7e7;font-size:11px;line-height:1.55}:root[data-theme="dark"] .setup-warning{color:#efc983;border-color:#6f5631;background:#342a1c}
