/* ════════════════════════════
   APP
════════════════════════════ */
#app{display:none;position:relative;z-index:1;min-height:100vh}

/* ── TOPBAR ── */
#topbar{
  position:fixed;top:0;left:0;right:0;height:52px;z-index:500;
  background:rgba(245,238,216,.97);border-bottom:1px solid var(--border2);
  display:flex;align-items:center;
  box-shadow:0 1px 8px rgba(80,50,10,.1);
}
.tb-logo{
  width:230px;padding:0 1.4rem;
  font-family:'Cinzel',serif;font-size:.95rem;font-weight:700;
  letter-spacing:.12em;color:var(--ink);
  border-right:1px solid var(--border2);
  display:flex;align-items:center;height:100%;cursor:pointer;gap:.5rem;flex-shrink:0;
}
.tb-logo .tb-ver{font-family:'IM Fell English',serif;font-style:italic;font-size:.65rem;color:var(--ink4);margin-left:.3rem;align-self:flex-end;margin-bottom:5px;font-weight:400}
.tb-nav{display:flex;height:100%;flex:1;overflow-x:auto}
.tb-tab{
  padding:0 1.15rem;height:100%;display:flex;align-items:center;gap:.3rem;
  font-family:'Cinzel',serif;font-size:.58rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink3);border-right:1px solid var(--border);
  cursor:pointer;border-bottom:2px solid transparent;
  transition:all .22s;white-space:nowrap;flex-shrink:0;
}
.tb-tab:hover{color:var(--ink2);background:rgba(120,85,40,.05)}
.tb-tab.active{color:var(--gold);border-bottom-color:var(--gold2);background:rgba(140,96,32,.06)}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:.5rem;padding:0 1rem;border-left:1px solid var(--border2);flex-shrink:0}
.nsfw-b{font-family:'Cinzel',serif;font-size:.48rem;font-weight:600;letter-spacing:.2em;color:var(--red2);border:1px solid rgba(139,32,32,.3);padding:.14rem .55rem;text-transform:uppercase;background:rgba(139,32,32,.05)}
.sic{
  width:28px;height:28px;border:1px solid var(--border2);
  display:flex;align-items:center;justify-content:center;
  color:var(--ink3);font-size:.75rem;font-weight:700;
  cursor:pointer;text-decoration:none;transition:all .2s;
  font-family:'Cinzel',serif;
}
.sic:hover{border-color:var(--gold2);color:var(--gold);background:rgba(140,96,32,.08)}

/* translate */
.tb-translate{position:relative;width:28px;height:28px;border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}
.tb-translate:hover{border-color:var(--gold2);background:rgba(140,96,32,.08)}
.tb-tr-icon{font-size:.85rem;pointer-events:none;position:relative;z-index:1}

/* ── SIDEBAR ── */
#sidebar{
  position:fixed;left:0;top:52px;bottom:0;width:230px;
  background:var(--bg2);border-right:1px solid var(--border2);
  overflow-y:auto;z-index:400;
}
#sidebar::-webkit-scrollbar{width:3px}
#sidebar::-webkit-scrollbar-thumb{background:var(--ink5)}
.sb-sec{border-bottom:1px solid var(--border);padding:.5rem 0}
.sb-sec-title{font-family:'Cinzel',serif;font-size:.48rem;font-weight:600;letter-spacing:.38em;color:var(--ink5);text-transform:uppercase;padding:.4rem 1.2rem .2rem}
.sb-it{display:flex;align-items:center;gap:.55rem;padding:.4rem 1.2rem;cursor:pointer;font-family:'Crimson Text',serif;font-size:.92rem;color:var(--ink3);transition:all .2s;position:relative}
.sb-it:hover{color:var(--ink);background:rgba(120,85,40,.07)}
.sb-it.active{color:var(--gold);background:rgba(140,96,32,.1)}
.sb-it.active::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--gold2)}
.sb-it .sbi{font-size:.78rem;width:1rem;text-align:center;opacity:.55;color:var(--gold)}
.sb-it .sbl{flex:1}
.sb-it .sbc{font-family:'Cinzel',serif;font-size:.52rem;color:var(--ink4);background:var(--bg3);padding:.05rem .4rem;border:1px solid var(--border);min-width:18px;text-align:center}
.sb-cm{display:flex;align-items:center;gap:.5rem;padding:.26rem 1.1rem;cursor:pointer;transition:background .2s}
.sb-cm:hover{background:rgba(120,85,40,.07)}
.sb-cm.active{background:rgba(140,96,32,.1)}
.sb-ca{width:26px;height:26px;border-radius:50%;background:var(--bg3);border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;font-size:.82rem;flex-shrink:0;overflow:hidden}
.sb-ca .char-av-img{width:100%;height:100%;object-fit:cover;object-position:top;border-radius:50%}
.sb-cn{font-family:'Crimson Text',serif;font-size:.88rem;color:var(--ink3);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-cs{font-size:.65rem;color:var(--ink4)}

/* ── MAIN ── */
#main{margin-left:230px;padding-top:52px;min-height:calc(100vh - 52px)}
#app>.site-footer{margin-left:230px}
.page{display:none}.page.active{display:block}
