/* Little Trader 版型：左側欄(可收合) + 主內容 + 頁尾 */
body{margin:0;background:var(--bg);color:var(--text);font-family:'Inter',sans-serif;}
.shell{display:flex;min-height:100vh;}

.sidebar{position:sticky;top:0;align-self:flex-start;width:232px;flex:0 0 232px;height:100vh;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;scrollbar-gutter:stable;
  background:var(--panel);border-right:1px solid var(--border);padding:18px 12px;transition:width .2s, flex-basis .2s, padding .2s;}
.side-head{display:flex;align-items:center;justify-content:space-between;gap:6px;padding-bottom:16px;margin-bottom:14px;border-bottom:1px solid var(--border);}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);min-width:0;}
.brand .logo{width:40px;height:40px;flex:0 0 40px;transition:transform .25s;}
.brand:hover .logo{transform:rotate(-8deg) scale(1.06);}
.brand .name{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:18px;letter-spacing:.2px;white-space:nowrap;}
.brand .name span{color:var(--amber);}
.brand .tagline{font-size:11px;color:var(--mute);margin-top:1px;white-space:nowrap;}
.side-collapse{flex:0 0 auto;width:28px;height:28px;padding:0;border-radius:7px;font-size:15px;line-height:1;color:var(--dim);background:transparent;}
.side-collapse:hover{color:var(--text);background:var(--panel2);}

.side-group{margin-bottom:4px;}
.side-items{display:none;padding:2px 0 8px 8px;margin-left:10px;border-left:1px solid var(--border);}
.side-group.open .side-items{display:block;}
.side-title{display:flex;align-items:center;gap:8px;width:100%;padding:9px 10px;border:none;border-radius:8px;background:transparent;
  color:var(--dim);font-family:'Space Grotesk',sans-serif;font-size:14.5px;font-weight:600;letter-spacing:.3px;text-align:left;cursor:pointer;white-space:nowrap;}
.side-title:hover{background:var(--panel2);color:var(--text);}
.side-group.here > .side-title{color:var(--text);}
.side-count{margin-left:auto;font-size:11px;color:var(--mute);font-family:'IBM Plex Mono',monospace;}
.side-chev{font-size:11px;color:var(--mute);transition:transform .15s;}
.side-group.open .side-chev{transform:rotate(90deg);color:var(--amber);}
.side-sub{padding:8px 10px 3px;font-size:11px;font-weight:600;letter-spacing:.5px;color:var(--mute);}
.side-sub:first-child{padding-top:2px;}
.side-link .soon-tag{margin-left:8px;font-size:10.5px;color:var(--mute);font-style:italic;}
.side-link{display:block;padding:7px 10px;margin:1px 0;border-radius:7px;color:var(--dim);text-decoration:none;font-size:13px;border-left:2px solid transparent;white-space:nowrap;}
.side-link:hover{color:var(--text);background:var(--panel2);}
.side-link.active{color:var(--text);background:var(--panel2);border-left-color:var(--amber);}
.side-link.soon{color:var(--mute);font-style:italic;font-size:12.5px;}

/* 收合狀態：只留吉祥物與展開按鈕 */
.side-collapsed .sidebar{width:64px;flex-basis:64px;padding:18px 8px;}
.side-collapsed .side-head{flex-direction:column;gap:10px;}
.side-collapsed .brand-text, .side-collapsed #sideNav{display:none;}

.main{flex:1;min-width:0;display:flex;flex-direction:column;}
#content{flex:1;width:100%;max-width:1320px;margin:0 auto;padding:22px 24px 40px;}
footer.copy .page-sources{margin-top:10px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0;line-height:1.9;}
footer.copy .page-sources:empty{display:none;}
footer.copy .page-sources b{font-family:'Inter',sans-serif;color:var(--dim);font-weight:600;}
footer.copy .page-sources a{color:var(--dim);text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:2px;}
footer.copy .page-sources a:hover{color:var(--amber);}
/* 回到頂部 / 底部 */
.scroll-btns{position:fixed;right:18px;bottom:22px;display:flex;flex-direction:column;gap:8px;z-index:50;}
.scroll-btns button{width:40px;height:40px;padding:0;border-radius:50%;font-size:17px;line-height:1;background:var(--panel2);border:1px solid var(--border-strong);color:var(--text);box-shadow:0 4px 14px var(--shadow);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s,transform .2s,visibility .2s;}
.scroll-btns button.show{opacity:.9;visibility:visible;transform:none;}
.scroll-btns button:hover{opacity:1;border-color:var(--amber);color:var(--amber);}
@media (max-width:640px){ .scroll-btns{right:12px;bottom:14px;} .scroll-btns button{width:36px;height:36px;} }
footer.copy{border-top:1px solid var(--border);color:var(--mute);font-size:12px;text-align:center;letter-spacing:.3px;padding:18px 20px 26px;line-height:1.7;}

.topbar{display:none;}
@media (max-width:860px){
  .shell{display:block;}
  .topbar{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20;
    background:var(--panel);border-bottom:1px solid var(--border);padding:8px 16px;}
  .topbar .brand .logo{width:34px;height:34px;flex-basis:34px;}
  .topbar button{padding:7px 12px;}
  .sidebar, .side-collapsed .sidebar{position:fixed;z-index:30;left:0;top:0;width:250px;padding:18px 12px;transform:translateX(-100%);transition:transform .2s;box-shadow:0 0 40px var(--shadow);}
  .side-collapsed .side-head{flex-direction:row;}
  .side-collapsed .brand-text, .side-collapsed #sideNav{display:block;}
  .side-collapse{display:none;}
  body.nav-open .sidebar{transform:none;}
  body.nav-open::after{content:'';position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:25;}
  #content{padding:16px;}
}
.side-link.ext{display:flex;justify-content:space-between;align-items:center;}
.side-link .ext-ico{color:var(--mute);font-size:12px;}
.side-link.ext:hover .ext-ico{color:var(--amber);}

/* 側欄底部：暗色/淺色切換 */
.side-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--border);}
.theme-toggle{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:8px 10px;border-radius:8px;font-size:15px;color:var(--dim);background:var(--panel2);}
.theme-toggle span{font-size:12.5px;font-weight:600;}
.theme-toggle:hover{color:var(--text);}
.side-collapsed .theme-toggle span{display:none;}
@media (max-width:860px){ .side-collapsed .theme-toggle span{display:inline;} }
