/* 공통 고정 사이드바 (모든 페이지 동일) */
aside,.side,.sfab,.sbd:not(.vbsbd),.nav .mtg{display:none!important}
.page{margin-left:64px!important}
body{padding-left:64px}
html body .vbs{position:fixed;top:0;left:0;bottom:0;width:64px;z-index:1000;background:#fffdf8;border-right:1px solid #ece4d6;display:flex;flex-direction:column;gap:10px;padding:12px 10px;overflow-x:hidden;overflow-y:auto;scrollbar-width:none;box-sizing:border-box;font-family:inherit}
html body .vbs::-webkit-scrollbar{display:none}
html.vbs-anim .vbs{transition:width .22s ease,transform .22s ease}
html body .vbs .vbstg{width:44px;height:44px;flex:none;border:0;border-radius:12px;background:transparent;color:#1f2a2e;cursor:pointer;display:grid;place-items:center}
html body .vbs nav{display:flex;flex-direction:column;gap:2px}
html body .vbs a{display:flex;align-items:center;gap:12px;height:42px;min-height:42px;padding:0 13px;border-radius:12px;color:#6b6358;text-decoration:none;font-size:14px;font-weight:600;white-space:nowrap;box-sizing:border-box}
html body .vbs a svg{flex:none}
html body .vbs .vbsth{flex:none;width:30px;min-width:30px;max-width:none;height:30px;border-radius:9px;object-fit:cover;margin:0 -6px;box-shadow:0 0 0 1px #ece4d6}
html body .vbs .vbsth.vbslg{object-fit:contain;box-shadow:none;border-radius:0;width:25px;min-width:25px;height:25px;margin:0 -3px}
html body .vbs a:hover,html body .vbs .vbstg:hover{background:#fdebe4;color:#1f2a2e}
html body .vbs a.vbson{background:#fdebe4;color:#1f2a2e;font-weight:800}
html body .vbs a.vbson .vbsth{box-shadow:0 0 0 2px #e8735a}.vbs a.vbson .vbsth.vbslg{box-shadow:none}
html body .vbs a span{display:none}
html body .vbs .vbssl{height:1px;background:#ece4d6;margin:8px 6px;font-size:0;overflow:hidden}
html body .vbs .vbsacts{margin-top:auto;display:flex;flex-direction:column;gap:8px}
html body .vbs .vbsacts a{background:#1f2a2e;color:#fff;justify-content:center;padding:0}
html body .vbs .vbsacts a.vbsplan{background:#e8735a}
html body .vbs .vbsacts a:hover{color:#fff;opacity:.9}
html.vbs-open body .vbs{width:232px;box-shadow:8px 0 26px rgba(80,60,30,.14)}
html.vbs-open body .vbs a span{display:inline}
html.vbs-open body .vbs .vbssl{height:auto;background:none;font:800 11.5px/1 inherit;font-size:11.5px;font-weight:800;letter-spacing:.06em;color:#6b6358;margin:14px 6px 6px;padding-left:7px;overflow:visible;display:flex;align-items:center;gap:8px}
html.vbs-open body .vbs .vbssl.vbsn::before,html.vbs-open body .vbs .vbssl.vbsm::before,html.vbs-open body .vbs .vbssl.vbss::before,html.vbs-open body .vbs .vbssl.vbsv::before{content:"";width:8px;height:8px;border-radius:50%;background:#2a8c9a}
html.vbs-open body .vbs .vbssl.vbss::before{background:#e8735a}
html.vbs-open body .vbs .vbssl.vbsv::before{background:#f2a33a}
html.vbs-open body .vbs .vbssl.vbsm::before{background:#7a5cc4}
html.vbs-open body .vbs .vbsacts a{justify-content:flex-start;padding:0 13px}
html body .vbsfab{display:none}
html body .vbsbd{display:none;position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:999}
@media (max-width:900px){
 body{padding-left:0}.page{margin-left:0!important}
 html body .vbs{transform:translateX(-100%);width:250px}
 html.vbs-mopen body .vbs{transform:none;width:250px}
 html.vbs-mopen body .vbsbd{display:block}
 html body .vbs a span{display:inline}
 html body .vbs .vbssl{height:auto;background:none;font-size:11.5px;font-weight:800;color:#6b6358;margin:14px 6px 6px;padding-left:7px;overflow:visible}
 html body .vbs .vbsacts a{justify-content:flex-start;padding:0 13px}
 html body .vbsfab{display:grid;place-items:center;position:fixed;left:16px;bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:998;width:48px;height:48px;border:0;border-radius:12px;background:#fffdf8;color:#1f2a2e;box-shadow:0 2px 10px rgba(0,0,0,.15);cursor:pointer}
}
.vbstab{position:fixed;top:12px;right:16px;z-index:900;display:flex;gap:6px;padding:6px;border-radius:999px;background:rgba(255,253,248,.95);backdrop-filter:blur(6px);box-shadow:0 4px 16px rgba(0,0,0,.12)}
.vbstab a{padding:8px 16px;border-radius:999px;border:1px solid #ece4d6;background:#fff;color:#1f2a2e;text-decoration:none;font-size:14px;font-weight:700;white-space:nowrap}
.vbstab a:hover{background:#fdebe4}
.vbstab a:last-child{background:#1f2a2e;color:#fff;border-color:#1f2a2e}
html body .vbs a.vbson:has(.vbslg){background:transparent;color:#1f2a2e;font-weight:800}
html body .vbs a.vbson:has(.vbslg) .vbsth{box-shadow:none}
html body .vbs .vbsth.vbslg{width:28px;min-width:28px;height:28px;margin:0 -4px;background:none!important;padding:0;filter:none;transform:none}

body:has(.page){padding-left:0}
@media (max-width:900px){.vbstab{top:auto;bottom:calc(16px + env(safe-area-inset-bottom,0px));right:12px}.vbstab a{padding:8px 12px;font-size:13px}}
